Registry / gcp / firebase-bolt

firebase-bolt

JSON →
library0.8.4jsnpmunverified

An experimental security and modeling language compiler for Firebase Realtime Database (not Cloud Storage). Compiles .bolt files into Firebase security rules JSON. Current version 0.8.4, in beta, with typescript declarations added in 0.8.3. Key differentiator: acts as a DSL for Firebase security rules, offering type validation, path templates, and schema modeling to reduce manual rules authoring. Alternates like hand-writing JSON or using other rule generators are less expressive.

npm install firebase-bolt
INSTALL
IMPORT
SIG · FIREBASE-BOLT
F
firebase-bolt
gcpjavascriptv0.8.4
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

compile
import { compile } from 'firebase-bolt'
const compile = require('firebase-bolt')
Package is ESM-only. Use named imports, not default imports or require.
compileRules
import { compileRules } from 'firebase-bolt'
import { compile } from 'firebase-bolt/compile'
Use named import 'compileRules' directly from the package root.
type RuleSet
import type { RuleSet } from 'firebase-bolt'
import { RuleSet } from 'firebase-bolt'
RuleSet is a type and should be imported with `import type` in TypeScript.

Compiles a security rules Bolt snippet to JSON using compileRules.

import { compileRules } from 'firebase-bolt'; const boltCode = ` path / { read() { true } write() { auth != null } } type User { name: String, age: Number } path /users/$uid is User { read() { true } write() { $uid === auth.uid } } `; const rules = compileRules(boltCode); console.log(JSON.stringify(rules, null, 2)); // Output: {"rules":{".read":"true",".write":"auth != null","users":{"$uid":{".validate":"newData.hasChildren(['name','age'])",".read":"true",".write":"$uid === auth.uid"}}}}
bolt --version
Debug
Known issues
breakingPath expressions now use path template syntax instead of wildcard variables.
fix
Replace wildcard variables (e.g., $uid) with path templates (e.g., /users/$uid) in path definitions.
affects: >=0.7.0
deprecatedFunction definition format fn(x) = exp; is deprecated.
fix
Use modern function syntax: fn(x) { exp }.
affects: >=0.7.0
gotchaBolt only supports Firebase Realtime Database, not Cloud Firestore or Cloud Storage.
fix
Do not use for Firestore security rules. Use Firebase CLI's built-in rules languages instead.
affects: >=0.0.0
gotchaHand-verify generated JSON rules before production use; compiler is experimental.
fix
Review rules.json output manually or test in Firebase console.
affects: >=0.0.0
gotchaThe create()/update()/delete() aliases for write() may not be recognized in older Firebase versions.
fix
Ensure your Firebase Realtime Database version supports these aliases, or use write() directly.
affects: >=0.8.0
Errors
Common errors & fixes
Error: The module 'firebase-bolt' does not export a default.
Attempting to import with default import (import bolt from 'firebase-bolt') or require syntax.
fix
Use named import: import { compileRules } from 'firebase-bolt'.
TypeError: bolt.compile is not a function
Using wrong import name (compile vs compileRules).
fix
Use compileRules instead of compile. The correct named export is compileRules.
ParseError: Expected ( but got something else (line 5, col 20)
Using deprecated function syntax or incorrect path template, typically missing parentheses or braces.
fix
Review your Bolt syntax. Ensure functions use modern syntax: read() { true } not read() true.
Error: Cannot find module 'firebase-bolt'
Package not installed locally or globally.
fix
Run `npm install firebase-bolt` in your project directory, or install globally with `npm install -g firebase-bolt`.
Upgrade
Version history
0.8.4latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
31 hits · last 30 days
node
26
OpenAI (training)
1
Resources
firebase-bolt — npm install firebase-bolt · libregistry