pyric 0.0.1 → 0.1.0-alpha.7
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 +52 -1
- 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 +109 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../src/sandbox/admin-firestore/remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branches — a fork / apply / diff / promote / discard primitive built
|
|
3
|
+
* **on top of** the existing `snapshot()` + `replay()` surface. Nothing
|
|
4
|
+
* here re-implements those; a branch is an in-memory sandbox seeded from
|
|
5
|
+
* a {@link SandboxSnapshot}, with `apply` delegating to `replay()` and
|
|
6
|
+
* `diff` reusing the replay engine's structural divergence classifier.
|
|
7
|
+
*
|
|
8
|
+
* Mental model (the Pyric Studio "experiment" primitive — see
|
|
9
|
+
* the design rationale):
|
|
10
|
+
*
|
|
11
|
+
* const branch = fork(live.snapshot(), rules); // isolated copy
|
|
12
|
+
* apply(branch, agentPlanEvents); // re-issue writes
|
|
13
|
+
* const changes = diff(branch, live); // what changed vs live
|
|
14
|
+
* promote(branch, live); // land the branch's mutations on live
|
|
15
|
+
* // ...or...
|
|
16
|
+
* discard(branch); // drop it; live is untouched
|
|
17
|
+
*
|
|
18
|
+
* This is the substrate for Studio's agent dry-run → accept/reject
|
|
19
|
+
* (A1), rules-failure "re-run against an edited ruleset" (F4), and
|
|
20
|
+
* time-travel (A2). Each of those wants: an isolated copy of current
|
|
21
|
+
* state, a way to play hypothetical writes against it, a structural
|
|
22
|
+
* diff, and a commit/rollback gate.
|
|
23
|
+
*
|
|
24
|
+
* Granularity / honesty notes:
|
|
25
|
+
* - `fork` rehydrates **Firestore** state from the snapshot (the
|
|
26
|
+
* `firestore` key) plus rules. Per-service state in
|
|
27
|
+
* `snapshot.services` (auth users, etc.) is NOT rehydrated here —
|
|
28
|
+
* a fresh fork has no registered persistable services to restore
|
|
29
|
+
* into, mirroring how persistence skips unregistered services. If a
|
|
30
|
+
* consumer needs auth-in-a-branch it can register services on the
|
|
31
|
+
* branch sandbox and restore them; that's out of scope for v1.
|
|
32
|
+
* - `diff` reuses the replay engine's doc-level + field-level walk
|
|
33
|
+
* (`Divergence`). Without captured write metadata it can't license
|
|
34
|
+
* sentinel/auto-id drift, so every field difference surfaces as
|
|
35
|
+
* `real-divergence` — which is the correct, honest classification
|
|
36
|
+
* for "branch state vs live state" (there are no replayed sentinels
|
|
37
|
+
* to reconcile). Doc add/remove surface as presence divergences.
|
|
38
|
+
* - `promote` re-issues the branch's accumulated write events onto the
|
|
39
|
+
* target via `replay`'s machinery, then copies the resulting docs
|
|
40
|
+
* onto the target through the admin plane. It applies *mutations*
|
|
41
|
+
* (added/changed/removed docs), not a blind whole-snapshot replace —
|
|
42
|
+
* docs the branch never touched are left alone on the target.
|
|
43
|
+
*/
|
|
44
|
+
import { type Divergence, type Sandbox, type SandboxEvent, type SandboxSnapshot } from '../index.js';
|
|
45
|
+
/**
|
|
46
|
+
* An isolated, in-memory experiment seeded from a {@link SandboxSnapshot}.
|
|
47
|
+
*
|
|
48
|
+
* A branch owns its own {@link Sandbox} (fully isolated from the source —
|
|
49
|
+
* separate `LocalEnvironment`, separate event history) plus the
|
|
50
|
+
* accumulated {@link SandboxEvent}s applied to it via {@link apply}. The
|
|
51
|
+
* applied events are what {@link promote} replays onto the target.
|
|
52
|
+
*/
|
|
53
|
+
export interface Branch {
|
|
54
|
+
/** The branch's own sandbox. Inspect it directly (`branch.sandbox.snapshot()`)
|
|
55
|
+
* or read docs via `branch.sandbox.admin.getDocument(path)`. */
|
|
56
|
+
readonly sandbox: Sandbox;
|
|
57
|
+
/** Rules the branch was forked with — carried so {@link promote} can
|
|
58
|
+
* re-seed a replay target identically. */
|
|
59
|
+
readonly rules: string;
|
|
60
|
+
/** The snapshot this branch was forked from. Retained so {@link diff}
|
|
61
|
+
* and {@link promote} can reason about the baseline. */
|
|
62
|
+
readonly base: SandboxSnapshot;
|
|
63
|
+
/** Write/op events applied to this branch since fork, in order. These
|
|
64
|
+
* are replayed onto the target by {@link promote}. */
|
|
65
|
+
readonly events: SandboxEvent[];
|
|
66
|
+
/** Flipped by {@link discard}; subsequent {@link apply}/{@link promote}
|
|
67
|
+
* calls throw. */
|
|
68
|
+
discarded: boolean;
|
|
69
|
+
}
|
|
70
|
+
/** A reference to diff a branch against: a live sandbox or a bare snapshot. */
|
|
71
|
+
export type DiffTarget = Sandbox | SandboxSnapshot;
|
|
72
|
+
/**
|
|
73
|
+
* Fork a new branch from a snapshot.
|
|
74
|
+
*
|
|
75
|
+
* Seeds a fresh sandbox with `rules` and the snapshot's Firestore docs
|
|
76
|
+
* (the same `seed({ rules, documents })` path replay uses to stand up a
|
|
77
|
+
* clean environment). The branch is fully isolated: writes on it never
|
|
78
|
+
* touch the source sandbox.
|
|
79
|
+
*
|
|
80
|
+
* @param snapshot Baseline state — typically `liveSandbox.snapshot()`.
|
|
81
|
+
* @param rules Rules source for the branch. Pass the live rules to
|
|
82
|
+
* reproduce production behaviour, or an *edited* ruleset
|
|
83
|
+
* to test a rules change in isolation (Studio F4).
|
|
84
|
+
*/
|
|
85
|
+
export declare function fork(snapshot: SandboxSnapshot, rules?: string): Branch;
|
|
86
|
+
/**
|
|
87
|
+
* Apply a stream of events to a branch by re-issuing their writes against
|
|
88
|
+
* the branch's CURRENT state.
|
|
89
|
+
*
|
|
90
|
+
* This is the same per-write re-issue logic `replay()` runs (filter to
|
|
91
|
+
* `kind: 'write'`, honour `autoId` / pinned `requestTime`, prefer the
|
|
92
|
+
* pre-resolution `request.resourceData` so sentinels re-resolve), but
|
|
93
|
+
* applied *incrementally* on the branch's existing env rather than on a
|
|
94
|
+
* fresh empty sandbox — so it composes over base docs (e.g. an `update`
|
|
95
|
+
* lands on a doc the snapshot seeded) and accumulates across multiple
|
|
96
|
+
* `apply` calls. The applied events are folded into `branch.events` so
|
|
97
|
+
* {@link promote} can reproduce the same sequence on the target.
|
|
98
|
+
*
|
|
99
|
+
* @returns the same branch (mutated in place) for chaining.
|
|
100
|
+
*/
|
|
101
|
+
export declare function apply(branch: Branch, events: readonly SandboxEvent[]): Branch;
|
|
102
|
+
/**
|
|
103
|
+
* Structural diff of a branch's current state against a reference.
|
|
104
|
+
*
|
|
105
|
+
* Reuses the replay engine's `Divergence` result type and mirrors its
|
|
106
|
+
* doc-level + field-level walk (see {@link diffDocSets}). With no captured
|
|
107
|
+
* write metadata in play, differences surface as `real-divergence`
|
|
108
|
+
* (field/doc changed) — the honest classification for "branch vs live".
|
|
109
|
+
* Added/removed docs surface as presence divergences (one side
|
|
110
|
+
* `undefined`).
|
|
111
|
+
*
|
|
112
|
+
* @param branch The experiment.
|
|
113
|
+
* @param target Live sandbox or a snapshot to compare against.
|
|
114
|
+
*/
|
|
115
|
+
export declare function diff(branch: Branch, target: DiffTarget): Divergence[];
|
|
116
|
+
/**
|
|
117
|
+
* Promote a branch's mutations onto a target (live) sandbox.
|
|
118
|
+
*
|
|
119
|
+
* "Honest promote": it computes the doc-level delta between the branch's
|
|
120
|
+
* BASE snapshot and its current state — i.e. exactly what the applied
|
|
121
|
+
* events changed — and lands only those mutations on the target through
|
|
122
|
+
* the admin plane:
|
|
123
|
+
* - docs added/changed on the branch → `admin.setDocument`
|
|
124
|
+
* - docs deleted on the branch → `admin.deleteDocument`
|
|
125
|
+
* - docs the branch never touched → left untouched on the target
|
|
126
|
+
*
|
|
127
|
+
* Admin-plane application fires the target's listeners (matching how
|
|
128
|
+
* persistence restore lands docs), so live UI/handles see the promotion.
|
|
129
|
+
*
|
|
130
|
+
* The branch is marked discarded afterward — a promoted branch is spent.
|
|
131
|
+
*
|
|
132
|
+
* @param branch The experiment to land.
|
|
133
|
+
* @param target The live sandbox to land it on.
|
|
134
|
+
*/
|
|
135
|
+
export declare function promote(branch: Branch, target: Sandbox): void;
|
|
136
|
+
/**
|
|
137
|
+
* Discard a branch: drop its sandbox and mark it spent. The target is
|
|
138
|
+
* never touched (nothing was promoted). Idempotent.
|
|
139
|
+
*/
|
|
140
|
+
export declare function discard(branch: Branch): void;
|
|
141
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sandbox/branches/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AAMrB;;;;;;;GAOG;AACH,MAAM,WAAW,MAAM;IACrB;qEACiE;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;+CAC2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;6DACyD;IACzD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B;2DACuD;IACvD,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAChC;uBACmB;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,eAAe,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,SAAK,GAAG,MAAM,CAelE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAiC7E;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAKrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAuB7D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI5C"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branches — a fork / apply / diff / promote / discard primitive built
|
|
3
|
+
* **on top of** the existing `snapshot()` + `replay()` surface. Nothing
|
|
4
|
+
* here re-implements those; a branch is an in-memory sandbox seeded from
|
|
5
|
+
* a {@link SandboxSnapshot}, with `apply` delegating to `replay()` and
|
|
6
|
+
* `diff` reusing the replay engine's structural divergence classifier.
|
|
7
|
+
*
|
|
8
|
+
* Mental model (the Pyric Studio "experiment" primitive — see
|
|
9
|
+
* the design rationale):
|
|
10
|
+
*
|
|
11
|
+
* const branch = fork(live.snapshot(), rules); // isolated copy
|
|
12
|
+
* apply(branch, agentPlanEvents); // re-issue writes
|
|
13
|
+
* const changes = diff(branch, live); // what changed vs live
|
|
14
|
+
* promote(branch, live); // land the branch's mutations on live
|
|
15
|
+
* // ...or...
|
|
16
|
+
* discard(branch); // drop it; live is untouched
|
|
17
|
+
*
|
|
18
|
+
* This is the substrate for Studio's agent dry-run → accept/reject
|
|
19
|
+
* (A1), rules-failure "re-run against an edited ruleset" (F4), and
|
|
20
|
+
* time-travel (A2). Each of those wants: an isolated copy of current
|
|
21
|
+
* state, a way to play hypothetical writes against it, a structural
|
|
22
|
+
* diff, and a commit/rollback gate.
|
|
23
|
+
*
|
|
24
|
+
* Granularity / honesty notes:
|
|
25
|
+
* - `fork` rehydrates **Firestore** state from the snapshot (the
|
|
26
|
+
* `firestore` key) plus rules. Per-service state in
|
|
27
|
+
* `snapshot.services` (auth users, etc.) is NOT rehydrated here —
|
|
28
|
+
* a fresh fork has no registered persistable services to restore
|
|
29
|
+
* into, mirroring how persistence skips unregistered services. If a
|
|
30
|
+
* consumer needs auth-in-a-branch it can register services on the
|
|
31
|
+
* branch sandbox and restore them; that's out of scope for v1.
|
|
32
|
+
* - `diff` reuses the replay engine's doc-level + field-level walk
|
|
33
|
+
* (`Divergence`). Without captured write metadata it can't license
|
|
34
|
+
* sentinel/auto-id drift, so every field difference surfaces as
|
|
35
|
+
* `real-divergence` — which is the correct, honest classification
|
|
36
|
+
* for "branch state vs live state" (there are no replayed sentinels
|
|
37
|
+
* to reconcile). Doc add/remove surface as presence divergences.
|
|
38
|
+
* - `promote` re-issues the branch's accumulated write events onto the
|
|
39
|
+
* target via `replay`'s machinery, then copies the resulting docs
|
|
40
|
+
* onto the target through the admin plane. It applies *mutations*
|
|
41
|
+
* (added/changed/removed docs), not a blind whole-snapshot replace —
|
|
42
|
+
* docs the branch never touched are left alone on the target.
|
|
43
|
+
*/
|
|
44
|
+
import { initializeSandbox, } from '../index.js';
|
|
45
|
+
import { getInternalEnv } from '../internal/sandbox-impl.js';
|
|
46
|
+
import { Timestamp } from 'pyric/rules';
|
|
47
|
+
/**
|
|
48
|
+
* Fork a new branch from a snapshot.
|
|
49
|
+
*
|
|
50
|
+
* Seeds a fresh sandbox with `rules` and the snapshot's Firestore docs
|
|
51
|
+
* (the same `seed({ rules, documents })` path replay uses to stand up a
|
|
52
|
+
* clean environment). The branch is fully isolated: writes on it never
|
|
53
|
+
* touch the source sandbox.
|
|
54
|
+
*
|
|
55
|
+
* @param snapshot Baseline state — typically `liveSandbox.snapshot()`.
|
|
56
|
+
* @param rules Rules source for the branch. Pass the live rules to
|
|
57
|
+
* reproduce production behaviour, or an *edited* ruleset
|
|
58
|
+
* to test a rules change in isolation (Studio F4).
|
|
59
|
+
*/
|
|
60
|
+
export function fork(snapshot, rules = '') {
|
|
61
|
+
const sandbox = initializeSandbox();
|
|
62
|
+
const env = getInternalEnv(sandbox);
|
|
63
|
+
// Copy-on-write fork: the branch reads `snapshot.firestore` as an immutable
|
|
64
|
+
// base (no clone, O(1)) and lands its own writes in an overlay. The snapshot
|
|
65
|
+
// is a stable, branch-owned object the live sandbox never mutates, so the
|
|
66
|
+
// branch stays isolated from later live writes.
|
|
67
|
+
env.seed({ rules, baseDocuments: snapshot.firestore });
|
|
68
|
+
return {
|
|
69
|
+
sandbox,
|
|
70
|
+
rules,
|
|
71
|
+
base: snapshot,
|
|
72
|
+
events: [],
|
|
73
|
+
discarded: false,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Apply a stream of events to a branch by re-issuing their writes against
|
|
78
|
+
* the branch's CURRENT state.
|
|
79
|
+
*
|
|
80
|
+
* This is the same per-write re-issue logic `replay()` runs (filter to
|
|
81
|
+
* `kind: 'write'`, honour `autoId` / pinned `requestTime`, prefer the
|
|
82
|
+
* pre-resolution `request.resourceData` so sentinels re-resolve), but
|
|
83
|
+
* applied *incrementally* on the branch's existing env rather than on a
|
|
84
|
+
* fresh empty sandbox — so it composes over base docs (e.g. an `update`
|
|
85
|
+
* lands on a doc the snapshot seeded) and accumulates across multiple
|
|
86
|
+
* `apply` calls. The applied events are folded into `branch.events` so
|
|
87
|
+
* {@link promote} can reproduce the same sequence on the target.
|
|
88
|
+
*
|
|
89
|
+
* @returns the same branch (mutated in place) for chaining.
|
|
90
|
+
*/
|
|
91
|
+
export function apply(branch, events) {
|
|
92
|
+
assertLive(branch);
|
|
93
|
+
const env = getInternalEnv(branch.sandbox);
|
|
94
|
+
const writes = events.filter((e) => e.kind === 'write');
|
|
95
|
+
for (const wEv of writes) {
|
|
96
|
+
// Prefer the paired request event's pre-resolution payload (sentinels
|
|
97
|
+
// intact); fall back to the write's post-resolution `data`.
|
|
98
|
+
const data = preResolutionDataFor(wEv, events) ?? wEv.data;
|
|
99
|
+
const requestTime = new Timestamp(wEv.requestTime.seconds, wEv.requestTime.nanoseconds);
|
|
100
|
+
if (wEv.autoId) {
|
|
101
|
+
const collection = wEv.path.slice(0, wEv.path.lastIndexOf('/'));
|
|
102
|
+
env.createWithAutoId(collection, (data ?? {}), wEv.auth);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
env.execute({
|
|
107
|
+
method: wEv.method,
|
|
108
|
+
path: wEv.path,
|
|
109
|
+
auth: wEv.auth,
|
|
110
|
+
...(data !== undefined ? { data: data } : {}),
|
|
111
|
+
requestTime,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// A denied/failed re-issue surfaces later as state divergence in
|
|
116
|
+
// diff(); keep going so one bad write doesn't abort the rest.
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
branch.events.push(...events);
|
|
120
|
+
return branch;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Best-effort pre-resolution payload for a write — the `request` event at
|
|
124
|
+
* or before it (same path) carries `request.resourceData` with sentinels
|
|
125
|
+
* intact. Mirrors the replay engine's `preResolutionDataFor`.
|
|
126
|
+
*/
|
|
127
|
+
function preResolutionDataFor(wEv, allEvents) {
|
|
128
|
+
const wIdx = allEvents.indexOf(wEv);
|
|
129
|
+
if (wIdx < 0)
|
|
130
|
+
return undefined;
|
|
131
|
+
for (let i = wIdx; i >= 0; i--) {
|
|
132
|
+
const e = allEvents[i];
|
|
133
|
+
if (!e || e.kind !== 'request')
|
|
134
|
+
continue;
|
|
135
|
+
if (e.path !== wEv.path)
|
|
136
|
+
continue;
|
|
137
|
+
return e.request?.resourceData;
|
|
138
|
+
}
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Structural diff of a branch's current state against a reference.
|
|
143
|
+
*
|
|
144
|
+
* Reuses the replay engine's `Divergence` result type and mirrors its
|
|
145
|
+
* doc-level + field-level walk (see {@link diffDocSets}). With no captured
|
|
146
|
+
* write metadata in play, differences surface as `real-divergence`
|
|
147
|
+
* (field/doc changed) — the honest classification for "branch vs live".
|
|
148
|
+
* Added/removed docs surface as presence divergences (one side
|
|
149
|
+
* `undefined`).
|
|
150
|
+
*
|
|
151
|
+
* @param branch The experiment.
|
|
152
|
+
* @param target Live sandbox or a snapshot to compare against.
|
|
153
|
+
*/
|
|
154
|
+
export function diff(branch, target) {
|
|
155
|
+
assertLive(branch);
|
|
156
|
+
const branchDocs = branch.sandbox.snapshot().firestore;
|
|
157
|
+
const targetDocs = snapshotOf(target).firestore;
|
|
158
|
+
return diffDocSets(targetDocs, branchDocs);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Promote a branch's mutations onto a target (live) sandbox.
|
|
162
|
+
*
|
|
163
|
+
* "Honest promote": it computes the doc-level delta between the branch's
|
|
164
|
+
* BASE snapshot and its current state — i.e. exactly what the applied
|
|
165
|
+
* events changed — and lands only those mutations on the target through
|
|
166
|
+
* the admin plane:
|
|
167
|
+
* - docs added/changed on the branch → `admin.setDocument`
|
|
168
|
+
* - docs deleted on the branch → `admin.deleteDocument`
|
|
169
|
+
* - docs the branch never touched → left untouched on the target
|
|
170
|
+
*
|
|
171
|
+
* Admin-plane application fires the target's listeners (matching how
|
|
172
|
+
* persistence restore lands docs), so live UI/handles see the promotion.
|
|
173
|
+
*
|
|
174
|
+
* The branch is marked discarded afterward — a promoted branch is spent.
|
|
175
|
+
*
|
|
176
|
+
* @param branch The experiment to land.
|
|
177
|
+
* @param target The live sandbox to land it on.
|
|
178
|
+
*/
|
|
179
|
+
export function promote(branch, target) {
|
|
180
|
+
assertLive(branch);
|
|
181
|
+
const baseDocs = branch.base.firestore;
|
|
182
|
+
const finalDocs = branch.sandbox.snapshot().firestore;
|
|
183
|
+
const paths = new Set([...Object.keys(baseDocs), ...Object.keys(finalDocs)]);
|
|
184
|
+
for (const path of paths) {
|
|
185
|
+
const before = baseDocs[path];
|
|
186
|
+
const after = finalDocs[path];
|
|
187
|
+
if (after === undefined) {
|
|
188
|
+
// Branch deleted this doc relative to its base.
|
|
189
|
+
target.admin.deleteDocument(path);
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (before === undefined || !sandboxDocumentsEqual(before, after)) {
|
|
193
|
+
// Branch added or changed this doc.
|
|
194
|
+
target.admin.setDocument(path, after);
|
|
195
|
+
}
|
|
196
|
+
// else: unchanged on the branch — leave the target's copy alone.
|
|
197
|
+
}
|
|
198
|
+
branch.discarded = true;
|
|
199
|
+
branch.sandbox.dispose();
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Discard a branch: drop its sandbox and mark it spent. The target is
|
|
203
|
+
* never touched (nothing was promoted). Idempotent.
|
|
204
|
+
*/
|
|
205
|
+
export function discard(branch) {
|
|
206
|
+
if (branch.discarded)
|
|
207
|
+
return;
|
|
208
|
+
branch.discarded = true;
|
|
209
|
+
branch.sandbox.dispose();
|
|
210
|
+
}
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
// internals
|
|
213
|
+
// ---------------------------------------------------------------------------
|
|
214
|
+
function assertLive(branch) {
|
|
215
|
+
if (branch.discarded) {
|
|
216
|
+
throw new Error('Branch has been discarded or promoted; create a new fork.');
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/** Resolve either a sandbox or a bare snapshot to a SandboxSnapshot. */
|
|
220
|
+
function snapshotOf(target) {
|
|
221
|
+
if (isSandbox(target))
|
|
222
|
+
return target.snapshot();
|
|
223
|
+
return target;
|
|
224
|
+
}
|
|
225
|
+
function isSandbox(target) {
|
|
226
|
+
return typeof target.snapshot === 'function';
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Doc-set structural diff. Mirrors the replay engine's doc-level + field-
|
|
230
|
+
* level walk and reuses its `Divergence` result type. The replay engine's
|
|
231
|
+
* own classifier is bound to captured write metadata (sentinels / auto-id
|
|
232
|
+
* aliases) which a branch-vs-live comparison doesn't have, so this is the
|
|
233
|
+
* "focused doc-level diff" the spec calls for when that machinery doesn't
|
|
234
|
+
* fit: every leaf difference is `real-divergence`, and doc add/remove
|
|
235
|
+
* surface as presence divergences (one side `undefined`).
|
|
236
|
+
*/
|
|
237
|
+
function diffDocSets(beforeDocs, afterDocs) {
|
|
238
|
+
const out = [];
|
|
239
|
+
const allPaths = new Set([...Object.keys(beforeDocs), ...Object.keys(afterDocs)]);
|
|
240
|
+
for (const path of allPaths) {
|
|
241
|
+
const before = beforeDocs[path];
|
|
242
|
+
const after = afterDocs[path];
|
|
243
|
+
if (before === undefined && after !== undefined) {
|
|
244
|
+
out.push({ kind: 'real-divergence', path, before: undefined, after });
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
if (before !== undefined && after === undefined) {
|
|
248
|
+
out.push({ kind: 'real-divergence', path, before, after: undefined });
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (before === undefined || after === undefined)
|
|
252
|
+
continue;
|
|
253
|
+
walkDoc(path, before, after, out);
|
|
254
|
+
}
|
|
255
|
+
return out;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Field-level walk producing dotted/bracket leaf paths — mirrors the
|
|
259
|
+
* replay engine's `diffDoc` walk (same path syntax: `profile.lastSeen`,
|
|
260
|
+
* `tags[0]`). Every leaf difference is `real-divergence`; there is no
|
|
261
|
+
* captured sentinel metadata in a branch-vs-live diff to license drift.
|
|
262
|
+
*/
|
|
263
|
+
function walkDoc(path, before, after, out) {
|
|
264
|
+
walk(before, after, '');
|
|
265
|
+
function walk(a, b, fieldPath) {
|
|
266
|
+
if (a === b)
|
|
267
|
+
return;
|
|
268
|
+
const aIsObj = a !== null && typeof a === 'object' && !Array.isArray(a);
|
|
269
|
+
const bIsObj = b !== null && typeof b === 'object' && !Array.isArray(b);
|
|
270
|
+
if (aIsObj && bIsObj) {
|
|
271
|
+
const ao = a;
|
|
272
|
+
const bo = b;
|
|
273
|
+
const keys = new Set([...Object.keys(ao), ...Object.keys(bo)]);
|
|
274
|
+
for (const k of keys) {
|
|
275
|
+
const next = fieldPath ? `${fieldPath}.${k}` : k;
|
|
276
|
+
walk(ao[k], bo[k], next);
|
|
277
|
+
}
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
281
|
+
const len = Math.max(a.length, b.length);
|
|
282
|
+
for (let i = 0; i < len; i++) {
|
|
283
|
+
walk(a[i], b[i], `${fieldPath}[${i}]`);
|
|
284
|
+
}
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (sandboxDocumentsEqual(a, b))
|
|
288
|
+
return;
|
|
289
|
+
out.push({ kind: 'real-divergence', path, field: fieldPath || undefined, before: a, after: b });
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/** Structural equality on sandbox document snapshots. */
|
|
293
|
+
function sandboxDocumentsEqual(a, b) {
|
|
294
|
+
if (a === b)
|
|
295
|
+
return true;
|
|
296
|
+
if (a === null || b === null)
|
|
297
|
+
return false;
|
|
298
|
+
if (typeof a !== 'object' || typeof b !== 'object')
|
|
299
|
+
return false;
|
|
300
|
+
const aArr = Array.isArray(a);
|
|
301
|
+
const bArr = Array.isArray(b);
|
|
302
|
+
if (aArr !== bArr)
|
|
303
|
+
return false;
|
|
304
|
+
if (aArr && bArr) {
|
|
305
|
+
if (a.length !== b.length)
|
|
306
|
+
return false;
|
|
307
|
+
for (let i = 0; i < a.length; i++) {
|
|
308
|
+
if (!sandboxDocumentsEqual(a[i], b[i]))
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
const ao = a;
|
|
314
|
+
const bo = b;
|
|
315
|
+
const ak = Object.keys(ao);
|
|
316
|
+
const bk = Object.keys(bo);
|
|
317
|
+
if (ak.length !== bk.length)
|
|
318
|
+
return false;
|
|
319
|
+
for (const k of ak) {
|
|
320
|
+
if (!Object.prototype.hasOwnProperty.call(bo, k))
|
|
321
|
+
return false;
|
|
322
|
+
if (!sandboxDocumentsEqual(ao[k], bo[k]))
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sandbox/branches/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `WriteBatchImpl` — Admin-SDK-compat `WriteBatch` backed by
|
|
3
|
+
* `LocalEnvironment.batch(...)`.
|
|
4
|
+
*
|
|
5
|
+
* Ported from bench's `pilot/src/firestore-wrapper.ts:360-391`.
|
|
6
|
+
*
|
|
7
|
+
* Set semantics: `WriteBatch.set(ref, data)` translates to either
|
|
8
|
+
* `'create'` (doc absent) or `'update'` (doc present) at queue time —
|
|
9
|
+
* the simulator's `BatchOperationInput` accepts only
|
|
10
|
+
* `'create' | 'update' | 'delete'`. The peek runs in the wrapper
|
|
11
|
+
* thread (single-threaded; the simulator is synchronous), so no other
|
|
12
|
+
* write can interleave between peek and queue.
|
|
13
|
+
*
|
|
14
|
+
* Error translation: `LocalEnvironment.batch(...)` returns a
|
|
15
|
+
* `BatchResult` whose `.error` carries a typed `FirestoreSimError`
|
|
16
|
+
* for any failed batch (atomic rollback). Surface that directly as
|
|
17
|
+
* `FirestoreCompatError` — same field-shape as Admin SDK's
|
|
18
|
+
* `FirestoreError.code` so `try { } catch (e) { if (e.code ===
|
|
19
|
+
* 'already-exists') }` works unchanged.
|
|
20
|
+
*/
|
|
21
|
+
import type { LocalEnvironment } from 'pyric/sandbox/internal';
|
|
22
|
+
import { type AuthContext, type DocumentData, type DocumentReference, type OperationOptions, type WriteBatch } from './types.js';
|
|
23
|
+
export declare class WriteBatchImpl implements WriteBatch {
|
|
24
|
+
private readonly env;
|
|
25
|
+
private readonly auth;
|
|
26
|
+
private readonly bypassRules;
|
|
27
|
+
private readonly ops;
|
|
28
|
+
constructor(env: LocalEnvironment, auth: AuthContext, bypassRules?: boolean);
|
|
29
|
+
set(ref: DocumentReference, data: DocumentData): WriteBatch;
|
|
30
|
+
update(ref: DocumentReference, data: DocumentData): WriteBatch;
|
|
31
|
+
delete(ref: DocumentReference): WriteBatch;
|
|
32
|
+
commit(opts?: OperationOptions): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/sandbox/firestore/admin-compat/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,UAAU;IAI7C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAGrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAG9B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EAGjB,WAAW,GAAE,OAAe;IAG/C,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU;IAU3D,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU;IAK9D,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU;IAKpC,MAAM,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBrD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `WriteBatchImpl` — Admin-SDK-compat `WriteBatch` backed by
|
|
3
|
+
* `LocalEnvironment.batch(...)`.
|
|
4
|
+
*
|
|
5
|
+
* Ported from bench's `pilot/src/firestore-wrapper.ts:360-391`.
|
|
6
|
+
*
|
|
7
|
+
* Set semantics: `WriteBatch.set(ref, data)` translates to either
|
|
8
|
+
* `'create'` (doc absent) or `'update'` (doc present) at queue time —
|
|
9
|
+
* the simulator's `BatchOperationInput` accepts only
|
|
10
|
+
* `'create' | 'update' | 'delete'`. The peek runs in the wrapper
|
|
11
|
+
* thread (single-threaded; the simulator is synchronous), so no other
|
|
12
|
+
* write can interleave between peek and queue.
|
|
13
|
+
*
|
|
14
|
+
* Error translation: `LocalEnvironment.batch(...)` returns a
|
|
15
|
+
* `BatchResult` whose `.error` carries a typed `FirestoreSimError`
|
|
16
|
+
* for any failed batch (atomic rollback). Surface that directly as
|
|
17
|
+
* `FirestoreCompatError` — same field-shape as Admin SDK's
|
|
18
|
+
* `FirestoreError.code` so `try { } catch (e) { if (e.code ===
|
|
19
|
+
* 'already-exists') }` works unchanged.
|
|
20
|
+
*/
|
|
21
|
+
import { makeError } from 'pyric/sandbox/internal';
|
|
22
|
+
import { FirestoreCompatError, } from './types.js';
|
|
23
|
+
export class WriteBatchImpl {
|
|
24
|
+
env;
|
|
25
|
+
auth;
|
|
26
|
+
bypassRules;
|
|
27
|
+
ops = [];
|
|
28
|
+
constructor(env, auth,
|
|
29
|
+
// Studio admin lens (Gap #2) — when true, the committed batch bypasses
|
|
30
|
+
// rules. Forwarded to LocalEnvironment.batch(). Default false.
|
|
31
|
+
bypassRules = false) {
|
|
32
|
+
this.env = env;
|
|
33
|
+
this.auth = auth;
|
|
34
|
+
this.bypassRules = bypassRules;
|
|
35
|
+
}
|
|
36
|
+
set(ref, data) {
|
|
37
|
+
// Dispatch to create-or-update at queue time — same logic as
|
|
38
|
+
// DocumentRefImpl.set, kept here rather than shared because the
|
|
39
|
+
// batch path has no async wrapping.
|
|
40
|
+
const existing = this.env.getDocument(ref.path);
|
|
41
|
+
const method = existing === null ? 'create' : 'update';
|
|
42
|
+
this.ops.push({ method, path: ref.path, data });
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
update(ref, data) {
|
|
46
|
+
this.ops.push({ method: 'update', path: ref.path, data });
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
delete(ref) {
|
|
50
|
+
this.ops.push({ method: 'delete', path: ref.path });
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
async commit(opts) {
|
|
54
|
+
// Empty batch is a no-op — match Admin SDK behavior (commit() of an
|
|
55
|
+
// empty WriteBatch resolves cleanly without a network round-trip).
|
|
56
|
+
if (this.ops.length === 0)
|
|
57
|
+
return;
|
|
58
|
+
const result = this.env.batch(this.ops, opts?.auth !== undefined ? opts.auth : this.auth, this.bypassRules);
|
|
59
|
+
if (result.allowed)
|
|
60
|
+
return;
|
|
61
|
+
// Surface the structured error if present (always present per
|
|
62
|
+
// Item 6 — see errors.ts; first per-op error mirrored to top-level).
|
|
63
|
+
if (result.error) {
|
|
64
|
+
throw new FirestoreCompatError(result.error);
|
|
65
|
+
}
|
|
66
|
+
// Defensive fallback — should be unreachable given Item 6's
|
|
67
|
+
// invariant that every denial carries an error.
|
|
68
|
+
const denied = result.results.find((r) => !r.allowed);
|
|
69
|
+
const msg = denied?.debugMessages.join('; ') ?? 'batch denied';
|
|
70
|
+
throw new FirestoreCompatError(makeError('permission-denied', `batch failed: ${msg}`));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/sandbox/firestore/admin-compat/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,oBAAoB,GAMrB,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,cAAc;IAIN;IACA;IAGA;IAPF,GAAG,GAA0B,EAAE,CAAC;IAEjD,YACmB,GAAqB,EACrB,IAAiB;IAClC,uEAAuE;IACvE,+DAA+D;IAC9C,cAAuB,KAAK;QAJ5B,QAAG,GAAH,GAAG,CAAkB;QACrB,SAAI,GAAJ,IAAI,CAAa;QAGjB,gBAAW,GAAX,WAAW,CAAiB;IAC5C,CAAC;IAEJ,GAAG,CAAC,GAAsB,EAAE,IAAkB;QAC5C,6DAA6D;QAC7D,gEAAgE;QAChE,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAwB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAsB,EAAE,IAAkB;QAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAsB;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAuB;QAClC,oEAAoE;QACpE,mEAAmE;QACnE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAC3B,IAAI,CAAC,GAAG,EACR,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAChD,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAC3B,8DAA8D;QAC9D,qEAAqE;QACrE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,4DAA4D;QAC5D,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;QAC/D,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,mBAAmB,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;CACF"}
|