@pyric/cli 0.1.0-alpha.10
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/LICENSE +216 -0
- package/README.md +180 -0
- package/README.md.orig +141 -0
- package/dist/assurance/.generated/conformance-verdicts.d.ts +1071 -0
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -0
- package/dist/assurance/.generated/conformance-verdicts.js +1070 -0
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -0
- package/dist/assurance/attachment.d.ts +24 -0
- package/dist/assurance/attachment.d.ts.map +1 -0
- package/dist/assurance/attachment.js +138 -0
- package/dist/assurance/attachment.js.map +1 -0
- package/dist/assurance/browser.d.ts +7 -0
- package/dist/assurance/browser.d.ts.map +1 -0
- package/dist/assurance/browser.js +68 -0
- package/dist/assurance/browser.js.map +1 -0
- package/dist/assurance/campaign.d.ts +41 -0
- package/dist/assurance/campaign.d.ts.map +1 -0
- package/dist/assurance/campaign.js +364 -0
- package/dist/assurance/campaign.js.map +1 -0
- package/dist/assurance/capabilities.d.ts +11 -0
- package/dist/assurance/capabilities.d.ts.map +1 -0
- package/dist/assurance/capabilities.js +282 -0
- package/dist/assurance/capabilities.js.map +1 -0
- package/dist/assurance/cases.d.ts +14 -0
- package/dist/assurance/cases.d.ts.map +1 -0
- package/dist/assurance/cases.js +27 -0
- package/dist/assurance/cases.js.map +1 -0
- package/dist/assurance/index.d.ts +10 -0
- package/dist/assurance/index.d.ts.map +1 -0
- package/dist/assurance/index.js +9 -0
- package/dist/assurance/index.js.map +1 -0
- package/dist/assurance/runner.d.ts +3 -0
- package/dist/assurance/runner.d.ts.map +1 -0
- package/dist/assurance/runner.js +633 -0
- package/dist/assurance/runner.js.map +1 -0
- package/dist/assurance/tool-names.d.ts +4 -0
- package/dist/assurance/tool-names.d.ts.map +1 -0
- package/dist/assurance/tool-names.js +14 -0
- package/dist/assurance/tool-names.js.map +1 -0
- package/dist/assurance/tools.d.ts +19 -0
- package/dist/assurance/tools.d.ts.map +1 -0
- package/dist/assurance/tools.js +737 -0
- package/dist/assurance/tools.js.map +1 -0
- package/dist/assurance/types.d.ts +347 -0
- package/dist/assurance/types.d.ts.map +1 -0
- package/dist/assurance/types.js +7 -0
- package/dist/assurance/types.js.map +1 -0
- package/dist/assurance/validation.d.ts +8 -0
- package/dist/assurance/validation.d.ts.map +1 -0
- package/dist/assurance/validation.js +269 -0
- package/dist/assurance/validation.js.map +1 -0
- package/dist/bridge/client/bridge.d.ts +133 -0
- package/dist/bridge/client/bridge.d.ts.map +1 -0
- package/dist/bridge/client/bridge.js +429 -0
- package/dist/bridge/client/bridge.js.map +1 -0
- package/dist/bridge/client/dispatch.d.ts +41 -0
- package/dist/bridge/client/dispatch.d.ts.map +1 -0
- package/dist/bridge/client/dispatch.js +111 -0
- package/dist/bridge/client/dispatch.js.map +1 -0
- package/dist/bridge/client.d.ts +24 -0
- package/dist/bridge/client.d.ts.map +1 -0
- package/dist/bridge/client.js +26 -0
- package/dist/bridge/client.js.map +1 -0
- package/dist/bridge/protocol.d.ts +227 -0
- package/dist/bridge/protocol.d.ts.map +1 -0
- package/dist/bridge/protocol.js +131 -0
- package/dist/bridge/protocol.js.map +1 -0
- package/dist/bridge/server/audit.d.ts +19 -0
- package/dist/bridge/server/audit.d.ts.map +1 -0
- package/dist/bridge/server/audit.js +46 -0
- package/dist/bridge/server/audit.js.map +1 -0
- package/dist/bridge/server/bridge.d.ts +126 -0
- package/dist/bridge/server/bridge.d.ts.map +1 -0
- package/dist/bridge/server/bridge.js +383 -0
- package/dist/bridge/server/bridge.js.map +1 -0
- package/dist/bridge/server/headless.d.ts +36 -0
- package/dist/bridge/server/headless.d.ts.map +1 -0
- package/dist/bridge/server/headless.js +142 -0
- package/dist/bridge/server/headless.js.map +1 -0
- package/dist/bridge/server/json-schema-to-zod.d.ts +37 -0
- package/dist/bridge/server/json-schema-to-zod.d.ts.map +1 -0
- package/dist/bridge/server/json-schema-to-zod.js +93 -0
- package/dist/bridge/server/json-schema-to-zod.js.map +1 -0
- package/dist/bridge/server/local-bridge.d.ts +33 -0
- package/dist/bridge/server/local-bridge.d.ts.map +1 -0
- package/dist/bridge/server/local-bridge.js +41 -0
- package/dist/bridge/server/local-bridge.js.map +1 -0
- package/dist/bridge/server/logger.d.ts +28 -0
- package/dist/bridge/server/logger.d.ts.map +1 -0
- package/dist/bridge/server/logger.js +42 -0
- package/dist/bridge/server/logger.js.map +1 -0
- package/dist/bridge/server/mcp-contract.d.ts +21 -0
- package/dist/bridge/server/mcp-contract.d.ts.map +1 -0
- package/dist/bridge/server/mcp-contract.js +63 -0
- package/dist/bridge/server/mcp-contract.js.map +1 -0
- package/dist/bridge/server/mcp.d.ts +26 -0
- package/dist/bridge/server/mcp.d.ts.map +1 -0
- package/dist/bridge/server/mcp.js +102 -0
- package/dist/bridge/server/mcp.js.map +1 -0
- package/dist/bridge/server/peer.d.ts +39 -0
- package/dist/bridge/server/peer.d.ts.map +1 -0
- package/dist/bridge/server/peer.js +189 -0
- package/dist/bridge/server/peer.js.map +1 -0
- package/dist/bridge/server/standalone.d.ts +49 -0
- package/dist/bridge/server/standalone.d.ts.map +1 -0
- package/dist/bridge/server/standalone.js +267 -0
- package/dist/bridge/server/standalone.js.map +1 -0
- package/dist/bridge/server/tool-metadata.d.ts +38 -0
- package/dist/bridge/server/tool-metadata.d.ts.map +1 -0
- package/dist/bridge/server/tool-metadata.js +84 -0
- package/dist/bridge/server/tool-metadata.js.map +1 -0
- package/dist/bridge/server.d.ts +21 -0
- package/dist/bridge/server.d.ts.map +1 -0
- package/dist/bridge/server.js +18 -0
- package/dist/bridge/server.js.map +1 -0
- package/dist/cli/can-i-use.d.ts +5 -0
- package/dist/cli/can-i-use.d.ts.map +1 -0
- package/dist/cli/can-i-use.js +49 -0
- package/dist/cli/can-i-use.js.map +1 -0
- package/dist/cli/database-rules.d.ts +43 -0
- package/dist/cli/database-rules.d.ts.map +1 -0
- package/dist/cli/database-rules.js +261 -0
- package/dist/cli/database-rules.js.map +1 -0
- package/dist/cli/dev-runner.d.ts +112 -0
- package/dist/cli/dev-runner.d.ts.map +1 -0
- package/dist/cli/dev-runner.js +239 -0
- package/dist/cli/dev-runner.js.map +1 -0
- package/dist/cli/firebase-json.d.ts +66 -0
- package/dist/cli/firebase-json.d.ts.map +1 -0
- package/dist/cli/firebase-json.js +60 -0
- package/dist/cli/firebase-json.js.map +1 -0
- package/dist/cli/firestore-indexes.d.ts +21 -0
- package/dist/cli/firestore-indexes.d.ts.map +1 -0
- package/dist/cli/firestore-indexes.js +39 -0
- package/dist/cli/firestore-indexes.js.map +1 -0
- package/dist/cli/index.d.ts +56 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +387 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +50 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +182 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/mcp-proxy.d.ts +10 -0
- package/dist/cli/mcp-proxy.d.ts.map +1 -0
- package/dist/cli/mcp-proxy.js +129 -0
- package/dist/cli/mcp-proxy.js.map +1 -0
- package/dist/cli/parse-args.d.ts +20 -0
- package/dist/cli/parse-args.d.ts.map +1 -0
- package/dist/cli/parse-args.js +74 -0
- package/dist/cli/parse-args.js.map +1 -0
- package/dist/cli/rules.d.ts +55 -0
- package/dist/cli/rules.d.ts.map +1 -0
- package/dist/cli/rules.js +199 -0
- package/dist/cli/rules.js.map +1 -0
- package/dist/cli/scope.d.ts +12 -0
- package/dist/cli/scope.d.ts.map +1 -0
- package/dist/cli/scope.js +44 -0
- package/dist/cli/scope.js.map +1 -0
- package/dist/cli/serve.d.ts +122 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +844 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/service-commands.d.ts +8 -0
- package/dist/cli/service-commands.d.ts.map +1 -0
- package/dist/cli/service-commands.js +58 -0
- package/dist/cli/service-commands.js.map +1 -0
- package/dist/cli/snapshot.d.ts +22 -0
- package/dist/cli/snapshot.d.ts.map +1 -0
- package/dist/cli/snapshot.js +139 -0
- package/dist/cli/snapshot.js.map +1 -0
- package/dist/cli/storage-rules.d.ts +21 -0
- package/dist/cli/storage-rules.d.ts.map +1 -0
- package/dist/cli/storage-rules.js +121 -0
- package/dist/cli/storage-rules.js.map +1 -0
- package/dist/cli/verify.d.ts +23 -0
- package/dist/cli/verify.d.ts.map +1 -0
- package/dist/cli/verify.js +349 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/conformance/.generated/can-i-use-browser.d.ts +44 -0
- package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -0
- package/dist/conformance/.generated/can-i-use-browser.js +67 -0
- package/dist/conformance/.generated/can-i-use-browser.js.map +1 -0
- package/dist/conformance/.generated/can-i-use.d.ts +61 -0
- package/dist/conformance/.generated/can-i-use.d.ts.map +1 -0
- package/dist/conformance/.generated/can-i-use.js +68 -0
- package/dist/conformance/.generated/can-i-use.js.map +1 -0
- package/dist/conformance/browser.d.ts +7 -0
- package/dist/conformance/browser.d.ts.map +1 -0
- package/dist/conformance/browser.js +8 -0
- package/dist/conformance/browser.js.map +1 -0
- package/dist/conformance/can-i-use-tool.d.ts +21 -0
- package/dist/conformance/can-i-use-tool.d.ts.map +1 -0
- package/dist/conformance/can-i-use-tool.js +40 -0
- package/dist/conformance/can-i-use-tool.js.map +1 -0
- package/dist/conformance/can-i-use.d.ts +6 -0
- package/dist/conformance/can-i-use.d.ts.map +1 -0
- package/dist/conformance/can-i-use.js +10 -0
- package/dist/conformance/can-i-use.js.map +1 -0
- package/dist/conformance/index.d.ts +8 -0
- package/dist/conformance/index.d.ts.map +1 -0
- package/dist/conformance/index.js +2 -0
- package/dist/conformance/index.js.map +1 -0
- package/dist/conformance/tools.d.ts +4 -0
- package/dist/conformance/tools.d.ts.map +1 -0
- package/dist/conformance/tools.js +14 -0
- package/dist/conformance/tools.js.map +1 -0
- package/dist/credentials/core/memoize-ttl.d.ts +58 -0
- package/dist/credentials/core/memoize-ttl.d.ts.map +1 -0
- package/dist/credentials/core/memoize-ttl.js +88 -0
- package/dist/credentials/core/memoize-ttl.js.map +1 -0
- package/dist/credentials/core/types.d.ts +11 -0
- package/dist/credentials/core/types.d.ts.map +1 -0
- package/dist/credentials/core/types.js +2 -0
- package/dist/credentials/core/types.js.map +1 -0
- package/dist/credentials/node/from-adc.d.ts +10 -0
- package/dist/credentials/node/from-adc.d.ts.map +1 -0
- package/dist/credentials/node/from-adc.js +76 -0
- package/dist/credentials/node/from-adc.js.map +1 -0
- package/dist/credentials/node/from-service-account.d.ts +24 -0
- package/dist/credentials/node/from-service-account.d.ts.map +1 -0
- package/dist/credentials/node/from-service-account.js +108 -0
- package/dist/credentials/node/from-service-account.js.map +1 -0
- package/dist/credentials/node/index.d.ts +7 -0
- package/dist/credentials/node/index.d.ts.map +1 -0
- package/dist/credentials/node/index.js +7 -0
- package/dist/credentials/node/index.js.map +1 -0
- package/dist/discover/concurrency.d.ts +42 -0
- package/dist/discover/concurrency.d.ts.map +1 -0
- package/dist/discover/concurrency.js +113 -0
- package/dist/discover/concurrency.js.map +1 -0
- package/dist/discover/crawler-adapter.d.ts +48 -0
- package/dist/discover/crawler-adapter.d.ts.map +1 -0
- package/dist/discover/crawler-adapter.js +92 -0
- package/dist/discover/crawler-adapter.js.map +1 -0
- package/dist/discover/crawler.d.ts +294 -0
- package/dist/discover/crawler.d.ts.map +1 -0
- package/dist/discover/crawler.js +764 -0
- package/dist/discover/crawler.js.map +1 -0
- package/dist/discover/credential-free.d.ts +19 -0
- package/dist/discover/credential-free.d.ts.map +1 -0
- package/dist/discover/credential-free.js +18 -0
- package/dist/discover/credential-free.js.map +1 -0
- package/dist/discover/findCollectionGroup.d.ts +44 -0
- package/dist/discover/findCollectionGroup.d.ts.map +1 -0
- package/dist/discover/findCollectionGroup.js +81 -0
- package/dist/discover/findCollectionGroup.js.map +1 -0
- package/dist/discover/firestore-source.d.ts +60 -0
- package/dist/discover/firestore-source.d.ts.map +1 -0
- package/dist/discover/firestore-source.js +11 -0
- package/dist/discover/firestore-source.js.map +1 -0
- package/dist/discover/index.d.ts +3 -0
- package/dist/discover/index.d.ts.map +1 -0
- package/dist/discover/index.js +5 -0
- package/dist/discover/index.js.map +1 -0
- package/dist/discover/merge.d.ts +108 -0
- package/dist/discover/merge.d.ts.map +1 -0
- package/dist/discover/merge.js +394 -0
- package/dist/discover/merge.js.map +1 -0
- package/dist/discover/session.d.ts +116 -0
- package/dist/discover/session.d.ts.map +1 -0
- package/dist/discover/session.js +331 -0
- package/dist/discover/session.js.map +1 -0
- package/dist/discover/tools.d.ts +58 -0
- package/dist/discover/tools.d.ts.map +1 -0
- package/dist/discover/tools.js +115 -0
- package/dist/discover/tools.js.map +1 -0
- package/dist/discover/types.d.ts +190 -0
- package/dist/discover/types.d.ts.map +1 -0
- package/dist/discover/types.js +12 -0
- package/dist/discover/types.js.map +1 -0
- package/dist/discover/wire.d.ts +70 -0
- package/dist/discover/wire.d.ts.map +1 -0
- package/dist/discover/wire.js +309 -0
- package/dist/discover/wire.js.map +1 -0
- package/dist/functions-rtdb/child.d.ts +52 -0
- package/dist/functions-rtdb/child.d.ts.map +1 -0
- package/dist/functions-rtdb/child.js +283 -0
- package/dist/functions-rtdb/child.js.map +1 -0
- package/dist/functions-rtdb/delivery.d.ts +4 -0
- package/dist/functions-rtdb/delivery.d.ts.map +1 -0
- package/dist/functions-rtdb/delivery.js +2 -0
- package/dist/functions-rtdb/delivery.js.map +1 -0
- package/dist/functions-rtdb/discovery.d.ts +41 -0
- package/dist/functions-rtdb/discovery.d.ts.map +1 -0
- package/dist/functions-rtdb/discovery.js +86 -0
- package/dist/functions-rtdb/discovery.js.map +1 -0
- package/dist/functions-rtdb/event.d.ts +20 -0
- package/dist/functions-rtdb/event.d.ts.map +1 -0
- package/dist/functions-rtdb/event.js +45 -0
- package/dist/functions-rtdb/event.js.map +1 -0
- package/dist/functions-rtdb/execution.d.ts +20 -0
- package/dist/functions-rtdb/execution.d.ts.map +1 -0
- package/dist/functions-rtdb/execution.js +70 -0
- package/dist/functions-rtdb/execution.js.map +1 -0
- package/dist/functions-rtdb/in-memory-delivery.d.ts +9 -0
- package/dist/functions-rtdb/in-memory-delivery.d.ts.map +1 -0
- package/dist/functions-rtdb/in-memory-delivery.js +36 -0
- package/dist/functions-rtdb/in-memory-delivery.js.map +1 -0
- package/dist/functions-rtdb/project.d.ts +7 -0
- package/dist/functions-rtdb/project.d.ts.map +1 -0
- package/dist/functions-rtdb/project.js +54 -0
- package/dist/functions-rtdb/project.js.map +1 -0
- package/dist/functions-rtdb/projection.d.ts +14 -0
- package/dist/functions-rtdb/projection.d.ts.map +1 -0
- package/dist/functions-rtdb/projection.js +65 -0
- package/dist/functions-rtdb/projection.js.map +1 -0
- package/dist/functions-rtdb/reference-pattern.d.ts +5 -0
- package/dist/functions-rtdb/reference-pattern.d.ts.map +1 -0
- package/dist/functions-rtdb/reference-pattern.js +14 -0
- package/dist/functions-rtdb/reference-pattern.js.map +1 -0
- package/dist/functions-rtdb/remote-delivery.d.ts +9 -0
- package/dist/functions-rtdb/remote-delivery.d.ts.map +1 -0
- package/dist/functions-rtdb/remote-delivery.js +11 -0
- package/dist/functions-rtdb/remote-delivery.js.map +1 -0
- package/dist/pkg-version.d.ts +2 -0
- package/dist/pkg-version.d.ts.map +1 -0
- package/dist/pkg-version.js +47 -0
- package/dist/pkg-version.js.map +1 -0
- package/dist/register/esm-exports.d.ts +26 -0
- package/dist/register/esm-exports.d.ts.map +1 -0
- package/dist/register/esm-exports.js +61 -0
- package/dist/register/esm-exports.js.map +1 -0
- package/dist/register/hooks.d.ts +13 -0
- package/dist/register/hooks.d.ts.map +1 -0
- package/dist/register/hooks.js +15 -0
- package/dist/register/hooks.js.map +1 -0
- package/dist/register/index.d.ts +5 -0
- package/dist/register/index.d.ts.map +1 -0
- package/dist/register/index.js +124 -0
- package/dist/register/index.js.map +1 -0
- package/dist/register/mapping.d.ts +19 -0
- package/dist/register/mapping.d.ts.map +1 -0
- package/dist/register/mapping.js +35 -0
- package/dist/register/mapping.js.map +1 -0
- package/dist/remote/index.d.ts +232 -0
- package/dist/remote/index.d.ts.map +1 -0
- package/dist/remote/index.js +720 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/rtdb/crawl-snapshot.d.ts +17 -0
- package/dist/rtdb/crawl-snapshot.d.ts.map +1 -0
- package/dist/rtdb/crawl-snapshot.js +72 -0
- package/dist/rtdb/crawl-snapshot.js.map +1 -0
- package/dist/rtdb/inspection.d.ts +8 -0
- package/dist/rtdb/inspection.d.ts.map +1 -0
- package/dist/rtdb/inspection.js +111 -0
- package/dist/rtdb/inspection.js.map +1 -0
- package/dist/rtdb/load-rules-document.d.ts +25 -0
- package/dist/rtdb/load-rules-document.d.ts.map +1 -0
- package/dist/rtdb/load-rules-document.js +38 -0
- package/dist/rtdb/load-rules-document.js.map +1 -0
- package/dist/rtdb/rules-generation-tool.d.ts +4 -0
- package/dist/rtdb/rules-generation-tool.d.ts.map +1 -0
- package/dist/rtdb/rules-generation-tool.js +35 -0
- package/dist/rtdb/rules-generation-tool.js.map +1 -0
- package/dist/rtdb/rules-json.d.ts +8 -0
- package/dist/rtdb/rules-json.d.ts.map +1 -0
- package/dist/rtdb/rules-json.js +17 -0
- package/dist/rtdb/rules-json.js.map +1 -0
- package/dist/serve/bridge-mount.d.ts +36 -0
- package/dist/serve/bridge-mount.d.ts.map +1 -0
- package/dist/serve/bridge-mount.js +162 -0
- package/dist/serve/bridge-mount.js.map +1 -0
- package/dist/serve/bundler.d.ts +110 -0
- package/dist/serve/bundler.d.ts.map +1 -0
- package/dist/serve/bundler.js +432 -0
- package/dist/serve/bundler.js.map +1 -0
- package/dist/serve/capture-store.d.ts +27 -0
- package/dist/serve/capture-store.d.ts.map +1 -0
- package/dist/serve/capture-store.js +47 -0
- package/dist/serve/capture-store.js.map +1 -0
- package/dist/serve/discovery.d.ts +71 -0
- package/dist/serve/discovery.d.ts.map +1 -0
- package/dist/serve/discovery.js +158 -0
- package/dist/serve/discovery.js.map +1 -0
- package/dist/serve/docs-ui/_astro/_slug_.DPUwShm2.css +1 -0
- package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
- package/dist/serve/docs-ui/docs/_rhythm.md +97 -0
- package/dist/serve/docs-ui/docs/agent/set-up-your-agent/index.html +42 -0
- package/dist/serve/docs-ui/docs/agent/set-up-your-agent.md +72 -0
- package/dist/serve/docs-ui/docs/agent/watch-and-review/index.html +25 -0
- package/dist/serve/docs-ui/docs/agent/watch-and-review.md +38 -0
- package/dist/serve/docs-ui/docs/agent/work-with-an-agent/index.html +69 -0
- package/dist/serve/docs-ui/docs/agent/work-with-an-agent.md +74 -0
- package/dist/serve/docs-ui/docs/ai-compat/index.html +423 -0
- package/dist/serve/docs-ui/docs/ai-compat.md +456 -0
- package/dist/serve/docs-ui/docs/api-reference/index.html +66 -0
- package/dist/serve/docs-ui/docs/api-reference.md +69 -0
- package/dist/serve/docs-ui/docs/app-compat/index.html +159 -0
- package/dist/serve/docs-ui/docs/app-compat.md +178 -0
- package/dist/serve/docs-ui/docs/auth-compat/index.html +644 -0
- package/dist/serve/docs-ui/docs/auth-compat.md +701 -0
- package/dist/serve/docs-ui/docs/build/ai-logic/index.html +27 -0
- package/dist/serve/docs-ui/docs/build/ai-logic.md +39 -0
- package/dist/serve/docs-ui/docs/build/authentication/index.html +65 -0
- package/dist/serve/docs-ui/docs/build/authentication.md +95 -0
- package/dist/serve/docs-ui/docs/build/cloud-firestore/index.html +69 -0
- package/dist/serve/docs-ui/docs/build/cloud-firestore.md +93 -0
- package/dist/serve/docs-ui/docs/build/cloud-messaging/index.html +27 -0
- package/dist/serve/docs-ui/docs/build/cloud-messaging.md +37 -0
- package/dist/serve/docs-ui/docs/build/cloud-storage/index.html +65 -0
- package/dist/serve/docs-ui/docs/build/cloud-storage.md +86 -0
- package/dist/serve/docs-ui/docs/build/realtime-database/index.html +49 -0
- package/dist/serve/docs-ui/docs/build/realtime-database.md +67 -0
- package/dist/serve/docs-ui/docs/conformance-scores/index.html +49 -0
- package/dist/serve/docs-ui/docs/conformance-scores.md +53 -0
- package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +498 -0
- package/dist/serve/docs-ui/docs/create-pyric-reference-api.md +345 -0
- package/dist/serve/docs-ui/docs/database-compat/index.html +1037 -0
- package/dist/serve/docs-ui/docs/database-compat.md +1099 -0
- package/dist/serve/docs-ui/docs/firestore-compat/index.html +823 -0
- package/dist/serve/docs-ui/docs/firestore-compat.md +881 -0
- package/dist/serve/docs-ui/docs/functions-rtdb-compat/index.html +72 -0
- package/dist/serve/docs-ui/docs/functions-rtdb-compat.md +83 -0
- package/dist/serve/docs-ui/docs/get-started/how-the-swap-works/index.html +27 -0
- package/dist/serve/docs-ui/docs/get-started/how-the-swap-works.md +50 -0
- package/dist/serve/docs-ui/docs/get-started/start-building/index.html +31 -0
- package/dist/serve/docs-ui/docs/get-started/start-building.md +53 -0
- package/dist/serve/docs-ui/docs/index.html +2 -0
- package/dist/serve/docs-ui/docs/index.json +11719 -0
- package/dist/serve/docs-ui/docs/messaging-compat/index.html +264 -0
- package/dist/serve/docs-ui/docs/messaging-compat.md +285 -0
- package/dist/serve/docs-ui/docs/observe/see-whats-happening/index.html +73 -0
- package/dist/serve/docs-ui/docs/observe/see-whats-happening.md +69 -0
- package/dist/serve/docs-ui/docs/observe/shape-your-data/index.html +44 -0
- package/dist/serve/docs-ui/docs/observe/shape-your-data.md +74 -0
- package/dist/serve/docs-ui/docs/overview/index.html +16 -0
- package/dist/serve/docs-ui/docs/overview.md +31 -0
- package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +185 -0
- package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api.md +206 -0
- package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +617 -0
- package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api.md +441 -0
- package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +583 -0
- package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api.md +597 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +32 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +30 -0
- package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +317 -0
- package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api.md +285 -0
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +5830 -0
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +5439 -0
- package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +159 -0
- package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api.md +122 -0
- package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +420 -0
- package/dist/serve/docs-ui/docs/pyric-app-reference-api.md +326 -0
- package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +5452 -0
- package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +5271 -0
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +98 -0
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api.md +88 -0
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +2263 -0
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +1477 -0
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +546 -0
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api.md +485 -0
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +506 -0
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api.md +419 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +257 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api.md +197 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api/index.html +307 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api.md +254 -0
- package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +67 -0
- package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api.md +59 -0
- package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +2355 -0
- package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api.md +2036 -0
- package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +10 -0
- package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api.md +16 -0
- package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1044 -0
- package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api.md +952 -0
- package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +5041 -0
- package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +4739 -0
- package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +926 -0
- package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api.md +586 -0
- package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +102 -0
- package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api.md +76 -0
- package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +1851 -0
- package/dist/serve/docs-ui/docs/pyric-database-reference-api.md +1842 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +3623 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +3399 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +30 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +30 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +508 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-reference-api.md +374 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +482 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api.md +348 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +2629 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +2213 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +120 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api.md +110 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +202 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api.md +134 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +5019 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +4060 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +2120 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +1687 -0
- package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +638 -0
- package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api.md +430 -0
- package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +813 -0
- package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api.md +634 -0
- package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +1708 -0
- package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api.md +1300 -0
- package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +177 -0
- package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api.md +111 -0
- package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +1542 -0
- package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api.md +903 -0
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1024 -0
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api.md +640 -0
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +2753 -0
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api.md +2171 -0
- package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +1005 -0
- package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api.md +693 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +1388 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api.md +1340 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +131 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api.md +76 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +648 -0
- package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api.md +508 -0
- package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1457 -0
- package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api.md +1029 -0
- package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +2476 -0
- package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api.md +1919 -0
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1241 -0
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api.md +817 -0
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +2289 -0
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api.md +1489 -0
- package/dist/serve/docs-ui/docs/rules-compat/index.html +272 -0
- package/dist/serve/docs-ui/docs/rules-compat.md +287 -0
- package/dist/serve/docs-ui/docs/secure/audit-your-rules/index.html +34 -0
- package/dist/serve/docs-ui/docs/secure/audit-your-rules.md +67 -0
- package/dist/serve/docs-ui/docs/secure/firestore-rules-limits/index.html +105 -0
- package/dist/serve/docs-ui/docs/secure/firestore-rules-limits.md +152 -0
- package/dist/serve/docs-ui/docs/secure/read-a-denial/index.html +40 -0
- package/dist/serve/docs-ui/docs/secure/read-a-denial.md +58 -0
- package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript/index.html +66 -0
- package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript.md +89 -0
- package/dist/serve/docs-ui/docs/secure/rules-standard-library/index.html +158 -0
- package/dist/serve/docs-ui/docs/secure/rules-standard-library.md +116 -0
- package/dist/serve/docs-ui/docs/secure/secure-it-with-rules/index.html +46 -0
- package/dist/serve/docs-ui/docs/secure/secure-it-with-rules.md +51 -0
- package/dist/serve/docs-ui/docs/secure/simulate-and-lint/index.html +94 -0
- package/dist/serve/docs-ui/docs/secure/simulate-and-lint.md +86 -0
- package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite/index.html +81 -0
- package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite.md +105 -0
- package/dist/serve/docs-ui/docs/ship/ship-to-production/index.html +36 -0
- package/dist/serve/docs-ui/docs/ship/ship-to-production.md +64 -0
- package/dist/serve/docs-ui/docs/ship/test-in-node/index.html +74 -0
- package/dist/serve/docs-ui/docs/ship/test-in-node.md +94 -0
- package/dist/serve/docs-ui/docs/storage-compat/index.html +532 -0
- package/dist/serve/docs-ui/docs/storage-compat.md +577 -0
- package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase/index.html +131 -0
- package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase.md +155 -0
- package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility/index.html +13 -0
- package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility.md +21 -0
- package/dist/serve/docs-ui/index.html +1 -0
- package/dist/serve/docs-ui/llms.txt +123 -0
- package/dist/serve/entries/ai.d.ts +4 -0
- package/dist/serve/entries/ai.d.ts.map +1 -0
- package/dist/serve/entries/ai.js +184 -0
- package/dist/serve/entries/ai.js.map +1 -0
- package/dist/serve/entries/app-backend.d.ts +2 -0
- package/dist/serve/entries/app-backend.d.ts.map +1 -0
- package/dist/serve/entries/app-backend.js +4 -0
- package/dist/serve/entries/app-backend.js.map +1 -0
- package/dist/serve/entries/app-client.d.ts +5 -0
- package/dist/serve/entries/app-client.d.ts.map +1 -0
- package/dist/serve/entries/app-client.js +23 -0
- package/dist/serve/entries/app-client.js.map +1 -0
- package/dist/serve/entries/app-session-store.d.ts +14 -0
- package/dist/serve/entries/app-session-store.d.ts.map +1 -0
- package/dist/serve/entries/app-session-store.js +37 -0
- package/dist/serve/entries/app-session-store.js.map +1 -0
- package/dist/serve/entries/app.d.ts +2 -0
- package/dist/serve/entries/app.d.ts.map +1 -0
- package/dist/serve/entries/app.js +10 -0
- package/dist/serve/entries/app.js.map +1 -0
- package/dist/serve/entries/auth-helper-core.d.ts +52 -0
- package/dist/serve/entries/auth-helper-core.d.ts.map +1 -0
- package/dist/serve/entries/auth-helper-core.js +118 -0
- package/dist/serve/entries/auth-helper-core.js.map +1 -0
- package/dist/serve/entries/auth-helper-dom.d.ts +14 -0
- package/dist/serve/entries/auth-helper-dom.d.ts.map +1 -0
- package/dist/serve/entries/auth-helper-dom.js +116 -0
- package/dist/serve/entries/auth-helper-dom.js.map +1 -0
- package/dist/serve/entries/auth-helper-runtime.d.ts +5 -0
- package/dist/serve/entries/auth-helper-runtime.d.ts.map +1 -0
- package/dist/serve/entries/auth-helper-runtime.js +11 -0
- package/dist/serve/entries/auth-helper-runtime.js.map +1 -0
- package/dist/serve/entries/auth.d.ts +77 -0
- package/dist/serve/entries/auth.d.ts.map +1 -0
- package/dist/serve/entries/auth.js +201 -0
- package/dist/serve/entries/auth.js.map +1 -0
- package/dist/serve/entries/bridge-url.d.ts +25 -0
- package/dist/serve/entries/bridge-url.d.ts.map +1 -0
- package/dist/serve/entries/bridge-url.js +30 -0
- package/dist/serve/entries/bridge-url.js.map +1 -0
- package/dist/serve/entries/database.d.ts +46 -0
- package/dist/serve/entries/database.d.ts.map +1 -0
- package/dist/serve/entries/database.js +80 -0
- package/dist/serve/entries/database.js.map +1 -0
- package/dist/serve/entries/firestore.d.ts +104 -0
- package/dist/serve/entries/firestore.d.ts.map +1 -0
- package/dist/serve/entries/firestore.js +202 -0
- package/dist/serve/entries/firestore.js.map +1 -0
- package/dist/serve/entries/init.d.ts +2 -0
- package/dist/serve/entries/init.d.ts.map +1 -0
- package/dist/serve/entries/init.js +40 -0
- package/dist/serve/entries/init.js.map +1 -0
- package/dist/serve/entries/keepalive.d.ts +20 -0
- package/dist/serve/entries/keepalive.d.ts.map +1 -0
- package/dist/serve/entries/keepalive.js +38 -0
- package/dist/serve/entries/keepalive.js.map +1 -0
- package/dist/serve/entries/messaging-sw.d.ts +10 -0
- package/dist/serve/entries/messaging-sw.d.ts.map +1 -0
- package/dist/serve/entries/messaging-sw.js +36 -0
- package/dist/serve/entries/messaging-sw.js.map +1 -0
- package/dist/serve/entries/messaging.d.ts +11 -0
- package/dist/serve/entries/messaging.d.ts.map +1 -0
- package/dist/serve/entries/messaging.js +53 -0
- package/dist/serve/entries/messaging.js.map +1 -0
- package/dist/serve/entries/runtime.d.ts +46 -0
- package/dist/serve/entries/runtime.d.ts.map +1 -0
- package/dist/serve/entries/runtime.js +435 -0
- package/dist/serve/entries/runtime.js.map +1 -0
- package/dist/serve/entries/session-store.d.ts +48 -0
- package/dist/serve/entries/session-store.d.ts.map +1 -0
- package/dist/serve/entries/session-store.js +82 -0
- package/dist/serve/entries/session-store.js.map +1 -0
- package/dist/serve/entries/storage.d.ts +25 -0
- package/dist/serve/entries/storage.d.ts.map +1 -0
- package/dist/serve/entries/storage.js +61 -0
- package/dist/serve/entries/storage.js.map +1 -0
- package/dist/serve/entries/tab-sync-wiring.d.ts +88 -0
- package/dist/serve/entries/tab-sync-wiring.d.ts.map +1 -0
- package/dist/serve/entries/tab-sync-wiring.js +217 -0
- package/dist/serve/entries/tab-sync-wiring.js.map +1 -0
- package/dist/serve/entries/worker-runtime.d.ts +10 -0
- package/dist/serve/entries/worker-runtime.d.ts.map +1 -0
- package/dist/serve/entries/worker-runtime.js +59 -0
- package/dist/serve/entries/worker-runtime.js.map +1 -0
- package/dist/serve/init-payload.d.ts +21 -0
- package/dist/serve/init-payload.d.ts.map +1 -0
- package/dist/serve/init-payload.js +2 -0
- package/dist/serve/init-payload.js.map +1 -0
- package/dist/serve/namespace.d.ts +73 -0
- package/dist/serve/namespace.d.ts.map +1 -0
- package/dist/serve/namespace.js +470 -0
- package/dist/serve/namespace.js.map +1 -0
- package/dist/serve/open-browser.d.ts +23 -0
- package/dist/serve/open-browser.d.ts.map +1 -0
- package/dist/serve/open-browser.js +58 -0
- package/dist/serve/open-browser.js.map +1 -0
- package/dist/serve/rules.d.ts +77 -0
- package/dist/serve/rules.d.ts.map +1 -0
- package/dist/serve/rules.js +202 -0
- package/dist/serve/rules.js.map +1 -0
- package/dist/serve/sandbox-marker.d.ts +9 -0
- package/dist/serve/sandbox-marker.d.ts.map +1 -0
- package/dist/serve/sandbox-marker.js +31 -0
- package/dist/serve/sandbox-marker.js.map +1 -0
- package/dist/serve/server.d.ts +135 -0
- package/dist/serve/server.d.ts.map +1 -0
- package/dist/serve/server.js +328 -0
- package/dist/serve/server.js.map +1 -0
- package/dist/serve/standalone-assets.d.ts +67 -0
- package/dist/serve/standalone-assets.d.ts.map +1 -0
- package/dist/serve/standalone-assets.js +134 -0
- package/dist/serve/standalone-assets.js.map +1 -0
- package/dist/serve/state-store.d.ts +45 -0
- package/dist/serve/state-store.d.ts.map +1 -0
- package/dist/serve/state-store.js +120 -0
- package/dist/serve/state-store.js.map +1 -0
- package/dist/serve/studio/disk-project-store.d.ts +9 -0
- package/dist/serve/studio/disk-project-store.d.ts.map +1 -0
- package/dist/serve/studio/disk-project-store.js +173 -0
- package/dist/serve/studio/disk-project-store.js.map +1 -0
- package/dist/serve/studio/disk-workspace.d.ts +14 -0
- package/dist/serve/studio/disk-workspace.d.ts.map +1 -0
- package/dist/serve/studio/disk-workspace.js +152 -0
- package/dist/serve/studio/disk-workspace.js.map +1 -0
- package/dist/serve/studio/index.d.ts +10 -0
- package/dist/serve/studio/index.d.ts.map +1 -0
- package/dist/serve/studio/index.js +9 -0
- package/dist/serve/studio/index.js.map +1 -0
- package/dist/serve/studio/routes.d.ts +40 -0
- package/dist/serve/studio/routes.d.ts.map +1 -0
- package/dist/serve/studio/routes.js +182 -0
- package/dist/serve/studio/routes.js.map +1 -0
- package/dist/serve/studio/store-types.d.ts +45 -0
- package/dist/serve/studio/store-types.d.ts.map +1 -0
- package/dist/serve/studio/store-types.js +11 -0
- package/dist/serve/studio/store-types.js.map +1 -0
- package/dist/serve/studio-ui/assets/RulesCodeEditor-CXdSLKhO.js +23 -0
- package/dist/serve/studio-ui/assets/index-BlSGru_r.css +1 -0
- package/dist/serve/studio-ui/assets/index-BvtQIpGn.js +1211 -0
- package/dist/serve/studio-ui/assets/seed-3DMedLL3.js +2 -0
- package/dist/serve/studio-ui/index.html +32 -0
- package/dist/serve/studio-ui/pyric-logo.svg +76 -0
- package/dist/serve/vite-plugin.d.ts +57 -0
- package/dist/serve/vite-plugin.d.ts.map +1 -0
- package/dist/serve/vite-plugin.js +664 -0
- package/dist/serve/vite-plugin.js.map +1 -0
- package/dist/serve/worker/client/admin-firestore.d.ts +18 -0
- package/dist/serve/worker/client/admin-firestore.d.ts.map +1 -0
- package/dist/serve/worker/client/admin-firestore.js +26 -0
- package/dist/serve/worker/client/admin-firestore.js.map +1 -0
- package/dist/serve/worker/client/ai.d.ts +31 -0
- package/dist/serve/worker/client/ai.d.ts.map +1 -0
- package/dist/serve/worker/client/ai.js +89 -0
- package/dist/serve/worker/client/ai.js.map +1 -0
- package/dist/serve/worker/client/auth.d.ts +168 -0
- package/dist/serve/worker/client/auth.d.ts.map +1 -0
- package/dist/serve/worker/client/auth.js +322 -0
- package/dist/serve/worker/client/auth.js.map +1 -0
- package/dist/serve/worker/client/connection.d.ts +80 -0
- package/dist/serve/worker/client/connection.d.ts.map +1 -0
- package/dist/serve/worker/client/connection.js +148 -0
- package/dist/serve/worker/client/connection.js.map +1 -0
- package/dist/serve/worker/client/core.d.ts +109 -0
- package/dist/serve/worker/client/core.d.ts.map +1 -0
- package/dist/serve/worker/client/core.js +248 -0
- package/dist/serve/worker/client/core.js.map +1 -0
- package/dist/serve/worker/client/disconnect.d.ts +7 -0
- package/dist/serve/worker/client/disconnect.d.ts.map +1 -0
- package/dist/serve/worker/client/disconnect.js +26 -0
- package/dist/serve/worker/client/disconnect.js.map +1 -0
- package/dist/serve/worker/client/firestore-reads.d.ts +49 -0
- package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -0
- package/dist/serve/worker/client/firestore-reads.js +139 -0
- package/dist/serve/worker/client/firestore-reads.js.map +1 -0
- package/dist/serve/worker/client/firestore-refs.d.ts +54 -0
- package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -0
- package/dist/serve/worker/client/firestore-refs.js +167 -0
- package/dist/serve/worker/client/firestore-refs.js.map +1 -0
- package/dist/serve/worker/client/firestore-writes.d.ts +70 -0
- package/dist/serve/worker/client/firestore-writes.d.ts.map +1 -0
- package/dist/serve/worker/client/firestore-writes.js +169 -0
- package/dist/serve/worker/client/firestore-writes.js.map +1 -0
- package/dist/serve/worker/client/handles.d.ts +73 -0
- package/dist/serve/worker/client/handles.d.ts.map +1 -0
- package/dist/serve/worker/client/handles.js +4 -0
- package/dist/serve/worker/client/handles.js.map +1 -0
- package/dist/serve/worker/client/messaging.d.ts +16 -0
- package/dist/serve/worker/client/messaging.d.ts.map +1 -0
- package/dist/serve/worker/client/messaging.js +60 -0
- package/dist/serve/worker/client/messaging.js.map +1 -0
- package/dist/serve/worker/client/presence.d.ts +43 -0
- package/dist/serve/worker/client/presence.d.ts.map +1 -0
- package/dist/serve/worker/client/presence.js +132 -0
- package/dist/serve/worker/client/presence.js.map +1 -0
- package/dist/serve/worker/client/rtdb.d.ts +36 -0
- package/dist/serve/worker/client/rtdb.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb.js +241 -0
- package/dist/serve/worker/client/rtdb.js.map +1 -0
- package/dist/serve/worker/client/rules.d.ts +24 -0
- package/dist/serve/worker/client/rules.d.ts.map +1 -0
- package/dist/serve/worker/client/rules.js +44 -0
- package/dist/serve/worker/client/rules.js.map +1 -0
- package/dist/serve/worker/client/service-worker-connection.d.ts +3 -0
- package/dist/serve/worker/client/service-worker-connection.d.ts.map +1 -0
- package/dist/serve/worker/client/service-worker-connection.js +53 -0
- package/dist/serve/worker/client/service-worker-connection.js.map +1 -0
- package/dist/serve/worker/client/snapshots.d.ts +32 -0
- package/dist/serve/worker/client/snapshots.d.ts.map +1 -0
- package/dist/serve/worker/client/snapshots.js +46 -0
- package/dist/serve/worker/client/snapshots.js.map +1 -0
- package/dist/serve/worker/client/storage.d.ts +64 -0
- package/dist/serve/worker/client/storage.d.ts.map +1 -0
- package/dist/serve/worker/client/storage.js +125 -0
- package/dist/serve/worker/client/storage.js.map +1 -0
- package/dist/serve/worker/client/studio.d.ts +32 -0
- package/dist/serve/worker/client/studio.d.ts.map +1 -0
- package/dist/serve/worker/client/studio.js +61 -0
- package/dist/serve/worker/client/studio.js.map +1 -0
- package/dist/serve/worker/client.d.ts +43 -0
- package/dist/serve/worker/client.d.ts.map +1 -0
- package/dist/serve/worker/client.js +44 -0
- package/dist/serve/worker/client.js.map +1 -0
- package/dist/serve/worker/entry.d.ts +40 -0
- package/dist/serve/worker/entry.d.ts.map +1 -0
- package/dist/serve/worker/entry.js +144 -0
- package/dist/serve/worker/entry.js.map +1 -0
- package/dist/serve/worker/host/admin-firestore.d.ts +17 -0
- package/dist/serve/worker/host/admin-firestore.d.ts.map +1 -0
- package/dist/serve/worker/host/admin-firestore.js +92 -0
- package/dist/serve/worker/host/admin-firestore.js.map +1 -0
- package/dist/serve/worker/host/connection.d.ts +40 -0
- package/dist/serve/worker/host/connection.d.ts.map +1 -0
- package/dist/serve/worker/host/connection.js +153 -0
- package/dist/serve/worker/host/connection.js.map +1 -0
- package/dist/serve/worker/host/core.d.ts +159 -0
- package/dist/serve/worker/host/core.d.ts.map +1 -0
- package/dist/serve/worker/host/core.js +296 -0
- package/dist/serve/worker/host/core.js.map +1 -0
- package/dist/serve/worker/host/dispatch.d.ts +34 -0
- package/dist/serve/worker/host/dispatch.d.ts.map +1 -0
- package/dist/serve/worker/host/dispatch.js +267 -0
- package/dist/serve/worker/host/dispatch.js.map +1 -0
- package/dist/serve/worker/host/firestore-reads.d.ts +17 -0
- package/dist/serve/worker/host/firestore-reads.d.ts.map +1 -0
- package/dist/serve/worker/host/firestore-reads.js +108 -0
- package/dist/serve/worker/host/firestore-reads.js.map +1 -0
- package/dist/serve/worker/host/firestore-writes.d.ts +37 -0
- package/dist/serve/worker/host/firestore-writes.d.ts.map +1 -0
- package/dist/serve/worker/host/firestore-writes.js +409 -0
- package/dist/serve/worker/host/firestore-writes.js.map +1 -0
- package/dist/serve/worker/host/presence.d.ts +38 -0
- package/dist/serve/worker/host/presence.d.ts.map +1 -0
- package/dist/serve/worker/host/presence.js +280 -0
- package/dist/serve/worker/host/presence.js.map +1 -0
- package/dist/serve/worker/host/rtdb.d.ts +18 -0
- package/dist/serve/worker/host/rtdb.d.ts.map +1 -0
- package/dist/serve/worker/host/rtdb.js +128 -0
- package/dist/serve/worker/host/rtdb.js.map +1 -0
- package/dist/serve/worker/host/rules.d.ts +17 -0
- package/dist/serve/worker/host/rules.d.ts.map +1 -0
- package/dist/serve/worker/host/rules.js +118 -0
- package/dist/serve/worker/host/rules.js.map +1 -0
- package/dist/serve/worker/host/storage.d.ts +19 -0
- package/dist/serve/worker/host/storage.d.ts.map +1 -0
- package/dist/serve/worker/host/storage.js +260 -0
- package/dist/serve/worker/host/storage.js.map +1 -0
- package/dist/serve/worker/host/studio.d.ts +13 -0
- package/dist/serve/worker/host/studio.d.ts.map +1 -0
- package/dist/serve/worker/host/studio.js +30 -0
- package/dist/serve/worker/host/studio.js.map +1 -0
- package/dist/serve/worker/host/subscriptions.d.ts +21 -0
- package/dist/serve/worker/host/subscriptions.d.ts.map +1 -0
- package/dist/serve/worker/host/subscriptions.js +162 -0
- package/dist/serve/worker/host/subscriptions.js.map +1 -0
- package/dist/serve/worker/host-ai.d.ts +59 -0
- package/dist/serve/worker/host-ai.d.ts.map +1 -0
- package/dist/serve/worker/host-ai.js +158 -0
- package/dist/serve/worker/host-ai.js.map +1 -0
- package/dist/serve/worker/host-auth.d.ts +47 -0
- package/dist/serve/worker/host-auth.d.ts.map +1 -0
- package/dist/serve/worker/host-auth.js +464 -0
- package/dist/serve/worker/host-auth.js.map +1 -0
- package/dist/serve/worker/host-context.d.ts +220 -0
- package/dist/serve/worker/host-context.d.ts.map +1 -0
- package/dist/serve/worker/host-context.js +45 -0
- package/dist/serve/worker/host-context.js.map +1 -0
- package/dist/serve/worker/host-events.d.ts +21 -0
- package/dist/serve/worker/host-events.d.ts.map +1 -0
- package/dist/serve/worker/host-events.js +87 -0
- package/dist/serve/worker/host-events.js.map +1 -0
- package/dist/serve/worker/host-messaging.d.ts +60 -0
- package/dist/serve/worker/host-messaging.d.ts.map +1 -0
- package/dist/serve/worker/host-messaging.js +226 -0
- package/dist/serve/worker/host-messaging.js.map +1 -0
- package/dist/serve/worker/host.d.ts +36 -0
- package/dist/serve/worker/host.d.ts.map +1 -0
- package/dist/serve/worker/host.js +39 -0
- package/dist/serve/worker/host.js.map +1 -0
- package/dist/serve/worker/index.d.ts +22 -0
- package/dist/serve/worker/index.d.ts.map +1 -0
- package/dist/serve/worker/index.js +61 -0
- package/dist/serve/worker/index.js.map +1 -0
- package/dist/serve/worker/presence-timing.d.ts +14 -0
- package/dist/serve/worker/presence-timing.d.ts.map +1 -0
- package/dist/serve/worker/presence-timing.js +14 -0
- package/dist/serve/worker/presence-timing.js.map +1 -0
- package/dist/serve/worker/protocol.d.ts +1150 -0
- package/dist/serve/worker/protocol.d.ts.map +1 -0
- package/dist/serve/worker/protocol.js +228 -0
- package/dist/serve/worker/protocol.js.map +1 -0
- package/dist/serve/worker/serve-init.d.ts +201 -0
- package/dist/serve/worker/serve-init.d.ts.map +1 -0
- package/dist/serve/worker/serve-init.js +579 -0
- package/dist/serve/worker/serve-init.js.map +1 -0
- package/dist/serve/worker/service-worker-channel.d.ts +23 -0
- package/dist/serve/worker/service-worker-channel.d.ts.map +1 -0
- package/dist/serve/worker/service-worker-channel.js +9 -0
- package/dist/serve/worker/service-worker-channel.js.map +1 -0
- package/dist/serve/worker/service-worker-relay.d.ts +22 -0
- package/dist/serve/worker/service-worker-relay.d.ts.map +1 -0
- package/dist/serve/worker/service-worker-relay.js +63 -0
- package/dist/serve/worker/service-worker-relay.js.map +1 -0
- package/dist/serve/writer-lock.d.ts +32 -0
- package/dist/serve/writer-lock.d.ts.map +1 -0
- package/dist/serve/writer-lock.js +43 -0
- package/dist/serve/writer-lock.js.map +1 -0
- package/dist/verify/cases.d.ts +37 -0
- package/dist/verify/cases.d.ts.map +1 -0
- package/dist/verify/cases.js +173 -0
- package/dist/verify/cases.js.map +1 -0
- package/dist/verify/fixture.d.ts +100 -0
- package/dist/verify/fixture.d.ts.map +1 -0
- package/dist/verify/fixture.js +156 -0
- package/dist/verify/fixture.js.map +1 -0
- package/dist/verify/index.d.ts +102 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +318 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/tools.d.ts +7 -0
- package/dist/verify/tools.d.ts.map +1 -0
- package/dist/verify/tools.js +83 -0
- package/dist/verify/tools.js.map +1 -0
- package/dist/version/compat-target.d.ts +18 -0
- package/dist/version/compat-target.d.ts.map +1 -0
- package/dist/version/compat-target.js +18 -0
- package/dist/version/compat-target.js.map +1 -0
- package/dist/vite.d.ts +12 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +16 -0
- package/dist/vite.js.map +1 -0
- package/package.json +144 -0
|
@@ -0,0 +1,1842 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
|
|
3
|
+
|
|
4
|
+
## Interfaces
|
|
5
|
+
|
|
6
|
+
<a id="database"></a>
|
|
7
|
+
|
|
8
|
+
### Database
|
|
9
|
+
|
|
10
|
+
Opaque RTDB handle. Routes via [TARGET\_SYMBOL](#target_symbol-1).
|
|
11
|
+
|
|
12
|
+
#### Properties
|
|
13
|
+
|
|
14
|
+
| Property | Modifier | Type |
|
|
15
|
+
| :------ | :------ | :------ |
|
|
16
|
+
| <a id="target_symbol"></a> `[TARGET_SYMBOL]` | `readonly` | `Target` |
|
|
17
|
+
| <a id="app"></a> `app?` | `readonly` | `FirebaseApp` |
|
|
18
|
+
|
|
19
|
+
***
|
|
20
|
+
|
|
21
|
+
<a id="databasereference"></a>
|
|
22
|
+
|
|
23
|
+
### DatabaseReference
|
|
24
|
+
|
|
25
|
+
RTDB-shaped reference. Backend-opaque to consumers; mirrors
|
|
26
|
+
`firebase/database`'s `DatabaseReference` for the subset of methods
|
|
27
|
+
the modular SDK uses idiomatically as plain free-function args.
|
|
28
|
+
|
|
29
|
+
`key` is the last path segment (matches `DatabaseReference.key`).
|
|
30
|
+
`null` for the root ref. `parent` is the ref one segment up
|
|
31
|
+
(`null` at root). `root` is always the root ref.
|
|
32
|
+
|
|
33
|
+
`toString()` returns a stable `sandbox://` URL.
|
|
34
|
+
|
|
35
|
+
#### Extended by
|
|
36
|
+
|
|
37
|
+
- [`ThenableReference`](#thenablereference)
|
|
38
|
+
|
|
39
|
+
#### Properties
|
|
40
|
+
|
|
41
|
+
| Property | Modifier | Type |
|
|
42
|
+
| :------ | :------ | :------ |
|
|
43
|
+
| <a id="key"></a> `key` | `readonly` | `string` |
|
|
44
|
+
| <a id="parent"></a> `parent` | `readonly` | [`DatabaseReference`](#databasereference) |
|
|
45
|
+
| <a id="root"></a> `root` | `readonly` | [`DatabaseReference`](#databasereference) |
|
|
46
|
+
|
|
47
|
+
#### Methods
|
|
48
|
+
|
|
49
|
+
<a id="tostring"></a>
|
|
50
|
+
|
|
51
|
+
##### toString()
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
toString(): string;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
###### Returns
|
|
58
|
+
|
|
59
|
+
`string`
|
|
60
|
+
|
|
61
|
+
***
|
|
62
|
+
|
|
63
|
+
<a id="datasnapshot"></a>
|
|
64
|
+
|
|
65
|
+
### DataSnapshot
|
|
66
|
+
|
|
67
|
+
Lightweight `DataSnapshot` — matches the subset of
|
|
68
|
+
`firebase/database`'s `DataSnapshot` we surface synchronously on a
|
|
69
|
+
`get()`. Methods are the load-bearing ones (`val`, `exists`, `key`,
|
|
70
|
+
`child`) plus a few utilities consumer code routinely reads.
|
|
71
|
+
|
|
72
|
+
#### Properties
|
|
73
|
+
|
|
74
|
+
| Property | Modifier | Type | Description |
|
|
75
|
+
| :------ | :------ | :------ | :------ |
|
|
76
|
+
| <a id="key-1"></a> `key` | `readonly` | `string` | - |
|
|
77
|
+
| <a id="priority"></a> `priority` | `readonly` | `string` \| `number` | The node's priority, or `null`. The sandbox does not model RTDB's priority values, so this is always `null`, matching the common case (no `.priority` set). Mirrors `api/Reference_impl.ts:312`. |
|
|
78
|
+
| <a id="ref"></a> `ref` | `readonly` | [`DatabaseReference`](#databasereference) | The ref the snap was taken from. |
|
|
79
|
+
| <a id="size"></a> `size` | `readonly` | `number` | Number of child properties of this snapshot. A getter (NOT a `numChildren()` method — that was the legacy namespaced API). Locked by oracle `rtdb-modular-get-snapshot-shape.json` (`hasSize: true, hasNumChildren: false`) + upstream `api/Reference_impl.ts:331-333`. |
|
|
80
|
+
|
|
81
|
+
#### Methods
|
|
82
|
+
|
|
83
|
+
<a id="child"></a>
|
|
84
|
+
|
|
85
|
+
##### child()
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
child(path: string): DataSnapshot;
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
###### Parameters
|
|
92
|
+
|
|
93
|
+
| Parameter | Type |
|
|
94
|
+
| :------ | :------ |
|
|
95
|
+
| `path` | `string` |
|
|
96
|
+
|
|
97
|
+
###### Returns
|
|
98
|
+
|
|
99
|
+
[`DataSnapshot`](#datasnapshot)
|
|
100
|
+
|
|
101
|
+
<a id="exists"></a>
|
|
102
|
+
|
|
103
|
+
##### exists()
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
exists(): boolean;
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
###### Returns
|
|
110
|
+
|
|
111
|
+
`boolean`
|
|
112
|
+
|
|
113
|
+
<a id="exportval"></a>
|
|
114
|
+
|
|
115
|
+
##### exportVal()
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
exportVal(): JsonValue;
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Like `val()` but includes priority info (for backups). With no
|
|
122
|
+
priority modeled, this equals `val()`. Mirrors
|
|
123
|
+
`api/Reference_impl.ts:374-376`.
|
|
124
|
+
|
|
125
|
+
###### Returns
|
|
126
|
+
|
|
127
|
+
[`JsonValue`](#jsonvalue)
|
|
128
|
+
|
|
129
|
+
<a id="foreach"></a>
|
|
130
|
+
|
|
131
|
+
##### forEach()
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
forEach(cb: (child: DataSnapshot) => boolean | void): boolean;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Iterate the snapshot's immediate children. The callback is invoked
|
|
138
|
+
with a child `DataSnapshot` for each child; return `true` to stop
|
|
139
|
+
iteration early (matches the `firebase/database` contract).
|
|
140
|
+
|
|
141
|
+
For a snapshot built from a [Query](#query), children are visited in
|
|
142
|
+
the order the query's `orderBy*` constraint computed — the windowed
|
|
143
|
+
+ filtered + limited sequence. For a plain ref snapshot, children
|
|
144
|
+
are visited in key-insertion order (V8 object iteration order; the
|
|
145
|
+
RTDB SDK does NOT guarantee an order on plain refs either).
|
|
146
|
+
|
|
147
|
+
###### Parameters
|
|
148
|
+
|
|
149
|
+
| Parameter | Type |
|
|
150
|
+
| :------ | :------ |
|
|
151
|
+
| `cb` | (`child`: [`DataSnapshot`](#datasnapshot)) => `boolean` \| `void` |
|
|
152
|
+
|
|
153
|
+
###### Returns
|
|
154
|
+
|
|
155
|
+
`boolean`
|
|
156
|
+
|
|
157
|
+
<a id="haschild"></a>
|
|
158
|
+
|
|
159
|
+
##### hasChild()
|
|
160
|
+
|
|
161
|
+
```ts
|
|
162
|
+
hasChild(path: string): boolean;
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
###### Parameters
|
|
166
|
+
|
|
167
|
+
| Parameter | Type |
|
|
168
|
+
| :------ | :------ |
|
|
169
|
+
| `path` | `string` |
|
|
170
|
+
|
|
171
|
+
###### Returns
|
|
172
|
+
|
|
173
|
+
`boolean`
|
|
174
|
+
|
|
175
|
+
<a id="haschildren"></a>
|
|
176
|
+
|
|
177
|
+
##### hasChildren()
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
hasChildren(): boolean;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
###### Returns
|
|
184
|
+
|
|
185
|
+
`boolean`
|
|
186
|
+
|
|
187
|
+
<a id="tojson"></a>
|
|
188
|
+
|
|
189
|
+
##### toJSON()
|
|
190
|
+
|
|
191
|
+
```ts
|
|
192
|
+
toJSON(): JsonValue;
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
###### Returns
|
|
196
|
+
|
|
197
|
+
[`JsonValue`](#jsonvalue)
|
|
198
|
+
|
|
199
|
+
<a id="val"></a>
|
|
200
|
+
|
|
201
|
+
##### val()
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
val(): JsonValue;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
###### Returns
|
|
208
|
+
|
|
209
|
+
[`JsonValue`](#jsonvalue)
|
|
210
|
+
|
|
211
|
+
***
|
|
212
|
+
|
|
213
|
+
<a id="query"></a>
|
|
214
|
+
|
|
215
|
+
### Query
|
|
216
|
+
|
|
217
|
+
RTDB-shaped Query — a ref + an immutable constraint chain. Mirrors
|
|
218
|
+
`firebase/database`'s `Query` for the subset of methods the modular
|
|
219
|
+
SDK uses idiomatically.
|
|
220
|
+
|
|
221
|
+
Construct with [query](#query-1); pass to [get](#get) or [onValue](#onvalue).
|
|
222
|
+
|
|
223
|
+
#### Properties
|
|
224
|
+
|
|
225
|
+
| Property | Modifier | Type | Description |
|
|
226
|
+
| :------ | :------ | :------ | :------ |
|
|
227
|
+
| <a id="query_symbol"></a> `[QUERY_SYMBOL]` | `readonly` | `true` | - |
|
|
228
|
+
| <a id="ref-1"></a> `ref` | `readonly` | [`DatabaseReference`](#databasereference) | The Query's location. Used by `query()` chaining + listener fan-out. |
|
|
229
|
+
|
|
230
|
+
#### Methods
|
|
231
|
+
|
|
232
|
+
<a id="tostring-2"></a>
|
|
233
|
+
|
|
234
|
+
##### toString()
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
toString(): string;
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Resolves to the same URL the ref would.
|
|
241
|
+
|
|
242
|
+
###### Returns
|
|
243
|
+
|
|
244
|
+
`string`
|
|
245
|
+
|
|
246
|
+
***
|
|
247
|
+
|
|
248
|
+
<a id="queryconstraint"></a>
|
|
249
|
+
|
|
250
|
+
### QueryConstraint
|
|
251
|
+
|
|
252
|
+
Opaque constraint produced by `orderByChild` / `equalTo` / `limitToFirst`
|
|
253
|
+
etc. Pass to [query](#query-1).
|
|
254
|
+
|
|
255
|
+
#### Properties
|
|
256
|
+
|
|
257
|
+
| Property | Modifier | Type | Description |
|
|
258
|
+
| :------ | :------ | :------ | :------ |
|
|
259
|
+
| <a id="constraint_symbol"></a> `[CONSTRAINT_SYMBOL]` | `readonly` | `Constraint` | - |
|
|
260
|
+
| <a id="type"></a> `type` | `readonly` | \| `"orderByChild"` \| `"orderByKey"` \| `"orderByValue"` \| `"startAt"` \| `"startAfter"` \| `"endAt"` \| `"endBefore"` \| `"equalTo"` \| `"limitToFirst"` \| `"limitToLast"` | The constraint's variant — surfaces as the SDK's `QueryConstraintType` strings. |
|
|
261
|
+
|
|
262
|
+
***
|
|
263
|
+
|
|
264
|
+
<a id="thenablereference"></a>
|
|
265
|
+
|
|
266
|
+
### ThenableReference
|
|
267
|
+
|
|
268
|
+
The return type of [push](#push) — a regular [DatabaseReference](#databasereference)
|
|
269
|
+
with `.then` / `.catch` attached so it can be `await`ed. Mirrors
|
|
270
|
+
`firebase/database`'s `ThenableReference` (`api/Reference_impl.ts:569`).
|
|
271
|
+
|
|
272
|
+
Critical (DB-B7): the ref + its `.key` are available SYNCHRONOUSLY —
|
|
273
|
+
the key is minted client-side. The promise covers only the optional
|
|
274
|
+
value write; a rules-denied write rejects the promise (it does NOT
|
|
275
|
+
throw synchronously and lose the key). Oracle:
|
|
276
|
+
`rtdb-push-autoid-format.json`.
|
|
277
|
+
|
|
278
|
+
#### Extends
|
|
279
|
+
|
|
280
|
+
- [`DatabaseReference`](#databasereference)
|
|
281
|
+
|
|
282
|
+
#### Properties
|
|
283
|
+
|
|
284
|
+
| Property | Modifier | Type |
|
|
285
|
+
| :------ | :------ | :------ |
|
|
286
|
+
| <a id="key-2"></a> `key` | `readonly` | `string` |
|
|
287
|
+
| <a id="parent-1"></a> `parent` | `readonly` | [`DatabaseReference`](#databasereference) |
|
|
288
|
+
| <a id="root-1"></a> `root` | `readonly` | [`DatabaseReference`](#databasereference) |
|
|
289
|
+
|
|
290
|
+
#### Methods
|
|
291
|
+
|
|
292
|
+
<a id="catch"></a>
|
|
293
|
+
|
|
294
|
+
##### catch()
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
catch<TResult>(onrejected?: (reason: unknown) => TResult | PromiseLike<TResult>): Promise<DatabaseReference | TResult>;
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
###### Type Parameters
|
|
301
|
+
|
|
302
|
+
| Type Parameter | Default type |
|
|
303
|
+
| :------ | :------ |
|
|
304
|
+
| `TResult` | `never` |
|
|
305
|
+
|
|
306
|
+
###### Parameters
|
|
307
|
+
|
|
308
|
+
| Parameter | Type |
|
|
309
|
+
| :------ | :------ |
|
|
310
|
+
| `onrejected?` | (`reason`: `unknown`) => `TResult` \| `PromiseLike`\<`TResult`\> |
|
|
311
|
+
|
|
312
|
+
###### Returns
|
|
313
|
+
|
|
314
|
+
`Promise`\<[`DatabaseReference`](#databasereference) \| `TResult`\>
|
|
315
|
+
|
|
316
|
+
<a id="then"></a>
|
|
317
|
+
|
|
318
|
+
##### then()
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
then<TResult1, TResult2>(onfulfilled?: (value: DatabaseReference) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: unknown) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
###### Type Parameters
|
|
325
|
+
|
|
326
|
+
| Type Parameter | Default type |
|
|
327
|
+
| :------ | :------ |
|
|
328
|
+
| `TResult1` | [`DatabaseReference`](#databasereference) |
|
|
329
|
+
| `TResult2` | `never` |
|
|
330
|
+
|
|
331
|
+
###### Parameters
|
|
332
|
+
|
|
333
|
+
| Parameter | Type |
|
|
334
|
+
| :------ | :------ |
|
|
335
|
+
| `onfulfilled?` | (`value`: [`DatabaseReference`](#databasereference)) => `TResult1` \| `PromiseLike`\<`TResult1`\> |
|
|
336
|
+
| `onrejected?` | (`reason`: `unknown`) => `TResult2` \| `PromiseLike`\<`TResult2`\> |
|
|
337
|
+
|
|
338
|
+
###### Returns
|
|
339
|
+
|
|
340
|
+
`Promise`\<`TResult1` \| `TResult2`\>
|
|
341
|
+
|
|
342
|
+
<a id="tostring-4"></a>
|
|
343
|
+
|
|
344
|
+
##### toString()
|
|
345
|
+
|
|
346
|
+
```ts
|
|
347
|
+
toString(): string;
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
###### Returns
|
|
351
|
+
|
|
352
|
+
`string`
|
|
353
|
+
|
|
354
|
+
###### Inherited from
|
|
355
|
+
|
|
356
|
+
[`DatabaseReference`](#databasereference).[`toString`](#tostring)
|
|
357
|
+
|
|
358
|
+
***
|
|
359
|
+
|
|
360
|
+
<a id="transactionresult"></a>
|
|
361
|
+
|
|
362
|
+
### TransactionResult
|
|
363
|
+
|
|
364
|
+
Result of [runTransaction](#runtransaction). Matches `firebase/database`'s
|
|
365
|
+
`TransactionResult` for the fields agent / playground code reads
|
|
366
|
+
idiomatically.
|
|
367
|
+
|
|
368
|
+
`committed === false` when the update fn aborted by returning
|
|
369
|
+
`undefined`. The snapshot still resolves — it reflects the **pre-
|
|
370
|
+
transaction** value (oracle:
|
|
371
|
+
`rtdb-modular-runtransaction-abort-undefined.json` →
|
|
372
|
+
`afterValOnServer: 100` preserved).
|
|
373
|
+
|
|
374
|
+
On rule denial the promise rejects with a plain `Error` whose
|
|
375
|
+
`message === 'permission_denied'` (lowercase, no `.code`); see
|
|
376
|
+
`rtdb-modular-runtransaction-on-rules-denied-path.json`.
|
|
377
|
+
|
|
378
|
+
#### Properties
|
|
379
|
+
|
|
380
|
+
| Property | Modifier | Type |
|
|
381
|
+
| :------ | :------ | :------ |
|
|
382
|
+
| <a id="committed"></a> `committed` | `readonly` | `boolean` |
|
|
383
|
+
| <a id="snapshot"></a> `snapshot` | `readonly` | [`DataSnapshot`](#datasnapshot) |
|
|
384
|
+
|
|
385
|
+
## Type Aliases
|
|
386
|
+
|
|
387
|
+
<a id="appdatabase"></a>
|
|
388
|
+
|
|
389
|
+
### AppDatabase
|
|
390
|
+
|
|
391
|
+
```ts
|
|
392
|
+
type AppDatabase = Database & {
|
|
393
|
+
app: FirebaseApp;
|
|
394
|
+
};
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Database handle returned by Firebase-shaped app overloads.
|
|
398
|
+
|
|
399
|
+
#### Type Declaration
|
|
400
|
+
|
|
401
|
+
##### app
|
|
402
|
+
|
|
403
|
+
```ts
|
|
404
|
+
readonly app: FirebaseApp;
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
***
|
|
408
|
+
|
|
409
|
+
<a id="jsonvalue"></a>
|
|
410
|
+
|
|
411
|
+
### JsonValue
|
|
412
|
+
|
|
413
|
+
```ts
|
|
414
|
+
type JsonValue =
|
|
415
|
+
| null
|
|
416
|
+
| boolean
|
|
417
|
+
| number
|
|
418
|
+
| string
|
|
419
|
+
| JsonValue[]
|
|
420
|
+
| {
|
|
421
|
+
[key: string]: JsonValue;
|
|
422
|
+
};
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
RTDB-shaped in-memory JSON tree.
|
|
426
|
+
|
|
427
|
+
The data layer for the modular SDK's sandbox target. RTDB stores a
|
|
428
|
+
single nested JSON tree; reads name a path and walk; writes either
|
|
429
|
+
replace a subtree (`set`) or merge top-level keys (`update`).
|
|
430
|
+
|
|
431
|
+
Path semantics (matches `firebase/database`):
|
|
432
|
+
- `'/'` is the root.
|
|
433
|
+
- Leading + trailing slashes are stripped; empty segments are
|
|
434
|
+
ignored.
|
|
435
|
+
- `null` at any level erases that subtree. Locked by oracle
|
|
436
|
+
observation
|
|
437
|
+
`packages/conformance/observations/rtdb/rtdb-remove-vs-set-null.json` which
|
|
438
|
+
says `set(ref, null)` and `remove(ref)` produce equivalent end
|
|
439
|
+
states.
|
|
440
|
+
- A read of an absent path returns `null` (NOT an error). Matches
|
|
441
|
+
the `DataSnapshot.val()` contract.
|
|
442
|
+
|
|
443
|
+
Trimming: when a write or delete leaves a sibling-less empty branch,
|
|
444
|
+
the empty branch is removed. RTDB's documented invariant: "Empty
|
|
445
|
+
nodes don't exist". The crawl + listener layers count on this so
|
|
446
|
+
`exists()` and `hasChildren()` match prod.
|
|
447
|
+
|
|
448
|
+
This module is identity-agnostic — rules evaluation happens in
|
|
449
|
+
`local-environment.ts`. The tree just stores bytes.
|
|
450
|
+
|
|
451
|
+
***
|
|
452
|
+
|
|
453
|
+
<a id="sandbox"></a>
|
|
454
|
+
|
|
455
|
+
### Sandbox
|
|
456
|
+
|
|
457
|
+
```ts
|
|
458
|
+
type Sandbox = any;
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
***
|
|
462
|
+
|
|
463
|
+
<a id="unsubscribe"></a>
|
|
464
|
+
|
|
465
|
+
### Unsubscribe()
|
|
466
|
+
|
|
467
|
+
```ts
|
|
468
|
+
type Unsubscribe = () => void;
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
#### Returns
|
|
472
|
+
|
|
473
|
+
`void`
|
|
474
|
+
|
|
475
|
+
## Variables
|
|
476
|
+
|
|
477
|
+
<a id="query_symbol-1"></a>
|
|
478
|
+
|
|
479
|
+
### QUERY\_SYMBOL
|
|
480
|
+
|
|
481
|
+
```ts
|
|
482
|
+
const QUERY_SYMBOL: unique symbol;
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Hidden brand on every [Query](#query) (and on every QueryConstraint).
|
|
486
|
+
Distinct from `TARGET_SYMBOL`; this brand is only used to dispatch
|
|
487
|
+
`get` / `onValue` between plain refs and query-wrapped refs.
|
|
488
|
+
|
|
489
|
+
***
|
|
490
|
+
|
|
491
|
+
<a id="sandbox-1"></a>
|
|
492
|
+
|
|
493
|
+
### sandbox
|
|
494
|
+
|
|
495
|
+
```ts
|
|
496
|
+
const sandbox: {
|
|
497
|
+
setData: void;
|
|
498
|
+
setRules: void;
|
|
499
|
+
snapshotState: JsonValue;
|
|
500
|
+
};
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
#### Type Declaration
|
|
504
|
+
|
|
505
|
+
<a id="setdata"></a>
|
|
506
|
+
|
|
507
|
+
##### setData()
|
|
508
|
+
|
|
509
|
+
```ts
|
|
510
|
+
setData(db: Database, data: Record<string, unknown>): void;
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
Bulk-load data bypassing rules. The supplied map's keys are
|
|
514
|
+
absolute paths (`'/users/alice'`) and the values land at those
|
|
515
|
+
paths. Convenient for test fixtures.
|
|
516
|
+
|
|
517
|
+
###### Parameters
|
|
518
|
+
|
|
519
|
+
| Parameter | Type |
|
|
520
|
+
| :------ | :------ |
|
|
521
|
+
| `db` | [`Database`](#database) |
|
|
522
|
+
| `data` | `Record`\<`string`, `unknown`\> |
|
|
523
|
+
|
|
524
|
+
###### Returns
|
|
525
|
+
|
|
526
|
+
`void`
|
|
527
|
+
|
|
528
|
+
<a id="setrules"></a>
|
|
529
|
+
|
|
530
|
+
##### setRules()
|
|
531
|
+
|
|
532
|
+
```ts
|
|
533
|
+
setRules(db: Database, rulesJson: {
|
|
534
|
+
rules: Record<string, unknown>;
|
|
535
|
+
}): void;
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
Replace deployed rules. Pass `null` to clear (sandbox returns to
|
|
539
|
+
default-allow). Rules are evaluated through the existing
|
|
540
|
+
RTDB rules simulator — the same engine used by the rules tooling.
|
|
541
|
+
|
|
542
|
+
###### Parameters
|
|
543
|
+
|
|
544
|
+
| Parameter | Type |
|
|
545
|
+
| :------ | :------ |
|
|
546
|
+
| `db` | [`Database`](#database) |
|
|
547
|
+
| `rulesJson` | \{ `rules`: `Record`\<`string`, `unknown`\>; \} |
|
|
548
|
+
| `rulesJson.rules` | `Record`\<`string`, `unknown`\> |
|
|
549
|
+
|
|
550
|
+
###### Returns
|
|
551
|
+
|
|
552
|
+
`void`
|
|
553
|
+
|
|
554
|
+
###### Example
|
|
555
|
+
|
|
556
|
+
```ts
|
|
557
|
+
sandbox.setRules(db, {
|
|
558
|
+
rules: {
|
|
559
|
+
'.read': 'auth != null',
|
|
560
|
+
'.write': 'auth != null',
|
|
561
|
+
},
|
|
562
|
+
});
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
<a id="snapshotstate"></a>
|
|
566
|
+
|
|
567
|
+
##### snapshotState()
|
|
568
|
+
|
|
569
|
+
```ts
|
|
570
|
+
snapshotState(db: Database): JsonValue;
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
Snapshot the full sandbox tree (rule-bypass read). Usually a keyed
|
|
574
|
+
object; may be a primitive when the root holds one (DB-B13).
|
|
575
|
+
|
|
576
|
+
###### Parameters
|
|
577
|
+
|
|
578
|
+
| Parameter | Type |
|
|
579
|
+
| :------ | :------ |
|
|
580
|
+
| `db` | [`Database`](#database) |
|
|
581
|
+
|
|
582
|
+
###### Returns
|
|
583
|
+
|
|
584
|
+
[`JsonValue`](#jsonvalue)
|
|
585
|
+
|
|
586
|
+
***
|
|
587
|
+
|
|
588
|
+
<a id="target_symbol-1"></a>
|
|
589
|
+
|
|
590
|
+
### TARGET\_SYMBOL
|
|
591
|
+
|
|
592
|
+
```ts
|
|
593
|
+
const TARGET_SYMBOL: unique symbol;
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
Hidden brand on every [Database](#database) handle.
|
|
597
|
+
|
|
598
|
+
## Functions
|
|
599
|
+
|
|
600
|
+
<a id="child-2"></a>
|
|
601
|
+
|
|
602
|
+
### child()
|
|
603
|
+
|
|
604
|
+
```ts
|
|
605
|
+
function child(parent: DatabaseReference, path: string): DatabaseReference;
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
Sub-path constructor. `child(ref, 'sub/path')` returns a ref at
|
|
609
|
+
`<ref>/sub/path`.
|
|
610
|
+
|
|
611
|
+
Mirrors `firebase/database`'s `child(parent, path)` — leading +
|
|
612
|
+
empty segments stripped; the result inherits the parent's target.
|
|
613
|
+
|
|
614
|
+
#### Parameters
|
|
615
|
+
|
|
616
|
+
| Parameter | Type |
|
|
617
|
+
| :------ | :------ |
|
|
618
|
+
| `parent` | [`DatabaseReference`](#databasereference) |
|
|
619
|
+
| `path` | `string` |
|
|
620
|
+
|
|
621
|
+
#### Returns
|
|
622
|
+
|
|
623
|
+
[`DatabaseReference`](#databasereference)
|
|
624
|
+
|
|
625
|
+
***
|
|
626
|
+
|
|
627
|
+
<a id="connectdatabaseemulator"></a>
|
|
628
|
+
|
|
629
|
+
### connectDatabaseEmulator()
|
|
630
|
+
|
|
631
|
+
```ts
|
|
632
|
+
function connectDatabaseEmulator(
|
|
633
|
+
_db: Database,
|
|
634
|
+
_host: string,
|
|
635
|
+
_port: number,
|
|
636
|
+
_options?: {
|
|
637
|
+
mockUserToken?: string | Record<string, unknown>;
|
|
638
|
+
}): void;
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
`connectDatabaseEmulator(db, host, port)` is an accepted no-op because the
|
|
642
|
+
selected backend already is the local sandbox.
|
|
643
|
+
|
|
644
|
+
#### Parameters
|
|
645
|
+
|
|
646
|
+
| Parameter | Type |
|
|
647
|
+
| :------ | :------ |
|
|
648
|
+
| `_db` | [`Database`](#database) |
|
|
649
|
+
| `_host` | `string` |
|
|
650
|
+
| `_port` | `number` |
|
|
651
|
+
| `_options?` | \{ `mockUserToken?`: `string` \| `Record`\<`string`, `unknown`\>; \} |
|
|
652
|
+
| `_options.mockUserToken?` | `string` \| `Record`\<`string`, `unknown`\> |
|
|
653
|
+
|
|
654
|
+
#### Returns
|
|
655
|
+
|
|
656
|
+
`void`
|
|
657
|
+
|
|
658
|
+
***
|
|
659
|
+
|
|
660
|
+
<a id="enablelogging"></a>
|
|
661
|
+
|
|
662
|
+
### enableLogging()
|
|
663
|
+
|
|
664
|
+
```ts
|
|
665
|
+
function enableLogging(logger?: boolean | (message: string) => void, persistent?: boolean): void;
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
`enableLogging(logger?, persistent?)` — toggle RTDB SDK logging.
|
|
669
|
+
|
|
670
|
+
Accepted no-op: the sandbox has no modular-SDK-style logger to wire a
|
|
671
|
+
level/sink into (it uses host-level `console` logging directly, gated
|
|
672
|
+
by `pyric dev`'s own flags — matching `pyric/firestore`'s
|
|
673
|
+
`setLogLevel`). Accepted so init code that calls it compiles + runs.
|
|
674
|
+
|
|
675
|
+
#### Parameters
|
|
676
|
+
|
|
677
|
+
| Parameter | Type |
|
|
678
|
+
| :------ | :------ |
|
|
679
|
+
| `logger?` | `boolean` \| (`message`: `string`) => `void` |
|
|
680
|
+
| `persistent?` | `boolean` |
|
|
681
|
+
|
|
682
|
+
#### Returns
|
|
683
|
+
|
|
684
|
+
`void`
|
|
685
|
+
|
|
686
|
+
***
|
|
687
|
+
|
|
688
|
+
<a id="endat"></a>
|
|
689
|
+
|
|
690
|
+
### endAt()
|
|
691
|
+
|
|
692
|
+
```ts
|
|
693
|
+
function endAt(value: JsonValue, key?: string): QueryConstraint;
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
`endAt(value, key?)` — INCLUSIVE upper bound. Adjacent to startAt;
|
|
697
|
+
same key tie-breaker semantics.
|
|
698
|
+
|
|
699
|
+
#### Parameters
|
|
700
|
+
|
|
701
|
+
| Parameter | Type |
|
|
702
|
+
| :------ | :------ |
|
|
703
|
+
| `value` | [`JsonValue`](#jsonvalue) |
|
|
704
|
+
| `key?` | `string` |
|
|
705
|
+
|
|
706
|
+
#### Returns
|
|
707
|
+
|
|
708
|
+
[`QueryConstraint`](#queryconstraint)
|
|
709
|
+
|
|
710
|
+
***
|
|
711
|
+
|
|
712
|
+
<a id="endbefore"></a>
|
|
713
|
+
|
|
714
|
+
### endBefore()
|
|
715
|
+
|
|
716
|
+
```ts
|
|
717
|
+
function endBefore(value: JsonValue, key?: string): QueryConstraint;
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
`endBefore(value, key?)` — EXCLUSIVE upper bound. Locked by
|
|
721
|
+
`rtdb-modular-startafter-endbefore-exclusive.json`.
|
|
722
|
+
|
|
723
|
+
#### Parameters
|
|
724
|
+
|
|
725
|
+
| Parameter | Type |
|
|
726
|
+
| :------ | :------ |
|
|
727
|
+
| `value` | [`JsonValue`](#jsonvalue) |
|
|
728
|
+
| `key?` | `string` |
|
|
729
|
+
|
|
730
|
+
#### Returns
|
|
731
|
+
|
|
732
|
+
[`QueryConstraint`](#queryconstraint)
|
|
733
|
+
|
|
734
|
+
***
|
|
735
|
+
|
|
736
|
+
<a id="equalto"></a>
|
|
737
|
+
|
|
738
|
+
### equalTo()
|
|
739
|
+
|
|
740
|
+
```ts
|
|
741
|
+
function equalTo(value: JsonValue, key?: string): QueryConstraint;
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
`equalTo(value, key?)` — sugar for `startAt(value, key) +
|
|
745
|
+
endAt(value, key)`. Returns ALL matching children (no uniqueness).
|
|
746
|
+
Locked by oracle observation `rtdb-modular-equalTo-filter.json`.
|
|
747
|
+
|
|
748
|
+
#### Parameters
|
|
749
|
+
|
|
750
|
+
| Parameter | Type |
|
|
751
|
+
| :------ | :------ |
|
|
752
|
+
| `value` | [`JsonValue`](#jsonvalue) |
|
|
753
|
+
| `key?` | `string` |
|
|
754
|
+
|
|
755
|
+
#### Returns
|
|
756
|
+
|
|
757
|
+
[`QueryConstraint`](#queryconstraint)
|
|
758
|
+
|
|
759
|
+
***
|
|
760
|
+
|
|
761
|
+
<a id="forcelongpolling"></a>
|
|
762
|
+
|
|
763
|
+
### forceLongPolling()
|
|
764
|
+
|
|
765
|
+
```ts
|
|
766
|
+
function forceLongPolling(): void;
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
`forceLongPolling()` — force the long-polling transport for all
|
|
770
|
+
subsequent `getDatabase` connections.
|
|
771
|
+
|
|
772
|
+
No-op: transport selection is meaningless to the in-process/worker
|
|
773
|
+
sandbox, which never opens a real socket. Accepted so init code that
|
|
774
|
+
calls it unconditionally compiles + runs.
|
|
775
|
+
|
|
776
|
+
#### Returns
|
|
777
|
+
|
|
778
|
+
`void`
|
|
779
|
+
|
|
780
|
+
***
|
|
781
|
+
|
|
782
|
+
<a id="forcewebsockets"></a>
|
|
783
|
+
|
|
784
|
+
### forceWebSockets()
|
|
785
|
+
|
|
786
|
+
```ts
|
|
787
|
+
function forceWebSockets(): void;
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
`forceWebSockets()` — force the WebSocket transport for all
|
|
791
|
+
subsequent `getDatabase` connections.
|
|
792
|
+
|
|
793
|
+
No-op: transport selection is not applicable to the in-process/worker
|
|
794
|
+
sandbox (see [forceLongPolling](#forcelongpolling)).
|
|
795
|
+
|
|
796
|
+
#### Returns
|
|
797
|
+
|
|
798
|
+
`void`
|
|
799
|
+
|
|
800
|
+
***
|
|
801
|
+
|
|
802
|
+
<a id="get"></a>
|
|
803
|
+
|
|
804
|
+
### get()
|
|
805
|
+
|
|
806
|
+
```ts
|
|
807
|
+
function get(r: DatabaseReference | Query): Promise<DataSnapshot>;
|
|
808
|
+
```
|
|
809
|
+
|
|
810
|
+
`get(ref)` — one-shot read at the ref's path. Resolves to a
|
|
811
|
+
`DataSnapshot`-shaped object.
|
|
812
|
+
|
|
813
|
+
Runs through the sandbox rule engine; denial throws the plain-`Error`
|
|
814
|
+
shape locked by the oracle.
|
|
815
|
+
|
|
816
|
+
Absent path → `snap.val() === null && snap.exists() === false`.
|
|
817
|
+
Matches the SDK's `DataSnapshot.val()` contract.
|
|
818
|
+
|
|
819
|
+
#### Parameters
|
|
820
|
+
|
|
821
|
+
| Parameter | Type |
|
|
822
|
+
| :------ | :------ |
|
|
823
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
824
|
+
|
|
825
|
+
#### Returns
|
|
826
|
+
|
|
827
|
+
`Promise`\<[`DataSnapshot`](#datasnapshot)\>
|
|
828
|
+
|
|
829
|
+
***
|
|
830
|
+
|
|
831
|
+
<a id="getadmindatabase"></a>
|
|
832
|
+
|
|
833
|
+
### getAdminDatabase()
|
|
834
|
+
|
|
835
|
+
#### Call Signature
|
|
836
|
+
|
|
837
|
+
```ts
|
|
838
|
+
function getAdminDatabase(sandbox: Sandbox): Database;
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
|
|
842
|
+
`getAdminFirestore(sandbox)` for Studio/Playground data browsers and
|
|
843
|
+
controlled admin tools.
|
|
844
|
+
|
|
845
|
+
##### Parameters
|
|
846
|
+
|
|
847
|
+
| Parameter | Type |
|
|
848
|
+
| :------ | :------ |
|
|
849
|
+
| `sandbox` | `Sandbox` |
|
|
850
|
+
|
|
851
|
+
##### Returns
|
|
852
|
+
|
|
853
|
+
[`Database`](#database)
|
|
854
|
+
|
|
855
|
+
#### Call Signature
|
|
856
|
+
|
|
857
|
+
```ts
|
|
858
|
+
function getAdminDatabase(ctx: SandboxContext): Database;
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
|
|
862
|
+
`getAdminFirestore(sandbox)` for Studio/Playground data browsers and
|
|
863
|
+
controlled admin tools.
|
|
864
|
+
|
|
865
|
+
##### Parameters
|
|
866
|
+
|
|
867
|
+
| Parameter | Type |
|
|
868
|
+
| :------ | :------ |
|
|
869
|
+
| `ctx` | `SandboxContext` |
|
|
870
|
+
|
|
871
|
+
##### Returns
|
|
872
|
+
|
|
873
|
+
[`Database`](#database)
|
|
874
|
+
|
|
875
|
+
#### Call Signature
|
|
876
|
+
|
|
877
|
+
```ts
|
|
878
|
+
function getAdminDatabase(app: FirebaseApp): Database;
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
|
|
882
|
+
`getAdminFirestore(sandbox)` for Studio/Playground data browsers and
|
|
883
|
+
controlled admin tools.
|
|
884
|
+
|
|
885
|
+
##### Parameters
|
|
886
|
+
|
|
887
|
+
| Parameter | Type |
|
|
888
|
+
| :------ | :------ |
|
|
889
|
+
| `app` | `FirebaseApp` |
|
|
890
|
+
|
|
891
|
+
##### Returns
|
|
892
|
+
|
|
893
|
+
[`Database`](#database)
|
|
894
|
+
|
|
895
|
+
***
|
|
896
|
+
|
|
897
|
+
<a id="getdatabase"></a>
|
|
898
|
+
|
|
899
|
+
### getDatabase()
|
|
900
|
+
|
|
901
|
+
#### Call Signature
|
|
902
|
+
|
|
903
|
+
```ts
|
|
904
|
+
function getDatabase(ctx: SandboxContext): Database;
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
Build a sandbox Database handle:
|
|
908
|
+
|
|
909
|
+
- `SandboxContext` → sandbox-backed, frozen identity.
|
|
910
|
+
- `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
|
|
911
|
+
|
|
912
|
+
##### Parameters
|
|
913
|
+
|
|
914
|
+
| Parameter | Type |
|
|
915
|
+
| :------ | :------ |
|
|
916
|
+
| `ctx` | `SandboxContext` |
|
|
917
|
+
|
|
918
|
+
##### Returns
|
|
919
|
+
|
|
920
|
+
[`Database`](#database)
|
|
921
|
+
|
|
922
|
+
##### Example
|
|
923
|
+
|
|
924
|
+
```ts
|
|
925
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
926
|
+
import { getDatabase, ref, set, get } from 'pyric/database';
|
|
927
|
+
|
|
928
|
+
const sandbox = initializeSandbox();
|
|
929
|
+
const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
|
|
930
|
+
await set(ref(db, 'greetings/hello'), { text: 'hi' });
|
|
931
|
+
const snap = await get(ref(db, 'greetings/hello'));
|
|
932
|
+
console.log(snap.val()); // { text: 'hi' }
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
#### Call Signature
|
|
936
|
+
|
|
937
|
+
```ts
|
|
938
|
+
function getDatabase(sandbox: Sandbox): Database;
|
|
939
|
+
```
|
|
940
|
+
|
|
941
|
+
Build a sandbox Database handle:
|
|
942
|
+
|
|
943
|
+
- `SandboxContext` → sandbox-backed, frozen identity.
|
|
944
|
+
- `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
|
|
945
|
+
|
|
946
|
+
##### Parameters
|
|
947
|
+
|
|
948
|
+
| Parameter | Type |
|
|
949
|
+
| :------ | :------ |
|
|
950
|
+
| `sandbox` | `Sandbox` |
|
|
951
|
+
|
|
952
|
+
##### Returns
|
|
953
|
+
|
|
954
|
+
[`Database`](#database)
|
|
955
|
+
|
|
956
|
+
##### Example
|
|
957
|
+
|
|
958
|
+
```ts
|
|
959
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
960
|
+
import { getDatabase, ref, set, get } from 'pyric/database';
|
|
961
|
+
|
|
962
|
+
const sandbox = initializeSandbox();
|
|
963
|
+
const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
|
|
964
|
+
await set(ref(db, 'greetings/hello'), { text: 'hi' });
|
|
965
|
+
const snap = await get(ref(db, 'greetings/hello'));
|
|
966
|
+
console.log(snap.val()); // { text: 'hi' }
|
|
967
|
+
```
|
|
968
|
+
|
|
969
|
+
#### Call Signature
|
|
970
|
+
|
|
971
|
+
```ts
|
|
972
|
+
function getDatabase(app: FirebaseApp): AppDatabase;
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
Build a sandbox Database handle:
|
|
976
|
+
|
|
977
|
+
- `SandboxContext` → sandbox-backed, frozen identity.
|
|
978
|
+
- `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
|
|
979
|
+
|
|
980
|
+
##### Parameters
|
|
981
|
+
|
|
982
|
+
| Parameter | Type |
|
|
983
|
+
| :------ | :------ |
|
|
984
|
+
| `app` | `FirebaseApp` |
|
|
985
|
+
|
|
986
|
+
##### Returns
|
|
987
|
+
|
|
988
|
+
[`AppDatabase`](#appdatabase)
|
|
989
|
+
|
|
990
|
+
##### Example
|
|
991
|
+
|
|
992
|
+
```ts
|
|
993
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
994
|
+
import { getDatabase, ref, set, get } from 'pyric/database';
|
|
995
|
+
|
|
996
|
+
const sandbox = initializeSandbox();
|
|
997
|
+
const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
|
|
998
|
+
await set(ref(db, 'greetings/hello'), { text: 'hi' });
|
|
999
|
+
const snap = await get(ref(db, 'greetings/hello'));
|
|
1000
|
+
console.log(snap.val()); // { text: 'hi' }
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+
#### Call Signature
|
|
1004
|
+
|
|
1005
|
+
```ts
|
|
1006
|
+
function getDatabase(): AppDatabase;
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
Build a sandbox Database handle:
|
|
1010
|
+
|
|
1011
|
+
- `SandboxContext` → sandbox-backed, frozen identity.
|
|
1012
|
+
- `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
|
|
1013
|
+
|
|
1014
|
+
##### Returns
|
|
1015
|
+
|
|
1016
|
+
[`AppDatabase`](#appdatabase)
|
|
1017
|
+
|
|
1018
|
+
##### Example
|
|
1019
|
+
|
|
1020
|
+
```ts
|
|
1021
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
1022
|
+
import { getDatabase, ref, set, get } from 'pyric/database';
|
|
1023
|
+
|
|
1024
|
+
const sandbox = initializeSandbox();
|
|
1025
|
+
const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
|
|
1026
|
+
await set(ref(db, 'greetings/hello'), { text: 'hi' });
|
|
1027
|
+
const snap = await get(ref(db, 'greetings/hello'));
|
|
1028
|
+
console.log(snap.val()); // { text: 'hi' }
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
***
|
|
1032
|
+
|
|
1033
|
+
<a id="gooffline"></a>
|
|
1034
|
+
|
|
1035
|
+
### goOffline()
|
|
1036
|
+
|
|
1037
|
+
```ts
|
|
1038
|
+
function goOffline(_db: Database): void;
|
|
1039
|
+
```
|
|
1040
|
+
|
|
1041
|
+
`goOffline(db)` — disconnect the client from the RTDB backend.
|
|
1042
|
+
|
|
1043
|
+
No-op on sandbox handles: there is NO network connection in the local
|
|
1044
|
+
sandbox to toggle, so honest behavior is to accept the call and do
|
|
1045
|
+
nothing (we deliberately do NOT simulate a disconnect — pending
|
|
1046
|
+
writes, listeners, and `get()` all keep working exactly as before).
|
|
1047
|
+
|
|
1048
|
+
#### Parameters
|
|
1049
|
+
|
|
1050
|
+
| Parameter | Type |
|
|
1051
|
+
| :------ | :------ |
|
|
1052
|
+
| `_db` | [`Database`](#database) |
|
|
1053
|
+
|
|
1054
|
+
#### Returns
|
|
1055
|
+
|
|
1056
|
+
`void`
|
|
1057
|
+
|
|
1058
|
+
***
|
|
1059
|
+
|
|
1060
|
+
<a id="goonline"></a>
|
|
1061
|
+
|
|
1062
|
+
### goOnline()
|
|
1063
|
+
|
|
1064
|
+
```ts
|
|
1065
|
+
function goOnline(_db: Database): void;
|
|
1066
|
+
```
|
|
1067
|
+
|
|
1068
|
+
`goOnline(db)` — reconnect the client to the RTDB backend.
|
|
1069
|
+
|
|
1070
|
+
No-op on sandbox handles (there is no connection to reopen — see
|
|
1071
|
+
[goOffline](#gooffline)).
|
|
1072
|
+
|
|
1073
|
+
#### Parameters
|
|
1074
|
+
|
|
1075
|
+
| Parameter | Type |
|
|
1076
|
+
| :------ | :------ |
|
|
1077
|
+
| `_db` | [`Database`](#database) |
|
|
1078
|
+
|
|
1079
|
+
#### Returns
|
|
1080
|
+
|
|
1081
|
+
`void`
|
|
1082
|
+
|
|
1083
|
+
***
|
|
1084
|
+
|
|
1085
|
+
<a id="increment"></a>
|
|
1086
|
+
|
|
1087
|
+
### increment()
|
|
1088
|
+
|
|
1089
|
+
```ts
|
|
1090
|
+
function increment(delta: number): IncrementSentinel;
|
|
1091
|
+
```
|
|
1092
|
+
|
|
1093
|
+
`increment(delta)` — returns the `{ ".sv": { increment: delta } }`
|
|
1094
|
+
sentinel that atomically adds `delta` to the current value at the
|
|
1095
|
+
write's field. Starts from `0` when the field is absent or
|
|
1096
|
+
non-numeric (oracle: `rtdb-modular-increment-from-missing.json`).
|
|
1097
|
+
|
|
1098
|
+
The sandbox backend resolves it against the field's prior value at write
|
|
1099
|
+
time. Mirrors `firebase/database`'s `increment` (`api/ServerValue.ts:38-44`).
|
|
1100
|
+
|
|
1101
|
+
#### Parameters
|
|
1102
|
+
|
|
1103
|
+
| Parameter | Type |
|
|
1104
|
+
| :------ | :------ |
|
|
1105
|
+
| `delta` | `number` |
|
|
1106
|
+
|
|
1107
|
+
#### Returns
|
|
1108
|
+
|
|
1109
|
+
`IncrementSentinel`
|
|
1110
|
+
|
|
1111
|
+
***
|
|
1112
|
+
|
|
1113
|
+
<a id="limittofirst"></a>
|
|
1114
|
+
|
|
1115
|
+
### limitToFirst()
|
|
1116
|
+
|
|
1117
|
+
```ts
|
|
1118
|
+
function limitToFirst(n: number): QueryConstraint;
|
|
1119
|
+
```
|
|
1120
|
+
|
|
1121
|
+
`limitToFirst(n)` — keep the first N children of the ordered window.
|
|
1122
|
+
Locked by oracle observation `rtdb-modular-limittofirst-vs-limittolast.json`.
|
|
1123
|
+
|
|
1124
|
+
#### Parameters
|
|
1125
|
+
|
|
1126
|
+
| Parameter | Type |
|
|
1127
|
+
| :------ | :------ |
|
|
1128
|
+
| `n` | `number` |
|
|
1129
|
+
|
|
1130
|
+
#### Returns
|
|
1131
|
+
|
|
1132
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1133
|
+
|
|
1134
|
+
***
|
|
1135
|
+
|
|
1136
|
+
<a id="limittolast"></a>
|
|
1137
|
+
|
|
1138
|
+
### limitToLast()
|
|
1139
|
+
|
|
1140
|
+
```ts
|
|
1141
|
+
function limitToLast(n: number): QueryConstraint;
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
`limitToLast(n)` — keep the last N children of the ordered window.
|
|
1145
|
+
Locked by oracle observation `rtdb-modular-limittofirst-vs-limittolast.json`.
|
|
1146
|
+
|
|
1147
|
+
#### Parameters
|
|
1148
|
+
|
|
1149
|
+
| Parameter | Type |
|
|
1150
|
+
| :------ | :------ |
|
|
1151
|
+
| `n` | `number` |
|
|
1152
|
+
|
|
1153
|
+
#### Returns
|
|
1154
|
+
|
|
1155
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1156
|
+
|
|
1157
|
+
***
|
|
1158
|
+
|
|
1159
|
+
<a id="off"></a>
|
|
1160
|
+
|
|
1161
|
+
### off()
|
|
1162
|
+
|
|
1163
|
+
```ts
|
|
1164
|
+
function off(
|
|
1165
|
+
r: DatabaseReference,
|
|
1166
|
+
eventType?: "value" | ChildEvent,
|
|
1167
|
+
callback?: (snap: DataSnapshot) => void): void;
|
|
1168
|
+
```
|
|
1169
|
+
|
|
1170
|
+
`off(ref, eventType?, callback?)` — unsubscribe variant.
|
|
1171
|
+
|
|
1172
|
+
Semantics (locked by oracle observation
|
|
1173
|
+
`packages/conformance/observations/rtdb-modular/rtdb-modular-off-stops-child-fires.json`):
|
|
1174
|
+
|
|
1175
|
+
- `off(ref)` (no eventType) removes ALL listeners at that ref —
|
|
1176
|
+
value + every child event variety.
|
|
1177
|
+
- `off(ref, 'value')` removes only `value` listeners.
|
|
1178
|
+
- `off(ref, 'child_added')` (or any child event type) removes only
|
|
1179
|
+
that variety.
|
|
1180
|
+
- `off(ref, eventType, cb)` removes only the matching callback.
|
|
1181
|
+
|
|
1182
|
+
The returned-unsubscribe pattern from `onValue` / `onChild*` is
|
|
1183
|
+
functionally equivalent to `off(ref, eventType, cb)` for a specific
|
|
1184
|
+
registration — both are supported.
|
|
1185
|
+
|
|
1186
|
+
#### Parameters
|
|
1187
|
+
|
|
1188
|
+
| Parameter | Type |
|
|
1189
|
+
| :------ | :------ |
|
|
1190
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1191
|
+
| `eventType?` | `"value"` \| `ChildEvent` |
|
|
1192
|
+
| `callback?` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1193
|
+
|
|
1194
|
+
#### Returns
|
|
1195
|
+
|
|
1196
|
+
`void`
|
|
1197
|
+
|
|
1198
|
+
***
|
|
1199
|
+
|
|
1200
|
+
<a id="onchildadded"></a>
|
|
1201
|
+
|
|
1202
|
+
### onChildAdded()
|
|
1203
|
+
|
|
1204
|
+
```ts
|
|
1205
|
+
function onChildAdded(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
|
|
1206
|
+
```
|
|
1207
|
+
|
|
1208
|
+
`onChildAdded(ref, cb)` — subscribe to child-added events at the
|
|
1209
|
+
ref's path.
|
|
1210
|
+
|
|
1211
|
+
Semantics (locked by oracle observations under
|
|
1212
|
+
`packages/conformance/observations/rtdb-modular/rtdb-modular-onchildadded-*.json`):
|
|
1213
|
+
|
|
1214
|
+
- On subscribe, replays every existing direct child of `ref`'s path
|
|
1215
|
+
(one fire per existing key, in `orderByKey`-default order).
|
|
1216
|
+
- After subscribe, fires exactly once per new direct child write.
|
|
1217
|
+
|
|
1218
|
+
Also accepts a [Query](#query) (a `query(ref, ...)` with `orderBy*` /
|
|
1219
|
+
`limitTo*` constraints): child events are then computed against the
|
|
1220
|
+
ordered, windowed result — a child ENTERING the window fires
|
|
1221
|
+
`child_added`; on subscribe the current window is replayed in window
|
|
1222
|
+
order.
|
|
1223
|
+
|
|
1224
|
+
Returns an unsubscribe; calling it twice is a no-op.
|
|
1225
|
+
|
|
1226
|
+
#### Parameters
|
|
1227
|
+
|
|
1228
|
+
| Parameter | Type |
|
|
1229
|
+
| :------ | :------ |
|
|
1230
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1231
|
+
| `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1232
|
+
|
|
1233
|
+
#### Returns
|
|
1234
|
+
|
|
1235
|
+
[`Unsubscribe`](#unsubscribe)
|
|
1236
|
+
|
|
1237
|
+
***
|
|
1238
|
+
|
|
1239
|
+
<a id="onchildchanged"></a>
|
|
1240
|
+
|
|
1241
|
+
### onChildChanged()
|
|
1242
|
+
|
|
1243
|
+
```ts
|
|
1244
|
+
function onChildChanged(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
|
|
1245
|
+
```
|
|
1246
|
+
|
|
1247
|
+
`onChildChanged(ref, cb)` — subscribe to child-changed events.
|
|
1248
|
+
|
|
1249
|
+
Semantics (oracle: `rtdb-modular-onchildchanged-fires-on-update`):
|
|
1250
|
+
|
|
1251
|
+
- No initial replay.
|
|
1252
|
+
- Fires when an existing direct child's value transitions to a
|
|
1253
|
+
NEW non-null value. Snapshot carries the NEW value.
|
|
1254
|
+
- Does NOT fire for added or removed children.
|
|
1255
|
+
|
|
1256
|
+
Also accepts a [Query](#query): fires when a child that is IN the query
|
|
1257
|
+
window changes value (an in-window update).
|
|
1258
|
+
|
|
1259
|
+
#### Parameters
|
|
1260
|
+
|
|
1261
|
+
| Parameter | Type |
|
|
1262
|
+
| :------ | :------ |
|
|
1263
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1264
|
+
| `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1265
|
+
|
|
1266
|
+
#### Returns
|
|
1267
|
+
|
|
1268
|
+
[`Unsubscribe`](#unsubscribe)
|
|
1269
|
+
|
|
1270
|
+
***
|
|
1271
|
+
|
|
1272
|
+
<a id="onchildmoved"></a>
|
|
1273
|
+
|
|
1274
|
+
### onChildMoved()
|
|
1275
|
+
|
|
1276
|
+
```ts
|
|
1277
|
+
function onChildMoved(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
|
|
1278
|
+
```
|
|
1279
|
+
|
|
1280
|
+
`onChildMoved(ref, cb)` — subscribe to child-moved events.
|
|
1281
|
+
|
|
1282
|
+
Semantics (oracle: `rtdb-modular-onchildmoved-with-orderby`):
|
|
1283
|
+
|
|
1284
|
+
- Only fires under an ordered query (`query(ref, orderByChild(...))`).
|
|
1285
|
+
- Under a plain ref, this listener is effectively a no-op — the
|
|
1286
|
+
upstream SDK accepts the subscription but never fires it
|
|
1287
|
+
(matches RTDB docs).
|
|
1288
|
+
|
|
1289
|
+
Accepts a [Query](#query) WITHOUT throwing, but the sandbox deliberately
|
|
1290
|
+
does NOT fire `child_moved` on reorder yet: prod fires here (matrix row
|
|
1291
|
+
`rtdb-modular#137`) while the sandbox holds — the reorder /
|
|
1292
|
+
`previousChildName` ordering semantics are pending two new oracle
|
|
1293
|
+
captures. This is a documented, pinned divergence (both sides asserted
|
|
1294
|
+
in `test/database/modular/sandbox-child-events.test.ts`).
|
|
1295
|
+
|
|
1296
|
+
#### Parameters
|
|
1297
|
+
|
|
1298
|
+
| Parameter | Type |
|
|
1299
|
+
| :------ | :------ |
|
|
1300
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1301
|
+
| `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1302
|
+
|
|
1303
|
+
#### Returns
|
|
1304
|
+
|
|
1305
|
+
[`Unsubscribe`](#unsubscribe)
|
|
1306
|
+
|
|
1307
|
+
***
|
|
1308
|
+
|
|
1309
|
+
<a id="onchildremoved"></a>
|
|
1310
|
+
|
|
1311
|
+
### onChildRemoved()
|
|
1312
|
+
|
|
1313
|
+
```ts
|
|
1314
|
+
function onChildRemoved(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
`onChildRemoved(ref, cb)` — subscribe to child-removed events.
|
|
1318
|
+
|
|
1319
|
+
Semantics (oracle: `rtdb-modular-onchildremoved-fires-on-delete`):
|
|
1320
|
+
|
|
1321
|
+
- No initial replay.
|
|
1322
|
+
- Fires when a direct child is deleted (via `remove(child)` or
|
|
1323
|
+
`set(child, null)`).
|
|
1324
|
+
- Snapshot carries the PRIOR (now-removed) value — the listener
|
|
1325
|
+
sees what was there before deletion.
|
|
1326
|
+
|
|
1327
|
+
Also accepts a [Query](#query): a child LEAVING the query window (e.g.
|
|
1328
|
+
displaced past a `limitTo*` boundary or filtered out) fires
|
|
1329
|
+
`child_removed` carrying its prior value.
|
|
1330
|
+
|
|
1331
|
+
#### Parameters
|
|
1332
|
+
|
|
1333
|
+
| Parameter | Type |
|
|
1334
|
+
| :------ | :------ |
|
|
1335
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1336
|
+
| `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1337
|
+
|
|
1338
|
+
#### Returns
|
|
1339
|
+
|
|
1340
|
+
[`Unsubscribe`](#unsubscribe)
|
|
1341
|
+
|
|
1342
|
+
***
|
|
1343
|
+
|
|
1344
|
+
<a id="onvalue"></a>
|
|
1345
|
+
|
|
1346
|
+
### onValue()
|
|
1347
|
+
|
|
1348
|
+
```ts
|
|
1349
|
+
function onValue(
|
|
1350
|
+
r: DatabaseReference | Query,
|
|
1351
|
+
cb: (snap: DataSnapshot) => void,
|
|
1352
|
+
options?: {
|
|
1353
|
+
onlyOnce?: boolean;
|
|
1354
|
+
}): Unsubscribe;
|
|
1355
|
+
```
|
|
1356
|
+
|
|
1357
|
+
`onValue(ref, cb)` — subscribe to value changes at the ref's path.
|
|
1358
|
+
|
|
1359
|
+
Fires immediately on subscribe with the current value (or
|
|
1360
|
+
`null` + `exists: false` for an absent path), then on every
|
|
1361
|
+
subsequent write that touches the path or any descendant.
|
|
1362
|
+
|
|
1363
|
+
Returns an unsubscribe function. The unsubscribe is idempotent;
|
|
1364
|
+
calling it twice is a no-op.
|
|
1365
|
+
|
|
1366
|
+
`options.onlyOnce` (DB-B12): when `true`, the listener auto-unsubscribes
|
|
1367
|
+
after its first fire (mirrors `api/Reference_impl.ts:975-980`).
|
|
1368
|
+
|
|
1369
|
+
Errors path: subscribing under rules that deny the read throws the
|
|
1370
|
+
plain-`Error` `PERMISSION_DENIED` shape synchronously (matching the
|
|
1371
|
+
production behavior where the subscribe path immediately errors).
|
|
1372
|
+
|
|
1373
|
+
#### Parameters
|
|
1374
|
+
|
|
1375
|
+
| Parameter | Type |
|
|
1376
|
+
| :------ | :------ |
|
|
1377
|
+
| `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1378
|
+
| `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
|
|
1379
|
+
| `options?` | \{ `onlyOnce?`: `boolean`; \} |
|
|
1380
|
+
| `options.onlyOnce?` | `boolean` |
|
|
1381
|
+
|
|
1382
|
+
#### Returns
|
|
1383
|
+
|
|
1384
|
+
[`Unsubscribe`](#unsubscribe)
|
|
1385
|
+
|
|
1386
|
+
***
|
|
1387
|
+
|
|
1388
|
+
<a id="orderbychild"></a>
|
|
1389
|
+
|
|
1390
|
+
### orderByChild()
|
|
1391
|
+
|
|
1392
|
+
```ts
|
|
1393
|
+
function orderByChild(path: string): QueryConstraint;
|
|
1394
|
+
```
|
|
1395
|
+
|
|
1396
|
+
`orderByChild('path')` — order children by the value at the nested
|
|
1397
|
+
child path. Locked by oracle observation
|
|
1398
|
+
`rtdb-modular-orderbychild-window.json`.
|
|
1399
|
+
|
|
1400
|
+
#### Parameters
|
|
1401
|
+
|
|
1402
|
+
| Parameter | Type |
|
|
1403
|
+
| :------ | :------ |
|
|
1404
|
+
| `path` | `string` |
|
|
1405
|
+
|
|
1406
|
+
#### Returns
|
|
1407
|
+
|
|
1408
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1409
|
+
|
|
1410
|
+
***
|
|
1411
|
+
|
|
1412
|
+
<a id="orderbykey"></a>
|
|
1413
|
+
|
|
1414
|
+
### orderByKey()
|
|
1415
|
+
|
|
1416
|
+
```ts
|
|
1417
|
+
function orderByKey(): QueryConstraint;
|
|
1418
|
+
```
|
|
1419
|
+
|
|
1420
|
+
`orderByKey()` — order children lexicographically by key string.
|
|
1421
|
+
Locked by oracle observation `rtdb-modular-orderbykey-window.json`.
|
|
1422
|
+
|
|
1423
|
+
#### Returns
|
|
1424
|
+
|
|
1425
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1426
|
+
|
|
1427
|
+
***
|
|
1428
|
+
|
|
1429
|
+
<a id="orderbyvalue"></a>
|
|
1430
|
+
|
|
1431
|
+
### orderByValue()
|
|
1432
|
+
|
|
1433
|
+
```ts
|
|
1434
|
+
function orderByValue(): QueryConstraint;
|
|
1435
|
+
```
|
|
1436
|
+
|
|
1437
|
+
`orderByValue()` — order children by primitive value. Prod requires
|
|
1438
|
+
`.indexOn: ".value"` (oracle: `rtdb-modular-orderbyvalue-numeric.json`
|
|
1439
|
+
threw `Index not defined` against blockingfun); sandbox does NOT
|
|
1440
|
+
enforce indexes (the rules engine here checks read-allow only, not
|
|
1441
|
+
query-index conformance).
|
|
1442
|
+
|
|
1443
|
+
#### Returns
|
|
1444
|
+
|
|
1445
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1446
|
+
|
|
1447
|
+
***
|
|
1448
|
+
|
|
1449
|
+
<a id="push"></a>
|
|
1450
|
+
|
|
1451
|
+
### push()
|
|
1452
|
+
|
|
1453
|
+
```ts
|
|
1454
|
+
function push(r: DatabaseReference, value?: unknown): ThenableReference;
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
`push(ref, value?)` — mint an auto-id child key under `ref`'s path,
|
|
1458
|
+
optionally writing `value` at the new child.
|
|
1459
|
+
|
|
1460
|
+
Returns a ref at the new child path. The ref's `key` is the minted
|
|
1461
|
+
id (locked by oracle observation `rtdb-push-autoid-format.json`:
|
|
1462
|
+
20 chars, leading `-`, lex-sortable).
|
|
1463
|
+
|
|
1464
|
+
Production note: the key is minted **client-side** (no server
|
|
1465
|
+
round-trip required); it's available synchronously on the returned
|
|
1466
|
+
ref even when the optional write is denied by rules. The oracle
|
|
1467
|
+
observation confirms this — the sandbox matches.
|
|
1468
|
+
|
|
1469
|
+
#### Parameters
|
|
1470
|
+
|
|
1471
|
+
| Parameter | Type |
|
|
1472
|
+
| :------ | :------ |
|
|
1473
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1474
|
+
| `value?` | `unknown` |
|
|
1475
|
+
|
|
1476
|
+
#### Returns
|
|
1477
|
+
|
|
1478
|
+
[`ThenableReference`](#thenablereference)
|
|
1479
|
+
|
|
1480
|
+
***
|
|
1481
|
+
|
|
1482
|
+
<a id="pushkey"></a>
|
|
1483
|
+
|
|
1484
|
+
### pushKey()
|
|
1485
|
+
|
|
1486
|
+
```ts
|
|
1487
|
+
function pushKey(): string;
|
|
1488
|
+
```
|
|
1489
|
+
|
|
1490
|
+
Pre-mint a push key without writing. Used by callers that need the
|
|
1491
|
+
key for a multi-path update (`update(rootRef, { [\`/users/${key}\`]: ... })`).
|
|
1492
|
+
Returns a freshly-minted key.
|
|
1493
|
+
|
|
1494
|
+
#### Returns
|
|
1495
|
+
|
|
1496
|
+
`string`
|
|
1497
|
+
|
|
1498
|
+
***
|
|
1499
|
+
|
|
1500
|
+
<a id="query-1"></a>
|
|
1501
|
+
|
|
1502
|
+
### query()
|
|
1503
|
+
|
|
1504
|
+
```ts
|
|
1505
|
+
function query(refOrQuery: DatabaseReference | Query, ...constraints: QueryConstraint[]): Query;
|
|
1506
|
+
```
|
|
1507
|
+
|
|
1508
|
+
`query(ref, ...constraints)` — wrap a ref in an immutable
|
|
1509
|
+
constraint chain. The resulting [Query](#query) routes through
|
|
1510
|
+
[get](#get)/[onValue](#onvalue) and applies the ordering + filtering +
|
|
1511
|
+
limit pipeline on the sandbox backend.
|
|
1512
|
+
|
|
1513
|
+
Chaining is supported — `query(query(ref, orderByChild('x')),
|
|
1514
|
+
limitToFirst(2))` folds both constraints into one spec.
|
|
1515
|
+
|
|
1516
|
+
Locked semantics (oracle):
|
|
1517
|
+
- `orderByChild('p') + startAt(v) + endAt(w)` is BOTH-inclusive
|
|
1518
|
+
(`rtdb-modular-orderbychild-window.json`).
|
|
1519
|
+
- `orderByKey() + startAt('b') + endAt('d')` matches `[b, c, d]`
|
|
1520
|
+
(`rtdb-modular-orderbykey-window.json`).
|
|
1521
|
+
- `orderByValue() + limitToFirst(3)` returns the 3 smallest by
|
|
1522
|
+
value (`rtdb-modular-orderbyvalue-numeric.json` — note: prod
|
|
1523
|
+
requires `.indexOn: ".value"`; sandbox does not enforce indexes).
|
|
1524
|
+
- `orderByChild('group') + equalTo('b')` returns ALL matching
|
|
1525
|
+
children (`rtdb-modular-equalTo-filter.json`).
|
|
1526
|
+
- `limitToFirst(N)` / `limitToLast(N)` take from the start / end of
|
|
1527
|
+
the ordered window (`rtdb-modular-limittofirst-vs-limittolast.json`).
|
|
1528
|
+
- `startAfter` / `endBefore` are EXCLUSIVE
|
|
1529
|
+
(`rtdb-modular-startafter-endbefore-exclusive.json`).
|
|
1530
|
+
|
|
1531
|
+
#### Parameters
|
|
1532
|
+
|
|
1533
|
+
| Parameter | Type |
|
|
1534
|
+
| :------ | :------ |
|
|
1535
|
+
| `refOrQuery` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
|
|
1536
|
+
| ...`constraints` | [`QueryConstraint`](#queryconstraint)[] |
|
|
1537
|
+
|
|
1538
|
+
#### Returns
|
|
1539
|
+
|
|
1540
|
+
[`Query`](#query)
|
|
1541
|
+
|
|
1542
|
+
***
|
|
1543
|
+
|
|
1544
|
+
<a id="ref-2"></a>
|
|
1545
|
+
|
|
1546
|
+
### ref()
|
|
1547
|
+
|
|
1548
|
+
```ts
|
|
1549
|
+
function ref(db: Database, path?: string): DatabaseReference;
|
|
1550
|
+
```
|
|
1551
|
+
|
|
1552
|
+
Build a [DatabaseReference](#databasereference) at `path` (default root).
|
|
1553
|
+
|
|
1554
|
+
Path normalisation: leading + trailing slashes are stripped;
|
|
1555
|
+
empty path / `'/'` becomes the root.
|
|
1556
|
+
|
|
1557
|
+
#### Parameters
|
|
1558
|
+
|
|
1559
|
+
| Parameter | Type |
|
|
1560
|
+
| :------ | :------ |
|
|
1561
|
+
| `db` | [`Database`](#database) |
|
|
1562
|
+
| `path?` | `string` |
|
|
1563
|
+
|
|
1564
|
+
#### Returns
|
|
1565
|
+
|
|
1566
|
+
[`DatabaseReference`](#databasereference)
|
|
1567
|
+
|
|
1568
|
+
***
|
|
1569
|
+
|
|
1570
|
+
<a id="reffromurl"></a>
|
|
1571
|
+
|
|
1572
|
+
### refFromURL()
|
|
1573
|
+
|
|
1574
|
+
```ts
|
|
1575
|
+
function refFromURL(db: Database, url: string): DatabaseReference;
|
|
1576
|
+
```
|
|
1577
|
+
|
|
1578
|
+
`refFromURL(db, url)` — build a [DatabaseReference](#databasereference) from an
|
|
1579
|
+
absolute database URL (`https://<namespace>.firebaseio.com/path`).
|
|
1580
|
+
|
|
1581
|
+
Real alias with real behavior: parses the path out of the URL and
|
|
1582
|
+
delegates to [ref](#ref-2), so the returned ref resolves + reads exactly
|
|
1583
|
+
like `ref(db, path)`. The sandbox is single-database and has no host /
|
|
1584
|
+
namespace, so the URL's HOST is not validated against the handle (the
|
|
1585
|
+
real SDK throws if the host doesn't match the db's namespace); only
|
|
1586
|
+
the path component is honored.
|
|
1587
|
+
|
|
1588
|
+
#### Parameters
|
|
1589
|
+
|
|
1590
|
+
| Parameter | Type |
|
|
1591
|
+
| :------ | :------ |
|
|
1592
|
+
| `db` | [`Database`](#database) |
|
|
1593
|
+
| `url` | `string` |
|
|
1594
|
+
|
|
1595
|
+
#### Returns
|
|
1596
|
+
|
|
1597
|
+
[`DatabaseReference`](#databasereference)
|
|
1598
|
+
|
|
1599
|
+
***
|
|
1600
|
+
|
|
1601
|
+
<a id="remove"></a>
|
|
1602
|
+
|
|
1603
|
+
### remove()
|
|
1604
|
+
|
|
1605
|
+
```ts
|
|
1606
|
+
function remove(r: DatabaseReference): Promise<void>;
|
|
1607
|
+
```
|
|
1608
|
+
|
|
1609
|
+
`remove(ref)` — delete the subtree at the ref's path.
|
|
1610
|
+
|
|
1611
|
+
RTDB invariant (oracle: `rtdb-remove-vs-set-null.json`): equivalent
|
|
1612
|
+
to `set(ref, null)`. The sandbox backend dispatches `remove` through
|
|
1613
|
+
the same code path as `set(_, null)`.
|
|
1614
|
+
|
|
1615
|
+
#### Parameters
|
|
1616
|
+
|
|
1617
|
+
| Parameter | Type |
|
|
1618
|
+
| :------ | :------ |
|
|
1619
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1620
|
+
|
|
1621
|
+
#### Returns
|
|
1622
|
+
|
|
1623
|
+
`Promise`\<`void`\>
|
|
1624
|
+
|
|
1625
|
+
***
|
|
1626
|
+
|
|
1627
|
+
<a id="runtransaction"></a>
|
|
1628
|
+
|
|
1629
|
+
### runTransaction()
|
|
1630
|
+
|
|
1631
|
+
```ts
|
|
1632
|
+
function runTransaction<T>(
|
|
1633
|
+
r: DatabaseReference,
|
|
1634
|
+
transactionUpdate: (current: T) => T,
|
|
1635
|
+
options?: {
|
|
1636
|
+
applyLocally?: boolean;
|
|
1637
|
+
}): Promise<TransactionResult>;
|
|
1638
|
+
```
|
|
1639
|
+
|
|
1640
|
+
`runTransaction(ref, transactionUpdate, options?)` — atomic
|
|
1641
|
+
read-modify-write.
|
|
1642
|
+
|
|
1643
|
+
Contract (oracle-locked):
|
|
1644
|
+
|
|
1645
|
+
1. `transactionUpdate` is called with the CURRENT value at `ref`'s
|
|
1646
|
+
path. For an absent path the arg is `null` (NOT `undefined`);
|
|
1647
|
+
oracle:
|
|
1648
|
+
`rtdb-modular-runtransaction-current-value-arg.json` →
|
|
1649
|
+
`missingFirstWasNull: true`.
|
|
1650
|
+
2. Returning `undefined` from the update fn ABORTS the transaction:
|
|
1651
|
+
resolves `{ committed: false, snapshot }` where the snapshot is
|
|
1652
|
+
the pre-transaction value; oracle:
|
|
1653
|
+
`rtdb-modular-runtransaction-abort-undefined.json` → `committed:
|
|
1654
|
+
false, snapVal: null`.
|
|
1655
|
+
3. Returning any defined value WRITES that value (rules-checked);
|
|
1656
|
+
resolves `{ committed: true, snapshot }` where `snapshot.val()`
|
|
1657
|
+
is the committed value; oracle:
|
|
1658
|
+
`rtdb-modular-runtransaction-success.json` → `committedNewValue:
|
|
1659
|
+
true` and
|
|
1660
|
+
`rtdb-modular-runtransaction-returns-committed-snapshot.json`.
|
|
1661
|
+
4. If rules deny the write, the promise REJECTS with a plain
|
|
1662
|
+
`Error` whose `message === 'permission_denied'` and NO `.code`
|
|
1663
|
+
field (distinct from `set`/`get`'s `'PERMISSION_DENIED:
|
|
1664
|
+
Permission denied'`); oracle:
|
|
1665
|
+
`rtdb-modular-runtransaction-on-rules-denied-path.json`.
|
|
1666
|
+
|
|
1667
|
+
`options.applyLocally` (default `true`): when `false`, the
|
|
1668
|
+
intermediate optimistic value is NOT fanned out to listeners — they
|
|
1669
|
+
see only the committed value. In a single-client harness this is
|
|
1670
|
+
usually invisible; we honor the flag for prod-parity. Oracle
|
|
1671
|
+
observation `rtdb-modular-runtransaction-options-applylocally.json`
|
|
1672
|
+
confirms both branches commit and end at the same value; the
|
|
1673
|
+
intermediate-fire difference isn't observable from a single client.
|
|
1674
|
+
|
|
1675
|
+
Single-client sandbox doesn't model concurrency conflicts; the
|
|
1676
|
+
documented "retry on conflict" path is degenerate (no other writer
|
|
1677
|
+
exists to conflict with). The fn is invoked once.
|
|
1678
|
+
|
|
1679
|
+
#### Type Parameters
|
|
1680
|
+
|
|
1681
|
+
| Type Parameter |
|
|
1682
|
+
| :------ |
|
|
1683
|
+
| `T` |
|
|
1684
|
+
|
|
1685
|
+
#### Parameters
|
|
1686
|
+
|
|
1687
|
+
| Parameter | Type |
|
|
1688
|
+
| :------ | :------ |
|
|
1689
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1690
|
+
| `transactionUpdate` | (`current`: `T`) => `T` |
|
|
1691
|
+
| `options?` | \{ `applyLocally?`: `boolean`; \} |
|
|
1692
|
+
| `options.applyLocally?` | `boolean` |
|
|
1693
|
+
|
|
1694
|
+
#### Returns
|
|
1695
|
+
|
|
1696
|
+
`Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
1697
|
+
|
|
1698
|
+
***
|
|
1699
|
+
|
|
1700
|
+
<a id="servertimestamp"></a>
|
|
1701
|
+
|
|
1702
|
+
### serverTimestamp()
|
|
1703
|
+
|
|
1704
|
+
```ts
|
|
1705
|
+
function serverTimestamp(): ServerTimestampSentinel;
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1708
|
+
`serverTimestamp()` — returns the `{ ".sv": "timestamp" }` sentinel
|
|
1709
|
+
the wire encoder recognises. Resolves to `Date.now()` (epoch ms) on
|
|
1710
|
+
write — locked by the prod SDK's resolved-as-number contract
|
|
1711
|
+
(oracle: `rtdb-servertimestamp-resolves.json`).
|
|
1712
|
+
|
|
1713
|
+
The sandbox backend recognises the marker.
|
|
1714
|
+
|
|
1715
|
+
#### Returns
|
|
1716
|
+
|
|
1717
|
+
`ServerTimestampSentinel`
|
|
1718
|
+
|
|
1719
|
+
***
|
|
1720
|
+
|
|
1721
|
+
<a id="set"></a>
|
|
1722
|
+
|
|
1723
|
+
### set()
|
|
1724
|
+
|
|
1725
|
+
```ts
|
|
1726
|
+
function set(r: DatabaseReference, value: unknown): Promise<void>;
|
|
1727
|
+
```
|
|
1728
|
+
|
|
1729
|
+
`set(ref, value)` — replace the value at `ref`'s path. `null`
|
|
1730
|
+
deletes (matches the RTDB invariant — locked by oracle observation
|
|
1731
|
+
`rtdb-remove-vs-set-null.json`).
|
|
1732
|
+
|
|
1733
|
+
`serverTimestamp()` sentinels are resolved at write time.
|
|
1734
|
+
|
|
1735
|
+
#### Parameters
|
|
1736
|
+
|
|
1737
|
+
| Parameter | Type |
|
|
1738
|
+
| :------ | :------ |
|
|
1739
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1740
|
+
| `value` | `unknown` |
|
|
1741
|
+
|
|
1742
|
+
#### Returns
|
|
1743
|
+
|
|
1744
|
+
`Promise`\<`void`\>
|
|
1745
|
+
|
|
1746
|
+
***
|
|
1747
|
+
|
|
1748
|
+
<a id="startafter"></a>
|
|
1749
|
+
|
|
1750
|
+
### startAfter()
|
|
1751
|
+
|
|
1752
|
+
```ts
|
|
1753
|
+
function startAfter(value: JsonValue, key?: string): QueryConstraint;
|
|
1754
|
+
```
|
|
1755
|
+
|
|
1756
|
+
`startAfter(value, key?)` — EXCLUSIVE lower bound. Locked by
|
|
1757
|
+
`rtdb-modular-startafter-endbefore-exclusive.json`.
|
|
1758
|
+
|
|
1759
|
+
#### Parameters
|
|
1760
|
+
|
|
1761
|
+
| Parameter | Type |
|
|
1762
|
+
| :------ | :------ |
|
|
1763
|
+
| `value` | [`JsonValue`](#jsonvalue) |
|
|
1764
|
+
| `key?` | `string` |
|
|
1765
|
+
|
|
1766
|
+
#### Returns
|
|
1767
|
+
|
|
1768
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1769
|
+
|
|
1770
|
+
***
|
|
1771
|
+
|
|
1772
|
+
<a id="startat"></a>
|
|
1773
|
+
|
|
1774
|
+
### startAt()
|
|
1775
|
+
|
|
1776
|
+
```ts
|
|
1777
|
+
function startAt(value: JsonValue, key?: string): QueryConstraint;
|
|
1778
|
+
```
|
|
1779
|
+
|
|
1780
|
+
`startAt(value, key?)` — INCLUSIVE lower bound under the active
|
|
1781
|
+
ordering. Optional `key` is the tie-breaker when ordering by
|
|
1782
|
+
child/value and multiple children share the bound's value.
|
|
1783
|
+
|
|
1784
|
+
#### Parameters
|
|
1785
|
+
|
|
1786
|
+
| Parameter | Type |
|
|
1787
|
+
| :------ | :------ |
|
|
1788
|
+
| `value` | [`JsonValue`](#jsonvalue) |
|
|
1789
|
+
| `key?` | `string` |
|
|
1790
|
+
|
|
1791
|
+
#### Returns
|
|
1792
|
+
|
|
1793
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1794
|
+
|
|
1795
|
+
***
|
|
1796
|
+
|
|
1797
|
+
<a id="update"></a>
|
|
1798
|
+
|
|
1799
|
+
### update()
|
|
1800
|
+
|
|
1801
|
+
```ts
|
|
1802
|
+
function update(r: DatabaseReference, values: Record<string, unknown>): Promise<void>;
|
|
1803
|
+
```
|
|
1804
|
+
|
|
1805
|
+
`update(ref, values)` — partial update.
|
|
1806
|
+
|
|
1807
|
+
- When `values` keys contain `/`, the call is a **multi-path atomic
|
|
1808
|
+
update**: every listed path is written as one transaction (any
|
|
1809
|
+
denial fails the whole batch).
|
|
1810
|
+
- Otherwise it's a **shallow merge** at the ref's path: each
|
|
1811
|
+
top-level key replaces the corresponding child. `null` values
|
|
1812
|
+
delete.
|
|
1813
|
+
|
|
1814
|
+
Both behaviors are sandbox-implemented per the RtdbBackend's
|
|
1815
|
+
`update` method (`rtdb-modular`-spec atomic claim, matrix row #23).
|
|
1816
|
+
|
|
1817
|
+
#### Parameters
|
|
1818
|
+
|
|
1819
|
+
| Parameter | Type |
|
|
1820
|
+
| :------ | :------ |
|
|
1821
|
+
| `r` | [`DatabaseReference`](#databasereference) |
|
|
1822
|
+
| `values` | `Record`\<`string`, `unknown`\> |
|
|
1823
|
+
|
|
1824
|
+
#### Returns
|
|
1825
|
+
|
|
1826
|
+
`Promise`\<`void`\>
|
|
1827
|
+
|
|
1828
|
+
## References
|
|
1829
|
+
|
|
1830
|
+
<a id="authstate"></a>
|
|
1831
|
+
|
|
1832
|
+
### AuthState
|
|
1833
|
+
|
|
1834
|
+
Renames and re-exports [Sandbox](#sandbox)
|
|
1835
|
+
|
|
1836
|
+
***
|
|
1837
|
+
|
|
1838
|
+
<a id="sandboxcontext"></a>
|
|
1839
|
+
|
|
1840
|
+
### SandboxContext
|
|
1841
|
+
|
|
1842
|
+
Renames and re-exports [Sandbox](#sandbox)
|