npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bolvrk/engine-surrealdb

v0.4.0

Published

Bolvrk SurrealDB migration danger rules (SR###) over the SurrealQL grammar. BETA: static rules only, behind --engine=surrealdb in the CLI.

Readme

@bolvrk/engine-surrealdb

SurrealDB migration danger rules for Bolvrk: the SR### corpus, over the official SurrealQL grammar (@surrealdb/lezer, vendored and patched, see src/grammar/NOTICE.md), never regex.

Beta. Static (tier 1) rules only, behind --engine=surrealdb in the CLI:

npx bolvrk check migrations/*.surql --engine=surrealdb

The rules cover schema changes SurrealDB accepts without checking the records already stored (a required TYPE, a new ASSERT, READONLY, a SCHEMAFULL switch, TYPE RELATION, REMOVE FIELD), OVERWRITE resetting permissions, DROP tables that discard writes, REMOVE TABLE / DATABASE / NAMESPACE, whole-table UPDATE, DELETE and FOR loops, unclosed and nested transactions, index builds and rebuilds without CONCURRENTLY, duplicate indexes, events with no WHEN, table views, syntax removed in SurrealDB 2 and 3, cascading record references, http:: calls, and credentials: plaintext DEFINE USER passwords, JWT signing keys, literal passwords hashed with crypto::*::generate, root OWNER users and PERMISSIONS FULL writes. The credential rules check runs on Postgres (BC003, BC004) run here too. Findings never quote a secret.

Every rule ships fixture migrations in both directions, and every "SurrealDB does this" claim is re-proven against a real SurrealDB 3 (the embedded @surrealdb/node engine) in the test suite, which also checks that every fixture parses on SurrealDB itself.

Same findings contract as the Postgres engine (engine: "surrealdb" on the report). Inline suppressions (-- bolvrk-ignore SR001: reason) work the same way.

Rule reference: docs/.

Licensing follows @bolvrk/engine: the rules, their metadata and the vendored grammar (src/rules/, src/metas/, src/grammar/) are Apache-2.0; the parser wrapper and check pipeline are FSL-1.1-ALv2.