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,139 @@
|
|
|
1
|
+
import type { Sandbox, SandboxContext } from 'pyric/sandbox';
|
|
2
|
+
import type { FirebaseApp } from 'firebase/app';
|
|
3
|
+
import * as fb from 'firebase/storage';
|
|
4
|
+
import { type StorageBackend } from './persistence.js';
|
|
5
|
+
import { type StorageRules } from './rules.js';
|
|
6
|
+
/**
|
|
7
|
+
* Hidden property on every {@link FirebaseStorage} handle. Carries
|
|
8
|
+
* the target discriminator so free functions can route between
|
|
9
|
+
* sandbox + prod backends without consumer-visible API differences.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TARGET_SYMBOL: unique symbol;
|
|
12
|
+
/**
|
|
13
|
+
* Sandbox target — IDB-backed, identity from `SandboxContext`, rules
|
|
14
|
+
* enforced in-process via `enforce.ts`.
|
|
15
|
+
*/
|
|
16
|
+
export interface SandboxTarget {
|
|
17
|
+
readonly kind: 'sandbox';
|
|
18
|
+
readonly sandbox: Sandbox;
|
|
19
|
+
readonly context: SandboxContext;
|
|
20
|
+
readonly bucket: string;
|
|
21
|
+
readonly servicePromise: Promise<StorageService>;
|
|
22
|
+
/**
|
|
23
|
+
* Rules-bypass admin plane. `true` only on handles minted by the
|
|
24
|
+
* INTERNAL {@link getAdminStorageSandbox} factory (exported via
|
|
25
|
+
* `pyric/storage/internal`, never the public surface): operations
|
|
26
|
+
* on an admin handle skip rule evaluation entirely — the storage
|
|
27
|
+
* mirror of `getAdminFirestore` / `getAdminDatabase`. The public
|
|
28
|
+
* modular surface stays rules-honest; this exists so hosts (the
|
|
29
|
+
* SharedWorker's `actAs: { mode: 'admin' }` lens) can serve
|
|
30
|
+
* firebase-admin semantics against the same shared store.
|
|
31
|
+
*/
|
|
32
|
+
readonly admin?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Prod target — delegates to `firebase/storage`. The user's Firebase
|
|
36
|
+
* Auth identity flows naturally through the underlying SDK; we don't
|
|
37
|
+
* touch rules (they're enforced server-side).
|
|
38
|
+
*/
|
|
39
|
+
export interface ProdTarget {
|
|
40
|
+
readonly kind: 'prod';
|
|
41
|
+
readonly app: FirebaseApp;
|
|
42
|
+
readonly fbStorage: fb.FirebaseStorage;
|
|
43
|
+
readonly bucket: string;
|
|
44
|
+
}
|
|
45
|
+
export type Target = SandboxTarget | ProdTarget;
|
|
46
|
+
/**
|
|
47
|
+
* Public opaque handle. Carries a {@link Target} via
|
|
48
|
+
* {@link TARGET_SYMBOL}; never inspected by consumer code, which
|
|
49
|
+
* interacts with storage only through {@link ref} and the operation
|
|
50
|
+
* free functions.
|
|
51
|
+
*/
|
|
52
|
+
export interface FirebaseStorage {
|
|
53
|
+
readonly [TARGET_SYMBOL]: Target;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Internal sandbox service — owns the IDB connection + parsed rules.
|
|
57
|
+
* Only constructed inside the sandbox `getStorageSandbox` path.
|
|
58
|
+
*/
|
|
59
|
+
export declare class StorageService {
|
|
60
|
+
readonly backend: StorageBackend;
|
|
61
|
+
readonly rules: StorageRules | null;
|
|
62
|
+
constructor(backend: StorageBackend, rules?: StorageRules | null);
|
|
63
|
+
}
|
|
64
|
+
/** Options for {@link getStorageSandbox}. */
|
|
65
|
+
export interface StorageOptions {
|
|
66
|
+
/**
|
|
67
|
+
* Bucket identifier recorded on uploaded metadata. v1 has a
|
|
68
|
+
* single implicit bucket and does not enforce cross-bucket
|
|
69
|
+
* isolation — passing different values per call is accepted and
|
|
70
|
+
* round-trips in metadata, but the data store is shared.
|
|
71
|
+
*/
|
|
72
|
+
bucket?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Override the IndexedDB database name. Production callers do
|
|
75
|
+
* NOT pass this; they inherit the default `pyric-storage`. Tests
|
|
76
|
+
* pass per-case unique names so state doesn't leak between runs.
|
|
77
|
+
* Only takes effect on the FIRST call per `Sandbox`.
|
|
78
|
+
*/
|
|
79
|
+
dbName?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Storage rules source. Parsed eagerly so a malformed string
|
|
82
|
+
* throws at config time. Only honored on the FIRST call per
|
|
83
|
+
* `Sandbox`.
|
|
84
|
+
*/
|
|
85
|
+
rules?: string;
|
|
86
|
+
}
|
|
87
|
+
/** Options for {@link getStorageProd}. */
|
|
88
|
+
export interface ProdStorageOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Override the gs:// bucket the handle binds to. Defaults to the
|
|
91
|
+
* project's primary bucket (whatever `app.options.storageBucket`
|
|
92
|
+
* names). Pass a custom bucket name (`gs://my-extra-bucket`) to
|
|
93
|
+
* target a non-default bucket.
|
|
94
|
+
*/
|
|
95
|
+
bucket?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Construct (or return cached) a sandbox-backed `FirebaseStorage`
|
|
99
|
+
* handle. Accepts either a bare `Sandbox` (anonymous identity wired
|
|
100
|
+
* up via `sandbox.withAuth(null)`) or an explicit `SandboxContext`.
|
|
101
|
+
* Idempotent on `SandboxContext` identity.
|
|
102
|
+
*/
|
|
103
|
+
export declare function getStorageSandbox(target: Sandbox | SandboxContext, options?: StorageOptions): FirebaseStorage;
|
|
104
|
+
/**
|
|
105
|
+
* INTERNAL (exported via `pyric/storage/internal` only) — construct
|
|
106
|
+
* (or return cached) the rules-BYPASS admin `FirebaseStorage` handle
|
|
107
|
+
* for a sandbox. Shares the SAME `StorageService` (one IDB store, one
|
|
108
|
+
* ruleset) as every rules-honest handle on that sandbox; only rule
|
|
109
|
+
* evaluation is skipped (see {@link SandboxTarget.admin}). Bucket /
|
|
110
|
+
* dbName / rules options follow the same first-call-per-`Sandbox`
|
|
111
|
+
* semantics as {@link getStorageSandbox}.
|
|
112
|
+
*
|
|
113
|
+
* This is the storage mirror of `getAdminFirestore` /
|
|
114
|
+
* `getAdminDatabase` — the handle the SharedWorker host resolves for
|
|
115
|
+
* `actAs: { mode: 'admin' }` storage ops (firebase-admin semantics
|
|
116
|
+
* over the bridge). Deliberately NOT on the public `pyric/storage`
|
|
117
|
+
* surface so the modular API stays rules-honest.
|
|
118
|
+
*/
|
|
119
|
+
export declare function getAdminStorageSandbox(sandbox: Sandbox, options?: StorageOptions): FirebaseStorage;
|
|
120
|
+
/**
|
|
121
|
+
* Construct a `FirebaseStorage` handle backed by a real Firebase
|
|
122
|
+
* project. The user's Firebase Auth identity flows naturally into
|
|
123
|
+
* rule evaluation via the SDK's standard auth-state subscription —
|
|
124
|
+
* Pyric doesn't manage the auth handshake, mirroring how
|
|
125
|
+
* `firebase/storage`'s own `getStorage(app)` works.
|
|
126
|
+
*/
|
|
127
|
+
export declare function getStorageProd(app: FirebaseApp, options?: ProdStorageOptions): FirebaseStorage;
|
|
128
|
+
/**
|
|
129
|
+
* Internal — extract the {@link Target} from a handle. Throws on
|
|
130
|
+
* objects that weren't produced by a factory in this module.
|
|
131
|
+
*/
|
|
132
|
+
export declare function targetOf(storage: FirebaseStorage): Target;
|
|
133
|
+
/**
|
|
134
|
+
* Internal — fetch the backing `StorageService` promise for a
|
|
135
|
+
* sandbox handle. Throws when called on a prod handle (prod ops
|
|
136
|
+
* never need a service; this helper is sandbox-only).
|
|
137
|
+
*/
|
|
138
|
+
export declare function getStorageService(storage: FirebaseStorage): Promise<StorageService>;
|
|
139
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/storage/service.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AASlE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,MAAuC,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,cAAc;IAEvB,QAAQ,CAAC,OAAO,EAAE,cAAc;IAChC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;gBAD1B,OAAO,EAAE,cAAc,EACvB,KAAK,GAAE,YAAY,GAAG,IAAW;CAE7C;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,GAAG,cAAc,EAChC,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAoCjB;AAKD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAqBjB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAQjB;AAWD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAQzD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAMnF"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service module — handles, factories, and target-discriminated
|
|
3
|
+
* routing. Mirrors `pyric/firestore`'s dual-target shape so the same
|
|
4
|
+
* playground (or any consumer) can switch from a `pyric/sandbox`-
|
|
5
|
+
* backed IDB store to a real Firebase Storage bucket by swapping the
|
|
6
|
+
* factory call.
|
|
7
|
+
*
|
|
8
|
+
* The public `FirebaseStorage` handle is opaque — it carries a
|
|
9
|
+
* `TARGET_SYMBOL` field pointing to an internal `Target` discriminator
|
|
10
|
+
* that every operation reads to decide between the sandbox path
|
|
11
|
+
* (IDB + rules-eval) and the prod path (delegate to `firebase/storage`).
|
|
12
|
+
*
|
|
13
|
+
* Caching:
|
|
14
|
+
*
|
|
15
|
+
* - **Per `Sandbox`** — the IDB-backed `StorageService` is shared.
|
|
16
|
+
* Two `getStorageSandbox` calls on the same sandbox hit the same
|
|
17
|
+
* backend.
|
|
18
|
+
* - **Per `SandboxContext`** — the sandbox `FirebaseStorage` handle
|
|
19
|
+
* is identity-stable. `getStorageSandbox(ctx)` twice returns the
|
|
20
|
+
* same object.
|
|
21
|
+
* - **Prod** — each `getStorageProd(app)` returns a fresh handle.
|
|
22
|
+
* `firebase/storage` itself caches per-app under the hood, so this
|
|
23
|
+
* is cheap; we don't add a layer.
|
|
24
|
+
*
|
|
25
|
+
* Internal access:
|
|
26
|
+
*
|
|
27
|
+
* `getStorageService(storage)` returns the backing
|
|
28
|
+
* `Promise<StorageService>` for sandbox handles. Throws on prod
|
|
29
|
+
* handles — prod ops never need it.
|
|
30
|
+
*/
|
|
31
|
+
import { SandboxContextImpl } from 'pyric/sandbox';
|
|
32
|
+
import * as fb from 'firebase/storage';
|
|
33
|
+
import { openStorageBackend } from './persistence.js';
|
|
34
|
+
import { parseStorageRules } from './rules.js';
|
|
35
|
+
/**
|
|
36
|
+
* Default sandbox bucket identifier. v1 has a single implicit
|
|
37
|
+
* bucket; the field is recorded on every uploaded metadata record
|
|
38
|
+
* so consumer code can round-trip it.
|
|
39
|
+
*/
|
|
40
|
+
const DEFAULT_BUCKET = 'pyric-default';
|
|
41
|
+
/**
|
|
42
|
+
* Hidden property on every {@link FirebaseStorage} handle. Carries
|
|
43
|
+
* the target discriminator so free functions can route between
|
|
44
|
+
* sandbox + prod backends without consumer-visible API differences.
|
|
45
|
+
*/
|
|
46
|
+
export const TARGET_SYMBOL = Symbol('pyric/storage/target');
|
|
47
|
+
/**
|
|
48
|
+
* Internal sandbox service — owns the IDB connection + parsed rules.
|
|
49
|
+
* Only constructed inside the sandbox `getStorageSandbox` path.
|
|
50
|
+
*/
|
|
51
|
+
export class StorageService {
|
|
52
|
+
backend;
|
|
53
|
+
rules;
|
|
54
|
+
constructor(backend, rules = null) {
|
|
55
|
+
this.backend = backend;
|
|
56
|
+
this.rules = rules;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ─── Caches (sandbox-only — prod relies on firebase/storage's caching) ─
|
|
60
|
+
/** One `StorageService` per `Sandbox`. */
|
|
61
|
+
const SERVICES = new WeakMap();
|
|
62
|
+
/** One sandbox `FirebaseStorage` handle per `SandboxContext`. */
|
|
63
|
+
const SANDBOX_HANDLES = new WeakMap();
|
|
64
|
+
/**
|
|
65
|
+
* One anonymous handle per bare `Sandbox`. `Sandbox.withAuth(null)`
|
|
66
|
+
* mints a FRESH `SandboxContext` on every call, so the per-context
|
|
67
|
+
* cache above would miss for the bare-`Sandbox` convenience path —
|
|
68
|
+
* `getStorageSandbox(sandbox)` twice returned two different handles
|
|
69
|
+
* (ST-B3). Caching on the `Sandbox` keeps that path identity-stable,
|
|
70
|
+
* matching the documented "handle is identity-stable per Sandbox".
|
|
71
|
+
*/
|
|
72
|
+
const BARE_SANDBOX_HANDLES = new WeakMap();
|
|
73
|
+
/**
|
|
74
|
+
* The rules SOURCE each sandbox's service was opened with (`null` when
|
|
75
|
+
* opened without rules). Late-config detection: rules are honored only on
|
|
76
|
+
* the FIRST storage call per `Sandbox`, so silently discarding a LATER,
|
|
77
|
+
* DIFFERENT `rules` option would be a silent rules wipe — {@link
|
|
78
|
+
* ensureService} throws instead. Re-supplying the IDENTICAL source stays
|
|
79
|
+
* fine (idempotent multi-handle construction, e.g. per-user contexts).
|
|
80
|
+
*/
|
|
81
|
+
const SERVICE_RULES_SOURCE = new WeakMap();
|
|
82
|
+
/**
|
|
83
|
+
* Get (or open) the ONE per-sandbox `StorageService`. Loud on the
|
|
84
|
+
* silent-rules-wipe hazard: when the service is already open and the
|
|
85
|
+
* caller supplies a `rules` source differing from the one it was opened
|
|
86
|
+
* with (including "opened without rules"), this throws — configure rules
|
|
87
|
+
* on the first storage call for the sandbox instead.
|
|
88
|
+
*/
|
|
89
|
+
function ensureService(sandbox, options, caller) {
|
|
90
|
+
const existing = SERVICES.get(sandbox);
|
|
91
|
+
if (existing) {
|
|
92
|
+
const openedWith = SERVICE_RULES_SOURCE.get(sandbox) ?? null;
|
|
93
|
+
if (options.rules !== undefined && options.rules !== openedWith) {
|
|
94
|
+
throw new Error(`pyric/storage: ${caller} received a rules source, but this sandbox's storage ` +
|
|
95
|
+
`service is already open ${openedWith === null ? 'without rules' : 'with a different rules source'} ` +
|
|
96
|
+
'— rules are honored only on the FIRST storage call per Sandbox, so these rules ' +
|
|
97
|
+
'would be silently discarded. Configure rules on the first storage call for this sandbox.');
|
|
98
|
+
}
|
|
99
|
+
return existing;
|
|
100
|
+
}
|
|
101
|
+
const rules = options.rules ? parseStorageRules(options.rules) : null;
|
|
102
|
+
const servicePromise = openStorageBackend(options.dbName).then((backend) => new StorageService(backend, rules));
|
|
103
|
+
SERVICES.set(sandbox, servicePromise);
|
|
104
|
+
SERVICE_RULES_SOURCE.set(sandbox, options.rules ?? null);
|
|
105
|
+
return servicePromise;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Type predicate distinguishing `SandboxContext` from `Sandbox`. We
|
|
109
|
+
* use the class-identity test (every real `SandboxContext` is a
|
|
110
|
+
* `SandboxContextImpl`) so the TS narrowing works downstream.
|
|
111
|
+
*/
|
|
112
|
+
function isContext(target) {
|
|
113
|
+
return target instanceof SandboxContextImpl;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Construct (or return cached) a sandbox-backed `FirebaseStorage`
|
|
117
|
+
* handle. Accepts either a bare `Sandbox` (anonymous identity wired
|
|
118
|
+
* up via `sandbox.withAuth(null)`) or an explicit `SandboxContext`.
|
|
119
|
+
* Idempotent on `SandboxContext` identity.
|
|
120
|
+
*/
|
|
121
|
+
export function getStorageSandbox(target, options = {}) {
|
|
122
|
+
const fromBareSandbox = !isContext(target);
|
|
123
|
+
const sandbox = isContext(target) ? target.sandbox : target;
|
|
124
|
+
// Open (or fetch) the ONE per-sandbox service FIRST — before any handle
|
|
125
|
+
// cache fast-path — so a late, differing `rules` option throws instead of
|
|
126
|
+
// being silently discarded (see ensureService).
|
|
127
|
+
const servicePromise = ensureService(sandbox, options, 'getStorageSandbox');
|
|
128
|
+
// Fast path: a repeat bare-`Sandbox` call returns the cached
|
|
129
|
+
// anonymous handle (the per-context cache below can't catch it
|
|
130
|
+
// because `withAuth(null)` mints a fresh context each time). Like
|
|
131
|
+
// the per-context path, bucket/dbName options are honored only on
|
|
132
|
+
// the FIRST call per Sandbox.
|
|
133
|
+
if (fromBareSandbox) {
|
|
134
|
+
const cachedBare = BARE_SANDBOX_HANDLES.get(sandbox);
|
|
135
|
+
if (cachedBare)
|
|
136
|
+
return cachedBare;
|
|
137
|
+
}
|
|
138
|
+
const ctx = isContext(target) ? target : target.withAuth(null);
|
|
139
|
+
const bucket = options.bucket ?? DEFAULT_BUCKET;
|
|
140
|
+
const cached = SANDBOX_HANDLES.get(ctx);
|
|
141
|
+
if (cached)
|
|
142
|
+
return cached;
|
|
143
|
+
const sandboxTarget = {
|
|
144
|
+
kind: 'sandbox',
|
|
145
|
+
sandbox,
|
|
146
|
+
context: ctx,
|
|
147
|
+
bucket,
|
|
148
|
+
servicePromise,
|
|
149
|
+
};
|
|
150
|
+
const handle = Object.freeze({ [TARGET_SYMBOL]: sandboxTarget });
|
|
151
|
+
SANDBOX_HANDLES.set(ctx, handle);
|
|
152
|
+
if (fromBareSandbox)
|
|
153
|
+
BARE_SANDBOX_HANDLES.set(sandbox, handle);
|
|
154
|
+
return handle;
|
|
155
|
+
}
|
|
156
|
+
/** One rules-bypass admin handle per `Sandbox` (internal admin plane). */
|
|
157
|
+
const ADMIN_SANDBOX_HANDLES = new WeakMap();
|
|
158
|
+
/**
|
|
159
|
+
* INTERNAL (exported via `pyric/storage/internal` only) — construct
|
|
160
|
+
* (or return cached) the rules-BYPASS admin `FirebaseStorage` handle
|
|
161
|
+
* for a sandbox. Shares the SAME `StorageService` (one IDB store, one
|
|
162
|
+
* ruleset) as every rules-honest handle on that sandbox; only rule
|
|
163
|
+
* evaluation is skipped (see {@link SandboxTarget.admin}). Bucket /
|
|
164
|
+
* dbName / rules options follow the same first-call-per-`Sandbox`
|
|
165
|
+
* semantics as {@link getStorageSandbox}.
|
|
166
|
+
*
|
|
167
|
+
* This is the storage mirror of `getAdminFirestore` /
|
|
168
|
+
* `getAdminDatabase` — the handle the SharedWorker host resolves for
|
|
169
|
+
* `actAs: { mode: 'admin' }` storage ops (firebase-admin semantics
|
|
170
|
+
* over the bridge). Deliberately NOT on the public `pyric/storage`
|
|
171
|
+
* surface so the modular API stays rules-honest.
|
|
172
|
+
*/
|
|
173
|
+
export function getAdminStorageSandbox(sandbox, options = {}) {
|
|
174
|
+
// Service first (late differing `rules` must throw, even on a cache hit).
|
|
175
|
+
const servicePromise = ensureService(sandbox, options, 'getAdminStorageSandbox');
|
|
176
|
+
const cached = ADMIN_SANDBOX_HANDLES.get(sandbox);
|
|
177
|
+
if (cached)
|
|
178
|
+
return cached;
|
|
179
|
+
const sandboxTarget = {
|
|
180
|
+
kind: 'sandbox',
|
|
181
|
+
sandbox,
|
|
182
|
+
// Anonymous context: the admin plane has no acting user. Rules are
|
|
183
|
+
// bypassed, so the context identity only feeds event provenance
|
|
184
|
+
// (`auth: null` — same as an anonymous caller).
|
|
185
|
+
context: sandbox.withAuth(null),
|
|
186
|
+
bucket: options.bucket ?? DEFAULT_BUCKET,
|
|
187
|
+
servicePromise,
|
|
188
|
+
admin: true,
|
|
189
|
+
};
|
|
190
|
+
const handle = Object.freeze({ [TARGET_SYMBOL]: sandboxTarget });
|
|
191
|
+
ADMIN_SANDBOX_HANDLES.set(sandbox, handle);
|
|
192
|
+
return handle;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Construct a `FirebaseStorage` handle backed by a real Firebase
|
|
196
|
+
* project. The user's Firebase Auth identity flows naturally into
|
|
197
|
+
* rule evaluation via the SDK's standard auth-state subscription —
|
|
198
|
+
* Pyric doesn't manage the auth handshake, mirroring how
|
|
199
|
+
* `firebase/storage`'s own `getStorage(app)` works.
|
|
200
|
+
*/
|
|
201
|
+
export function getStorageProd(app, options = {}) {
|
|
202
|
+
const fbStorage = options.bucket ? fb.getStorage(app, options.bucket) : fb.getStorage(app);
|
|
203
|
+
// The bucket field is sourced from the SDK's resolved bucket, not
|
|
204
|
+
// the option, so `gs://` prefixes / overrides round-trip correctly
|
|
205
|
+
// in metadata.
|
|
206
|
+
const bucket = fbRefBucket(fbStorage);
|
|
207
|
+
const prodTarget = { kind: 'prod', app, fbStorage, bucket };
|
|
208
|
+
return Object.freeze({ [TARGET_SYMBOL]: prodTarget });
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The bucket name from a `firebase/storage` handle, read off the
|
|
212
|
+
* root reference. `fb.ref(storage)` returns the root ref whose
|
|
213
|
+
* `bucket` field is the canonical bucket name.
|
|
214
|
+
*/
|
|
215
|
+
function fbRefBucket(fbStorage) {
|
|
216
|
+
return fb.ref(fbStorage).bucket;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Internal — extract the {@link Target} from a handle. Throws on
|
|
220
|
+
* objects that weren't produced by a factory in this module.
|
|
221
|
+
*/
|
|
222
|
+
export function targetOf(storage) {
|
|
223
|
+
const t = storage[TARGET_SYMBOL];
|
|
224
|
+
if (!t) {
|
|
225
|
+
throw new TypeError('pyric/storage: not a FirebaseStorage handle — was it produced by getStorageSandbox or getStorageProd?');
|
|
226
|
+
}
|
|
227
|
+
return t;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Internal — fetch the backing `StorageService` promise for a
|
|
231
|
+
* sandbox handle. Throws when called on a prod handle (prod ops
|
|
232
|
+
* never need a service; this helper is sandbox-only).
|
|
233
|
+
*/
|
|
234
|
+
export function getStorageService(storage) {
|
|
235
|
+
const target = targetOf(storage);
|
|
236
|
+
if (target.kind !== 'sandbox') {
|
|
237
|
+
throw new Error('getStorageService called on a prod-target handle — sandbox-only API');
|
|
238
|
+
}
|
|
239
|
+
return target.servicePromise;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/storage/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type SettableMetadata, type UploadResult } from './metadata.js';
|
|
2
|
+
import type { StoredMetadata } from './persistence.js';
|
|
3
|
+
import { type StorageReference } from './reference.js';
|
|
4
|
+
/** `uploadString` format selector. */
|
|
5
|
+
export type StringFormat = 'raw' | 'base64' | 'data_url';
|
|
6
|
+
/**
|
|
7
|
+
* Upload bytes to the reference's `fullPath`. Replaces any existing
|
|
8
|
+
* object at the path. Returns the populated `FullMetadata` and the
|
|
9
|
+
* same `ref` for chaining.
|
|
10
|
+
*
|
|
11
|
+
* Throws when the reference targets the root (`fullPath === ''`) —
|
|
12
|
+
* uploads need a non-empty path, matching Firebase's
|
|
13
|
+
* `invalid-root-operation` precondition.
|
|
14
|
+
*/
|
|
15
|
+
export declare function uploadBytes(ref: StorageReference, data: Blob | Uint8Array | ArrayBuffer, metadata?: SettableMetadata): Promise<UploadResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Upload a string in one of three formats:
|
|
18
|
+
*
|
|
19
|
+
* - `raw` (default): UTF-8 text. Defaults `contentType` to
|
|
20
|
+
* `text/plain;charset=utf-8` if neither metadata nor the data
|
|
21
|
+
* specify one.
|
|
22
|
+
* - `base64`: standard base64-encoded bytes.
|
|
23
|
+
* - `data_url`: a `data:` URL — the MIME prefix is honored as
|
|
24
|
+
* `contentType` unless the caller overrides it explicitly.
|
|
25
|
+
*/
|
|
26
|
+
export declare function uploadString(ref: StorageReference, value: string, format?: StringFormat, metadata?: SettableMetadata): Promise<UploadResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Build the `StoredMetadata` record we'll persist alongside the
|
|
29
|
+
* blob. Server-set fields are populated here in one place so
|
|
30
|
+
* Slice 6's `getMetadata` reads a consistent shape.
|
|
31
|
+
*
|
|
32
|
+
* Exported for the rare cases where Slice 8's rule pre-check needs
|
|
33
|
+
* to materialize the about-to-write metadata to feed into the
|
|
34
|
+
* evaluator (specifically `request.resource.size` /
|
|
35
|
+
* `.contentType`).
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildStoredMetadata(args: {
|
|
38
|
+
ref: StorageReference;
|
|
39
|
+
blob: Blob;
|
|
40
|
+
settable: SettableMetadata | undefined;
|
|
41
|
+
now?: Date;
|
|
42
|
+
}): StoredMetadata;
|
|
43
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/storage/upload.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIhE,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,EACrC,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAsDvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,YAAoB,EAC5B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAOvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,cAAc,CA0BjB"}
|