pyric 0.0.1 → 0.1.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -2
- package/README.md.orig +54 -0
- package/dist/app/index.d.ts +81 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +78 -0
- package/dist/app/index.js.map +1 -0
- package/dist/auth/index.d.ts +346 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +701 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/prod-backend.d.ts +39 -0
- package/dist/auth/prod-backend.d.ts.map +1 -0
- package/dist/auth/prod-backend.js +179 -0
- package/dist/auth/prod-backend.js.map +1 -0
- package/dist/auth/providers.d.ts +107 -0
- package/dist/auth/providers.d.ts.map +1 -0
- package/dist/auth/providers.js +138 -0
- package/dist/auth/providers.js.map +1 -0
- package/dist/auth/sandbox-backend.d.ts +769 -0
- package/dist/auth/sandbox-backend.d.ts.map +1 -0
- package/dist/auth/sandbox-backend.js +1598 -0
- package/dist/auth/sandbox-backend.js.map +1 -0
- package/dist/auth/target.d.ts +40 -0
- package/dist/auth/target.d.ts.map +1 -0
- package/dist/auth/target.js +28 -0
- package/dist/auth/target.js.map +1 -0
- package/dist/auth/types.d.ts +252 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +26 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/database/constraints/atoms.d.ts +29 -0
- package/dist/database/constraints/atoms.d.ts.map +1 -0
- package/dist/database/constraints/atoms.js +43 -0
- package/dist/database/constraints/atoms.js.map +1 -0
- package/dist/database/constraints/compose.d.ts +16 -0
- package/dist/database/constraints/compose.d.ts.map +1 -0
- package/dist/database/constraints/compose.js +15 -0
- package/dist/database/constraints/compose.js.map +1 -0
- package/dist/database/constraints/data.d.ts +30 -0
- package/dist/database/constraints/data.d.ts.map +1 -0
- package/dist/database/constraints/data.js +46 -0
- package/dist/database/constraints/data.js.map +1 -0
- package/dist/database/constraints/document.d.ts +42 -0
- package/dist/database/constraints/document.d.ts.map +1 -0
- package/dist/database/constraints/document.js +86 -0
- package/dist/database/constraints/document.js.map +1 -0
- package/dist/database/constraints/game.d.ts +30 -0
- package/dist/database/constraints/game.d.ts.map +1 -0
- package/dist/database/constraints/game.js +49 -0
- package/dist/database/constraints/game.js.map +1 -0
- package/dist/database/constraints/index.d.ts +12 -0
- package/dist/database/constraints/index.d.ts.map +1 -0
- package/dist/database/constraints/index.js +9 -0
- package/dist/database/constraints/index.js.map +1 -0
- package/dist/database/constraints/policies.d.ts +16 -0
- package/dist/database/constraints/policies.d.ts.map +1 -0
- package/dist/database/constraints/policies.js +17 -0
- package/dist/database/constraints/policies.js.map +1 -0
- package/dist/database/constraints/ruleset.d.ts +5 -0
- package/dist/database/constraints/ruleset.d.ts.map +1 -0
- package/dist/database/constraints/ruleset.js +132 -0
- package/dist/database/constraints/ruleset.js.map +1 -0
- package/dist/database/constraints/schema.d.ts +17 -0
- package/dist/database/constraints/schema.d.ts.map +1 -0
- package/dist/database/constraints/schema.js +74 -0
- package/dist/database/constraints/schema.js.map +1 -0
- package/dist/database/constraints/types.d.ts +22 -0
- package/dist/database/constraints/types.d.ts.map +1 -0
- package/dist/database/constraints/types.js +2 -0
- package/dist/database/constraints/types.js.map +1 -0
- package/dist/database/crawl/handler.d.ts +7 -0
- package/dist/database/crawl/handler.d.ts.map +1 -0
- package/dist/database/crawl/handler.js +91 -0
- package/dist/database/crawl/handler.js.map +1 -0
- package/dist/database/crawl/semaphore.d.ts +9 -0
- package/dist/database/crawl/semaphore.d.ts.map +1 -0
- package/dist/database/crawl/semaphore.js +27 -0
- package/dist/database/crawl/semaphore.js.map +1 -0
- package/dist/database/crawl/spec.d.ts +33 -0
- package/dist/database/crawl/spec.d.ts.map +1 -0
- package/dist/database/crawl/spec.js +12 -0
- package/dist/database/crawl/spec.js.map +1 -0
- package/dist/database/data/handler.d.ts +9 -0
- package/dist/database/data/handler.d.ts.map +1 -0
- package/dist/database/data/handler.js +96 -0
- package/dist/database/data/handler.js.map +1 -0
- package/dist/database/data/spec.d.ts +77 -0
- package/dist/database/data/spec.d.ts.map +1 -0
- package/dist/database/data/spec.js +17 -0
- package/dist/database/data/spec.js.map +1 -0
- package/dist/database/data/validated.d.ts +8 -0
- package/dist/database/data/validated.d.ts.map +1 -0
- package/dist/database/data/validated.js +99 -0
- package/dist/database/data/validated.js.map +1 -0
- package/dist/database/grammar/RtdbExpr.ohm +98 -0
- package/dist/database/grammar/RtdbExpr.ohm.generated.d.ts +2 -0
- package/dist/database/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -0
- package/dist/database/grammar/RtdbExpr.ohm.generated.js +103 -0
- package/dist/database/grammar/RtdbExpr.ohm.generated.js.map +1 -0
- package/dist/database/grammar/RtdbExprParser.d.ts +5 -0
- package/dist/database/grammar/RtdbExprParser.d.ts.map +1 -0
- package/dist/database/grammar/RtdbExprParser.js +53 -0
- package/dist/database/grammar/RtdbExprParser.js.map +1 -0
- package/dist/database/grammar/linter.d.ts +3 -0
- package/dist/database/grammar/linter.d.ts.map +1 -0
- package/dist/database/grammar/linter.js +66 -0
- package/dist/database/grammar/linter.js.map +1 -0
- package/dist/database/grammar/simulator.d.ts +31 -0
- package/dist/database/grammar/simulator.d.ts.map +1 -0
- package/dist/database/grammar/simulator.js +255 -0
- package/dist/database/grammar/simulator.js.map +1 -0
- package/dist/database/grammar/validator.d.ts +3 -0
- package/dist/database/grammar/validator.d.ts.map +1 -0
- package/dist/database/grammar/validator.js +84 -0
- package/dist/database/grammar/validator.js.map +1 -0
- package/dist/database/host.d.ts +50 -0
- package/dist/database/host.d.ts.map +1 -0
- package/dist/database/host.js +41 -0
- package/dist/database/host.js.map +1 -0
- package/dist/database/index.d.ts +40 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +47 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/initialize-from-app.d.ts +28 -0
- package/dist/database/initialize-from-app.d.ts.map +1 -0
- package/dist/database/initialize-from-app.js +23 -0
- package/dist/database/initialize-from-app.js.map +1 -0
- package/dist/database/ir/handler.d.ts +6 -0
- package/dist/database/ir/handler.d.ts.map +1 -0
- package/dist/database/ir/handler.js +52 -0
- package/dist/database/ir/handler.js.map +1 -0
- package/dist/database/ir/spec.d.ts +25 -0
- package/dist/database/ir/spec.d.ts.map +1 -0
- package/dist/database/ir/spec.js +11 -0
- package/dist/database/ir/spec.js.map +1 -0
- package/dist/database/mapper.d.ts +9 -0
- package/dist/database/mapper.d.ts.map +1 -0
- package/dist/database/mapper.js +115 -0
- package/dist/database/mapper.js.map +1 -0
- package/dist/database/modular.d.ts +604 -0
- package/dist/database/modular.d.ts.map +1 -0
- package/dist/database/modular.js +1226 -0
- package/dist/database/modular.js.map +1 -0
- package/dist/database/replay.d.ts +33 -0
- package/dist/database/replay.d.ts.map +1 -0
- package/dist/database/replay.js +124 -0
- package/dist/database/replay.js.map +1 -0
- package/dist/database/resolver.d.ts +4 -0
- package/dist/database/resolver.d.ts.map +1 -0
- package/dist/database/resolver.js +66 -0
- package/dist/database/resolver.js.map +1 -0
- package/dist/database/sandbox/backend.d.ts +403 -0
- package/dist/database/sandbox/backend.d.ts.map +1 -0
- package/dist/database/sandbox/backend.js +1467 -0
- package/dist/database/sandbox/backend.js.map +1 -0
- package/dist/database/sandbox/data-tree.d.ts +123 -0
- package/dist/database/sandbox/data-tree.d.ts.map +1 -0
- package/dist/database/sandbox/data-tree.js +310 -0
- package/dist/database/sandbox/data-tree.js.map +1 -0
- package/dist/database/sandbox/normalize.d.ts +77 -0
- package/dist/database/sandbox/normalize.d.ts.map +1 -0
- package/dist/database/sandbox/normalize.js +165 -0
- package/dist/database/sandbox/normalize.js.map +1 -0
- package/dist/database/sandbox/push-id.d.ts +32 -0
- package/dist/database/sandbox/push-id.d.ts.map +1 -0
- package/dist/database/sandbox/push-id.js +82 -0
- package/dist/database/sandbox/push-id.js.map +1 -0
- package/dist/database/sandbox/query.d.ts +175 -0
- package/dist/database/sandbox/query.d.ts.map +1 -0
- package/dist/database/sandbox/query.js +269 -0
- package/dist/database/sandbox/query.js.map +1 -0
- package/dist/database/sandbox/rules-eval.d.ts +69 -0
- package/dist/database/sandbox/rules-eval.d.ts.map +1 -0
- package/dist/database/sandbox/rules-eval.js +124 -0
- package/dist/database/sandbox/rules-eval.js.map +1 -0
- package/dist/database/sandbox/sentinels.d.ts +71 -0
- package/dist/database/sandbox/sentinels.d.ts.map +1 -0
- package/dist/database/sandbox/sentinels.js +92 -0
- package/dist/database/sandbox/sentinels.js.map +1 -0
- package/dist/database/simulation/handler.d.ts +6 -0
- package/dist/database/simulation/handler.d.ts.map +1 -0
- package/dist/database/simulation/handler.js +236 -0
- package/dist/database/simulation/handler.js.map +1 -0
- package/dist/database/simulation/spec.d.ts +69 -0
- package/dist/database/simulation/spec.d.ts.map +1 -0
- package/dist/database/simulation/spec.js +25 -0
- package/dist/database/simulation/spec.js.map +1 -0
- package/dist/database/tools.d.ts +22 -0
- package/dist/database/tools.d.ts.map +1 -0
- package/dist/database/tools.js +272 -0
- package/dist/database/tools.js.map +1 -0
- package/dist/database/types.d.ts +210 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +26 -0
- package/dist/database/types.js.map +1 -0
- package/dist/database/write/handler.d.ts +7 -0
- package/dist/database/write/handler.d.ts.map +1 -0
- package/dist/database/write/handler.js +42 -0
- package/dist/database/write/handler.js.map +1 -0
- package/dist/database/write/spec.d.ts +18 -0
- package/dist/database/write/spec.d.ts.map +1 -0
- package/dist/database/write/spec.js +7 -0
- package/dist/database/write/spec.js.map +1 -0
- package/dist/firestore/index.d.ts +533 -0
- package/dist/firestore/index.d.ts.map +1 -0
- package/dist/firestore/index.js +1536 -0
- package/dist/firestore/index.js.map +1 -0
- package/dist/firestore/tools.d.ts +67 -0
- package/dist/firestore/tools.d.ts.map +1 -0
- package/dist/firestore/tools.js +318 -0
- package/dist/firestore/tools.js.map +1 -0
- package/dist/firestore-values/index.d.ts +63 -0
- package/dist/firestore-values/index.d.ts.map +1 -0
- package/dist/firestore-values/index.js +148 -0
- package/dist/firestore-values/index.js.map +1 -0
- package/dist/project-scope.d.ts +5 -0
- package/dist/project-scope.d.ts.map +1 -0
- package/dist/project-scope.js +2 -0
- package/dist/project-scope.js.map +1 -0
- package/dist/rules/extract.d.ts +28 -0
- package/dist/rules/extract.d.ts.map +1 -0
- package/dist/rules/extract.js +25 -0
- package/dist/rules/extract.js.map +1 -0
- package/dist/rules/generators/assembler.d.ts +19 -0
- package/dist/rules/generators/assembler.d.ts.map +1 -0
- package/dist/rules/generators/assembler.js +292 -0
- package/dist/rules/generators/assembler.js.map +1 -0
- package/dist/rules/generators/expressions.d.ts +52 -0
- package/dist/rules/generators/expressions.d.ts.map +1 -0
- package/dist/rules/generators/expressions.js +117 -0
- package/dist/rules/generators/expressions.js.map +1 -0
- package/dist/rules/generators/grid.d.ts +22 -0
- package/dist/rules/generators/grid.d.ts.map +1 -0
- package/dist/rules/generators/grid.js +52 -0
- package/dist/rules/generators/grid.js.map +1 -0
- package/dist/rules/grammar/FirestoreAST.d.ts +129 -0
- package/dist/rules/grammar/FirestoreAST.d.ts.map +1 -0
- package/dist/rules/grammar/FirestoreAST.js +3 -0
- package/dist/rules/grammar/FirestoreAST.js.map +1 -0
- package/dist/rules/grammar/FirestoreAssembler.d.ts +5 -0
- package/dist/rules/grammar/FirestoreAssembler.d.ts.map +1 -0
- package/dist/rules/grammar/FirestoreAssembler.js +158 -0
- package/dist/rules/grammar/FirestoreAssembler.js.map +1 -0
- package/dist/rules/grammar/FirestoreParser.d.ts +46 -0
- package/dist/rules/grammar/FirestoreParser.d.ts.map +1 -0
- package/dist/rules/grammar/FirestoreParser.js +409 -0
- package/dist/rules/grammar/FirestoreParser.js.map +1 -0
- package/dist/rules/grammar/FirestoreRules.ohm +229 -0
- package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts +2 -0
- package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts.map +1 -0
- package/dist/rules/grammar/FirestoreRules.ohm.generated.js +234 -0
- package/dist/rules/grammar/FirestoreRules.ohm.generated.js.map +1 -0
- package/dist/rules/grammar/FirestoreValidator.d.ts +10 -0
- package/dist/rules/grammar/FirestoreValidator.d.ts.map +1 -0
- package/dist/rules/grammar/FirestoreValidator.js +482 -0
- package/dist/rules/grammar/FirestoreValidator.js.map +1 -0
- package/dist/rules/index.d.ts +67 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +80 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/indexes/extract/annotation-collect.d.ts +42 -0
- package/dist/rules/indexes/extract/annotation-collect.d.ts.map +1 -0
- package/dist/rules/indexes/extract/annotation-collect.js +69 -0
- package/dist/rules/indexes/extract/annotation-collect.js.map +1 -0
- package/dist/rules/indexes/extract/annotations.d.ts +50 -0
- package/dist/rules/indexes/extract/annotations.d.ts.map +1 -0
- package/dist/rules/indexes/extract/annotations.js +144 -0
- package/dist/rules/indexes/extract/annotations.js.map +1 -0
- package/dist/rules/indexes/extract/ast.d.ts +54 -0
- package/dist/rules/indexes/extract/ast.d.ts.map +1 -0
- package/dist/rules/indexes/extract/ast.js +119 -0
- package/dist/rules/indexes/extract/ast.js.map +1 -0
- package/dist/rules/indexes/extract/classify.d.ts +41 -0
- package/dist/rules/indexes/extract/classify.d.ts.map +1 -0
- package/dist/rules/indexes/extract/classify.js +138 -0
- package/dist/rules/indexes/extract/classify.js.map +1 -0
- package/dist/rules/indexes/extract/composite.d.ts +38 -0
- package/dist/rules/indexes/extract/composite.d.ts.map +1 -0
- package/dist/rules/indexes/extract/composite.js +85 -0
- package/dist/rules/indexes/extract/composite.js.map +1 -0
- package/dist/rules/indexes/extract/dataflow.d.ts +45 -0
- package/dist/rules/indexes/extract/dataflow.d.ts.map +1 -0
- package/dist/rules/indexes/extract/dataflow.js +200 -0
- package/dist/rules/indexes/extract/dataflow.js.map +1 -0
- package/dist/rules/indexes/extract/enumerate.d.ts +41 -0
- package/dist/rules/indexes/extract/enumerate.d.ts.map +1 -0
- package/dist/rules/indexes/extract/enumerate.js +163 -0
- package/dist/rules/indexes/extract/enumerate.js.map +1 -0
- package/dist/rules/indexes/extract/extractor.d.ts +3 -0
- package/dist/rules/indexes/extract/extractor.d.ts.map +1 -0
- package/dist/rules/indexes/extract/extractor.js +274 -0
- package/dist/rules/indexes/extract/extractor.js.map +1 -0
- package/dist/rules/indexes/extract/types.d.ts +211 -0
- package/dist/rules/indexes/extract/types.d.ts.map +1 -0
- package/dist/rules/indexes/extract/types.js +14 -0
- package/dist/rules/indexes/extract/types.js.map +1 -0
- package/dist/rules/indexes/extractHandler.d.ts +16 -0
- package/dist/rules/indexes/extractHandler.d.ts.map +1 -0
- package/dist/rules/indexes/extractHandler.js +100 -0
- package/dist/rules/indexes/extractHandler.js.map +1 -0
- package/dist/rules/indexes/extractTool.d.ts +15 -0
- package/dist/rules/indexes/extractTool.d.ts.map +1 -0
- package/dist/rules/indexes/extractTool.js +55 -0
- package/dist/rules/indexes/extractTool.js.map +1 -0
- package/dist/rules/indexes/types.d.ts +71 -0
- package/dist/rules/indexes/types.d.ts.map +1 -0
- package/dist/rules/indexes/types.js +15 -0
- package/dist/rules/indexes/types.js.map +1 -0
- package/dist/rules/inspect/handler.d.ts +6 -0
- package/dist/rules/inspect/handler.d.ts.map +1 -0
- package/dist/rules/inspect/handler.js +144 -0
- package/dist/rules/inspect/handler.js.map +1 -0
- package/dist/rules/inspect/spec.d.ts +37 -0
- package/dist/rules/inspect/spec.d.ts.map +1 -0
- package/dist/rules/inspect/spec.js +2 -0
- package/dist/rules/inspect/spec.js.map +1 -0
- package/dist/rules/inspect/tools.d.ts +21 -0
- package/dist/rules/inspect/tools.d.ts.map +1 -0
- package/dist/rules/inspect/tools.js +21 -0
- package/dist/rules/inspect/tools.js.map +1 -0
- package/dist/rules/linter/ast-utils.d.ts +97 -0
- package/dist/rules/linter/ast-utils.d.ts.map +1 -0
- package/dist/rules/linter/ast-utils.js +491 -0
- package/dist/rules/linter/ast-utils.js.map +1 -0
- package/dist/rules/linter/hallucinations.d.ts +34 -0
- package/dist/rules/linter/hallucinations.d.ts.map +1 -0
- package/dist/rules/linter/hallucinations.js +334 -0
- package/dist/rules/linter/hallucinations.js.map +1 -0
- package/dist/rules/linter/linter.d.ts +84 -0
- package/dist/rules/linter/linter.d.ts.map +1 -0
- package/dist/rules/linter/linter.js +784 -0
- package/dist/rules/linter/linter.js.map +1 -0
- package/dist/rules/modules/resolver-browser.d.ts +41 -0
- package/dist/rules/modules/resolver-browser.d.ts.map +1 -0
- package/dist/rules/modules/resolver-browser.js +63 -0
- package/dist/rules/modules/resolver-browser.js.map +1 -0
- package/dist/rules/modules/resolver-core.d.ts +51 -0
- package/dist/rules/modules/resolver-core.d.ts.map +1 -0
- package/dist/rules/modules/resolver-core.js +338 -0
- package/dist/rules/modules/resolver-core.js.map +1 -0
- package/dist/rules/modules/resolver.d.ts +17 -0
- package/dist/rules/modules/resolver.d.ts.map +1 -0
- package/dist/rules/modules/resolver.js +49 -0
- package/dist/rules/modules/resolver.js.map +1 -0
- package/dist/rules/modules/stdlib/atomic.rules +52 -0
- package/dist/rules/modules/stdlib/atomic.test.json +152 -0
- package/dist/rules/modules/stdlib/auth.rules +7 -0
- package/dist/rules/modules/stdlib/auth.test.json +53 -0
- package/dist/rules/modules/stdlib/content.rules +50 -0
- package/dist/rules/modules/stdlib/content.test.json +238 -0
- package/dist/rules/modules/stdlib/counters.rules +41 -0
- package/dist/rules/modules/stdlib/counters.test.json +254 -0
- package/dist/rules/modules/stdlib/geometry.rules +43 -0
- package/dist/rules/modules/stdlib/geometry.test.json +200 -0
- package/dist/rules/modules/stdlib/joining.rules +49 -0
- package/dist/rules/modules/stdlib/joining.test.json +287 -0
- package/dist/rules/modules/stdlib/lifecycle.rules +51 -0
- package/dist/rules/modules/stdlib/lifecycle.test.json +288 -0
- package/dist/rules/modules/stdlib/lobby.rules +44 -0
- package/dist/rules/modules/stdlib/lobby.test.json +32 -0
- package/dist/rules/modules/stdlib/membership.rules +40 -0
- package/dist/rules/modules/stdlib/membership.test.json +107 -0
- package/dist/rules/modules/stdlib/spaces.rules +46 -0
- package/dist/rules/modules/stdlib/spaces.test.json +392 -0
- package/dist/rules/modules/stdlib/state.rules +28 -0
- package/dist/rules/modules/stdlib/state.test.json +55 -0
- package/dist/rules/modules/stdlib/timing.rules +20 -0
- package/dist/rules/modules/stdlib/timing.test.json +106 -0
- package/dist/rules/modules/stdlib/transitions.rules +34 -0
- package/dist/rules/modules/stdlib/transitions.test.json +86 -0
- package/dist/rules/modules/stdlib/turns.rules +27 -0
- package/dist/rules/modules/stdlib/turns.test.json +64 -0
- package/dist/rules/modules/stdlib/validation.rules +31 -0
- package/dist/rules/modules/stdlib/validation.test.json +184 -0
- package/dist/rules/modules/stdlib-content.d.ts +11 -0
- package/dist/rules/modules/stdlib-content.d.ts.map +1 -0
- package/dist/rules/modules/stdlib-content.js +590 -0
- package/dist/rules/modules/stdlib-content.js.map +1 -0
- package/dist/rules/node.d.ts +17 -0
- package/dist/rules/node.d.ts.map +1 -0
- package/dist/rules/node.js +21 -0
- package/dist/rules/node.js.map +1 -0
- package/dist/rules/rtdb.d.ts +28 -0
- package/dist/rules/rtdb.d.ts.map +1 -0
- package/dist/rules/rtdb.js +15 -0
- package/dist/rules/rtdb.js.map +1 -0
- package/dist/rules/simulator/evaluator.d.ts +179 -0
- package/dist/rules/simulator/evaluator.d.ts.map +1 -0
- package/dist/rules/simulator/evaluator.js +1221 -0
- package/dist/rules/simulator/evaluator.js.map +1 -0
- package/dist/rules/simulator/expression/eval-errors.d.ts +86 -0
- package/dist/rules/simulator/expression/eval-errors.d.ts.map +1 -0
- package/dist/rules/simulator/expression/eval-errors.js +68 -0
- package/dist/rules/simulator/expression/eval-errors.js.map +1 -0
- package/dist/rules/simulator/expression/evaluator.d.ts +43 -0
- package/dist/rules/simulator/expression/evaluator.d.ts.map +1 -0
- package/dist/rules/simulator/expression/evaluator.js +298 -0
- package/dist/rules/simulator/expression/evaluator.js.map +1 -0
- package/dist/rules/simulator/expression/lexer.d.ts +36 -0
- package/dist/rules/simulator/expression/lexer.d.ts.map +1 -0
- package/dist/rules/simulator/expression/lexer.js +318 -0
- package/dist/rules/simulator/expression/lexer.js.map +1 -0
- package/dist/rules/simulator/expression/parser.d.ts +39 -0
- package/dist/rules/simulator/expression/parser.d.ts.map +1 -0
- package/dist/rules/simulator/expression/parser.js +329 -0
- package/dist/rules/simulator/expression/parser.js.map +1 -0
- package/dist/rules/simulator/expression/types.d.ts +137 -0
- package/dist/rules/simulator/expression/types.d.ts.map +1 -0
- package/dist/rules/simulator/expression/types.js +90 -0
- package/dist/rules/simulator/expression/types.js.map +1 -0
- package/dist/rules/simulator/expression/walk-data.d.ts +52 -0
- package/dist/rules/simulator/expression/walk-data.d.ts.map +1 -0
- package/dist/rules/simulator/expression/walk-data.js +167 -0
- package/dist/rules/simulator/expression/walk-data.js.map +1 -0
- package/dist/rules/simulator/firestore-set.d.ts +25 -0
- package/dist/rules/simulator/firestore-set.d.ts.map +1 -0
- package/dist/rules/simulator/firestore-set.js +89 -0
- package/dist/rules/simulator/firestore-set.js.map +1 -0
- package/dist/rules/simulator/handler.d.ts +36 -0
- package/dist/rules/simulator/handler.d.ts.map +1 -0
- package/dist/rules/simulator/handler.js +583 -0
- package/dist/rules/simulator/handler.js.map +1 -0
- package/dist/rules/simulator/mapdiff.d.ts +29 -0
- package/dist/rules/simulator/mapdiff.d.ts.map +1 -0
- package/dist/rules/simulator/mapdiff.js +72 -0
- package/dist/rules/simulator/mapdiff.js.map +1 -0
- package/dist/rules/simulator/project-after-state.d.ts +33 -0
- package/dist/rules/simulator/project-after-state.d.ts.map +1 -0
- package/dist/rules/simulator/project-after-state.js +88 -0
- package/dist/rules/simulator/project-after-state.js.map +1 -0
- package/dist/rules/simulator/query-proof.d.ts +80 -0
- package/dist/rules/simulator/query-proof.d.ts.map +1 -0
- package/dist/rules/simulator/query-proof.js +142 -0
- package/dist/rules/simulator/query-proof.js.map +1 -0
- package/dist/rules/simulator/value-equality.d.ts +8 -0
- package/dist/rules/simulator/value-equality.d.ts.map +1 -0
- package/dist/rules/simulator/value-equality.js +40 -0
- package/dist/rules/simulator/value-equality.js.map +1 -0
- package/dist/rules/simulator/wrappers/base.d.ts +129 -0
- package/dist/rules/simulator/wrappers/base.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/base.js +90 -0
- package/dist/rules/simulator/wrappers/base.js.map +1 -0
- package/dist/rules/simulator/wrappers/bytes.d.ts +45 -0
- package/dist/rules/simulator/wrappers/bytes.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/bytes.js +130 -0
- package/dist/rules/simulator/wrappers/bytes.js.map +1 -0
- package/dist/rules/simulator/wrappers/duration.d.ts +76 -0
- package/dist/rules/simulator/wrappers/duration.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/duration.js +176 -0
- package/dist/rules/simulator/wrappers/duration.js.map +1 -0
- package/dist/rules/simulator/wrappers/float.d.ts +52 -0
- package/dist/rules/simulator/wrappers/float.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/float.js +88 -0
- package/dist/rules/simulator/wrappers/float.js.map +1 -0
- package/dist/rules/simulator/wrappers/latlng.d.ts +40 -0
- package/dist/rules/simulator/wrappers/latlng.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/latlng.js +100 -0
- package/dist/rules/simulator/wrappers/latlng.js.map +1 -0
- package/dist/rules/simulator/wrappers/path.d.ts +75 -0
- package/dist/rules/simulator/wrappers/path.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/path.js +158 -0
- package/dist/rules/simulator/wrappers/path.js.map +1 -0
- package/dist/rules/simulator/wrappers/reference.d.ts +82 -0
- package/dist/rules/simulator/wrappers/reference.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/reference.js +145 -0
- package/dist/rules/simulator/wrappers/reference.js.map +1 -0
- package/dist/rules/simulator/wrappers/timestamp.d.ts +86 -0
- package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/timestamp.js +207 -0
- package/dist/rules/simulator/wrappers/timestamp.js.map +1 -0
- package/dist/rules/simulator/wrappers/vector.d.ts +43 -0
- package/dist/rules/simulator/wrappers/vector.d.ts.map +1 -0
- package/dist/rules/simulator/wrappers/vector.js +80 -0
- package/dist/rules/simulator/wrappers/vector.js.map +1 -0
- package/dist/rules/simulator-tools-impl.d.ts +64 -0
- package/dist/rules/simulator-tools-impl.d.ts.map +1 -0
- package/dist/rules/simulator-tools-impl.js +462 -0
- package/dist/rules/simulator-tools-impl.js.map +1 -0
- package/dist/rules/simulator.d.ts +20 -0
- package/dist/rules/simulator.d.ts.map +1 -0
- package/dist/rules/simulator.js +24 -0
- package/dist/rules/simulator.js.map +1 -0
- package/dist/rules/stdlib-modules.d.ts +73 -0
- package/dist/rules/stdlib-modules.d.ts.map +1 -0
- package/dist/rules/stdlib-modules.js +849 -0
- package/dist/rules/stdlib-modules.js.map +1 -0
- package/dist/rules/stdlib-tools.d.ts +19 -0
- package/dist/rules/stdlib-tools.d.ts.map +1 -0
- package/dist/rules/stdlib-tools.js +164 -0
- package/dist/rules/stdlib-tools.js.map +1 -0
- package/dist/rules/test/handler.d.ts +9 -0
- package/dist/rules/test/handler.d.ts.map +1 -0
- package/dist/rules/test/handler.js +124 -0
- package/dist/rules/test/handler.js.map +1 -0
- package/dist/rules/test/spec.d.ts +517 -0
- package/dist/rules/test/spec.d.ts.map +1 -0
- package/dist/rules/test/spec.js +227 -0
- package/dist/rules/test/spec.js.map +1 -0
- package/dist/rules/tools.d.ts +41 -0
- package/dist/rules/tools.d.ts.map +1 -0
- package/dist/rules/tools.js +124 -0
- package/dist/rules/tools.js.map +1 -0
- package/dist/rules/write/handler.d.ts +6 -0
- package/dist/rules/write/handler.d.ts.map +1 -0
- package/dist/rules/write/handler.js +126 -0
- package/dist/rules/write/handler.js.map +1 -0
- package/dist/rules/write/spec.d.ts +28 -0
- package/dist/rules/write/spec.d.ts.map +1 -0
- package/dist/rules/write/spec.js +2 -0
- package/dist/rules/write/spec.js.map +1 -0
- package/dist/sandbox/admin-compat.d.ts +20 -0
- package/dist/sandbox/admin-compat.d.ts.map +1 -0
- package/dist/sandbox/admin-compat.js +19 -0
- package/dist/sandbox/admin-compat.js.map +1 -0
- package/dist/sandbox/admin-firestore/error-translation.d.ts +86 -0
- package/dist/sandbox/admin-firestore/error-translation.d.ts.map +1 -0
- package/dist/sandbox/admin-firestore/error-translation.js +204 -0
- package/dist/sandbox/admin-firestore/error-translation.js.map +1 -0
- package/dist/sandbox/admin-firestore/index.d.ts +169 -0
- package/dist/sandbox/admin-firestore/index.d.ts.map +1 -0
- package/dist/sandbox/admin-firestore/index.js +456 -0
- package/dist/sandbox/admin-firestore/index.js.map +1 -0
- package/dist/sandbox/admin-firestore/remote.d.ts +97 -0
- package/dist/sandbox/admin-firestore/remote.d.ts.map +1 -0
- package/dist/sandbox/admin-firestore/remote.js +735 -0
- package/dist/sandbox/admin-firestore/remote.js.map +1 -0
- package/dist/sandbox/branches/index.d.ts +141 -0
- package/dist/sandbox/branches/index.d.ts.map +1 -0
- package/dist/sandbox/branches/index.js +327 -0
- package/dist/sandbox/branches/index.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/batch.d.ts +34 -0
- package/dist/sandbox/firestore/admin-compat/batch.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/batch.js +73 -0
- package/dist/sandbox/firestore/admin-compat/batch.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts +38 -0
- package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/doc-ref.js +154 -0
- package/dist/sandbox/firestore/admin-compat/doc-ref.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/firestore.d.ts +45 -0
- package/dist/sandbox/firestore/admin-compat/firestore.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/firestore.js +114 -0
- package/dist/sandbox/firestore/admin-compat/firestore.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/index.d.ts +45 -0
- package/dist/sandbox/firestore/admin-compat/index.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/index.js +27 -0
- package/dist/sandbox/firestore/admin-compat/index.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/paths.d.ts +37 -0
- package/dist/sandbox/firestore/admin-compat/paths.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/paths.js +49 -0
- package/dist/sandbox/firestore/admin-compat/paths.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/query.d.ts +261 -0
- package/dist/sandbox/firestore/admin-compat/query.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/query.js +704 -0
- package/dist/sandbox/firestore/admin-compat/query.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/read-translation.d.ts +8 -0
- package/dist/sandbox/firestore/admin-compat/read-translation.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/read-translation.js +59 -0
- package/dist/sandbox/firestore/admin-compat/read-translation.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/snapshots.d.ts +39 -0
- package/dist/sandbox/firestore/admin-compat/snapshots.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/snapshots.js +50 -0
- package/dist/sandbox/firestore/admin-compat/snapshots.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/transaction.d.ts +35 -0
- package/dist/sandbox/firestore/admin-compat/transaction.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/transaction.js +88 -0
- package/dist/sandbox/firestore/admin-compat/transaction.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/types.d.ts +297 -0
- package/dist/sandbox/firestore/admin-compat/types.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/types.js +127 -0
- package/dist/sandbox/firestore/admin-compat/types.js.map +1 -0
- package/dist/sandbox/firestore/admin-compat/value-order.d.ts +49 -0
- package/dist/sandbox/firestore/admin-compat/value-order.d.ts.map +1 -0
- package/dist/sandbox/firestore/admin-compat/value-order.js +172 -0
- package/dist/sandbox/firestore/admin-compat/value-order.js.map +1 -0
- package/dist/sandbox/firestore/auto-id.d.ts +26 -0
- package/dist/sandbox/firestore/auto-id.d.ts.map +1 -0
- package/dist/sandbox/firestore/auto-id.js +36 -0
- package/dist/sandbox/firestore/auto-id.js.map +1 -0
- package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts +48 -0
- package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/bytes-geopoint.js +85 -0
- package/dist/sandbox/firestore/converters/bytes-geopoint.js.map +1 -0
- package/dist/sandbox/firestore/converters/fieldvalue.d.ts +69 -0
- package/dist/sandbox/firestore/converters/fieldvalue.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/fieldvalue.js +166 -0
- package/dist/sandbox/firestore/converters/fieldvalue.js.map +1 -0
- package/dist/sandbox/firestore/converters/reference.d.ts +31 -0
- package/dist/sandbox/firestore/converters/reference.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/reference.js +51 -0
- package/dist/sandbox/firestore/converters/reference.js.map +1 -0
- package/dist/sandbox/firestore/converters/timestamp.d.ts +32 -0
- package/dist/sandbox/firestore/converters/timestamp.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/timestamp.js +63 -0
- package/dist/sandbox/firestore/converters/timestamp.js.map +1 -0
- package/dist/sandbox/firestore/converters/user-timestamp.d.ts +46 -0
- package/dist/sandbox/firestore/converters/user-timestamp.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/user-timestamp.js +65 -0
- package/dist/sandbox/firestore/converters/user-timestamp.js.map +1 -0
- package/dist/sandbox/firestore/converters/vector.d.ts +24 -0
- package/dist/sandbox/firestore/converters/vector.d.ts.map +1 -0
- package/dist/sandbox/firestore/converters/vector.js +53 -0
- package/dist/sandbox/firestore/converters/vector.js.map +1 -0
- package/dist/sandbox/firestore/errors.d.ts +82 -0
- package/dist/sandbox/firestore/errors.d.ts.map +1 -0
- package/dist/sandbox/firestore/errors.js +54 -0
- package/dist/sandbox/firestore/errors.js.map +1 -0
- package/dist/sandbox/firestore/event-log.d.ts +99 -0
- package/dist/sandbox/firestore/event-log.d.ts.map +1 -0
- package/dist/sandbox/firestore/event-log.js +67 -0
- package/dist/sandbox/firestore/event-log.js.map +1 -0
- package/dist/sandbox/firestore/field-merge.d.ts +64 -0
- package/dist/sandbox/firestore/field-merge.d.ts.map +1 -0
- package/dist/sandbox/firestore/field-merge.js +221 -0
- package/dist/sandbox/firestore/field-merge.js.map +1 -0
- package/dist/sandbox/firestore/list-query-proof.d.ts +77 -0
- package/dist/sandbox/firestore/list-query-proof.d.ts.map +1 -0
- package/dist/sandbox/firestore/list-query-proof.js +170 -0
- package/dist/sandbox/firestore/list-query-proof.js.map +1 -0
- package/dist/sandbox/firestore/local-environment.d.ts +806 -0
- package/dist/sandbox/firestore/local-environment.d.ts.map +1 -0
- package/dist/sandbox/firestore/local-environment.js +3028 -0
- package/dist/sandbox/firestore/local-environment.js.map +1 -0
- package/dist/sandbox/firestore/local-state.d.ts +196 -0
- package/dist/sandbox/firestore/local-state.d.ts.map +1 -0
- package/dist/sandbox/firestore/local-state.js +413 -0
- package/dist/sandbox/firestore/local-state.js.map +1 -0
- package/dist/sandbox/firestore/overlay-backing.d.ts +44 -0
- package/dist/sandbox/firestore/overlay-backing.d.ts.map +1 -0
- package/dist/sandbox/firestore/overlay-backing.js +82 -0
- package/dist/sandbox/firestore/overlay-backing.js.map +1 -0
- package/dist/sandbox/firestore/sentinel-capture.d.ts +30 -0
- package/dist/sandbox/firestore/sentinel-capture.d.ts.map +1 -0
- package/dist/sandbox/firestore/sentinel-capture.js +61 -0
- package/dist/sandbox/firestore/sentinel-capture.js.map +1 -0
- package/dist/sandbox/firestore/snapshot-listeners.d.ts +284 -0
- package/dist/sandbox/firestore/snapshot-listeners.d.ts.map +1 -0
- package/dist/sandbox/firestore/snapshot-listeners.js +194 -0
- package/dist/sandbox/firestore/snapshot-listeners.js.map +1 -0
- package/dist/sandbox/firestore/topk.d.ts +12 -0
- package/dist/sandbox/firestore/topk.d.ts.map +1 -0
- package/dist/sandbox/firestore/topk.js +42 -0
- package/dist/sandbox/firestore/topk.js.map +1 -0
- package/dist/sandbox/firestore/transaction-merge.d.ts +55 -0
- package/dist/sandbox/firestore/transaction-merge.d.ts.map +1 -0
- package/dist/sandbox/firestore/transaction-merge.js +107 -0
- package/dist/sandbox/firestore/transaction-merge.js.map +1 -0
- package/dist/sandbox/firestore/transaction-types.d.ts +152 -0
- package/dist/sandbox/firestore/transaction-types.d.ts.map +1 -0
- package/dist/sandbox/firestore/transaction-types.js +10 -0
- package/dist/sandbox/firestore/transaction-types.js.map +1 -0
- package/dist/sandbox/firestore/transaction.d.ts +79 -0
- package/dist/sandbox/firestore/transaction.d.ts.map +1 -0
- package/dist/sandbox/firestore/transaction.js +95 -0
- package/dist/sandbox/firestore/transaction.js.map +1 -0
- package/dist/sandbox/firestore/value-equality.d.ts +2 -0
- package/dist/sandbox/firestore/value-equality.d.ts.map +1 -0
- package/dist/sandbox/firestore/value-equality.js +35 -0
- package/dist/sandbox/firestore/value-equality.js.map +1 -0
- package/dist/sandbox/firestore/value-resolver.d.ts +172 -0
- package/dist/sandbox/firestore/value-resolver.d.ts.map +1 -0
- package/dist/sandbox/firestore/value-resolver.js +221 -0
- package/dist/sandbox/firestore/value-resolver.js.map +1 -0
- package/dist/sandbox/firestore/wire-encoder.d.ts +14 -0
- package/dist/sandbox/firestore/wire-encoder.d.ts.map +1 -0
- package/dist/sandbox/firestore/wire-encoder.js +130 -0
- package/dist/sandbox/firestore/wire-encoder.js.map +1 -0
- package/dist/sandbox/index.d.ts +50 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +63 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/internal/index.d.ts +36 -0
- package/dist/sandbox/internal/index.d.ts.map +1 -0
- package/dist/sandbox/internal/index.js +72 -0
- package/dist/sandbox/internal/index.js.map +1 -0
- package/dist/sandbox/internal/sandbox-impl.d.ts +343 -0
- package/dist/sandbox/internal/sandbox-impl.d.ts.map +1 -0
- package/dist/sandbox/internal/sandbox-impl.js +718 -0
- package/dist/sandbox/internal/sandbox-impl.js.map +1 -0
- package/dist/sandbox/persistence/backends.d.ts +37 -0
- package/dist/sandbox/persistence/backends.d.ts.map +1 -0
- package/dist/sandbox/persistence/backends.js +202 -0
- package/dist/sandbox/persistence/backends.js.map +1 -0
- package/dist/sandbox/persistence/chunk-format.d.ts +58 -0
- package/dist/sandbox/persistence/chunk-format.d.ts.map +1 -0
- package/dist/sandbox/persistence/chunk-format.js +163 -0
- package/dist/sandbox/persistence/chunk-format.js.map +1 -0
- package/dist/sandbox/persistence/controller.d.ts +39 -0
- package/dist/sandbox/persistence/controller.d.ts.map +1 -0
- package/dist/sandbox/persistence/controller.js +605 -0
- package/dist/sandbox/persistence/controller.js.map +1 -0
- package/dist/sandbox/persistence/index.d.ts +13 -0
- package/dist/sandbox/persistence/index.d.ts.map +1 -0
- package/dist/sandbox/persistence/index.js +5 -0
- package/dist/sandbox/persistence/index.js.map +1 -0
- package/dist/sandbox/persistence/serialize.d.ts +53 -0
- package/dist/sandbox/persistence/serialize.d.ts.map +1 -0
- package/dist/sandbox/persistence/serialize.js +98 -0
- package/dist/sandbox/persistence/serialize.js.map +1 -0
- package/dist/sandbox/persistence/types.d.ts +118 -0
- package/dist/sandbox/persistence/types.d.ts.map +1 -0
- package/dist/sandbox/persistence/types.js +15 -0
- package/dist/sandbox/persistence/types.js.map +1 -0
- package/dist/sandbox/remote.d.ts +118 -0
- package/dist/sandbox/remote.d.ts.map +1 -0
- package/dist/sandbox/remote.js +60 -0
- package/dist/sandbox/remote.js.map +1 -0
- package/dist/sandbox/replay/index.d.ts +106 -0
- package/dist/sandbox/replay/index.d.ts.map +1 -0
- package/dist/sandbox/replay/index.js +246 -0
- package/dist/sandbox/replay/index.js.map +1 -0
- package/dist/sandbox/sandbox-context.d.ts +40 -0
- package/dist/sandbox/sandbox-context.d.ts.map +1 -0
- package/dist/sandbox/sandbox-context.js +72 -0
- package/dist/sandbox/sandbox-context.js.map +1 -0
- package/dist/sandbox/tab-sync/index.d.ts +120 -0
- package/dist/sandbox/tab-sync/index.d.ts.map +1 -0
- package/dist/sandbox/tab-sync/index.js +272 -0
- package/dist/sandbox/tab-sync/index.js.map +1 -0
- package/dist/sandbox/types.d.ts +1235 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +46 -0
- package/dist/sandbox/types.js.map +1 -0
- package/dist/storage/admin/api.d.ts +206 -0
- package/dist/storage/admin/api.d.ts.map +1 -0
- package/dist/storage/admin/api.js +349 -0
- package/dist/storage/admin/api.js.map +1 -0
- package/dist/storage/admin/handler.d.ts +29 -0
- package/dist/storage/admin/handler.d.ts.map +1 -0
- package/dist/storage/admin/handler.js +82 -0
- package/dist/storage/admin/handler.js.map +1 -0
- package/dist/storage/admin/spec.d.ts +64 -0
- package/dist/storage/admin/spec.d.ts.map +1 -0
- package/dist/storage/admin/spec.js +8 -0
- package/dist/storage/admin/spec.js.map +1 -0
- package/dist/storage/admin/tools.d.ts +23 -0
- package/dist/storage/admin/tools.d.ts.map +1 -0
- package/dist/storage/admin/tools.js +90 -0
- package/dist/storage/admin/tools.js.map +1 -0
- package/dist/storage/download.d.ts +27 -0
- package/dist/storage/download.d.ts.map +1 -0
- package/dist/storage/download.js +136 -0
- package/dist/storage/download.js.map +1 -0
- package/dist/storage/enforce.d.ts +26 -0
- package/dist/storage/enforce.d.ts.map +1 -0
- package/dist/storage/enforce.js +16 -0
- package/dist/storage/enforce.js.map +1 -0
- package/dist/storage/errors.d.ts +46 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +62 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +49 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +60 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/internal.d.ts +18 -0
- package/dist/storage/internal.d.ts.map +1 -0
- package/dist/storage/internal.js +18 -0
- package/dist/storage/internal.js.map +1 -0
- package/dist/storage/list.d.ts +17 -0
- package/dist/storage/list.d.ts.map +1 -0
- package/dist/storage/list.js +91 -0
- package/dist/storage/list.js.map +1 -0
- package/dist/storage/metadata.d.ts +86 -0
- package/dist/storage/metadata.d.ts.map +1 -0
- package/dist/storage/metadata.js +167 -0
- package/dist/storage/metadata.js.map +1 -0
- package/dist/storage/persistence.d.ts +134 -0
- package/dist/storage/persistence.d.ts.map +1 -0
- package/dist/storage/persistence.js +132 -0
- package/dist/storage/persistence.js.map +1 -0
- package/dist/storage/reference.d.ts +63 -0
- package/dist/storage/reference.d.ts.map +1 -0
- package/dist/storage/reference.js +156 -0
- package/dist/storage/reference.js.map +1 -0
- package/dist/storage/rules.d.ts +176 -0
- package/dist/storage/rules.d.ts.map +1 -0
- package/dist/storage/rules.js +621 -0
- package/dist/storage/rules.js.map +1 -0
- package/dist/storage/service.d.ts +139 -0
- package/dist/storage/service.d.ts.map +1 -0
- package/dist/storage/service.js +241 -0
- package/dist/storage/service.js.map +1 -0
- package/dist/storage/upload.d.ts +43 -0
- package/dist/storage/upload.d.ts.map +1 -0
- package/dist/storage/upload.js +235 -0
- package/dist/storage/upload.js.map +1 -0
- package/package.json +110 -3
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pyric/sandbox/admin-compat` — chainable Admin-shaped Firestore
|
|
3
|
+
* wrapper backed by `LocalEnvironment`.
|
|
4
|
+
*
|
|
5
|
+
* This is the surface that mirrors `firebase-admin/firestore` (the
|
|
6
|
+
* Admin Node SDK) so test + agent code that's written against the
|
|
7
|
+
* chainable Admin shape — `db.collection('x').doc('y').get()` etc. —
|
|
8
|
+
* can run unmodified against the in-process sandbox.
|
|
9
|
+
*
|
|
10
|
+
* `pyric-admin` imports from here directly rather than reaching across
|
|
11
|
+
* packages for its substrate.
|
|
12
|
+
*
|
|
13
|
+
* Exported as a separate subpath (not via `/internal`) because the
|
|
14
|
+
* admin-compat surface has its own `DocumentData` / `Transaction` /
|
|
15
|
+
* etc. types that would collide with the local-environment exports
|
|
16
|
+
* already on `/internal`.
|
|
17
|
+
*/
|
|
18
|
+
export * from './firestore/admin-compat/index.js';
|
|
19
|
+
//# sourceMappingURL=admin-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-compat.js","sourceRoot":"","sources":["../../src/sandbox/admin-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translate compat-layer errors (`FirestoreCompatError`) into the
|
|
3
|
+
* sandbox layer's unified `SandboxError`, attaching whatever structured
|
|
4
|
+
* `denialContext` is recoverable from the underlying simulator output.
|
|
5
|
+
*
|
|
6
|
+
* Why a translation layer at all:
|
|
7
|
+
*
|
|
8
|
+
* The compat impl throws `FirestoreCompatError` because it has to
|
|
9
|
+
* look like an Admin SDK `FirestoreError` for the production-shaped
|
|
10
|
+
* surface to feel right. The sandbox layer wants one error class
|
|
11
|
+
* (`SandboxError`) covering every service so callers can write
|
|
12
|
+
* `if (err instanceof SandboxError && err.code === 'permission-
|
|
13
|
+
* denied') { ... }` regardless of which service produced the throw.
|
|
14
|
+
*
|
|
15
|
+
* The translation also stitches sandbox-known context (the active
|
|
16
|
+
* auth identity, sourced from `SandboxContext`) and best-effort
|
|
17
|
+
* recovered context (the underlying `debugMessages`, recovered from
|
|
18
|
+
* the error's stitched-together message) into `denialContext`.
|
|
19
|
+
*
|
|
20
|
+
* `denialContext.rule` (line + expression) is left undefined: the
|
|
21
|
+
* rules AST does not currently carry source positions, so neither line
|
|
22
|
+
* numbers nor the original expression string are reliably available
|
|
23
|
+
* after evaluation.
|
|
24
|
+
*
|
|
25
|
+
* The recursive `wrapWithErrorTranslation` Proxy applies translation
|
|
26
|
+
* uniformly across the Firestore handle and every object returned from
|
|
27
|
+
* its methods (DocumentRef, Query, WriteBatch, Transaction). It also
|
|
28
|
+
* stashes the owning {@link SandboxContext} on every wrapped value via
|
|
29
|
+
* the {@link CONTEXT_SYMBOL} hidden property — `onSnapshot` reads it
|
|
30
|
+
* back to capture the right auth at listener registration.
|
|
31
|
+
*/
|
|
32
|
+
import type { SandboxContext } from 'pyric/sandbox';
|
|
33
|
+
/**
|
|
34
|
+
* Hidden property on every wrapped object that returns the
|
|
35
|
+
* `SandboxContext` that produced it. Used by `onSnapshot` to recover
|
|
36
|
+
* the right auth from a ref produced via `db.doc(path)` /
|
|
37
|
+
* `db.collection(path)` regardless of how many contexts share the
|
|
38
|
+
* underlying sandbox. Symbol so it never collides with a real property.
|
|
39
|
+
*/
|
|
40
|
+
export declare const CONTEXT_SYMBOL: unique symbol;
|
|
41
|
+
/**
|
|
42
|
+
* Late-bound reference to the free `onSnapshot(ref, ...args)` function
|
|
43
|
+
* from `index.ts`. Synthesized into wrapped refs as a `.onSnapshot(...)`
|
|
44
|
+
* chainable method (see {@link wrapWithErrorTranslation}).
|
|
45
|
+
*
|
|
46
|
+
* Why late binding: the Proxy wrapper here is consumed from `index.ts`,
|
|
47
|
+
* and that's where the free `onSnapshot` is defined. Statically
|
|
48
|
+
* importing it back would create a circular module init order. The
|
|
49
|
+
* registration call lives at the bottom of `index.ts`, after
|
|
50
|
+
* `onSnapshot` is fully declared.
|
|
51
|
+
*/
|
|
52
|
+
type OnSnapshotImpl = (ref: unknown, ...args: unknown[]) => () => void;
|
|
53
|
+
/**
|
|
54
|
+
* Register the free `onSnapshot` function so wrapped refs can synthesize
|
|
55
|
+
* a chainable `.onSnapshot(...)` method that delegates to it. Called
|
|
56
|
+
* once at module init from `index.ts`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function registerOnSnapshotImpl(fn: OnSnapshotImpl): void;
|
|
59
|
+
/**
|
|
60
|
+
* Convert a compat error into a `SandboxError` with attached
|
|
61
|
+
* `denialContext`. Non-compat errors fall through unchanged so callers
|
|
62
|
+
* still see (e.g.) a TypeError thrown from user code.
|
|
63
|
+
*/
|
|
64
|
+
export declare function toSandboxError(err: unknown, ctx: SandboxContext): unknown;
|
|
65
|
+
/**
|
|
66
|
+
* Wrap an object so that every function call on it (and on its
|
|
67
|
+
* function-call returns) gets `try/catch` and `Promise.catch`
|
|
68
|
+
* translation through {@link toSandboxError}.
|
|
69
|
+
*
|
|
70
|
+
* Property reads that aren't functions pass through. Function returns
|
|
71
|
+
* that aren't objects pass through. Object returns are recursively
|
|
72
|
+
* wrapped — this is what makes `db.doc('x').get()` translate even
|
|
73
|
+
* though the wrapper only directly intercepts `db`'s own methods.
|
|
74
|
+
*
|
|
75
|
+
* Method-chaining identity (`b.set(x).update(y)`) is preserved through
|
|
76
|
+
* a per-call fresh proxy: each chain step returns a wrapped view of
|
|
77
|
+
* the underlying impl's `this`, which has the same delegate behavior.
|
|
78
|
+
*
|
|
79
|
+
* Every wrapped object also exposes `[CONTEXT_SYMBOL]` returning the
|
|
80
|
+
* owning {@link SandboxContext}; `onSnapshot` reads this to recover
|
|
81
|
+
* the right auth at registration regardless of how many contexts
|
|
82
|
+
* share the underlying sandbox.
|
|
83
|
+
*/
|
|
84
|
+
export declare function wrapWithErrorTranslation<T extends object>(target: T, ctx: SandboxContext): T;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=error-translation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-translation.d.ts","sourceRoot":"","sources":["../../../src/sandbox/admin-firestore/error-translation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOpD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAAwC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC;AAGvE;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAE/D;AAsDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAyBzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EACvD,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,cAAc,GAClB,CAAC,CAqDH"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translate compat-layer errors (`FirestoreCompatError`) into the
|
|
3
|
+
* sandbox layer's unified `SandboxError`, attaching whatever structured
|
|
4
|
+
* `denialContext` is recoverable from the underlying simulator output.
|
|
5
|
+
*
|
|
6
|
+
* Why a translation layer at all:
|
|
7
|
+
*
|
|
8
|
+
* The compat impl throws `FirestoreCompatError` because it has to
|
|
9
|
+
* look like an Admin SDK `FirestoreError` for the production-shaped
|
|
10
|
+
* surface to feel right. The sandbox layer wants one error class
|
|
11
|
+
* (`SandboxError`) covering every service so callers can write
|
|
12
|
+
* `if (err instanceof SandboxError && err.code === 'permission-
|
|
13
|
+
* denied') { ... }` regardless of which service produced the throw.
|
|
14
|
+
*
|
|
15
|
+
* The translation also stitches sandbox-known context (the active
|
|
16
|
+
* auth identity, sourced from `SandboxContext`) and best-effort
|
|
17
|
+
* recovered context (the underlying `debugMessages`, recovered from
|
|
18
|
+
* the error's stitched-together message) into `denialContext`.
|
|
19
|
+
*
|
|
20
|
+
* `denialContext.rule` (line + expression) is left undefined: the
|
|
21
|
+
* rules AST does not currently carry source positions, so neither line
|
|
22
|
+
* numbers nor the original expression string are reliably available
|
|
23
|
+
* after evaluation.
|
|
24
|
+
*
|
|
25
|
+
* The recursive `wrapWithErrorTranslation` Proxy applies translation
|
|
26
|
+
* uniformly across the Firestore handle and every object returned from
|
|
27
|
+
* its methods (DocumentRef, Query, WriteBatch, Transaction). It also
|
|
28
|
+
* stashes the owning {@link SandboxContext} on every wrapped value via
|
|
29
|
+
* the {@link CONTEXT_SYMBOL} hidden property — `onSnapshot` reads it
|
|
30
|
+
* back to capture the right auth at listener registration.
|
|
31
|
+
*/
|
|
32
|
+
import { FirestoreCompatError } from 'pyric/sandbox/admin-compat';
|
|
33
|
+
import { SandboxError, } from 'pyric/sandbox';
|
|
34
|
+
/**
|
|
35
|
+
* Hidden property on every wrapped object that returns the
|
|
36
|
+
* `SandboxContext` that produced it. Used by `onSnapshot` to recover
|
|
37
|
+
* the right auth from a ref produced via `db.doc(path)` /
|
|
38
|
+
* `db.collection(path)` regardless of how many contexts share the
|
|
39
|
+
* underlying sandbox. Symbol so it never collides with a real property.
|
|
40
|
+
*/
|
|
41
|
+
export const CONTEXT_SYMBOL = Symbol('pyric/sandbox/context');
|
|
42
|
+
let onSnapshotImpl = null;
|
|
43
|
+
/**
|
|
44
|
+
* Register the free `onSnapshot` function so wrapped refs can synthesize
|
|
45
|
+
* a chainable `.onSnapshot(...)` method that delegates to it. Called
|
|
46
|
+
* once at module init from `index.ts`.
|
|
47
|
+
*/
|
|
48
|
+
export function registerOnSnapshotImpl(fn) {
|
|
49
|
+
onSnapshotImpl = fn;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Heuristic: the wrapped object is a Firestore ref
|
|
53
|
+
* (DocumentReference, CollectionReference, or chained Query). Used
|
|
54
|
+
* to gate the synthesized `.onSnapshot` shim so the method only
|
|
55
|
+
* appears on values where a chainable `.onSnapshot` actually makes
|
|
56
|
+
* sense.
|
|
57
|
+
*
|
|
58
|
+
* - `DocumentReference` exposes `path` publicly.
|
|
59
|
+
* - `CollectionReference` exposes `path` publicly.
|
|
60
|
+
* - Chained `Query` (the result of `.where()/.orderBy()/.limit()`)
|
|
61
|
+
* keeps `collectionPath` as a TypeScript-protected field on the
|
|
62
|
+
* underlying `QueryImpl`. Protected is a TS-only restriction; at
|
|
63
|
+
* runtime the field is readable, so the lookup matches.
|
|
64
|
+
*
|
|
65
|
+
* Snapshots, batches, transactions, and the Firestore handle itself
|
|
66
|
+
* carry neither, so the shim correctly skips them.
|
|
67
|
+
*/
|
|
68
|
+
function isRefLike(obj) {
|
|
69
|
+
const o = obj;
|
|
70
|
+
return (typeof o.path === 'string' && o.path.length > 0)
|
|
71
|
+
|| (typeof o.collectionPath === 'string' && o.collectionPath.length > 0);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Pull a list of denial reasons out of a compat-error message. Two
|
|
75
|
+
* formats produced by the underlying SDK are handled:
|
|
76
|
+
*
|
|
77
|
+
* 1. Stitched-multi — `"get denied: Rule #0 → deny; Simulated: DENY"`.
|
|
78
|
+
* Produced by the `throwFromDenial` fallback path when the
|
|
79
|
+
* simulator didn't attach a typed `error` (rare today; reserved
|
|
80
|
+
* for future use). Split after the first `": "` and on `"; "`.
|
|
81
|
+
*
|
|
82
|
+
* 2. Plain typed — `"get tickets/T-1 denied by rules"`. Produced
|
|
83
|
+
* when the simulator returns a typed `error` (`makeError(...)`).
|
|
84
|
+
* No structured sub-reasons; surface the whole message as a
|
|
85
|
+
* single-element list so callers get something machine-readable.
|
|
86
|
+
*
|
|
87
|
+
* The list is never empty for a non-empty error message, so callers
|
|
88
|
+
* don't need to special-case "no reasons available."
|
|
89
|
+
*/
|
|
90
|
+
function recoverReasons(message) {
|
|
91
|
+
const trimmed = message.trim();
|
|
92
|
+
if (!trimmed)
|
|
93
|
+
return [];
|
|
94
|
+
const firstColon = trimmed.indexOf(': ');
|
|
95
|
+
if (firstColon !== -1) {
|
|
96
|
+
const tail = trimmed.slice(firstColon + 2).trim();
|
|
97
|
+
const parts = tail.split('; ').map(s => s.trim()).filter(s => s.length > 0);
|
|
98
|
+
if (parts.length > 0)
|
|
99
|
+
return parts;
|
|
100
|
+
}
|
|
101
|
+
return [trimmed];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Convert a compat error into a `SandboxError` with attached
|
|
105
|
+
* `denialContext`. Non-compat errors fall through unchanged so callers
|
|
106
|
+
* still see (e.g.) a TypeError thrown from user code.
|
|
107
|
+
*/
|
|
108
|
+
export function toSandboxError(err, ctx) {
|
|
109
|
+
if (!(err instanceof FirestoreCompatError))
|
|
110
|
+
return err;
|
|
111
|
+
const code = err.code;
|
|
112
|
+
if (code !== 'permission-denied') {
|
|
113
|
+
return new SandboxError(code, err.message);
|
|
114
|
+
}
|
|
115
|
+
const denialContext = {
|
|
116
|
+
auth: ctx.auth,
|
|
117
|
+
reasons: recoverReasons(err.message),
|
|
118
|
+
};
|
|
119
|
+
const sim = err.simError;
|
|
120
|
+
if (sim?.request) {
|
|
121
|
+
const r = sim.request;
|
|
122
|
+
denialContext.request = {
|
|
123
|
+
method: r.method,
|
|
124
|
+
path: r.path,
|
|
125
|
+
...(r.resourceData ? { resourceData: r.resourceData } : {}),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (sim?.resource) {
|
|
129
|
+
denialContext.resource = { data: sim.resource.data, exists: sim.resource.exists };
|
|
130
|
+
}
|
|
131
|
+
return new SandboxError(code, err.message, denialContext);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Wrap an object so that every function call on it (and on its
|
|
135
|
+
* function-call returns) gets `try/catch` and `Promise.catch`
|
|
136
|
+
* translation through {@link toSandboxError}.
|
|
137
|
+
*
|
|
138
|
+
* Property reads that aren't functions pass through. Function returns
|
|
139
|
+
* that aren't objects pass through. Object returns are recursively
|
|
140
|
+
* wrapped — this is what makes `db.doc('x').get()` translate even
|
|
141
|
+
* though the wrapper only directly intercepts `db`'s own methods.
|
|
142
|
+
*
|
|
143
|
+
* Method-chaining identity (`b.set(x).update(y)`) is preserved through
|
|
144
|
+
* a per-call fresh proxy: each chain step returns a wrapped view of
|
|
145
|
+
* the underlying impl's `this`, which has the same delegate behavior.
|
|
146
|
+
*
|
|
147
|
+
* Every wrapped object also exposes `[CONTEXT_SYMBOL]` returning the
|
|
148
|
+
* owning {@link SandboxContext}; `onSnapshot` reads this to recover
|
|
149
|
+
* the right auth at registration regardless of how many contexts
|
|
150
|
+
* share the underlying sandbox.
|
|
151
|
+
*/
|
|
152
|
+
export function wrapWithErrorTranslation(target, ctx) {
|
|
153
|
+
return new Proxy(target, {
|
|
154
|
+
get(t, prop, receiver) {
|
|
155
|
+
// Hidden context recovery — must come before any other property
|
|
156
|
+
// resolution. Symbol-keyed so it can't collide with real props.
|
|
157
|
+
if (prop === CONTEXT_SYMBOL)
|
|
158
|
+
return ctx;
|
|
159
|
+
// Synthesize a chainable `.onSnapshot(...)` method on every
|
|
160
|
+
// ref-shaped wrapped value. The underlying compat ref doesn't
|
|
161
|
+
// define this method (the package's canonical surface is the
|
|
162
|
+
// free `onSnapshot(ref, ...)` function); the shim is here so
|
|
163
|
+
// `db.collection(path).where(...).onSnapshot(cb)` style chains
|
|
164
|
+
// work too. Both forms route through the same listener.
|
|
165
|
+
//
|
|
166
|
+
// Gate: only when (a) the impl is registered, (b) the underlying
|
|
167
|
+
// doesn't already define `onSnapshot`, and (c) the underlying is
|
|
168
|
+
// ref-like — so we don't accidentally attach the method to
|
|
169
|
+
// snapshots, batches, transactions, the Firestore handle, etc.
|
|
170
|
+
if (prop === 'onSnapshot' &&
|
|
171
|
+
onSnapshotImpl !== null &&
|
|
172
|
+
!(prop in t) &&
|
|
173
|
+
isRefLike(t)) {
|
|
174
|
+
// Pass `receiver` (the Proxy) rather than `t` so the free
|
|
175
|
+
// `onSnapshot` reads CONTEXT_SYMBOL through the wrapper.
|
|
176
|
+
return (...args) => onSnapshotImpl(receiver, ...args);
|
|
177
|
+
}
|
|
178
|
+
const value = Reflect.get(t, prop, receiver);
|
|
179
|
+
if (typeof value !== 'function')
|
|
180
|
+
return value;
|
|
181
|
+
// Bind to the original `t` so internal `this` references inside
|
|
182
|
+
// the delegate stay coherent.
|
|
183
|
+
return function (...args) {
|
|
184
|
+
let result;
|
|
185
|
+
try {
|
|
186
|
+
result = value.apply(t, args);
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
throw toSandboxError(e, ctx);
|
|
190
|
+
}
|
|
191
|
+
if (result instanceof Promise) {
|
|
192
|
+
return result
|
|
193
|
+
.then((v) => (v && typeof v === 'object' ? wrapWithErrorTranslation(v, ctx) : v))
|
|
194
|
+
.catch((e) => { throw toSandboxError(e, ctx); });
|
|
195
|
+
}
|
|
196
|
+
if (result && typeof result === 'object') {
|
|
197
|
+
return wrapWithErrorTranslation(result, ctx);
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
};
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=error-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-translation.js","sourceRoot":"","sources":["../../../src/sandbox/admin-firestore/error-translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pyric-admin` — Admin-SDK-shaped chainable Firestore adapter for
|
|
3
|
+
* the Pyric sandbox.
|
|
4
|
+
*
|
|
5
|
+
* `getFirestore(ctx)` returns a `SandboxFirestore` whose operations
|
|
6
|
+
* run under the context's auth identity and against the underlying
|
|
7
|
+
* `LocalEnvironment` of the context's sandbox. Idempotent — a second
|
|
8
|
+
* call with the same `SandboxContext` returns the same wrapper.
|
|
9
|
+
*
|
|
10
|
+
* Wraps the `pyric/sandbox/admin-compat` implementation.
|
|
11
|
+
* Per-operation methods construct a fresh delegate so a
|
|
12
|
+
* `sandbox.reset()` (which swaps the underlying environment) is
|
|
13
|
+
* picked up on the next operation. Refs returned from the wrapper
|
|
14
|
+
* (`DocumentReference`, `Query`) are bound to whichever environment
|
|
15
|
+
* was live when they were obtained — re-acquire them after reset to
|
|
16
|
+
* avoid stale-state confusion.
|
|
17
|
+
*/
|
|
18
|
+
import type { CollectionReference, DocumentData, DocumentReference, Firestore, Query, SnapshotListenerOptions } from 'pyric/sandbox/admin-compat';
|
|
19
|
+
import type { LintResult } from 'pyric/rules';
|
|
20
|
+
import { type Sandbox, type SandboxContext } from 'pyric/sandbox';
|
|
21
|
+
export type { AuthState, Sandbox, SandboxContext, } from 'pyric/sandbox';
|
|
22
|
+
export { SandboxError } from 'pyric/sandbox';
|
|
23
|
+
export type { AggregateField, AggregateQuerySnapshot, AggregateSpec, Filter, CollectionReference, DocumentData, DocumentReference, DocumentSnapshot as AdminDocumentSnapshot, FieldValueSentinel, Firestore, OrderDirection, Query, QueryDocumentSnapshot as AdminQueryDocumentSnapshot, QuerySnapshot as AdminQuerySnapshot, SetOptions, Transaction, WhereFilterOp, WriteBatch, } from 'pyric/sandbox/admin-compat';
|
|
24
|
+
export type { LintResult, LintWarning, RulesMetrics } from 'pyric/rules';
|
|
25
|
+
export { FieldValue, Timestamp } from 'pyric/sandbox/admin-compat';
|
|
26
|
+
export type { LiveDocumentSnapshot as DocumentSnapshot, LiveQueryDocumentSnapshot as QueryDocumentSnapshot, LiveQuerySnapshot as QuerySnapshot, DocumentChange, DocumentChangeType, DocChangesOptions, SnapshotMetadata, } from 'pyric/sandbox/admin-compat';
|
|
27
|
+
/**
|
|
28
|
+
* Mirrors `firebase/firestore`'s `SnapshotListenOptions`. The
|
|
29
|
+
* `includeMetadataChanges` flag is accepted for API parity but has no
|
|
30
|
+
* observable effect in the sandbox: there's no offline cache and no
|
|
31
|
+
* pending-writes window, so `metadata.fromCache` and
|
|
32
|
+
* `metadata.hasPendingWrites` are always `false` (snapshot-listeners.ts section 6).
|
|
33
|
+
*/
|
|
34
|
+
export type SnapshotListenOptions = SnapshotListenerOptions;
|
|
35
|
+
/**
|
|
36
|
+
* Internal channel for the modular `pyric/firestore` layer to mark a
|
|
37
|
+
* listener as live (identity follows `sandbox.currentUser`) vs frozen
|
|
38
|
+
* (`getFirestore(ctx)`, pinned identity). The chainable adapter sees only
|
|
39
|
+
* a `SandboxContext` per call and can't tell the two apart on its own — the
|
|
40
|
+
* live-vs-frozen distinction lives one layer up. The modular `onSnapshot`
|
|
41
|
+
* stamps this symbol onto the options object it forwards; {@link onSnapshot}
|
|
42
|
+
* here reads + strips it and threads the boolean into
|
|
43
|
+
* `LocalEnvironment.addSnapshotListener`'s `followsCurrentUser` parameter.
|
|
44
|
+
*
|
|
45
|
+
* Symbol-keyed (not a named field) so it never collides with a real
|
|
46
|
+
* `SnapshotListenOptions` field and never leaks to consumer code.
|
|
47
|
+
*/
|
|
48
|
+
export declare const FOLLOWS_CURRENT_USER: unique symbol;
|
|
49
|
+
/**
|
|
50
|
+
* Returned from `onSnapshot`. Calling it deregisters the listener and
|
|
51
|
+
* stops further callback invocations. Idempotent.
|
|
52
|
+
*/
|
|
53
|
+
export type Unsubscribe = () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Observer form accepted by `onSnapshot`. Mirrors `firebase/firestore`'s
|
|
56
|
+
* `PartialObserver<T>` shape — any subset of the three handlers. `complete`
|
|
57
|
+
* is accepted for shape parity but never fires in the sandbox: the local
|
|
58
|
+
* listener stream has no terminal state.
|
|
59
|
+
*/
|
|
60
|
+
export interface SnapshotObserver<T> {
|
|
61
|
+
next?: (snapshot: T) => void;
|
|
62
|
+
error?: (error: unknown) => void;
|
|
63
|
+
complete?: () => void;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Sandbox-extended Firestore handle. Adds three sandbox-only methods
|
|
67
|
+
* on top of the production-shaped {@link Firestore} surface:
|
|
68
|
+
*
|
|
69
|
+
* - {@link SandboxFirestore.setRules} — replace the active ruleset
|
|
70
|
+
* for subsequent operations.
|
|
71
|
+
* - {@link SandboxFirestore.seed} — replace stored documents with a
|
|
72
|
+
* fresh seed map (rules are preserved).
|
|
73
|
+
* - {@link SandboxFirestore.snapshot} — capture all stored documents
|
|
74
|
+
* as a path-keyed map.
|
|
75
|
+
*
|
|
76
|
+
* These have no production analog. They use sandbox vocabulary
|
|
77
|
+
* (`setRules`, `seed`, `snapshot`) deliberately so a reader can't
|
|
78
|
+
* confuse them with Firebase deployment semantics.
|
|
79
|
+
*/
|
|
80
|
+
export interface SandboxFirestore extends Firestore {
|
|
81
|
+
/**
|
|
82
|
+
* Replace the active ruleset. Returns the lint result so callers can
|
|
83
|
+
* surface warnings; if the source has parse-level errors, the rules
|
|
84
|
+
* are not swapped (consistent with `LocalEnvironment.deployRules`).
|
|
85
|
+
*/
|
|
86
|
+
setRules(rules: string): LintResult;
|
|
87
|
+
/**
|
|
88
|
+
* Replace stored documents with a new seed map. Active rules are
|
|
89
|
+
* preserved. Pass an empty `documents` map (or omit it) to clear
|
|
90
|
+
* state without touching rules.
|
|
91
|
+
*/
|
|
92
|
+
seed(options?: {
|
|
93
|
+
documents?: Record<string, DocumentData>;
|
|
94
|
+
}): LintResult;
|
|
95
|
+
/**
|
|
96
|
+
* Capture every stored document as a `{ [path]: data }` map. Reads
|
|
97
|
+
* from the live state and is independent of rules.
|
|
98
|
+
*/
|
|
99
|
+
snapshot(): Record<string, DocumentData>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve the Firestore service handle for a context. Idempotent —
|
|
103
|
+
* subsequent calls with the same context return the same wrapper.
|
|
104
|
+
*
|
|
105
|
+
* Requires a `SandboxContext`, never a bare `Sandbox`. Anonymous is
|
|
106
|
+
* `sandbox.withAuth(null)`, written explicitly — every call site
|
|
107
|
+
* states identity.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* import { initializeSandbox } from 'pyric/sandbox';
|
|
112
|
+
* import { getFirestore } from 'pyric-admin/firestore';
|
|
113
|
+
*
|
|
114
|
+
* const sandbox = initializeSandbox();
|
|
115
|
+
* const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
116
|
+
* db.setRules(MY_RULES);
|
|
117
|
+
* db.seed({ documents: { 'tickets/T-1': { ... } } });
|
|
118
|
+
*
|
|
119
|
+
* // Different identity? Different context, same data.
|
|
120
|
+
* const dbAsBob = getFirestore(sandbox.withAuth({ uid: 'bob' }));
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function getFirestore(ctx: SandboxContext): SandboxFirestore;
|
|
124
|
+
/**
|
|
125
|
+
* Resolve a **rules-bypassing** Firestore handle for a context — the
|
|
126
|
+
* Pyric Studio admin lens (Gap #2). Same chainable `SandboxFirestore`
|
|
127
|
+
* surface as {@link getFirestore}, but every operation it issues (reads,
|
|
128
|
+
* writes, queries, batches, transactions) SKIPS security-rule evaluation
|
|
129
|
+
* and is treated as ALLOW. This is the modular/chainable-shaped sibling of
|
|
130
|
+
* the path-string `sandbox.admin.*` bypass — it reuses the exact same
|
|
131
|
+
* `LocalEnvironment` bypass execution path (`bypassRules` on the op),
|
|
132
|
+
* rather than reimplementing it.
|
|
133
|
+
*
|
|
134
|
+
* Storage preconditions still apply (a `create` on an existing doc still
|
|
135
|
+
* fails `already-exists`, matching real Firestore admin), and the same
|
|
136
|
+
* `request`/`write` events fire + listeners wake, so the change shows up
|
|
137
|
+
* live and on the traffic log (stamped as an admin-bypass read/write).
|
|
138
|
+
*
|
|
139
|
+
* Use for "edit anything as admin" surfaces (Studio F2). For rules-applied
|
|
140
|
+
* impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
|
|
141
|
+
* uid }))` instead — that path is unchanged.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* import { initializeSandbox } from 'pyric/sandbox';
|
|
146
|
+
* import { getFirestore, getAdminFirestore } from 'pyric-admin/firestore';
|
|
147
|
+
*
|
|
148
|
+
* const sandbox = initializeSandbox();
|
|
149
|
+
* getFirestore(sandbox.withAuth(null)).setRules('...deny everything...');
|
|
150
|
+
*
|
|
151
|
+
* // Denied under rules:
|
|
152
|
+
* await getFirestore(sandbox.withAuth({ uid: 'alice' }))
|
|
153
|
+
* .doc('locked/x').set({ a: 1 }); // throws permission-denied
|
|
154
|
+
*
|
|
155
|
+
* // Bypasses rules:
|
|
156
|
+
* await getAdminFirestore(sandbox).doc('locked/x').set({ a: 1 }); // ok
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export declare function getAdminFirestore(ctx: SandboxContext): SandboxFirestore;
|
|
160
|
+
export declare function getAdminFirestore(sandbox: Sandbox): SandboxFirestore;
|
|
161
|
+
export declare function onSnapshot(reference: DocumentReference, observer: SnapshotObserver<import('pyric/sandbox/admin-compat').LiveDocumentSnapshot>): Unsubscribe;
|
|
162
|
+
export declare function onSnapshot(reference: DocumentReference, options: SnapshotListenOptions, observer: SnapshotObserver<import('pyric/sandbox/admin-compat').LiveDocumentSnapshot>): Unsubscribe;
|
|
163
|
+
export declare function onSnapshot(reference: DocumentReference, onNext: (snapshot: import('pyric/sandbox/admin-compat').LiveDocumentSnapshot) => void, onError?: (error: unknown) => void, onCompletion?: () => void): Unsubscribe;
|
|
164
|
+
export declare function onSnapshot(reference: DocumentReference, options: SnapshotListenOptions, onNext: (snapshot: import('pyric/sandbox/admin-compat').LiveDocumentSnapshot) => void, onError?: (error: unknown) => void, onCompletion?: () => void): Unsubscribe;
|
|
165
|
+
export declare function onSnapshot(reference: Query | CollectionReference, observer: SnapshotObserver<import('pyric/sandbox/admin-compat').LiveQuerySnapshot>): Unsubscribe;
|
|
166
|
+
export declare function onSnapshot(reference: Query | CollectionReference, options: SnapshotListenOptions, observer: SnapshotObserver<import('pyric/sandbox/admin-compat').LiveQuerySnapshot>): Unsubscribe;
|
|
167
|
+
export declare function onSnapshot(reference: Query | CollectionReference, onNext: (snapshot: import('pyric/sandbox/admin-compat').LiveQuerySnapshot) => void, onError?: (error: unknown) => void, onCompletion?: () => void): Unsubscribe;
|
|
168
|
+
export declare function onSnapshot(reference: Query | CollectionReference, options: SnapshotListenOptions, onNext: (snapshot: import('pyric/sandbox/admin-compat').LiveQuerySnapshot) => void, onError?: (error: unknown) => void, onCompletion?: () => void): Unsubscribe;
|
|
169
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sandbox/admin-firestore/index.ts"],"names":[],"mappings":"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"}
|