@pyric/cli 0.1.0-alpha.9
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 +156 -0
- package/README.md.orig +138 -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 +7 -0
- package/dist/assurance/capabilities.d.ts.map +1 -0
- package/dist/assurance/capabilities.js +295 -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/generated-capabilities.d.ts +52 -0
- package/dist/assurance/generated-capabilities.d.ts.map +1 -0
- package/dist/assurance/generated-capabilities.js +329 -0
- package/dist/assurance/generated-capabilities.js.map +1 -0
- package/dist/assurance/index.d.ts +11 -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 +740 -0
- package/dist/assurance/tools.js.map +1 -0
- package/dist/assurance/types.d.ts +348 -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 +62 -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 +81 -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/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 +379 -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 +69 -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/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_.CQYSemvw.css +1 -0
- package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
- package/dist/serve/docs-ui/docs/_rhythm.md +101 -0
- package/dist/serve/docs-ui/docs/api-reference/index.html +64 -0
- package/dist/serve/docs-ui/docs/api-reference.md +67 -0
- package/dist/serve/docs-ui/docs/audit-your-rules/index.html +34 -0
- package/dist/serve/docs-ui/docs/audit-your-rules.md +50 -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/firestore-rules-limits/index.html +59 -0
- package/dist/serve/docs-ui/docs/firestore-rules-limits.md +54 -0
- package/dist/serve/docs-ui/docs/how-the-swap-works/index.html +47 -0
- package/dist/serve/docs-ui/docs/how-the-swap-works.md +43 -0
- package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase/index.html +131 -0
- package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase.md +169 -0
- package/dist/serve/docs-ui/docs/index.html +2 -0
- package/dist/serve/docs-ui/docs/index.json +18637 -0
- package/dist/serve/docs-ui/docs/overview/index.html +23 -0
- package/dist/serve/docs-ui/docs/overview.md +40 -0
- package/dist/serve/docs-ui/docs/pyric-admin-app/index.html +19 -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-app.md +27 -0
- package/dist/serve/docs-ui/docs/pyric-admin-auth/index.html +24 -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-auth.md +29 -0
- package/dist/serve/docs-ui/docs/pyric-admin-database/index.html +26 -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-database.md +31 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore/index.html +38 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation/index.html +57 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation.md +95 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate/index.html +58 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate.md +94 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape/index.html +59 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape.md +88 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction/index.html +53 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction.md +76 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules/index.html +62 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules.md +96 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials/index.html +80 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials.md +98 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot/index.html +57 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot.md +88 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch/index.html +50 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch.md +73 -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-firestore-reference-onsnapshot/index.html +68 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot.md +81 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types/index.html +76 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types.md +103 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore/index.html +40 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore.md +77 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session/index.html +118 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session.md +166 -0
- package/dist/serve/docs-ui/docs/pyric-admin-firestore.md +53 -0
- package/dist/serve/docs-ui/docs/pyric-admin-storage/index.html +25 -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-admin-storage.md +30 -0
- package/dist/serve/docs-ui/docs/pyric-ai-compat/index.html +436 -0
- package/dist/serve/docs-ui/docs/pyric-ai-compat.md +471 -0
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +5831 -0
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +5440 -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-compat/index.html +180 -0
- package/dist/serve/docs-ui/docs/pyric-app-compat.md +199 -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/index.html +59 -0
- package/dist/serve/docs-ui/docs/pyric-auth-compat/index.html +804 -0
- package/dist/serve/docs-ui/docs/pyric-auth-compat.md +847 -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-auth-reference-feature-matrix/index.html +781 -0
- package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix.md +198 -0
- package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver/index.html +71 -0
- package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver.md +108 -0
- package/dist/serve/docs-ui/docs/pyric-auth.md +86 -0
- package/dist/serve/docs-ui/docs/pyric-cli/index.html +40 -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 +2355 -0
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +1554 -0
- package/dist/serve/docs-ui/docs/pyric-cli-bridge/index.html +69 -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-bridge.md +99 -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-functions-rtdb-compat/index.html +112 -0
- package/dist/serve/docs-ui/docs/pyric-cli-functions-rtdb-compat.md +124 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary/index.html +91 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary.md +105 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture/index.html +52 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture.md +98 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated/index.html +66 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated.md +100 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab/index.html +228 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab.md +179 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin/index.html +341 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin.md +309 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session/index.html +128 -0
- package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session.md +207 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-cli/index.html +404 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-cli.md +249 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution/index.html +93 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution.md +65 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-verify/index.html +81 -0
- package/dist/serve/docs-ui/docs/pyric-cli-reference-verify.md +110 -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-tutorials-server-adoption/index.html +219 -0
- package/dist/serve/docs-ui/docs/pyric-cli-tutorials-server-adoption.md +251 -0
- package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code/index.html +136 -0
- package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code.md +217 -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-cli.md +42 -0
- package/dist/serve/docs-ui/docs/pyric-conformance-scores/index.html +180 -0
- package/dist/serve/docs-ui/docs/pyric-conformance-scores.md +184 -0
- package/dist/serve/docs-ui/docs/pyric-database/index.html +43 -0
- package/dist/serve/docs-ui/docs/pyric-database-compat/index.html +1224 -0
- package/dist/serve/docs-ui/docs/pyric-database-compat.md +1289 -0
- package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate/index.html +16 -0
- package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate.md +23 -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-database-reference-constraints/index.html +381 -0
- package/dist/serve/docs-ui/docs/pyric-database-reference-constraints.md +168 -0
- package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling/index.html +218 -0
- package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling.md +303 -0
- package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints/index.html +125 -0
- package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints.md +171 -0
- package/dist/serve/docs-ui/docs/pyric-database.md +26 -0
- package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility/index.html +40 -0
- package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility.md +68 -0
- package/dist/serve/docs-ui/docs/pyric-firestore/index.html +48 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-compat/index.html +868 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-compat.md +939 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate/index.html +92 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate.md +70 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity/index.html +59 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity.md +91 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface/index.html +43 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface.md +58 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore/index.html +58 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore.md +86 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend/index.html +52 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend.md +83 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction/index.html +42 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction.md +59 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot/index.html +66 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot.md +96 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops/index.html +61 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops.md +92 -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-reference-feature-matrix/index.html +80 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix.md +66 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore/index.html +46 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore.md +73 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints/index.html +80 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints.md +129 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops/index.html +58 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops.md +88 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories/index.html +51 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories.md +71 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo/index.html +130 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo.md +180 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend/index.html +59 -0
- package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend.md +92 -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-firestore.md +72 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-compat/index.html +300 -0
- package/dist/serve/docs-ui/docs/pyric-messaging-compat.md +321 -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/index.html +87 -0
- package/dist/serve/docs-ui/docs/pyric-rules-compat/index.html +328 -0
- package/dist/serve/docs-ui/docs/pyric-rules-compat.md +347 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes/index.html +50 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes.md +78 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test/index.html +79 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test.md +69 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates/index.html +67 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates.md +75 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine/index.html +49 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine.md +74 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api/index.html +95 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api.md +80 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension/index.html +58 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension.md +79 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design/index.html +63 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design.md +84 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists/index.html +34 -0
- package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists.md +43 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening/index.html +55 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening.md +77 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast/index.html +90 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast.md +129 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source/index.html +55 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source.md +84 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time/index.html +49 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time.md +64 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent/index.html +61 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent.md +87 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports/index.html +93 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports.md +105 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally/index.html +89 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally.md +134 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase/index.html +66 -0
- package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase.md +102 -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-rules-reference-ast/index.html +85 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-ast.md +121 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps/index.html +277 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps.md +360 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-errors/index.html +76 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-errors.md +123 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules/index.html +148 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules.md +159 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context/index.html +66 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context.md +104 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules/index.html +241 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules.md +143 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema/index.html +94 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema.md +121 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings/index.html +87 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings.md +117 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers/index.html +102 -0
- package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers.md +152 -0
- package/dist/serve/docs-ui/docs/pyric-rules.md +93 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox/index.html +67 -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-explanation-every-op-is-a-request/index.html +141 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request.md +161 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context/index.html +66 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context.md +110 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol/index.html +71 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol.md +111 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation/index.html +56 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation.md +82 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline/index.html +64 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline.md +56 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings/index.html +92 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings.md +90 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists/index.html +69 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists.md +57 -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-how-to-multiple-isolated-sandboxes/index.html +63 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes.md +89 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events/index.html +159 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events.md +168 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter/index.html +79 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter.md +75 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events/index.html +88 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events.md +92 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests/index.html +68 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests.md +92 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules/index.html +91 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules.md +122 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users/index.html +50 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users.md +78 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads/index.html +54 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads.md +85 -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-sandbox-reference-divergences/index.html +125 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences.md +151 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes/index.html +110 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes.md +118 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol/index.html +72 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol.md +109 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context/index.html +90 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context.md +140 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event/index.html +146 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event.md +204 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin/index.html +53 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin.md +89 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session/index.html +115 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session.md +176 -0
- package/dist/serve/docs-ui/docs/pyric-sandbox.md +69 -0
- package/dist/serve/docs-ui/docs/pyric-storage/index.html +65 -0
- package/dist/serve/docs-ui/docs/pyric-storage-compat/index.html +676 -0
- package/dist/serve/docs-ui/docs/pyric-storage-compat.md +699 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope/index.html +52 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope.md +85 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case/index.html +58 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case.md +82 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb/index.html +50 -0
- package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb.md +82 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules/index.html +120 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules.md +127 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete/index.html +53 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete.md +86 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends/index.html +43 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends.md +65 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions/index.html +70 -0
- package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions.md +88 -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-storage-reference-conformance-gaps/index.html +137 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-conformance-gaps.md +171 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes/index.html +37 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes.md +57 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset/index.html +96 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset.md +134 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options/index.html +39 -0
- package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options.md +61 -0
- package/dist/serve/docs-ui/docs/pyric-storage.md +67 -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/read-a-denial/index.html +40 -0
- package/dist/serve/docs-ui/docs/read-a-denial.md +62 -0
- package/dist/serve/docs-ui/docs/receive-messages/index.html +28 -0
- package/dist/serve/docs-ui/docs/receive-messages.md +43 -0
- package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript/index.html +67 -0
- package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript.md +101 -0
- package/dist/serve/docs-ui/docs/rules-patterns/index.html +68 -0
- package/dist/serve/docs-ui/docs/rules-patterns.md +104 -0
- package/dist/serve/docs-ui/docs/rules-standard-library/index.html +87 -0
- package/dist/serve/docs-ui/docs/rules-standard-library.md +93 -0
- package/dist/serve/docs-ui/docs/run-ai-logic-locally/index.html +27 -0
- package/dist/serve/docs-ui/docs/run-ai-logic-locally.md +43 -0
- package/dist/serve/docs-ui/docs/secure-it-with-rules/index.html +69 -0
- package/dist/serve/docs-ui/docs/secure-it-with-rules.md +101 -0
- package/dist/serve/docs-ui/docs/see-whats-happening/index.html +73 -0
- package/dist/serve/docs-ui/docs/see-whats-happening.md +77 -0
- package/dist/serve/docs-ui/docs/set-up-the-project/index.html +14 -0
- package/dist/serve/docs-ui/docs/set-up-the-project.md +19 -0
- package/dist/serve/docs-ui/docs/set-up-your-agent/index.html +42 -0
- package/dist/serve/docs-ui/docs/set-up-your-agent.md +86 -0
- package/dist/serve/docs-ui/docs/shape-your-data/index.html +44 -0
- package/dist/serve/docs-ui/docs/shape-your-data.md +88 -0
- package/dist/serve/docs-ui/docs/ship-to-production/index.html +36 -0
- package/dist/serve/docs-ui/docs/ship-to-production.md +80 -0
- package/dist/serve/docs-ui/docs/sign-in-and-manage-users/index.html +31 -0
- package/dist/serve/docs-ui/docs/sign-in-and-manage-users.md +50 -0
- package/dist/serve/docs-ui/docs/simulate-and-lint/index.html +95 -0
- package/dist/serve/docs-ui/docs/simulate-and-lint.md +99 -0
- package/dist/serve/docs-ui/docs/skills/index.html +20 -0
- package/dist/serve/docs-ui/docs/skills.md +34 -0
- package/dist/serve/docs-ui/docs/start-building/index.html +32 -0
- package/dist/serve/docs-ui/docs/start-building.md +64 -0
- package/dist/serve/docs-ui/docs/store-and-query-data/index.html +16 -0
- package/dist/serve/docs-ui/docs/store-and-query-data.md +33 -0
- package/dist/serve/docs-ui/docs/store-files/index.html +13 -0
- package/dist/serve/docs-ui/docs/store-files.md +25 -0
- package/dist/serve/docs-ui/docs/sync-realtime-data/index.html +15 -0
- package/dist/serve/docs-ui/docs/sync-realtime-data.md +27 -0
- package/dist/serve/docs-ui/docs/test-in-node/index.html +74 -0
- package/dist/serve/docs-ui/docs/test-in-node.md +100 -0
- package/dist/serve/docs-ui/docs/ui/index.html +76 -0
- package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper/index.html +194 -0
- package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper.md +114 -0
- package/dist/serve/docs-ui/docs/ui-auth-authusers/index.html +263 -0
- package/dist/serve/docs-ui/docs/ui-auth-authusers.md +183 -0
- package/dist/serve/docs-ui/docs/ui-firestore-collectionlist/index.html +92 -0
- package/dist/serve/docs-ui/docs/ui-firestore-collectionlist.md +79 -0
- package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm/index.html +128 -0
- package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm.md +104 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documenteditor/index.html +154 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documenteditor.md +117 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documentlist/index.html +132 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documentlist.md +92 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documentpreview/index.html +159 -0
- package/dist/serve/docs-ui/docs/ui-firestore-documentpreview.md +84 -0
- package/dist/serve/docs-ui/docs/ui-firestore-querybuilder/index.html +104 -0
- package/dist/serve/docs-ui/docs/ui-firestore-querybuilder.md +103 -0
- package/dist/serve/docs-ui/docs/ui-firestore-referencepicker/index.html +113 -0
- package/dist/serve/docs-ui/docs/ui-firestore-referencepicker.md +93 -0
- package/dist/serve/docs-ui/docs/ui-primitives-badge/index.html +56 -0
- package/dist/serve/docs-ui/docs/ui-primitives-badge.md +40 -0
- package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog/index.html +140 -0
- package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog.md +108 -0
- package/dist/serve/docs-ui/docs/ui-primitives-copybutton/index.html +58 -0
- package/dist/serve/docs-ui/docs/ui-primitives-copybutton.md +37 -0
- package/dist/serve/docs-ui/docs/ui-primitives-jsonview/index.html +58 -0
- package/dist/serve/docs-ui/docs/ui-primitives-jsonview.md +47 -0
- package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol/index.html +70 -0
- package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol.md +50 -0
- package/dist/serve/docs-ui/docs/ui-primitives-toast/index.html +87 -0
- package/dist/serve/docs-ui/docs/ui-primitives-toast.md +82 -0
- package/dist/serve/docs-ui/docs/ui-primitives-virtuallist/index.html +85 -0
- package/dist/serve/docs-ui/docs/ui-primitives-virtuallist.md +54 -0
- package/dist/serve/docs-ui/docs/ui-storage/index.html +150 -0
- package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm/index.html +126 -0
- package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm.md +88 -0
- package/dist/serve/docs-ui/docs/ui-storage-objectbrowser/index.html +137 -0
- package/dist/serve/docs-ui/docs/ui-storage-objectbrowser.md +90 -0
- package/dist/serve/docs-ui/docs/ui-storage-objectinspector/index.html +139 -0
- package/dist/serve/docs-ui/docs/ui-storage-objectinspector.md +93 -0
- package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb/index.html +72 -0
- package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb.md +57 -0
- package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances/index.html +60 -0
- package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances.md +52 -0
- package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone/index.html +93 -0
- package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone.md +78 -0
- package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate/index.html +144 -0
- package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate.md +101 -0
- package/dist/serve/docs-ui/docs/ui-storage.md +165 -0
- package/dist/serve/docs-ui/docs/ui-traffic/index.html +88 -0
- package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap/index.html +79 -0
- package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap.md +60 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail/index.html +78 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail.md +59 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficlog/index.html +118 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficlog.md +69 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficstats/index.html +51 -0
- package/dist/serve/docs-ui/docs/ui-traffic-trafficstats.md +46 -0
- package/dist/serve/docs-ui/docs/ui-traffic.md +102 -0
- package/dist/serve/docs-ui/docs/ui.md +90 -0
- package/dist/serve/docs-ui/docs/watch-and-review/index.html +25 -0
- package/dist/serve/docs-ui/docs/watch-and-review.md +40 -0
- package/dist/serve/docs-ui/docs/what-your-agent-can-do/index.html +81 -0
- package/dist/serve/docs-ui/docs/what-your-agent-can-do.md +78 -0
- package/dist/serve/docs-ui/docs/whats-experimental/index.html +22 -0
- package/dist/serve/docs-ui/docs/whats-experimental.md +33 -0
- package/dist/serve/docs-ui/docs/whats-possible/index.html +63 -0
- package/dist/serve/docs-ui/docs/whats-possible.md +53 -0
- package/dist/serve/docs-ui/docs/which-data-service/index.html +8 -0
- package/dist/serve/docs-ui/docs/which-data-service.md +11 -0
- package/dist/serve/docs-ui/docs/write-a-rules-test-suite/index.html +85 -0
- package/dist/serve/docs-ui/docs/write-a-rules-test-suite.md +119 -0
- package/dist/serve/docs-ui/index.html +1 -0
- package/dist/serve/docs-ui/llms.txt +308 -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-BZpD57II.js +23 -0
- package/dist/serve/studio-ui/assets/index-Bsa-TQNK.css +1 -0
- package/dist/serve/studio-ui/assets/index-DGaVuOhE.js +1211 -0
- package/dist/serve/studio-ui/assets/seed-CTmn6YuO.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 +658 -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 +133 -0
|
@@ -0,0 +1,3399 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
|
|
3
|
+
|
|
4
|
+
## Classes
|
|
5
|
+
|
|
6
|
+
<a id="bytes"></a>
|
|
7
|
+
|
|
8
|
+
### Bytes
|
|
9
|
+
|
|
10
|
+
#### Methods
|
|
11
|
+
|
|
12
|
+
<a id="isequal"></a>
|
|
13
|
+
|
|
14
|
+
##### isEqual()
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
isEqual(other: Bytes): boolean;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
###### Parameters
|
|
21
|
+
|
|
22
|
+
| Parameter | Type |
|
|
23
|
+
| :------ | :------ |
|
|
24
|
+
| `other` | [`Bytes`](#bytes) |
|
|
25
|
+
|
|
26
|
+
###### Returns
|
|
27
|
+
|
|
28
|
+
`boolean`
|
|
29
|
+
|
|
30
|
+
<a id="tobase64"></a>
|
|
31
|
+
|
|
32
|
+
##### toBase64()
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
toBase64(): string;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
###### Returns
|
|
39
|
+
|
|
40
|
+
`string`
|
|
41
|
+
|
|
42
|
+
<a id="tojson"></a>
|
|
43
|
+
|
|
44
|
+
##### toJSON()
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
toJSON(): object;
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
###### Returns
|
|
51
|
+
|
|
52
|
+
`object`
|
|
53
|
+
|
|
54
|
+
<a id="tostring"></a>
|
|
55
|
+
|
|
56
|
+
##### toString()
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
toString(): string;
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
###### Returns
|
|
63
|
+
|
|
64
|
+
`string`
|
|
65
|
+
|
|
66
|
+
<a id="touint8array"></a>
|
|
67
|
+
|
|
68
|
+
##### toUint8Array()
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
toUint8Array(): Uint8Array;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
###### Returns
|
|
75
|
+
|
|
76
|
+
`Uint8Array`
|
|
77
|
+
|
|
78
|
+
<a id="frombase64string"></a>
|
|
79
|
+
|
|
80
|
+
##### fromBase64String()
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
static fromBase64String(base64: string): Bytes;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
###### Parameters
|
|
87
|
+
|
|
88
|
+
| Parameter | Type |
|
|
89
|
+
| :------ | :------ |
|
|
90
|
+
| `base64` | `string` |
|
|
91
|
+
|
|
92
|
+
###### Returns
|
|
93
|
+
|
|
94
|
+
[`Bytes`](#bytes)
|
|
95
|
+
|
|
96
|
+
<a id="fromjson"></a>
|
|
97
|
+
|
|
98
|
+
##### fromJSON()
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
static fromJSON(json: object): Bytes;
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
###### Parameters
|
|
105
|
+
|
|
106
|
+
| Parameter | Type |
|
|
107
|
+
| :------ | :------ |
|
|
108
|
+
| `json` | `object` |
|
|
109
|
+
|
|
110
|
+
###### Returns
|
|
111
|
+
|
|
112
|
+
[`Bytes`](#bytes)
|
|
113
|
+
|
|
114
|
+
<a id="fromuint8array"></a>
|
|
115
|
+
|
|
116
|
+
##### fromUint8Array()
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
static fromUint8Array(array: Uint8Array): Bytes;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
###### Parameters
|
|
123
|
+
|
|
124
|
+
| Parameter | Type |
|
|
125
|
+
| :------ | :------ |
|
|
126
|
+
| `array` | `Uint8Array` |
|
|
127
|
+
|
|
128
|
+
###### Returns
|
|
129
|
+
|
|
130
|
+
[`Bytes`](#bytes)
|
|
131
|
+
|
|
132
|
+
***
|
|
133
|
+
|
|
134
|
+
<a id="fieldpath"></a>
|
|
135
|
+
|
|
136
|
+
### FieldPath
|
|
137
|
+
|
|
138
|
+
#### Constructors
|
|
139
|
+
|
|
140
|
+
<a id="constructor"></a>
|
|
141
|
+
|
|
142
|
+
##### Constructor
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
new FieldPath(...fieldNames: string[]): FieldPath;
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
###### Parameters
|
|
149
|
+
|
|
150
|
+
| Parameter | Type |
|
|
151
|
+
| :------ | :------ |
|
|
152
|
+
| ...`fieldNames` | `string`[] |
|
|
153
|
+
|
|
154
|
+
###### Returns
|
|
155
|
+
|
|
156
|
+
[`FieldPath`](#fieldpath)
|
|
157
|
+
|
|
158
|
+
#### Methods
|
|
159
|
+
|
|
160
|
+
<a id="isequal-2"></a>
|
|
161
|
+
|
|
162
|
+
##### isEqual()
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
isEqual(other: FieldPath): boolean;
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
###### Parameters
|
|
169
|
+
|
|
170
|
+
| Parameter | Type |
|
|
171
|
+
| :------ | :------ |
|
|
172
|
+
| `other` | [`FieldPath`](#fieldpath) |
|
|
173
|
+
|
|
174
|
+
###### Returns
|
|
175
|
+
|
|
176
|
+
`boolean`
|
|
177
|
+
|
|
178
|
+
***
|
|
179
|
+
|
|
180
|
+
<a id="geopoint"></a>
|
|
181
|
+
|
|
182
|
+
### GeoPoint
|
|
183
|
+
|
|
184
|
+
#### Constructors
|
|
185
|
+
|
|
186
|
+
<a id="constructor-1"></a>
|
|
187
|
+
|
|
188
|
+
##### Constructor
|
|
189
|
+
|
|
190
|
+
```ts
|
|
191
|
+
new GeoPoint(lat: number, lng: number): GeoPoint;
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
###### Parameters
|
|
195
|
+
|
|
196
|
+
| Parameter | Type |
|
|
197
|
+
| :------ | :------ |
|
|
198
|
+
| `lat` | `number` |
|
|
199
|
+
| `lng` | `number` |
|
|
200
|
+
|
|
201
|
+
###### Returns
|
|
202
|
+
|
|
203
|
+
[`GeoPoint`](#geopoint)
|
|
204
|
+
|
|
205
|
+
#### Accessors
|
|
206
|
+
|
|
207
|
+
<a id="latitude"></a>
|
|
208
|
+
|
|
209
|
+
##### latitude
|
|
210
|
+
|
|
211
|
+
###### Get Signature
|
|
212
|
+
|
|
213
|
+
```ts
|
|
214
|
+
get latitude(): number;
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
###### Returns
|
|
218
|
+
|
|
219
|
+
`number`
|
|
220
|
+
|
|
221
|
+
<a id="longitude"></a>
|
|
222
|
+
|
|
223
|
+
##### longitude
|
|
224
|
+
|
|
225
|
+
###### Get Signature
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
get longitude(): number;
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
###### Returns
|
|
232
|
+
|
|
233
|
+
`number`
|
|
234
|
+
|
|
235
|
+
#### Methods
|
|
236
|
+
|
|
237
|
+
<a id="isequal-4"></a>
|
|
238
|
+
|
|
239
|
+
##### isEqual()
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
isEqual(other: GeoPoint): boolean;
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
###### Parameters
|
|
246
|
+
|
|
247
|
+
| Parameter | Type |
|
|
248
|
+
| :------ | :------ |
|
|
249
|
+
| `other` | [`GeoPoint`](#geopoint) |
|
|
250
|
+
|
|
251
|
+
###### Returns
|
|
252
|
+
|
|
253
|
+
`boolean`
|
|
254
|
+
|
|
255
|
+
<a id="tojson-2"></a>
|
|
256
|
+
|
|
257
|
+
##### toJSON()
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
toJSON(): {
|
|
261
|
+
latitude: number;
|
|
262
|
+
longitude: number;
|
|
263
|
+
type: string;
|
|
264
|
+
};
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
###### Returns
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
{
|
|
271
|
+
latitude: number;
|
|
272
|
+
longitude: number;
|
|
273
|
+
type: string;
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
###### latitude
|
|
278
|
+
|
|
279
|
+
```ts
|
|
280
|
+
latitude: number;
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
###### longitude
|
|
284
|
+
|
|
285
|
+
```ts
|
|
286
|
+
longitude: number;
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
###### type
|
|
290
|
+
|
|
291
|
+
```ts
|
|
292
|
+
type: string;
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
<a id="fromjson-2"></a>
|
|
296
|
+
|
|
297
|
+
##### fromJSON()
|
|
298
|
+
|
|
299
|
+
```ts
|
|
300
|
+
static fromJSON(json: object): GeoPoint;
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
###### Parameters
|
|
304
|
+
|
|
305
|
+
| Parameter | Type |
|
|
306
|
+
| :------ | :------ |
|
|
307
|
+
| `json` | `object` |
|
|
308
|
+
|
|
309
|
+
###### Returns
|
|
310
|
+
|
|
311
|
+
[`GeoPoint`](#geopoint)
|
|
312
|
+
|
|
313
|
+
***
|
|
314
|
+
|
|
315
|
+
<a id="vectorvalue"></a>
|
|
316
|
+
|
|
317
|
+
### VectorValue
|
|
318
|
+
|
|
319
|
+
#### Methods
|
|
320
|
+
|
|
321
|
+
<a id="isequal-6"></a>
|
|
322
|
+
|
|
323
|
+
##### isEqual()
|
|
324
|
+
|
|
325
|
+
```ts
|
|
326
|
+
isEqual(other: VectorValue): boolean;
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
###### Parameters
|
|
330
|
+
|
|
331
|
+
| Parameter | Type |
|
|
332
|
+
| :------ | :------ |
|
|
333
|
+
| `other` | [`VectorValue`](#vectorvalue) |
|
|
334
|
+
|
|
335
|
+
###### Returns
|
|
336
|
+
|
|
337
|
+
`boolean`
|
|
338
|
+
|
|
339
|
+
<a id="toarray"></a>
|
|
340
|
+
|
|
341
|
+
##### toArray()
|
|
342
|
+
|
|
343
|
+
```ts
|
|
344
|
+
toArray(): number[];
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
###### Returns
|
|
348
|
+
|
|
349
|
+
`number`[]
|
|
350
|
+
|
|
351
|
+
<a id="tojson-4"></a>
|
|
352
|
+
|
|
353
|
+
##### toJSON()
|
|
354
|
+
|
|
355
|
+
```ts
|
|
356
|
+
toJSON(): object;
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
###### Returns
|
|
360
|
+
|
|
361
|
+
`object`
|
|
362
|
+
|
|
363
|
+
<a id="create"></a>
|
|
364
|
+
|
|
365
|
+
##### create()
|
|
366
|
+
|
|
367
|
+
```ts
|
|
368
|
+
static create(values: number[]): VectorValue;
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
###### Parameters
|
|
372
|
+
|
|
373
|
+
| Parameter | Type |
|
|
374
|
+
| :------ | :------ |
|
|
375
|
+
| `values` | `number`[] |
|
|
376
|
+
|
|
377
|
+
###### Returns
|
|
378
|
+
|
|
379
|
+
[`VectorValue`](#vectorvalue)
|
|
380
|
+
|
|
381
|
+
<a id="fromjson-4"></a>
|
|
382
|
+
|
|
383
|
+
##### fromJSON()
|
|
384
|
+
|
|
385
|
+
```ts
|
|
386
|
+
static fromJSON(json: object): VectorValue;
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
###### Parameters
|
|
390
|
+
|
|
391
|
+
| Parameter | Type |
|
|
392
|
+
| :------ | :------ |
|
|
393
|
+
| `json` | `object` |
|
|
394
|
+
|
|
395
|
+
###### Returns
|
|
396
|
+
|
|
397
|
+
[`VectorValue`](#vectorvalue)
|
|
398
|
+
|
|
399
|
+
## Interfaces
|
|
400
|
+
|
|
401
|
+
<a id="aggregatequerysnapshot"></a>
|
|
402
|
+
|
|
403
|
+
### AggregateQuerySnapshot
|
|
404
|
+
|
|
405
|
+
Snapshot returned by `getCountFromServer` /
|
|
406
|
+
`getAggregateFromServer`. `.data()` returns the computed numbers
|
|
407
|
+
keyed by the spec's aliases (or `{ count: number }` for the
|
|
408
|
+
count-only entry point).
|
|
409
|
+
|
|
410
|
+
#### Type Parameters
|
|
411
|
+
|
|
412
|
+
| Type Parameter | Default type |
|
|
413
|
+
| :------ | :------ |
|
|
414
|
+
| `T` *extends* `Record`\<`string`, `number` \| `null`\> | `Record`\<`string`, `number` \| `null`\> |
|
|
415
|
+
|
|
416
|
+
#### Methods
|
|
417
|
+
|
|
418
|
+
<a id="data"></a>
|
|
419
|
+
|
|
420
|
+
##### data()
|
|
421
|
+
|
|
422
|
+
```ts
|
|
423
|
+
data(): T;
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
###### Returns
|
|
427
|
+
|
|
428
|
+
`T`
|
|
429
|
+
|
|
430
|
+
***
|
|
431
|
+
|
|
432
|
+
<a id="collectionreference"></a>
|
|
433
|
+
|
|
434
|
+
### CollectionReference
|
|
435
|
+
|
|
436
|
+
A reference to a Firestore collection. Backend-opaque.
|
|
437
|
+
|
|
438
|
+
#### Type Parameters
|
|
439
|
+
|
|
440
|
+
| Type Parameter | Default type |
|
|
441
|
+
| :------ | :------ |
|
|
442
|
+
| `_T` | [`AuthState`](#authstate) |
|
|
443
|
+
|
|
444
|
+
#### Properties
|
|
445
|
+
|
|
446
|
+
| Property | Modifier | Type |
|
|
447
|
+
| :------ | :------ | :------ |
|
|
448
|
+
| <a id="id"></a> `id` | `readonly` | `string` |
|
|
449
|
+
| <a id="path"></a> `path` | `readonly` | `string` |
|
|
450
|
+
|
|
451
|
+
***
|
|
452
|
+
|
|
453
|
+
<a id="documentreference"></a>
|
|
454
|
+
|
|
455
|
+
### DocumentReference
|
|
456
|
+
|
|
457
|
+
A reference to a Firestore document. Backend-opaque.
|
|
458
|
+
|
|
459
|
+
#### Type Parameters
|
|
460
|
+
|
|
461
|
+
| Type Parameter | Default type |
|
|
462
|
+
| :------ | :------ |
|
|
463
|
+
| `_T` | [`AuthState`](#authstate) |
|
|
464
|
+
|
|
465
|
+
#### Properties
|
|
466
|
+
|
|
467
|
+
| Property | Modifier | Type |
|
|
468
|
+
| :------ | :------ | :------ |
|
|
469
|
+
| <a id="id-1"></a> `id` | `readonly` | `string` |
|
|
470
|
+
| <a id="path-1"></a> `path` | `readonly` | `string` |
|
|
471
|
+
|
|
472
|
+
***
|
|
473
|
+
|
|
474
|
+
<a id="documentsnapshot"></a>
|
|
475
|
+
|
|
476
|
+
### DocumentSnapshot
|
|
477
|
+
|
|
478
|
+
A point-in-time view of one document.
|
|
479
|
+
|
|
480
|
+
#### Extended by
|
|
481
|
+
|
|
482
|
+
- [`QueryDocumentSnapshot`](#querydocumentsnapshot)
|
|
483
|
+
|
|
484
|
+
#### Type Parameters
|
|
485
|
+
|
|
486
|
+
| Type Parameter | Default type |
|
|
487
|
+
| :------ | :------ |
|
|
488
|
+
| `T` | [`AuthState`](#authstate) |
|
|
489
|
+
|
|
490
|
+
#### Properties
|
|
491
|
+
|
|
492
|
+
| Property | Modifier | Type |
|
|
493
|
+
| :------ | :------ | :------ |
|
|
494
|
+
| <a id="exists"></a> `exists` | `readonly` | `boolean` \| () => `boolean` |
|
|
495
|
+
| <a id="id-2"></a> `id` | `readonly` | `string` |
|
|
496
|
+
|
|
497
|
+
#### Methods
|
|
498
|
+
|
|
499
|
+
<a id="data-2"></a>
|
|
500
|
+
|
|
501
|
+
##### data()
|
|
502
|
+
|
|
503
|
+
```ts
|
|
504
|
+
data(): T;
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
###### Returns
|
|
508
|
+
|
|
509
|
+
`T`
|
|
510
|
+
|
|
511
|
+
***
|
|
512
|
+
|
|
513
|
+
<a id="firestore"></a>
|
|
514
|
+
|
|
515
|
+
### Firestore
|
|
516
|
+
|
|
517
|
+
Opaque sandbox handle carrying its owner via [TARGET\_SYMBOL](#target_symbol-1).
|
|
518
|
+
|
|
519
|
+
#### Properties
|
|
520
|
+
|
|
521
|
+
| Property | Modifier | Type |
|
|
522
|
+
| :------ | :------ | :------ |
|
|
523
|
+
| <a id="target_symbol"></a> `[TARGET_SYMBOL]` | `readonly` | `Target` |
|
|
524
|
+
| <a id="app"></a> `app?` | `readonly` | `FirebaseApp` |
|
|
525
|
+
|
|
526
|
+
***
|
|
527
|
+
|
|
528
|
+
<a id="firestoredataconverter"></a>
|
|
529
|
+
|
|
530
|
+
### FirestoreDataConverter
|
|
531
|
+
|
|
532
|
+
Pair of translators between the consumer's app model and the
|
|
533
|
+
underlying Firestore representation. Mirrors `firebase/firestore`'s
|
|
534
|
+
`FirestoreDataConverter` shape.
|
|
535
|
+
|
|
536
|
+
- `toFirestore(model)` runs on every write (`setDoc`, `addDoc`)
|
|
537
|
+
through a converted ref. Returns the `DocumentData` to send.
|
|
538
|
+
- `fromFirestore(snapshot)` runs on every read (`getDoc`,
|
|
539
|
+
`getDocs`, snapshot listener callback) through a converted ref.
|
|
540
|
+
Receives the raw snapshot, returns the typed model.
|
|
541
|
+
|
|
542
|
+
#### Type Parameters
|
|
543
|
+
|
|
544
|
+
| Type Parameter | Default type |
|
|
545
|
+
| :------ | :------ |
|
|
546
|
+
| `AppModelType` | - |
|
|
547
|
+
| `DbModelType` *extends* [`AuthState`](#authstate) | [`AuthState`](#authstate) |
|
|
548
|
+
|
|
549
|
+
#### Methods
|
|
550
|
+
|
|
551
|
+
<a id="fromfirestore"></a>
|
|
552
|
+
|
|
553
|
+
##### fromFirestore()
|
|
554
|
+
|
|
555
|
+
```ts
|
|
556
|
+
fromFirestore(snapshot: QueryDocumentSnapshot<DbModelType>): AppModelType;
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
###### Parameters
|
|
560
|
+
|
|
561
|
+
| Parameter | Type |
|
|
562
|
+
| :------ | :------ |
|
|
563
|
+
| `snapshot` | [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`DbModelType`\> |
|
|
564
|
+
|
|
565
|
+
###### Returns
|
|
566
|
+
|
|
567
|
+
`AppModelType`
|
|
568
|
+
|
|
569
|
+
<a id="tofirestore"></a>
|
|
570
|
+
|
|
571
|
+
##### toFirestore()
|
|
572
|
+
|
|
573
|
+
```ts
|
|
574
|
+
toFirestore(modelObject: AppModelType): DbModelType;
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
###### Parameters
|
|
578
|
+
|
|
579
|
+
| Parameter | Type |
|
|
580
|
+
| :------ | :------ |
|
|
581
|
+
| `modelObject` | `AppModelType` |
|
|
582
|
+
|
|
583
|
+
###### Returns
|
|
584
|
+
|
|
585
|
+
`DbModelType`
|
|
586
|
+
|
|
587
|
+
***
|
|
588
|
+
|
|
589
|
+
<a id="firestoredatatooldeps"></a>
|
|
590
|
+
|
|
591
|
+
### FirestoreDataToolDeps
|
|
592
|
+
|
|
593
|
+
#### Methods
|
|
594
|
+
|
|
595
|
+
<a id="resolvedb"></a>
|
|
596
|
+
|
|
597
|
+
##### resolveDb()
|
|
598
|
+
|
|
599
|
+
```ts
|
|
600
|
+
resolveDb(as?: As): Firestore | Promise<Firestore>;
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
Resolver returning a `Firestore` handle. Called per-dispatch with the
|
|
604
|
+
op's `as` value: `'admin'` (or undefined) → an admin-bypass Firestore;
|
|
605
|
+
`{ uid, claims? }` → a rules-enforcing Firestore acting as that user.
|
|
606
|
+
|
|
607
|
+
The host decides the posture; the tool layer does NOT enforce it. A sandbox
|
|
608
|
+
resolver may default to admin (rules bypass is the point of seeding), but a
|
|
609
|
+
resolver wired to a real backend should require an explicit identity or
|
|
610
|
+
confirm-gate admin writes (see the bridge's prod confirm-policy).
|
|
611
|
+
|
|
612
|
+
###### Parameters
|
|
613
|
+
|
|
614
|
+
| Parameter | Type |
|
|
615
|
+
| :------ | :------ |
|
|
616
|
+
| `as?` | [`As`](#as) |
|
|
617
|
+
|
|
618
|
+
###### Returns
|
|
619
|
+
|
|
620
|
+
[`Firestore`](#firestore) \| `Promise`\<[`Firestore`](#firestore)\>
|
|
621
|
+
|
|
622
|
+
***
|
|
623
|
+
|
|
624
|
+
<a id="firestoreinspecttooldeps"></a>
|
|
625
|
+
|
|
626
|
+
### FirestoreInspectToolDeps
|
|
627
|
+
|
|
628
|
+
#### Methods
|
|
629
|
+
|
|
630
|
+
<a id="resolvesandbox"></a>
|
|
631
|
+
|
|
632
|
+
##### resolveSandbox()
|
|
633
|
+
|
|
634
|
+
```ts
|
|
635
|
+
resolveSandbox(): any;
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
Resolve the sandbox whose Firestore state should be inspected.
|
|
639
|
+
|
|
640
|
+
###### Returns
|
|
641
|
+
|
|
642
|
+
`any`
|
|
643
|
+
|
|
644
|
+
***
|
|
645
|
+
|
|
646
|
+
<a id="firestoresettings"></a>
|
|
647
|
+
|
|
648
|
+
### FirestoreSettings
|
|
649
|
+
|
|
650
|
+
Client-cache/network settings `initializeFirestore` accepts but no-ops
|
|
651
|
+
on sandbox targets — see the tier-1 section rationale above.
|
|
652
|
+
|
|
653
|
+
#### Properties
|
|
654
|
+
|
|
655
|
+
| Property | Type |
|
|
656
|
+
| :------ | :------ |
|
|
657
|
+
| <a id="cachesizebytes"></a> `cacheSizeBytes?` | `number` |
|
|
658
|
+
| <a id="experimentalautodetectlongpolling"></a> `experimentalAutoDetectLongPolling?` | `boolean` |
|
|
659
|
+
| <a id="experimentalforcelongpolling"></a> `experimentalForceLongPolling?` | `boolean` |
|
|
660
|
+
| <a id="host"></a> `host?` | `string` |
|
|
661
|
+
| <a id="ignoreundefinedproperties"></a> `ignoreUndefinedProperties?` | `boolean` |
|
|
662
|
+
| <a id="localcache"></a> `localCache?` | [`LocalCache`](#localcache-1) |
|
|
663
|
+
| <a id="ssl"></a> `ssl?` | `boolean` |
|
|
664
|
+
|
|
665
|
+
***
|
|
666
|
+
|
|
667
|
+
<a id="localcache-1"></a>
|
|
668
|
+
|
|
669
|
+
### LocalCache
|
|
670
|
+
|
|
671
|
+
Opaque local-cache config token accepted by [initializeFirestore](#initializefirestore)'s
|
|
672
|
+
`settings.localCache`. Inert — see the tier-1 section rationale above.
|
|
673
|
+
|
|
674
|
+
#### Properties
|
|
675
|
+
|
|
676
|
+
| Property | Modifier | Type |
|
|
677
|
+
| :------ | :------ | :------ |
|
|
678
|
+
| <a id="local_cache_symbol"></a> `[LOCAL_CACHE_SYMBOL]` | `readonly` | `"persistent"` \| `"memory"` |
|
|
679
|
+
| <a id="garbagecollector"></a> `garbageCollector?` | `readonly` | [`MemoryGarbageCollector`](#memorygarbagecollector) |
|
|
680
|
+
| <a id="tabmanager"></a> `tabManager?` | `readonly` | [`PersistentTabManager`](#persistenttabmanager) |
|
|
681
|
+
|
|
682
|
+
***
|
|
683
|
+
|
|
684
|
+
<a id="memorygarbagecollector"></a>
|
|
685
|
+
|
|
686
|
+
### MemoryGarbageCollector
|
|
687
|
+
|
|
688
|
+
Opaque garbage-collector config token. Inert for the same reason —
|
|
689
|
+
there is no memory cache tier with GC pressure to tune.
|
|
690
|
+
|
|
691
|
+
#### Properties
|
|
692
|
+
|
|
693
|
+
| Property | Modifier | Type |
|
|
694
|
+
| :------ | :------ | :------ |
|
|
695
|
+
| <a id="gc_symbol"></a> `[GC_SYMBOL]` | `readonly` | `"eager"` \| `"lru"` |
|
|
696
|
+
|
|
697
|
+
***
|
|
698
|
+
|
|
699
|
+
<a id="persistencesettings"></a>
|
|
700
|
+
|
|
701
|
+
### PersistenceSettings
|
|
702
|
+
|
|
703
|
+
#### Properties
|
|
704
|
+
|
|
705
|
+
| Property | Type |
|
|
706
|
+
| :------ | :------ |
|
|
707
|
+
| <a id="forceownership"></a> `forceOwnership?` | `boolean` |
|
|
708
|
+
|
|
709
|
+
***
|
|
710
|
+
|
|
711
|
+
<a id="persistenttabmanager"></a>
|
|
712
|
+
|
|
713
|
+
### PersistentTabManager
|
|
714
|
+
|
|
715
|
+
Opaque tab-manager config token. Inert — persistence is always on,
|
|
716
|
+
and the SharedWorker/`pyric dev` path already is the one shared
|
|
717
|
+
store every tab talks to, so there is no separate multi-tab mode
|
|
718
|
+
to opt into. Carries the requested kind only for debugging.
|
|
719
|
+
|
|
720
|
+
#### Properties
|
|
721
|
+
|
|
722
|
+
| Property | Modifier | Type |
|
|
723
|
+
| :------ | :------ | :------ |
|
|
724
|
+
| <a id="tab_manager_symbol"></a> `[TAB_MANAGER_SYMBOL]` | `readonly` | `"single"` \| `"multiple"` |
|
|
725
|
+
|
|
726
|
+
***
|
|
727
|
+
|
|
728
|
+
<a id="query"></a>
|
|
729
|
+
|
|
730
|
+
### Query
|
|
731
|
+
|
|
732
|
+
A Firestore query (a collection ref or one with where/orderBy/limit applied).
|
|
733
|
+
|
|
734
|
+
#### Type Parameters
|
|
735
|
+
|
|
736
|
+
| Type Parameter | Default type |
|
|
737
|
+
| :------ | :------ |
|
|
738
|
+
| `_T` | [`AuthState`](#authstate) |
|
|
739
|
+
|
|
740
|
+
***
|
|
741
|
+
|
|
742
|
+
<a id="queryconstraint"></a>
|
|
743
|
+
|
|
744
|
+
### QueryConstraint
|
|
745
|
+
|
|
746
|
+
#### Methods
|
|
747
|
+
|
|
748
|
+
<a id="applysandbox"></a>
|
|
749
|
+
|
|
750
|
+
##### applySandbox()
|
|
751
|
+
|
|
752
|
+
```ts
|
|
753
|
+
applySandbox(q: ChainQuery): ChainQuery;
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
###### Parameters
|
|
757
|
+
|
|
758
|
+
| Parameter | Type |
|
|
759
|
+
| :------ | :------ |
|
|
760
|
+
| `q` | `ChainQuery` |
|
|
761
|
+
|
|
762
|
+
###### Returns
|
|
763
|
+
|
|
764
|
+
`ChainQuery`
|
|
765
|
+
|
|
766
|
+
***
|
|
767
|
+
|
|
768
|
+
<a id="querydocumentsnapshot"></a>
|
|
769
|
+
|
|
770
|
+
### QueryDocumentSnapshot
|
|
771
|
+
|
|
772
|
+
`QueryDocumentSnapshot` is a `DocumentSnapshot` known to exist —
|
|
773
|
+
`.data()` always returns the typed model, never `undefined`. Yielded
|
|
774
|
+
by `QuerySnapshot.docs` and passed to converter `fromFirestore`
|
|
775
|
+
callbacks. Mirrors the JS SDK's narrowing.
|
|
776
|
+
|
|
777
|
+
#### Extends
|
|
778
|
+
|
|
779
|
+
- [`DocumentSnapshot`](#documentsnapshot)\<`T`\>
|
|
780
|
+
|
|
781
|
+
#### Type Parameters
|
|
782
|
+
|
|
783
|
+
| Type Parameter | Default type |
|
|
784
|
+
| :------ | :------ |
|
|
785
|
+
| `T` | [`AuthState`](#authstate) |
|
|
786
|
+
|
|
787
|
+
#### Properties
|
|
788
|
+
|
|
789
|
+
| Property | Modifier | Type |
|
|
790
|
+
| :------ | :------ | :------ |
|
|
791
|
+
| <a id="exists-1"></a> `exists` | `readonly` | `boolean` \| () => `boolean` |
|
|
792
|
+
| <a id="id-3"></a> `id` | `readonly` | `string` |
|
|
793
|
+
|
|
794
|
+
#### Methods
|
|
795
|
+
|
|
796
|
+
<a id="data-4"></a>
|
|
797
|
+
|
|
798
|
+
##### data()
|
|
799
|
+
|
|
800
|
+
```ts
|
|
801
|
+
data(): T;
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
###### Returns
|
|
805
|
+
|
|
806
|
+
`T`
|
|
807
|
+
|
|
808
|
+
###### Overrides
|
|
809
|
+
|
|
810
|
+
[`DocumentSnapshot`](#documentsnapshot).[`data`](#data-2)
|
|
811
|
+
|
|
812
|
+
***
|
|
813
|
+
|
|
814
|
+
<a id="querysnapshot"></a>
|
|
815
|
+
|
|
816
|
+
### QuerySnapshot
|
|
817
|
+
|
|
818
|
+
A point-in-time view of a query result.
|
|
819
|
+
|
|
820
|
+
#### Type Parameters
|
|
821
|
+
|
|
822
|
+
| Type Parameter | Default type |
|
|
823
|
+
| :------ | :------ |
|
|
824
|
+
| `T` | [`AuthState`](#authstate) |
|
|
825
|
+
|
|
826
|
+
#### Properties
|
|
827
|
+
|
|
828
|
+
| Property | Modifier | Type |
|
|
829
|
+
| :------ | :------ | :------ |
|
|
830
|
+
| <a id="docs"></a> `docs` | `readonly` | readonly [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`T`\>[] |
|
|
831
|
+
| <a id="empty"></a> `empty` | `readonly` | `boolean` |
|
|
832
|
+
| <a id="size"></a> `size` | `readonly` | `number` |
|
|
833
|
+
|
|
834
|
+
***
|
|
835
|
+
|
|
836
|
+
<a id="setoptions"></a>
|
|
837
|
+
|
|
838
|
+
### SetOptions
|
|
839
|
+
|
|
840
|
+
Modular Web-SDK-shaped `SetOptions`. Either flag controls how `data`
|
|
841
|
+
combines with the existing document; passing nothing replaces the
|
|
842
|
+
existing doc entirely (Firestore default).
|
|
843
|
+
|
|
844
|
+
- `{ merge: true }` — shallow-merge every top-level field in
|
|
845
|
+
`data` into the existing document, preserving fields not in
|
|
846
|
+
`data`. Equivalent to `firebase/firestore`'s `setDoc(ref, data,
|
|
847
|
+
{ merge: true })`.
|
|
848
|
+
- `{ mergeFields: [...] }` — project `data` to just the listed
|
|
849
|
+
top-level fields, then merge. Other fields in `data` are
|
|
850
|
+
ignored; other fields in the existing doc are preserved.
|
|
851
|
+
|
|
852
|
+
`merge` and `mergeFields` are mutually exclusive; passing both is
|
|
853
|
+
a programming error (`mergeFields` wins on the sandbox path,
|
|
854
|
+
matching the JS SDK's effective behavior).
|
|
855
|
+
|
|
856
|
+
#### Properties
|
|
857
|
+
|
|
858
|
+
| Property | Type |
|
|
859
|
+
| :------ | :------ |
|
|
860
|
+
| <a id="merge"></a> `merge?` | `boolean` |
|
|
861
|
+
| <a id="mergefields"></a> `mergeFields?` | readonly `string`[] |
|
|
862
|
+
|
|
863
|
+
***
|
|
864
|
+
|
|
865
|
+
<a id="snapshotlistenoptions"></a>
|
|
866
|
+
|
|
867
|
+
### SnapshotListenOptions
|
|
868
|
+
|
|
869
|
+
#### Properties
|
|
870
|
+
|
|
871
|
+
| Property | Type |
|
|
872
|
+
| :------ | :------ |
|
|
873
|
+
| <a id="includemetadatachanges"></a> `includeMetadataChanges?` | `boolean` |
|
|
874
|
+
|
|
875
|
+
***
|
|
876
|
+
|
|
877
|
+
<a id="snapshotobserver"></a>
|
|
878
|
+
|
|
879
|
+
### SnapshotObserver
|
|
880
|
+
|
|
881
|
+
#### Type Parameters
|
|
882
|
+
|
|
883
|
+
| Type Parameter |
|
|
884
|
+
| :------ |
|
|
885
|
+
| `T` |
|
|
886
|
+
|
|
887
|
+
#### Properties
|
|
888
|
+
|
|
889
|
+
| Property | Type |
|
|
890
|
+
| :------ | :------ |
|
|
891
|
+
| <a id="complete"></a> `complete?` | () => `void` |
|
|
892
|
+
| <a id="error"></a> `error?` | (`error`: `unknown`) => `void` |
|
|
893
|
+
| <a id="next"></a> `next?` | (`snapshot`: `T`) => `void` |
|
|
894
|
+
|
|
895
|
+
***
|
|
896
|
+
|
|
897
|
+
<a id="userauth"></a>
|
|
898
|
+
|
|
899
|
+
### UserAuth
|
|
900
|
+
|
|
901
|
+
#### Properties
|
|
902
|
+
|
|
903
|
+
| Property | Type |
|
|
904
|
+
| :------ | :------ |
|
|
905
|
+
| <a id="claims"></a> `claims?` | `Record`\<`string`, `unknown`\> |
|
|
906
|
+
| <a id="uid"></a> `uid` | `string` |
|
|
907
|
+
|
|
908
|
+
## Type Aliases
|
|
909
|
+
|
|
910
|
+
<a id="aggregatefield"></a>
|
|
911
|
+
|
|
912
|
+
### AggregateField
|
|
913
|
+
|
|
914
|
+
```ts
|
|
915
|
+
type AggregateField =
|
|
916
|
+
| {
|
|
917
|
+
kind: "count";
|
|
918
|
+
}
|
|
919
|
+
| {
|
|
920
|
+
field: string;
|
|
921
|
+
kind: "sum";
|
|
922
|
+
}
|
|
923
|
+
| {
|
|
924
|
+
field: string;
|
|
925
|
+
kind: "average";
|
|
926
|
+
};
|
|
927
|
+
```
|
|
928
|
+
|
|
929
|
+
Aggregate-field descriptor returned by `count()` / `sum(field)` /
|
|
930
|
+
`average(field)`.
|
|
931
|
+
|
|
932
|
+
***
|
|
933
|
+
|
|
934
|
+
<a id="aggregatespec"></a>
|
|
935
|
+
|
|
936
|
+
### AggregateSpec
|
|
937
|
+
|
|
938
|
+
```ts
|
|
939
|
+
type AggregateSpec = Record<string, AggregateField>;
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
Spec passed to `getAggregateFromServer(query, spec)`.
|
|
943
|
+
|
|
944
|
+
***
|
|
945
|
+
|
|
946
|
+
<a id="appfirestore"></a>
|
|
947
|
+
|
|
948
|
+
### AppFirestore
|
|
949
|
+
|
|
950
|
+
```ts
|
|
951
|
+
type AppFirestore = Firestore & {
|
|
952
|
+
app: FirebaseApp;
|
|
953
|
+
};
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
Firestore handle returned by Firebase-shaped app overloads.
|
|
957
|
+
|
|
958
|
+
#### Type Declaration
|
|
959
|
+
|
|
960
|
+
##### app
|
|
961
|
+
|
|
962
|
+
```ts
|
|
963
|
+
readonly app: FirebaseApp;
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
***
|
|
967
|
+
|
|
968
|
+
<a id="as"></a>
|
|
969
|
+
|
|
970
|
+
### As
|
|
971
|
+
|
|
972
|
+
```ts
|
|
973
|
+
type As = "admin" | UserAuth;
|
|
974
|
+
```
|
|
975
|
+
|
|
976
|
+
Who a data-plane op runs as. The default (omitted, or the literal `'admin'`)
|
|
977
|
+
is an ADMIN write that BYPASSES rules — the right mode for sandbox seeding.
|
|
978
|
+
A `{ uid, claims? }` runs as that user with rules ENFORCED. The point of the
|
|
979
|
+
explicit literal: bypass is NAMED (`as:'admin'`), not the silent consequence
|
|
980
|
+
of omitting an auth field, and acting-as-a-user is named too.
|
|
981
|
+
|
|
982
|
+
***
|
|
983
|
+
|
|
984
|
+
<a id="authstate"></a>
|
|
985
|
+
|
|
986
|
+
### AuthState
|
|
987
|
+
|
|
988
|
+
```ts
|
|
989
|
+
type AuthState = any;
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
***
|
|
993
|
+
|
|
994
|
+
<a id="loglevel"></a>
|
|
995
|
+
|
|
996
|
+
### LogLevel
|
|
997
|
+
|
|
998
|
+
```ts
|
|
999
|
+
type LogLevel = "debug" | "verbose" | "info" | "warn" | "error" | "silent";
|
|
1000
|
+
```
|
|
1001
|
+
|
|
1002
|
+
Mirrors `firebase/firestore`'s `LogLevel` union.
|
|
1003
|
+
|
|
1004
|
+
***
|
|
1005
|
+
|
|
1006
|
+
<a id="transaction"></a>
|
|
1007
|
+
|
|
1008
|
+
### Transaction
|
|
1009
|
+
|
|
1010
|
+
```ts
|
|
1011
|
+
type Transaction = AuthState;
|
|
1012
|
+
```
|
|
1013
|
+
|
|
1014
|
+
***
|
|
1015
|
+
|
|
1016
|
+
<a id="unsubscribe"></a>
|
|
1017
|
+
|
|
1018
|
+
### Unsubscribe()
|
|
1019
|
+
|
|
1020
|
+
```ts
|
|
1021
|
+
type Unsubscribe = () => void;
|
|
1022
|
+
```
|
|
1023
|
+
|
|
1024
|
+
#### Returns
|
|
1025
|
+
|
|
1026
|
+
`void`
|
|
1027
|
+
|
|
1028
|
+
***
|
|
1029
|
+
|
|
1030
|
+
<a id="writebatch"></a>
|
|
1031
|
+
|
|
1032
|
+
### WriteBatch
|
|
1033
|
+
|
|
1034
|
+
```ts
|
|
1035
|
+
type WriteBatch = AuthState;
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
## Variables
|
|
1039
|
+
|
|
1040
|
+
<a id="target_symbol-1"></a>
|
|
1041
|
+
|
|
1042
|
+
### TARGET\_SYMBOL
|
|
1043
|
+
|
|
1044
|
+
```ts
|
|
1045
|
+
const TARGET_SYMBOL: unique symbol;
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
Hidden property on every [Firestore](#firestore) handle. Discriminates
|
|
1049
|
+
the sandbox backend so free functions can recover their owner.
|
|
1050
|
+
|
|
1051
|
+
## Functions
|
|
1052
|
+
|
|
1053
|
+
<a id="actingas"></a>
|
|
1054
|
+
|
|
1055
|
+
### actingAs()
|
|
1056
|
+
|
|
1057
|
+
```ts
|
|
1058
|
+
function actingAs(sandbox: Sandbox, identity: AuthState): Firestore;
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
A Firestore handle scoped to a specific identity, for multi-user testing.
|
|
1062
|
+
|
|
1063
|
+
`actingAs(sandbox, { uid })` returns a `Firestore` whose ops evaluate security
|
|
1064
|
+
rules as that user (`request.auth.uid === uid`; custom claims via `token`);
|
|
1065
|
+
`actingAs(sandbox, null)` is the anonymous (signed-out) path. Multiple
|
|
1066
|
+
identities over ONE sandbox share the same store, so a write by one is
|
|
1067
|
+
delivered to another's `onSnapshot`: the basis for multi-user sync testing.
|
|
1068
|
+
|
|
1069
|
+
#### Parameters
|
|
1070
|
+
|
|
1071
|
+
| Parameter | Type |
|
|
1072
|
+
| :------ | :------ |
|
|
1073
|
+
| `sandbox` | `Sandbox` |
|
|
1074
|
+
| `identity` | `AuthState` |
|
|
1075
|
+
|
|
1076
|
+
#### Returns
|
|
1077
|
+
|
|
1078
|
+
[`Firestore`](#firestore)
|
|
1079
|
+
|
|
1080
|
+
#### Example
|
|
1081
|
+
|
|
1082
|
+
```ts
|
|
1083
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
1084
|
+
import { actingAs, doc, setDoc, onSnapshot } from 'pyric/firestore';
|
|
1085
|
+
const sandbox = initializeSandbox();
|
|
1086
|
+
const alice = actingAs(sandbox, { uid: 'alice' });
|
|
1087
|
+
const bob = actingAs(sandbox, { uid: 'bob', token: { role: 'member' } });
|
|
1088
|
+
onSnapshot(doc(bob, 'rooms/r1'), () => {
|
|
1089
|
+
// fires when alice writes (same store; rules evaluated as bob)
|
|
1090
|
+
});
|
|
1091
|
+
await setDoc(doc(alice, 'rooms/r1'), { owner: 'alice' });
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
Thin sugar over `getFirestore(sandbox.withAuth(identity))`; the value is a
|
|
1095
|
+
named, discoverable seam for multi-user scenarios. See
|
|
1096
|
+
the design rationale.
|
|
1097
|
+
|
|
1098
|
+
***
|
|
1099
|
+
|
|
1100
|
+
<a id="adddoc"></a>
|
|
1101
|
+
|
|
1102
|
+
### addDoc()
|
|
1103
|
+
|
|
1104
|
+
```ts
|
|
1105
|
+
function addDoc<T>(coll: CollectionReference<T>, data: T): Promise<DocumentReference<T>>;
|
|
1106
|
+
```
|
|
1107
|
+
|
|
1108
|
+
#### Type Parameters
|
|
1109
|
+
|
|
1110
|
+
| Type Parameter | Default type |
|
|
1111
|
+
| :------ | :------ |
|
|
1112
|
+
| `T` | `DocumentData` |
|
|
1113
|
+
|
|
1114
|
+
#### Parameters
|
|
1115
|
+
|
|
1116
|
+
| Parameter | Type |
|
|
1117
|
+
| :------ | :------ |
|
|
1118
|
+
| `coll` | [`CollectionReference`](#collectionreference)\<`T`\> |
|
|
1119
|
+
| `data` | `T` |
|
|
1120
|
+
|
|
1121
|
+
#### Returns
|
|
1122
|
+
|
|
1123
|
+
`Promise`\<[`DocumentReference`](#documentreference)\<`T`\>\>
|
|
1124
|
+
|
|
1125
|
+
***
|
|
1126
|
+
|
|
1127
|
+
<a id="and"></a>
|
|
1128
|
+
|
|
1129
|
+
### and()
|
|
1130
|
+
|
|
1131
|
+
```ts
|
|
1132
|
+
function and(...filters: QueryConstraint[]): QueryConstraint;
|
|
1133
|
+
```
|
|
1134
|
+
|
|
1135
|
+
AND composite. Same shape as `or()` but every inner constraint
|
|
1136
|
+
must match. Useful inside an `or()` to combine constraints that
|
|
1137
|
+
would otherwise be at the top level.
|
|
1138
|
+
|
|
1139
|
+
#### Parameters
|
|
1140
|
+
|
|
1141
|
+
| Parameter | Type |
|
|
1142
|
+
| :------ | :------ |
|
|
1143
|
+
| ...`filters` | [`QueryConstraint`](#queryconstraint)[] |
|
|
1144
|
+
|
|
1145
|
+
#### Returns
|
|
1146
|
+
|
|
1147
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1148
|
+
|
|
1149
|
+
***
|
|
1150
|
+
|
|
1151
|
+
<a id="arrayremove"></a>
|
|
1152
|
+
|
|
1153
|
+
### arrayRemove()
|
|
1154
|
+
|
|
1155
|
+
```ts
|
|
1156
|
+
function arrayRemove(...values: unknown[]): FieldValueSentinel;
|
|
1157
|
+
```
|
|
1158
|
+
|
|
1159
|
+
#### Parameters
|
|
1160
|
+
|
|
1161
|
+
| Parameter | Type |
|
|
1162
|
+
| :------ | :------ |
|
|
1163
|
+
| ...`values` | `unknown`[] |
|
|
1164
|
+
|
|
1165
|
+
#### Returns
|
|
1166
|
+
|
|
1167
|
+
`FieldValueSentinel`
|
|
1168
|
+
|
|
1169
|
+
***
|
|
1170
|
+
|
|
1171
|
+
<a id="arrayunion"></a>
|
|
1172
|
+
|
|
1173
|
+
### arrayUnion()
|
|
1174
|
+
|
|
1175
|
+
```ts
|
|
1176
|
+
function arrayUnion(...values: unknown[]): FieldValueSentinel;
|
|
1177
|
+
```
|
|
1178
|
+
|
|
1179
|
+
#### Parameters
|
|
1180
|
+
|
|
1181
|
+
| Parameter | Type |
|
|
1182
|
+
| :------ | :------ |
|
|
1183
|
+
| ...`values` | `unknown`[] |
|
|
1184
|
+
|
|
1185
|
+
#### Returns
|
|
1186
|
+
|
|
1187
|
+
`FieldValueSentinel`
|
|
1188
|
+
|
|
1189
|
+
***
|
|
1190
|
+
|
|
1191
|
+
<a id="average"></a>
|
|
1192
|
+
|
|
1193
|
+
### average()
|
|
1194
|
+
|
|
1195
|
+
```ts
|
|
1196
|
+
function average(field: string): AggregateField;
|
|
1197
|
+
```
|
|
1198
|
+
|
|
1199
|
+
Factory: average-of-`field` aggregate.
|
|
1200
|
+
|
|
1201
|
+
#### Parameters
|
|
1202
|
+
|
|
1203
|
+
| Parameter | Type |
|
|
1204
|
+
| :------ | :------ |
|
|
1205
|
+
| `field` | `string` |
|
|
1206
|
+
|
|
1207
|
+
#### Returns
|
|
1208
|
+
|
|
1209
|
+
[`AggregateField`](#aggregatefield)
|
|
1210
|
+
|
|
1211
|
+
***
|
|
1212
|
+
|
|
1213
|
+
<a id="clearindexeddbpersistence"></a>
|
|
1214
|
+
|
|
1215
|
+
### clearIndexedDbPersistence()
|
|
1216
|
+
|
|
1217
|
+
```ts
|
|
1218
|
+
function clearIndexedDbPersistence(db: Firestore): Promise<void>;
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1221
|
+
Sandbox: actually clears the sandbox's persisted store via
|
|
1222
|
+
`Sandbox.clearPersistence()` — the honest mapping, not a no-op. This
|
|
1223
|
+
wipes the persisted blob (IndexedDB, or whatever backend
|
|
1224
|
+
`enablePersistence` was configured with) while leaving in-memory
|
|
1225
|
+
state untouched, matching `clearPersistence`'s own contract. It is
|
|
1226
|
+
ALREADY a no-op when persistence was never enabled, so callers that
|
|
1227
|
+
invoke this defensively at startup are safe either way.
|
|
1228
|
+
|
|
1229
|
+
`getFirestore(ctx)` (frozen `SandboxContext`) targets don't carry a
|
|
1230
|
+
live `Sandbox` handle with a `clearPersistence` method reachable the
|
|
1231
|
+
same way as a `sandbox`/`sandbox-live` target's `.sandbox` field —
|
|
1232
|
+
both variants do, in fact, so this always has a sandbox to call into.
|
|
1233
|
+
|
|
1234
|
+
The real SDK requires this before Firestore starts; the sandbox's mapped
|
|
1235
|
+
`clearPersistence()` has no such restriction.
|
|
1236
|
+
|
|
1237
|
+
#### Parameters
|
|
1238
|
+
|
|
1239
|
+
| Parameter | Type |
|
|
1240
|
+
| :------ | :------ |
|
|
1241
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1242
|
+
|
|
1243
|
+
#### Returns
|
|
1244
|
+
|
|
1245
|
+
`Promise`\<`void`\>
|
|
1246
|
+
|
|
1247
|
+
***
|
|
1248
|
+
|
|
1249
|
+
<a id="collection"></a>
|
|
1250
|
+
|
|
1251
|
+
### collection()
|
|
1252
|
+
|
|
1253
|
+
```ts
|
|
1254
|
+
function collection(parent:
|
|
1255
|
+
| Firestore
|
|
1256
|
+
| DocumentReference<DocumentData>, ...pathSegments: string[]): CollectionReference;
|
|
1257
|
+
```
|
|
1258
|
+
|
|
1259
|
+
#### Parameters
|
|
1260
|
+
|
|
1261
|
+
| Parameter | Type |
|
|
1262
|
+
| :------ | :------ |
|
|
1263
|
+
| `parent` | \| [`Firestore`](#firestore) \| [`DocumentReference`](#documentreference)\<`DocumentData`\> |
|
|
1264
|
+
| ...`pathSegments` | `string`[] |
|
|
1265
|
+
|
|
1266
|
+
#### Returns
|
|
1267
|
+
|
|
1268
|
+
[`CollectionReference`](#collectionreference)
|
|
1269
|
+
|
|
1270
|
+
***
|
|
1271
|
+
|
|
1272
|
+
<a id="collectiongroup"></a>
|
|
1273
|
+
|
|
1274
|
+
### collectionGroup()
|
|
1275
|
+
|
|
1276
|
+
```ts
|
|
1277
|
+
function collectionGroup(db: Firestore, collectionId: string): Query;
|
|
1278
|
+
```
|
|
1279
|
+
|
|
1280
|
+
Cross-collection query — scans every document under every
|
|
1281
|
+
collection whose final segment matches `collectionId`. Mirrors
|
|
1282
|
+
`firebase/firestore`'s `collectionGroup(db, id)` shape.
|
|
1283
|
+
|
|
1284
|
+
Returned `Query` accepts the same `where` / `orderBy` / `limit`
|
|
1285
|
+
constraints as any other query.
|
|
1286
|
+
|
|
1287
|
+
#### Parameters
|
|
1288
|
+
|
|
1289
|
+
| Parameter | Type |
|
|
1290
|
+
| :------ | :------ |
|
|
1291
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1292
|
+
| `collectionId` | `string` |
|
|
1293
|
+
|
|
1294
|
+
#### Returns
|
|
1295
|
+
|
|
1296
|
+
[`Query`](#query)
|
|
1297
|
+
|
|
1298
|
+
***
|
|
1299
|
+
|
|
1300
|
+
<a id="connectfirestoreemulator"></a>
|
|
1301
|
+
|
|
1302
|
+
### connectFirestoreEmulator()
|
|
1303
|
+
|
|
1304
|
+
```ts
|
|
1305
|
+
function connectFirestoreEmulator(
|
|
1306
|
+
db: Firestore,
|
|
1307
|
+
host: string,
|
|
1308
|
+
port: number,
|
|
1309
|
+
options?: {
|
|
1310
|
+
mockUserToken?: | string
|
|
1311
|
+
| {
|
|
1312
|
+
[claim: string]: unknown;
|
|
1313
|
+
firebase?: {
|
|
1314
|
+
identities?: Record<string, string[]>;
|
|
1315
|
+
sign_in_provider?: string;
|
|
1316
|
+
};
|
|
1317
|
+
sub?: string;
|
|
1318
|
+
user_id?: string;
|
|
1319
|
+
};
|
|
1320
|
+
}): void;
|
|
1321
|
+
```
|
|
1322
|
+
|
|
1323
|
+
No-op in the sandbox mirror because the sandbox already runs locally.
|
|
1324
|
+
|
|
1325
|
+
The option shape remains source-compatible with Firebase so canonical
|
|
1326
|
+
initialization code can call it unconditionally.
|
|
1327
|
+
|
|
1328
|
+
#### Parameters
|
|
1329
|
+
|
|
1330
|
+
| Parameter | Type |
|
|
1331
|
+
| :------ | :------ |
|
|
1332
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1333
|
+
| `host` | `string` |
|
|
1334
|
+
| `port` | `number` |
|
|
1335
|
+
| `options?` | \{ `mockUserToken?`: \| `string` \| \{ \[`claim`: `string`\]: `unknown`; `firebase?`: \{ `identities?`: `Record`\<`string`, `string`[]\>; `sign_in_provider?`: `string`; \}; `sub?`: `string`; `user_id?`: `string`; \}; \} |
|
|
1336
|
+
| `options.mockUserToken?` | \| `string` \| \{ \[`claim`: `string`\]: `unknown`; `firebase?`: \{ `identities?`: `Record`\<`string`, `string`[]\>; `sign_in_provider?`: `string`; \}; `sub?`: `string`; `user_id?`: `string`; \} |
|
|
1337
|
+
|
|
1338
|
+
#### Returns
|
|
1339
|
+
|
|
1340
|
+
`void`
|
|
1341
|
+
|
|
1342
|
+
***
|
|
1343
|
+
|
|
1344
|
+
<a id="count"></a>
|
|
1345
|
+
|
|
1346
|
+
### count()
|
|
1347
|
+
|
|
1348
|
+
```ts
|
|
1349
|
+
function count(): AggregateField;
|
|
1350
|
+
```
|
|
1351
|
+
|
|
1352
|
+
Factory: count() aggregate.
|
|
1353
|
+
|
|
1354
|
+
#### Returns
|
|
1355
|
+
|
|
1356
|
+
[`AggregateField`](#aggregatefield)
|
|
1357
|
+
|
|
1358
|
+
***
|
|
1359
|
+
|
|
1360
|
+
<a id="createfirestoredatatools"></a>
|
|
1361
|
+
|
|
1362
|
+
### createFirestoreDataTools()
|
|
1363
|
+
|
|
1364
|
+
```ts
|
|
1365
|
+
function createFirestoreDataTools(deps: FirestoreDataToolDeps): ToolHandler<unknown, unknown>[];
|
|
1366
|
+
```
|
|
1367
|
+
|
|
1368
|
+
Modular Web-SDK-shaped Firestore data tools — get, list, create,
|
|
1369
|
+
update, delete. Each tool's `auth` arg is forwarded to the
|
|
1370
|
+
resolver; omitted = admin mode, supplied = user mode.
|
|
1371
|
+
|
|
1372
|
+
#### Parameters
|
|
1373
|
+
|
|
1374
|
+
| Parameter | Type |
|
|
1375
|
+
| :------ | :------ |
|
|
1376
|
+
| `deps` | [`FirestoreDataToolDeps`](#firestoredatatooldeps) |
|
|
1377
|
+
|
|
1378
|
+
#### Returns
|
|
1379
|
+
|
|
1380
|
+
`ToolHandler`\<`unknown`, `unknown`\>[]
|
|
1381
|
+
|
|
1382
|
+
***
|
|
1383
|
+
|
|
1384
|
+
<a id="createfirestoreinspecttools"></a>
|
|
1385
|
+
|
|
1386
|
+
### createFirestoreInspectTools()
|
|
1387
|
+
|
|
1388
|
+
```ts
|
|
1389
|
+
function createFirestoreInspectTools(deps: FirestoreInspectToolDeps): ToolHandler<unknown, unknown>[];
|
|
1390
|
+
```
|
|
1391
|
+
|
|
1392
|
+
`sandbox_inspect` — the missing-tool tax this entire library
|
|
1393
|
+
used to charge agents. Without it, debugging "why aren't my rules
|
|
1394
|
+
working?" took 51 tool calls + 72k tokens of grepping node_modules
|
|
1395
|
+
(recorded in CLAUDE_DEBUG_SESSION.md). With it, the same diagnosis
|
|
1396
|
+
is one tool call:
|
|
1397
|
+
|
|
1398
|
+
{ rules: { source, sizeBytes, isEmpty, lint: { errors, warnings, findings } },
|
|
1399
|
+
documents: { totalCount, byCollection },
|
|
1400
|
+
events: { totalCount, recentDenials, recentRequests } }
|
|
1401
|
+
|
|
1402
|
+
Returns a snapshot of sandbox state — current rules, lint summary,
|
|
1403
|
+
document census by collection, and the most-recent denials + requests
|
|
1404
|
+
from sandbox.history(). Everything an agent needs to localize a
|
|
1405
|
+
sandbox bug in one round-trip.
|
|
1406
|
+
|
|
1407
|
+
Sandbox-only. `resolveSandbox` must return the owning Sandbox.
|
|
1408
|
+
|
|
1409
|
+
#### Parameters
|
|
1410
|
+
|
|
1411
|
+
| Parameter | Type |
|
|
1412
|
+
| :------ | :------ |
|
|
1413
|
+
| `deps` | [`FirestoreInspectToolDeps`](#firestoreinspecttooldeps) |
|
|
1414
|
+
|
|
1415
|
+
#### Returns
|
|
1416
|
+
|
|
1417
|
+
`ToolHandler`\<`unknown`, `unknown`\>[]
|
|
1418
|
+
|
|
1419
|
+
***
|
|
1420
|
+
|
|
1421
|
+
<a id="deletedoc"></a>
|
|
1422
|
+
|
|
1423
|
+
### deleteDoc()
|
|
1424
|
+
|
|
1425
|
+
```ts
|
|
1426
|
+
function deleteDoc(ref: DocumentReference): Promise<void>;
|
|
1427
|
+
```
|
|
1428
|
+
|
|
1429
|
+
#### Parameters
|
|
1430
|
+
|
|
1431
|
+
| Parameter | Type |
|
|
1432
|
+
| :------ | :------ |
|
|
1433
|
+
| `ref` | [`DocumentReference`](#documentreference) |
|
|
1434
|
+
|
|
1435
|
+
#### Returns
|
|
1436
|
+
|
|
1437
|
+
`Promise`\<`void`\>
|
|
1438
|
+
|
|
1439
|
+
***
|
|
1440
|
+
|
|
1441
|
+
<a id="deletefield"></a>
|
|
1442
|
+
|
|
1443
|
+
### deleteField()
|
|
1444
|
+
|
|
1445
|
+
```ts
|
|
1446
|
+
function deleteField(): FieldValueSentinel;
|
|
1447
|
+
```
|
|
1448
|
+
|
|
1449
|
+
#### Returns
|
|
1450
|
+
|
|
1451
|
+
`FieldValueSentinel`
|
|
1452
|
+
|
|
1453
|
+
***
|
|
1454
|
+
|
|
1455
|
+
<a id="disablenetwork"></a>
|
|
1456
|
+
|
|
1457
|
+
### disableNetwork()
|
|
1458
|
+
|
|
1459
|
+
```ts
|
|
1460
|
+
function disableNetwork(db: Firestore): Promise<void>;
|
|
1461
|
+
```
|
|
1462
|
+
|
|
1463
|
+
Sandbox: no-op success. There is no network in the sandbox — every
|
|
1464
|
+
op is a local call into the in-memory/IndexedDB-backed store — so
|
|
1465
|
+
there is nothing to disable. This deliberately does NOT simulate an
|
|
1466
|
+
offline mode: queued writes still commit immediately rather than
|
|
1467
|
+
queuing, because the sandbox cannot honestly deliver "queued until
|
|
1468
|
+
reconnected" when there is no connection to lose in the first place.
|
|
1469
|
+
App code that calls this to prep for flaky connectivity will not
|
|
1470
|
+
crash, but it also will not observe write-queuing behavior.
|
|
1471
|
+
|
|
1472
|
+
#### Parameters
|
|
1473
|
+
|
|
1474
|
+
| Parameter | Type |
|
|
1475
|
+
| :------ | :------ |
|
|
1476
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1477
|
+
|
|
1478
|
+
#### Returns
|
|
1479
|
+
|
|
1480
|
+
`Promise`\<`void`\>
|
|
1481
|
+
|
|
1482
|
+
***
|
|
1483
|
+
|
|
1484
|
+
<a id="doc"></a>
|
|
1485
|
+
|
|
1486
|
+
### doc()
|
|
1487
|
+
|
|
1488
|
+
```ts
|
|
1489
|
+
function doc<T>(parent:
|
|
1490
|
+
| Firestore
|
|
1491
|
+
| CollectionReference<T>, ...pathSegments: string[]): DocumentReference<T>;
|
|
1492
|
+
```
|
|
1493
|
+
|
|
1494
|
+
#### Type Parameters
|
|
1495
|
+
|
|
1496
|
+
| Type Parameter | Default type |
|
|
1497
|
+
| :------ | :------ |
|
|
1498
|
+
| `T` | `DocumentData` |
|
|
1499
|
+
|
|
1500
|
+
#### Parameters
|
|
1501
|
+
|
|
1502
|
+
| Parameter | Type |
|
|
1503
|
+
| :------ | :------ |
|
|
1504
|
+
| `parent` | \| [`Firestore`](#firestore) \| [`CollectionReference`](#collectionreference)\<`T`\> |
|
|
1505
|
+
| ...`pathSegments` | `string`[] |
|
|
1506
|
+
|
|
1507
|
+
#### Returns
|
|
1508
|
+
|
|
1509
|
+
[`DocumentReference`](#documentreference)\<`T`\>
|
|
1510
|
+
|
|
1511
|
+
***
|
|
1512
|
+
|
|
1513
|
+
<a id="documentid"></a>
|
|
1514
|
+
|
|
1515
|
+
### documentId()
|
|
1516
|
+
|
|
1517
|
+
```ts
|
|
1518
|
+
function documentId(): FieldPath;
|
|
1519
|
+
```
|
|
1520
|
+
|
|
1521
|
+
#### Returns
|
|
1522
|
+
|
|
1523
|
+
[`FieldPath`](#fieldpath)
|
|
1524
|
+
|
|
1525
|
+
***
|
|
1526
|
+
|
|
1527
|
+
<a id="enableindexeddbpersistence"></a>
|
|
1528
|
+
|
|
1529
|
+
### enableIndexedDbPersistence()
|
|
1530
|
+
|
|
1531
|
+
```ts
|
|
1532
|
+
function enableIndexedDbPersistence(db: Firestore, persistenceSettings?: PersistenceSettings): Promise<void>;
|
|
1533
|
+
```
|
|
1534
|
+
|
|
1535
|
+
Sandbox: no-op success. The sandbox's default persistence (IndexedDB
|
|
1536
|
+
on the SharedWorker/serve path, or whatever backend `enablePersistence`
|
|
1537
|
+
was configured with) already caches every write — this call has
|
|
1538
|
+
nothing left to enable. Resolves immediately.
|
|
1539
|
+
|
|
1540
|
+
Unlike the real SDK, this does NOT reject with `'failed-precondition'`
|
|
1541
|
+
when called after other Firestore ops have already run. The guard
|
|
1542
|
+
exists in the real SDK to protect an actual cache-initialization
|
|
1543
|
+
race; the sandbox has no such race (there's no cache to initialize),
|
|
1544
|
+
so enforcing the same restriction would only make app code that
|
|
1545
|
+
calls this defensively at startup fail for no local reason.
|
|
1546
|
+
|
|
1547
|
+
#### Parameters
|
|
1548
|
+
|
|
1549
|
+
| Parameter | Type |
|
|
1550
|
+
| :------ | :------ |
|
|
1551
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1552
|
+
| `persistenceSettings?` | [`PersistenceSettings`](#persistencesettings) |
|
|
1553
|
+
|
|
1554
|
+
#### Returns
|
|
1555
|
+
|
|
1556
|
+
`Promise`\<`void`\>
|
|
1557
|
+
|
|
1558
|
+
***
|
|
1559
|
+
|
|
1560
|
+
<a id="enablemultitabindexeddbpersistence"></a>
|
|
1561
|
+
|
|
1562
|
+
### enableMultiTabIndexedDbPersistence()
|
|
1563
|
+
|
|
1564
|
+
```ts
|
|
1565
|
+
function enableMultiTabIndexedDbPersistence(db: Firestore): Promise<void>;
|
|
1566
|
+
```
|
|
1567
|
+
|
|
1568
|
+
Sandbox: no-op success, same rationale as [enableIndexedDbPersistence](#enableindexeddbpersistence).
|
|
1569
|
+
Multi-tab coordination is meaningless here too: the sandbox's
|
|
1570
|
+
SharedWorker path already IS the single shared store every tab talks
|
|
1571
|
+
to, so there's no separate "multi-tab" mode to opt into.
|
|
1572
|
+
|
|
1573
|
+
#### Parameters
|
|
1574
|
+
|
|
1575
|
+
| Parameter | Type |
|
|
1576
|
+
| :------ | :------ |
|
|
1577
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1578
|
+
|
|
1579
|
+
#### Returns
|
|
1580
|
+
|
|
1581
|
+
`Promise`\<`void`\>
|
|
1582
|
+
|
|
1583
|
+
***
|
|
1584
|
+
|
|
1585
|
+
<a id="enablenetwork"></a>
|
|
1586
|
+
|
|
1587
|
+
### enableNetwork()
|
|
1588
|
+
|
|
1589
|
+
```ts
|
|
1590
|
+
function enableNetwork(db: Firestore): Promise<void>;
|
|
1591
|
+
```
|
|
1592
|
+
|
|
1593
|
+
Sandbox: no-op success, symmetric with [disableNetwork](#disablenetwork) — since
|
|
1594
|
+
network was never disabled locally, there is nothing to re-enable.
|
|
1595
|
+
|
|
1596
|
+
#### Parameters
|
|
1597
|
+
|
|
1598
|
+
| Parameter | Type |
|
|
1599
|
+
| :------ | :------ |
|
|
1600
|
+
| `db` | [`Firestore`](#firestore) |
|
|
1601
|
+
|
|
1602
|
+
#### Returns
|
|
1603
|
+
|
|
1604
|
+
`Promise`\<`void`\>
|
|
1605
|
+
|
|
1606
|
+
***
|
|
1607
|
+
|
|
1608
|
+
<a id="endat"></a>
|
|
1609
|
+
|
|
1610
|
+
### endAt()
|
|
1611
|
+
|
|
1612
|
+
#### Call Signature
|
|
1613
|
+
|
|
1614
|
+
```ts
|
|
1615
|
+
function endAt(snapshot: DocumentSnapshot): QueryConstraint;
|
|
1616
|
+
```
|
|
1617
|
+
|
|
1618
|
+
End the query at the document whose ordered field values match
|
|
1619
|
+
the cursor. Inclusive — the document at the cursor IS included.
|
|
1620
|
+
|
|
1621
|
+
##### Parameters
|
|
1622
|
+
|
|
1623
|
+
| Parameter | Type |
|
|
1624
|
+
| :------ | :------ |
|
|
1625
|
+
| `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
|
|
1626
|
+
|
|
1627
|
+
##### Returns
|
|
1628
|
+
|
|
1629
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1630
|
+
|
|
1631
|
+
#### Call Signature
|
|
1632
|
+
|
|
1633
|
+
```ts
|
|
1634
|
+
function endAt(...values: unknown[]): QueryConstraint;
|
|
1635
|
+
```
|
|
1636
|
+
|
|
1637
|
+
End the query at the document whose ordered field values match
|
|
1638
|
+
the cursor. Inclusive — the document at the cursor IS included.
|
|
1639
|
+
|
|
1640
|
+
##### Parameters
|
|
1641
|
+
|
|
1642
|
+
| Parameter | Type |
|
|
1643
|
+
| :------ | :------ |
|
|
1644
|
+
| ...`values` | `unknown`[] |
|
|
1645
|
+
|
|
1646
|
+
##### Returns
|
|
1647
|
+
|
|
1648
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1649
|
+
|
|
1650
|
+
***
|
|
1651
|
+
|
|
1652
|
+
<a id="endbefore"></a>
|
|
1653
|
+
|
|
1654
|
+
### endBefore()
|
|
1655
|
+
|
|
1656
|
+
#### Call Signature
|
|
1657
|
+
|
|
1658
|
+
```ts
|
|
1659
|
+
function endBefore(snapshot: DocumentSnapshot): QueryConstraint;
|
|
1660
|
+
```
|
|
1661
|
+
|
|
1662
|
+
Same as `endAt`, but EXCLUDES the document at the cursor — the
|
|
1663
|
+
result ends at the prior ordered position.
|
|
1664
|
+
|
|
1665
|
+
##### Parameters
|
|
1666
|
+
|
|
1667
|
+
| Parameter | Type |
|
|
1668
|
+
| :------ | :------ |
|
|
1669
|
+
| `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
|
|
1670
|
+
|
|
1671
|
+
##### Returns
|
|
1672
|
+
|
|
1673
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1674
|
+
|
|
1675
|
+
#### Call Signature
|
|
1676
|
+
|
|
1677
|
+
```ts
|
|
1678
|
+
function endBefore(...values: unknown[]): QueryConstraint;
|
|
1679
|
+
```
|
|
1680
|
+
|
|
1681
|
+
Same as `endAt`, but EXCLUDES the document at the cursor — the
|
|
1682
|
+
result ends at the prior ordered position.
|
|
1683
|
+
|
|
1684
|
+
##### Parameters
|
|
1685
|
+
|
|
1686
|
+
| Parameter | Type |
|
|
1687
|
+
| :------ | :------ |
|
|
1688
|
+
| ...`values` | `unknown`[] |
|
|
1689
|
+
|
|
1690
|
+
##### Returns
|
|
1691
|
+
|
|
1692
|
+
[`QueryConstraint`](#queryconstraint)
|
|
1693
|
+
|
|
1694
|
+
***
|
|
1695
|
+
|
|
1696
|
+
<a id="getadminfirestore"></a>
|
|
1697
|
+
|
|
1698
|
+
### getAdminFirestore()
|
|
1699
|
+
|
|
1700
|
+
#### Call Signature
|
|
1701
|
+
|
|
1702
|
+
```ts
|
|
1703
|
+
function getAdminFirestore(sandbox: Sandbox): Firestore;
|
|
1704
|
+
```
|
|
1705
|
+
|
|
1706
|
+
Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
|
|
1707
|
+
Studio admin lens (Gap #2). Every modular op issued against the returned
|
|
1708
|
+
handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
|
|
1709
|
+
`count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
|
|
1710
|
+
is treated as ALLOW, while still going through the same store + emitting
|
|
1711
|
+
the same events + waking the same listeners. This is the modular sibling
|
|
1712
|
+
of the path-string `sandbox.admin.*` bypass; it reuses the underlying
|
|
1713
|
+
`LocalEnvironment` bypass execution path (the `bypassRules` op flag),
|
|
1714
|
+
not a parallel reimplementation.
|
|
1715
|
+
|
|
1716
|
+
Sandbox-only. There is no prod analog (you cannot bypass deployed
|
|
1717
|
+
security rules from a client), so this overload set accepts only a
|
|
1718
|
+
`Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
|
|
1719
|
+
Admin ops are identity-agnostic (rules are off), so the
|
|
1720
|
+
handle is a FROZEN `sandbox` target: it does not track
|
|
1721
|
+
`sandbox.currentUser`.
|
|
1722
|
+
|
|
1723
|
+
Intended for Studio's "edit anything as admin" surfaces (F2) and the
|
|
1724
|
+
serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
|
|
1725
|
+
impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
|
|
1726
|
+
uid }))` instead.
|
|
1727
|
+
|
|
1728
|
+
##### Parameters
|
|
1729
|
+
|
|
1730
|
+
| Parameter | Type |
|
|
1731
|
+
| :------ | :------ |
|
|
1732
|
+
| `sandbox` | `Sandbox` |
|
|
1733
|
+
|
|
1734
|
+
##### Returns
|
|
1735
|
+
|
|
1736
|
+
[`Firestore`](#firestore)
|
|
1737
|
+
|
|
1738
|
+
##### Example
|
|
1739
|
+
|
|
1740
|
+
```ts
|
|
1741
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
1742
|
+
import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
|
|
1743
|
+
const sandbox = initializeSandbox();
|
|
1744
|
+
const adminDb = getAdminFirestore(sandbox);
|
|
1745
|
+
await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
|
|
1746
|
+
```
|
|
1747
|
+
|
|
1748
|
+
#### Call Signature
|
|
1749
|
+
|
|
1750
|
+
```ts
|
|
1751
|
+
function getAdminFirestore(ctx: SandboxContext): Firestore;
|
|
1752
|
+
```
|
|
1753
|
+
|
|
1754
|
+
Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
|
|
1755
|
+
Studio admin lens (Gap #2). Every modular op issued against the returned
|
|
1756
|
+
handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
|
|
1757
|
+
`count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
|
|
1758
|
+
is treated as ALLOW, while still going through the same store + emitting
|
|
1759
|
+
the same events + waking the same listeners. This is the modular sibling
|
|
1760
|
+
of the path-string `sandbox.admin.*` bypass; it reuses the underlying
|
|
1761
|
+
`LocalEnvironment` bypass execution path (the `bypassRules` op flag),
|
|
1762
|
+
not a parallel reimplementation.
|
|
1763
|
+
|
|
1764
|
+
Sandbox-only. There is no prod analog (you cannot bypass deployed
|
|
1765
|
+
security rules from a client), so this overload set accepts only a
|
|
1766
|
+
`Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
|
|
1767
|
+
Admin ops are identity-agnostic (rules are off), so the
|
|
1768
|
+
handle is a FROZEN `sandbox` target: it does not track
|
|
1769
|
+
`sandbox.currentUser`.
|
|
1770
|
+
|
|
1771
|
+
Intended for Studio's "edit anything as admin" surfaces (F2) and the
|
|
1772
|
+
serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
|
|
1773
|
+
impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
|
|
1774
|
+
uid }))` instead.
|
|
1775
|
+
|
|
1776
|
+
##### Parameters
|
|
1777
|
+
|
|
1778
|
+
| Parameter | Type |
|
|
1779
|
+
| :------ | :------ |
|
|
1780
|
+
| `ctx` | `SandboxContext` |
|
|
1781
|
+
|
|
1782
|
+
##### Returns
|
|
1783
|
+
|
|
1784
|
+
[`Firestore`](#firestore)
|
|
1785
|
+
|
|
1786
|
+
##### Example
|
|
1787
|
+
|
|
1788
|
+
```ts
|
|
1789
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
1790
|
+
import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
|
|
1791
|
+
const sandbox = initializeSandbox();
|
|
1792
|
+
const adminDb = getAdminFirestore(sandbox);
|
|
1793
|
+
await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
|
|
1794
|
+
```
|
|
1795
|
+
|
|
1796
|
+
#### Call Signature
|
|
1797
|
+
|
|
1798
|
+
```ts
|
|
1799
|
+
function getAdminFirestore(app: FirebaseApp): Firestore;
|
|
1800
|
+
```
|
|
1801
|
+
|
|
1802
|
+
Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
|
|
1803
|
+
Studio admin lens (Gap #2). Every modular op issued against the returned
|
|
1804
|
+
handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
|
|
1805
|
+
`count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
|
|
1806
|
+
is treated as ALLOW, while still going through the same store + emitting
|
|
1807
|
+
the same events + waking the same listeners. This is the modular sibling
|
|
1808
|
+
of the path-string `sandbox.admin.*` bypass; it reuses the underlying
|
|
1809
|
+
`LocalEnvironment` bypass execution path (the `bypassRules` op flag),
|
|
1810
|
+
not a parallel reimplementation.
|
|
1811
|
+
|
|
1812
|
+
Sandbox-only. There is no prod analog (you cannot bypass deployed
|
|
1813
|
+
security rules from a client), so this overload set accepts only a
|
|
1814
|
+
`Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
|
|
1815
|
+
Admin ops are identity-agnostic (rules are off), so the
|
|
1816
|
+
handle is a FROZEN `sandbox` target: it does not track
|
|
1817
|
+
`sandbox.currentUser`.
|
|
1818
|
+
|
|
1819
|
+
Intended for Studio's "edit anything as admin" surfaces (F2) and the
|
|
1820
|
+
serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
|
|
1821
|
+
impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
|
|
1822
|
+
uid }))` instead.
|
|
1823
|
+
|
|
1824
|
+
##### Parameters
|
|
1825
|
+
|
|
1826
|
+
| Parameter | Type |
|
|
1827
|
+
| :------ | :------ |
|
|
1828
|
+
| `app` | `FirebaseApp` |
|
|
1829
|
+
|
|
1830
|
+
##### Returns
|
|
1831
|
+
|
|
1832
|
+
[`Firestore`](#firestore)
|
|
1833
|
+
|
|
1834
|
+
##### Example
|
|
1835
|
+
|
|
1836
|
+
```ts
|
|
1837
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
1838
|
+
import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
|
|
1839
|
+
const sandbox = initializeSandbox();
|
|
1840
|
+
const adminDb = getAdminFirestore(sandbox);
|
|
1841
|
+
await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
|
|
1842
|
+
```
|
|
1843
|
+
|
|
1844
|
+
***
|
|
1845
|
+
|
|
1846
|
+
<a id="getaggregatefromserver"></a>
|
|
1847
|
+
|
|
1848
|
+
### getAggregateFromServer()
|
|
1849
|
+
|
|
1850
|
+
```ts
|
|
1851
|
+
function getAggregateFromServer<S>(source:
|
|
1852
|
+
| Query<DocumentData>
|
|
1853
|
+
| CollectionReference<DocumentData>, spec: S): Promise<AggregateQuerySnapshot<{ [K in string | number | symbol]: number }>>;
|
|
1854
|
+
```
|
|
1855
|
+
|
|
1856
|
+
Run a multi-field aggregate against the query. Spec entries are
|
|
1857
|
+
keyed by caller-chosen aliases; the returned snapshot's `.data()`
|
|
1858
|
+
uses the same keys.
|
|
1859
|
+
|
|
1860
|
+
The sandbox target dispatches straight into the chainable adapter.
|
|
1861
|
+
|
|
1862
|
+
#### Type Parameters
|
|
1863
|
+
|
|
1864
|
+
| Type Parameter |
|
|
1865
|
+
| :------ |
|
|
1866
|
+
| `S` *extends* [`AggregateSpec`](#aggregatespec) |
|
|
1867
|
+
|
|
1868
|
+
#### Parameters
|
|
1869
|
+
|
|
1870
|
+
| Parameter | Type |
|
|
1871
|
+
| :------ | :------ |
|
|
1872
|
+
| `source` | \| [`Query`](#query)\<`DocumentData`\> \| [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
|
|
1873
|
+
| `spec` | `S` |
|
|
1874
|
+
|
|
1875
|
+
#### Returns
|
|
1876
|
+
|
|
1877
|
+
`Promise`\<[`AggregateQuerySnapshot`](#aggregatequerysnapshot)\<\{ \[K in string \| number \| symbol\]: number \}\>\>
|
|
1878
|
+
|
|
1879
|
+
***
|
|
1880
|
+
|
|
1881
|
+
<a id="getcountfromserver"></a>
|
|
1882
|
+
|
|
1883
|
+
### getCountFromServer()
|
|
1884
|
+
|
|
1885
|
+
```ts
|
|
1886
|
+
function getCountFromServer(source:
|
|
1887
|
+
| Query<DocumentData>
|
|
1888
|
+
| CollectionReference<DocumentData>): Promise<AggregateQuerySnapshot<{
|
|
1889
|
+
count: number;
|
|
1890
|
+
}>>;
|
|
1891
|
+
```
|
|
1892
|
+
|
|
1893
|
+
Count documents matching the query. Returns a snapshot whose
|
|
1894
|
+
`.data()` yields `{ count: N }` — same shape `firebase/firestore`'s
|
|
1895
|
+
`getCountFromServer` produces.
|
|
1896
|
+
|
|
1897
|
+
#### Parameters
|
|
1898
|
+
|
|
1899
|
+
| Parameter | Type |
|
|
1900
|
+
| :------ | :------ |
|
|
1901
|
+
| `source` | \| [`Query`](#query)\<`DocumentData`\> \| [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
|
|
1902
|
+
|
|
1903
|
+
#### Returns
|
|
1904
|
+
|
|
1905
|
+
`Promise`\<[`AggregateQuerySnapshot`](#aggregatequerysnapshot)\<\{
|
|
1906
|
+
`count`: `number`;
|
|
1907
|
+
\}\>\>
|
|
1908
|
+
|
|
1909
|
+
***
|
|
1910
|
+
|
|
1911
|
+
<a id="getdoc"></a>
|
|
1912
|
+
|
|
1913
|
+
### getDoc()
|
|
1914
|
+
|
|
1915
|
+
```ts
|
|
1916
|
+
function getDoc<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
|
|
1917
|
+
```
|
|
1918
|
+
|
|
1919
|
+
#### Type Parameters
|
|
1920
|
+
|
|
1921
|
+
| Type Parameter | Default type |
|
|
1922
|
+
| :------ | :------ |
|
|
1923
|
+
| `T` | `DocumentData` |
|
|
1924
|
+
|
|
1925
|
+
#### Parameters
|
|
1926
|
+
|
|
1927
|
+
| Parameter | Type |
|
|
1928
|
+
| :------ | :------ |
|
|
1929
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
|
|
1930
|
+
|
|
1931
|
+
#### Returns
|
|
1932
|
+
|
|
1933
|
+
`Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
|
|
1934
|
+
|
|
1935
|
+
***
|
|
1936
|
+
|
|
1937
|
+
<a id="getdocfromcache"></a>
|
|
1938
|
+
|
|
1939
|
+
### getDocFromCache()
|
|
1940
|
+
|
|
1941
|
+
```ts
|
|
1942
|
+
function getDocFromCache<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
|
|
1943
|
+
```
|
|
1944
|
+
|
|
1945
|
+
Sandbox: delegates to [getDoc](#getdoc). Real Firebase THROWS
|
|
1946
|
+
`'unavailable'` here on a cache miss (nothing local matches the
|
|
1947
|
+
ref); pyric never misses — the local store always has whatever is
|
|
1948
|
+
there — so this never throws for that reason. Documented divergence,
|
|
1949
|
+
not a claim of parity.
|
|
1950
|
+
|
|
1951
|
+
#### Type Parameters
|
|
1952
|
+
|
|
1953
|
+
| Type Parameter | Default type |
|
|
1954
|
+
| :------ | :------ |
|
|
1955
|
+
| `T` | `DocumentData` |
|
|
1956
|
+
|
|
1957
|
+
#### Parameters
|
|
1958
|
+
|
|
1959
|
+
| Parameter | Type |
|
|
1960
|
+
| :------ | :------ |
|
|
1961
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
|
|
1962
|
+
|
|
1963
|
+
#### Returns
|
|
1964
|
+
|
|
1965
|
+
`Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
|
|
1966
|
+
|
|
1967
|
+
***
|
|
1968
|
+
|
|
1969
|
+
<a id="getdocfromserver"></a>
|
|
1970
|
+
|
|
1971
|
+
### getDocFromServer()
|
|
1972
|
+
|
|
1973
|
+
```ts
|
|
1974
|
+
function getDocFromServer<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
|
|
1975
|
+
```
|
|
1976
|
+
|
|
1977
|
+
Sandbox: delegates to [getDoc](#getdoc). The sandbox store IS the
|
|
1978
|
+
authoritative, always-fresh source — there is no separate server
|
|
1979
|
+
round-trip to force, so "from server" and the default read are the
|
|
1980
|
+
same honest thing.
|
|
1981
|
+
|
|
1982
|
+
#### Type Parameters
|
|
1983
|
+
|
|
1984
|
+
| Type Parameter | Default type |
|
|
1985
|
+
| :------ | :------ |
|
|
1986
|
+
| `T` | `DocumentData` |
|
|
1987
|
+
|
|
1988
|
+
#### Parameters
|
|
1989
|
+
|
|
1990
|
+
| Parameter | Type |
|
|
1991
|
+
| :------ | :------ |
|
|
1992
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
|
|
1993
|
+
|
|
1994
|
+
#### Returns
|
|
1995
|
+
|
|
1996
|
+
`Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
|
|
1997
|
+
|
|
1998
|
+
***
|
|
1999
|
+
|
|
2000
|
+
<a id="getdocs"></a>
|
|
2001
|
+
|
|
2002
|
+
### getDocs()
|
|
2003
|
+
|
|
2004
|
+
```ts
|
|
2005
|
+
function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
|
|
2006
|
+
```
|
|
2007
|
+
|
|
2008
|
+
#### Type Parameters
|
|
2009
|
+
|
|
2010
|
+
| Type Parameter | Default type |
|
|
2011
|
+
| :------ | :------ |
|
|
2012
|
+
| `T` | `DocumentData` |
|
|
2013
|
+
|
|
2014
|
+
#### Parameters
|
|
2015
|
+
|
|
2016
|
+
| Parameter | Type |
|
|
2017
|
+
| :------ | :------ |
|
|
2018
|
+
| `query` | [`Query`](#query)\<`T`\> |
|
|
2019
|
+
|
|
2020
|
+
#### Returns
|
|
2021
|
+
|
|
2022
|
+
`Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
|
|
2023
|
+
|
|
2024
|
+
***
|
|
2025
|
+
|
|
2026
|
+
<a id="getdocsfromcache"></a>
|
|
2027
|
+
|
|
2028
|
+
### getDocsFromCache()
|
|
2029
|
+
|
|
2030
|
+
```ts
|
|
2031
|
+
function getDocsFromCache<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
|
|
2032
|
+
```
|
|
2033
|
+
|
|
2034
|
+
Query-plural form of [getDocFromCache](#getdocfromcache) — same cache-miss divergence.
|
|
2035
|
+
|
|
2036
|
+
#### Type Parameters
|
|
2037
|
+
|
|
2038
|
+
| Type Parameter | Default type |
|
|
2039
|
+
| :------ | :------ |
|
|
2040
|
+
| `T` | `DocumentData` |
|
|
2041
|
+
|
|
2042
|
+
#### Parameters
|
|
2043
|
+
|
|
2044
|
+
| Parameter | Type |
|
|
2045
|
+
| :------ | :------ |
|
|
2046
|
+
| `query` | [`Query`](#query)\<`T`\> |
|
|
2047
|
+
|
|
2048
|
+
#### Returns
|
|
2049
|
+
|
|
2050
|
+
`Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
|
|
2051
|
+
|
|
2052
|
+
***
|
|
2053
|
+
|
|
2054
|
+
<a id="getdocsfromserver"></a>
|
|
2055
|
+
|
|
2056
|
+
### getDocsFromServer()
|
|
2057
|
+
|
|
2058
|
+
```ts
|
|
2059
|
+
function getDocsFromServer<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
|
|
2060
|
+
```
|
|
2061
|
+
|
|
2062
|
+
Query-plural form of [getDocFromServer](#getdocfromserver).
|
|
2063
|
+
|
|
2064
|
+
#### Type Parameters
|
|
2065
|
+
|
|
2066
|
+
| Type Parameter | Default type |
|
|
2067
|
+
| :------ | :------ |
|
|
2068
|
+
| `T` | `DocumentData` |
|
|
2069
|
+
|
|
2070
|
+
#### Parameters
|
|
2071
|
+
|
|
2072
|
+
| Parameter | Type |
|
|
2073
|
+
| :------ | :------ |
|
|
2074
|
+
| `query` | [`Query`](#query)\<`T`\> |
|
|
2075
|
+
|
|
2076
|
+
#### Returns
|
|
2077
|
+
|
|
2078
|
+
`Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
|
|
2079
|
+
|
|
2080
|
+
***
|
|
2081
|
+
|
|
2082
|
+
<a id="getfirestore"></a>
|
|
2083
|
+
|
|
2084
|
+
### getFirestore()
|
|
2085
|
+
|
|
2086
|
+
#### Call Signature
|
|
2087
|
+
|
|
2088
|
+
```ts
|
|
2089
|
+
function getFirestore(ctx: SandboxContext): Firestore;
|
|
2090
|
+
```
|
|
2091
|
+
|
|
2092
|
+
Construct a Firestore handle. Three overloads dispatch by the
|
|
2093
|
+
input's shape:
|
|
2094
|
+
|
|
2095
|
+
- `SandboxContext` → sandbox-backed Firestore with a frozen
|
|
2096
|
+
identity (the ctx's `auth` chosen at `getFirestore` time). Best
|
|
2097
|
+
for runner/test code that names identity explicitly per
|
|
2098
|
+
scenario.
|
|
2099
|
+
- `Sandbox` → sandbox-backed Firestore that reads
|
|
2100
|
+
`sandbox.currentUser` per-call. Best for app code that drives
|
|
2101
|
+
identity through `pyric/auth` — every Firestore op evaluates
|
|
2102
|
+
rules under whatever user is currently signed in.
|
|
2103
|
+
|
|
2104
|
+
##### Parameters
|
|
2105
|
+
|
|
2106
|
+
| Parameter | Type |
|
|
2107
|
+
| :------ | :------ |
|
|
2108
|
+
| `ctx` | `SandboxContext` |
|
|
2109
|
+
|
|
2110
|
+
##### Returns
|
|
2111
|
+
|
|
2112
|
+
[`Firestore`](#firestore)
|
|
2113
|
+
|
|
2114
|
+
##### Example
|
|
2115
|
+
|
|
2116
|
+
```ts
|
|
2117
|
+
// Sandbox, frozen identity (runner / explicit tests).
|
|
2118
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2119
|
+
import { getFirestore, doc, setDoc } from 'pyric/firestore';
|
|
2120
|
+
const sandbox = initializeSandbox();
|
|
2121
|
+
const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
2122
|
+
|
|
2123
|
+
// Sandbox, live identity (app code paired with pyric/auth).
|
|
2124
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2125
|
+
import { getAuth, signInAnonymously } from 'pyric/auth';
|
|
2126
|
+
const sandbox = initializeSandbox();
|
|
2127
|
+
const auth = getAuth(sandbox);
|
|
2128
|
+
const db = getFirestore(sandbox); // reads sandbox.currentUser per op
|
|
2129
|
+
await signInAnonymously(auth); // subsequent db ops use the new identity
|
|
2130
|
+
|
|
2131
|
+
// Canonical imports are swapped to this mirror in a sandbox process.
|
|
2132
|
+
import { initializeApp } from 'firebase/app';
|
|
2133
|
+
import { getFirestore } from 'firebase/firestore';
|
|
2134
|
+
const app = initializeApp({ projectId: 'demo-project' });
|
|
2135
|
+
const db = getFirestore(app);
|
|
2136
|
+
```
|
|
2137
|
+
|
|
2138
|
+
#### Call Signature
|
|
2139
|
+
|
|
2140
|
+
```ts
|
|
2141
|
+
function getFirestore(sandbox: Sandbox): Firestore;
|
|
2142
|
+
```
|
|
2143
|
+
|
|
2144
|
+
Construct a Firestore handle. Three overloads dispatch by the
|
|
2145
|
+
input's shape:
|
|
2146
|
+
|
|
2147
|
+
- `SandboxContext` → sandbox-backed Firestore with a frozen
|
|
2148
|
+
identity (the ctx's `auth` chosen at `getFirestore` time). Best
|
|
2149
|
+
for runner/test code that names identity explicitly per
|
|
2150
|
+
scenario.
|
|
2151
|
+
- `Sandbox` → sandbox-backed Firestore that reads
|
|
2152
|
+
`sandbox.currentUser` per-call. Best for app code that drives
|
|
2153
|
+
identity through `pyric/auth` — every Firestore op evaluates
|
|
2154
|
+
rules under whatever user is currently signed in.
|
|
2155
|
+
|
|
2156
|
+
##### Parameters
|
|
2157
|
+
|
|
2158
|
+
| Parameter | Type |
|
|
2159
|
+
| :------ | :------ |
|
|
2160
|
+
| `sandbox` | `Sandbox` |
|
|
2161
|
+
|
|
2162
|
+
##### Returns
|
|
2163
|
+
|
|
2164
|
+
[`Firestore`](#firestore)
|
|
2165
|
+
|
|
2166
|
+
##### Example
|
|
2167
|
+
|
|
2168
|
+
```ts
|
|
2169
|
+
// Sandbox, frozen identity (runner / explicit tests).
|
|
2170
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2171
|
+
import { getFirestore, doc, setDoc } from 'pyric/firestore';
|
|
2172
|
+
const sandbox = initializeSandbox();
|
|
2173
|
+
const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
2174
|
+
|
|
2175
|
+
// Sandbox, live identity (app code paired with pyric/auth).
|
|
2176
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2177
|
+
import { getAuth, signInAnonymously } from 'pyric/auth';
|
|
2178
|
+
const sandbox = initializeSandbox();
|
|
2179
|
+
const auth = getAuth(sandbox);
|
|
2180
|
+
const db = getFirestore(sandbox); // reads sandbox.currentUser per op
|
|
2181
|
+
await signInAnonymously(auth); // subsequent db ops use the new identity
|
|
2182
|
+
|
|
2183
|
+
// Canonical imports are swapped to this mirror in a sandbox process.
|
|
2184
|
+
import { initializeApp } from 'firebase/app';
|
|
2185
|
+
import { getFirestore } from 'firebase/firestore';
|
|
2186
|
+
const app = initializeApp({ projectId: 'demo-project' });
|
|
2187
|
+
const db = getFirestore(app);
|
|
2188
|
+
```
|
|
2189
|
+
|
|
2190
|
+
#### Call Signature
|
|
2191
|
+
|
|
2192
|
+
```ts
|
|
2193
|
+
function getFirestore(app: FirebaseApp): AppFirestore;
|
|
2194
|
+
```
|
|
2195
|
+
|
|
2196
|
+
Construct a Firestore handle. Three overloads dispatch by the
|
|
2197
|
+
input's shape:
|
|
2198
|
+
|
|
2199
|
+
- `SandboxContext` → sandbox-backed Firestore with a frozen
|
|
2200
|
+
identity (the ctx's `auth` chosen at `getFirestore` time). Best
|
|
2201
|
+
for runner/test code that names identity explicitly per
|
|
2202
|
+
scenario.
|
|
2203
|
+
- `Sandbox` → sandbox-backed Firestore that reads
|
|
2204
|
+
`sandbox.currentUser` per-call. Best for app code that drives
|
|
2205
|
+
identity through `pyric/auth` — every Firestore op evaluates
|
|
2206
|
+
rules under whatever user is currently signed in.
|
|
2207
|
+
|
|
2208
|
+
##### Parameters
|
|
2209
|
+
|
|
2210
|
+
| Parameter | Type |
|
|
2211
|
+
| :------ | :------ |
|
|
2212
|
+
| `app` | `FirebaseApp` |
|
|
2213
|
+
|
|
2214
|
+
##### Returns
|
|
2215
|
+
|
|
2216
|
+
[`AppFirestore`](#appfirestore)
|
|
2217
|
+
|
|
2218
|
+
##### Example
|
|
2219
|
+
|
|
2220
|
+
```ts
|
|
2221
|
+
// Sandbox, frozen identity (runner / explicit tests).
|
|
2222
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2223
|
+
import { getFirestore, doc, setDoc } from 'pyric/firestore';
|
|
2224
|
+
const sandbox = initializeSandbox();
|
|
2225
|
+
const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
2226
|
+
|
|
2227
|
+
// Sandbox, live identity (app code paired with pyric/auth).
|
|
2228
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2229
|
+
import { getAuth, signInAnonymously } from 'pyric/auth';
|
|
2230
|
+
const sandbox = initializeSandbox();
|
|
2231
|
+
const auth = getAuth(sandbox);
|
|
2232
|
+
const db = getFirestore(sandbox); // reads sandbox.currentUser per op
|
|
2233
|
+
await signInAnonymously(auth); // subsequent db ops use the new identity
|
|
2234
|
+
|
|
2235
|
+
// Canonical imports are swapped to this mirror in a sandbox process.
|
|
2236
|
+
import { initializeApp } from 'firebase/app';
|
|
2237
|
+
import { getFirestore } from 'firebase/firestore';
|
|
2238
|
+
const app = initializeApp({ projectId: 'demo-project' });
|
|
2239
|
+
const db = getFirestore(app);
|
|
2240
|
+
```
|
|
2241
|
+
|
|
2242
|
+
#### Call Signature
|
|
2243
|
+
|
|
2244
|
+
```ts
|
|
2245
|
+
function getFirestore(): AppFirestore;
|
|
2246
|
+
```
|
|
2247
|
+
|
|
2248
|
+
Construct a Firestore handle. Three overloads dispatch by the
|
|
2249
|
+
input's shape:
|
|
2250
|
+
|
|
2251
|
+
- `SandboxContext` → sandbox-backed Firestore with a frozen
|
|
2252
|
+
identity (the ctx's `auth` chosen at `getFirestore` time). Best
|
|
2253
|
+
for runner/test code that names identity explicitly per
|
|
2254
|
+
scenario.
|
|
2255
|
+
- `Sandbox` → sandbox-backed Firestore that reads
|
|
2256
|
+
`sandbox.currentUser` per-call. Best for app code that drives
|
|
2257
|
+
identity through `pyric/auth` — every Firestore op evaluates
|
|
2258
|
+
rules under whatever user is currently signed in.
|
|
2259
|
+
|
|
2260
|
+
##### Returns
|
|
2261
|
+
|
|
2262
|
+
[`AppFirestore`](#appfirestore)
|
|
2263
|
+
|
|
2264
|
+
##### Example
|
|
2265
|
+
|
|
2266
|
+
```ts
|
|
2267
|
+
// Sandbox, frozen identity (runner / explicit tests).
|
|
2268
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2269
|
+
import { getFirestore, doc, setDoc } from 'pyric/firestore';
|
|
2270
|
+
const sandbox = initializeSandbox();
|
|
2271
|
+
const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
2272
|
+
|
|
2273
|
+
// Sandbox, live identity (app code paired with pyric/auth).
|
|
2274
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2275
|
+
import { getAuth, signInAnonymously } from 'pyric/auth';
|
|
2276
|
+
const sandbox = initializeSandbox();
|
|
2277
|
+
const auth = getAuth(sandbox);
|
|
2278
|
+
const db = getFirestore(sandbox); // reads sandbox.currentUser per op
|
|
2279
|
+
await signInAnonymously(auth); // subsequent db ops use the new identity
|
|
2280
|
+
|
|
2281
|
+
// Canonical imports are swapped to this mirror in a sandbox process.
|
|
2282
|
+
import { initializeApp } from 'firebase/app';
|
|
2283
|
+
import { getFirestore } from 'firebase/firestore';
|
|
2284
|
+
const app = initializeApp({ projectId: 'demo-project' });
|
|
2285
|
+
const db = getFirestore(app);
|
|
2286
|
+
```
|
|
2287
|
+
|
|
2288
|
+
#### Call Signature
|
|
2289
|
+
|
|
2290
|
+
```ts
|
|
2291
|
+
function getFirestore(target?: any): Firestore;
|
|
2292
|
+
```
|
|
2293
|
+
|
|
2294
|
+
Construct a Firestore handle. Three overloads dispatch by the
|
|
2295
|
+
input's shape:
|
|
2296
|
+
|
|
2297
|
+
- `SandboxContext` → sandbox-backed Firestore with a frozen
|
|
2298
|
+
identity (the ctx's `auth` chosen at `getFirestore` time). Best
|
|
2299
|
+
for runner/test code that names identity explicitly per
|
|
2300
|
+
scenario.
|
|
2301
|
+
- `Sandbox` → sandbox-backed Firestore that reads
|
|
2302
|
+
`sandbox.currentUser` per-call. Best for app code that drives
|
|
2303
|
+
identity through `pyric/auth` — every Firestore op evaluates
|
|
2304
|
+
rules under whatever user is currently signed in.
|
|
2305
|
+
|
|
2306
|
+
##### Parameters
|
|
2307
|
+
|
|
2308
|
+
| Parameter | Type |
|
|
2309
|
+
| :------ | :------ |
|
|
2310
|
+
| `target?` | `any` |
|
|
2311
|
+
|
|
2312
|
+
##### Returns
|
|
2313
|
+
|
|
2314
|
+
[`Firestore`](#firestore)
|
|
2315
|
+
|
|
2316
|
+
##### Example
|
|
2317
|
+
|
|
2318
|
+
```ts
|
|
2319
|
+
// Sandbox, frozen identity (runner / explicit tests).
|
|
2320
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2321
|
+
import { getFirestore, doc, setDoc } from 'pyric/firestore';
|
|
2322
|
+
const sandbox = initializeSandbox();
|
|
2323
|
+
const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
|
|
2324
|
+
|
|
2325
|
+
// Sandbox, live identity (app code paired with pyric/auth).
|
|
2326
|
+
import { initializeSandbox } from 'pyric/sandbox';
|
|
2327
|
+
import { getAuth, signInAnonymously } from 'pyric/auth';
|
|
2328
|
+
const sandbox = initializeSandbox();
|
|
2329
|
+
const auth = getAuth(sandbox);
|
|
2330
|
+
const db = getFirestore(sandbox); // reads sandbox.currentUser per op
|
|
2331
|
+
await signInAnonymously(auth); // subsequent db ops use the new identity
|
|
2332
|
+
|
|
2333
|
+
// Canonical imports are swapped to this mirror in a sandbox process.
|
|
2334
|
+
import { initializeApp } from 'firebase/app';
|
|
2335
|
+
import { getFirestore } from 'firebase/firestore';
|
|
2336
|
+
const app = initializeApp({ projectId: 'demo-project' });
|
|
2337
|
+
const db = getFirestore(app);
|
|
2338
|
+
```
|
|
2339
|
+
|
|
2340
|
+
***
|
|
2341
|
+
|
|
2342
|
+
<a id="increment"></a>
|
|
2343
|
+
|
|
2344
|
+
### increment()
|
|
2345
|
+
|
|
2346
|
+
```ts
|
|
2347
|
+
function increment(n: number): FieldValueSentinel;
|
|
2348
|
+
```
|
|
2349
|
+
|
|
2350
|
+
#### Parameters
|
|
2351
|
+
|
|
2352
|
+
| Parameter | Type |
|
|
2353
|
+
| :------ | :------ |
|
|
2354
|
+
| `n` | `number` |
|
|
2355
|
+
|
|
2356
|
+
#### Returns
|
|
2357
|
+
|
|
2358
|
+
`FieldValueSentinel`
|
|
2359
|
+
|
|
2360
|
+
***
|
|
2361
|
+
|
|
2362
|
+
<a id="initializefirestore"></a>
|
|
2363
|
+
|
|
2364
|
+
### initializeFirestore()
|
|
2365
|
+
|
|
2366
|
+
```ts
|
|
2367
|
+
function initializeFirestore(
|
|
2368
|
+
app: any,
|
|
2369
|
+
_settings?: FirestoreSettings,
|
|
2370
|
+
_databaseId?: string): Firestore;
|
|
2371
|
+
```
|
|
2372
|
+
|
|
2373
|
+
Delegates to [getFirestore](#getfirestore) and returns the same handle. Accepts
|
|
2374
|
+
the `settings` argument (so the explicit-init pattern app code commonly
|
|
2375
|
+
writes — `initializeFirestore(app, { localCache: persistentLocalCache(...) } )`
|
|
2376
|
+
— no longer crashes at import) but no-ops the cache/network settings:
|
|
2377
|
+
persistence is already the sandbox default, so there is nothing left to
|
|
2378
|
+
configure into existence.
|
|
2379
|
+
|
|
2380
|
+
#### Parameters
|
|
2381
|
+
|
|
2382
|
+
| Parameter | Type |
|
|
2383
|
+
| :------ | :------ |
|
|
2384
|
+
| `app` | `any` |
|
|
2385
|
+
| `_settings?` | [`FirestoreSettings`](#firestoresettings) |
|
|
2386
|
+
| `_databaseId?` | `string` |
|
|
2387
|
+
|
|
2388
|
+
#### Returns
|
|
2389
|
+
|
|
2390
|
+
[`Firestore`](#firestore)
|
|
2391
|
+
|
|
2392
|
+
***
|
|
2393
|
+
|
|
2394
|
+
<a id="limit"></a>
|
|
2395
|
+
|
|
2396
|
+
### limit()
|
|
2397
|
+
|
|
2398
|
+
```ts
|
|
2399
|
+
function limit(n: number): QueryConstraint;
|
|
2400
|
+
```
|
|
2401
|
+
|
|
2402
|
+
#### Parameters
|
|
2403
|
+
|
|
2404
|
+
| Parameter | Type |
|
|
2405
|
+
| :------ | :------ |
|
|
2406
|
+
| `n` | `number` |
|
|
2407
|
+
|
|
2408
|
+
#### Returns
|
|
2409
|
+
|
|
2410
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2411
|
+
|
|
2412
|
+
***
|
|
2413
|
+
|
|
2414
|
+
<a id="limittolast"></a>
|
|
2415
|
+
|
|
2416
|
+
### limitToLast()
|
|
2417
|
+
|
|
2418
|
+
```ts
|
|
2419
|
+
function limitToLast(n: number): QueryConstraint;
|
|
2420
|
+
```
|
|
2421
|
+
|
|
2422
|
+
Limit the query to the LAST `n` documents in the ordered result.
|
|
2423
|
+
Requires at least one `orderBy` on the query (production-aligned —
|
|
2424
|
+
the simulator throws at execute time without one).
|
|
2425
|
+
|
|
2426
|
+
#### Parameters
|
|
2427
|
+
|
|
2428
|
+
| Parameter | Type |
|
|
2429
|
+
| :------ | :------ |
|
|
2430
|
+
| `n` | `number` |
|
|
2431
|
+
|
|
2432
|
+
#### Returns
|
|
2433
|
+
|
|
2434
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2435
|
+
|
|
2436
|
+
***
|
|
2437
|
+
|
|
2438
|
+
<a id="memoryeagergarbagecollector"></a>
|
|
2439
|
+
|
|
2440
|
+
### memoryEagerGarbageCollector()
|
|
2441
|
+
|
|
2442
|
+
```ts
|
|
2443
|
+
function memoryEagerGarbageCollector(): MemoryGarbageCollector;
|
|
2444
|
+
```
|
|
2445
|
+
|
|
2446
|
+
Inert config token accepted by [memoryLocalCache](#memorylocalcache)'s `garbageCollector`.
|
|
2447
|
+
|
|
2448
|
+
#### Returns
|
|
2449
|
+
|
|
2450
|
+
[`MemoryGarbageCollector`](#memorygarbagecollector)
|
|
2451
|
+
|
|
2452
|
+
***
|
|
2453
|
+
|
|
2454
|
+
<a id="memorylocalcache"></a>
|
|
2455
|
+
|
|
2456
|
+
### memoryLocalCache()
|
|
2457
|
+
|
|
2458
|
+
```ts
|
|
2459
|
+
function memoryLocalCache(settings?: {
|
|
2460
|
+
garbageCollector?: MemoryGarbageCollector;
|
|
2461
|
+
}): LocalCache;
|
|
2462
|
+
```
|
|
2463
|
+
|
|
2464
|
+
Inert config token — the memory-cache counterpart of [persistentLocalCache](#persistentlocalcache).
|
|
2465
|
+
|
|
2466
|
+
#### Parameters
|
|
2467
|
+
|
|
2468
|
+
| Parameter | Type |
|
|
2469
|
+
| :------ | :------ |
|
|
2470
|
+
| `settings?` | \{ `garbageCollector?`: [`MemoryGarbageCollector`](#memorygarbagecollector); \} |
|
|
2471
|
+
| `settings.garbageCollector?` | [`MemoryGarbageCollector`](#memorygarbagecollector) |
|
|
2472
|
+
|
|
2473
|
+
#### Returns
|
|
2474
|
+
|
|
2475
|
+
[`LocalCache`](#localcache-1)
|
|
2476
|
+
|
|
2477
|
+
***
|
|
2478
|
+
|
|
2479
|
+
<a id="memorylrugarbagecollector"></a>
|
|
2480
|
+
|
|
2481
|
+
### memoryLruGarbageCollector()
|
|
2482
|
+
|
|
2483
|
+
```ts
|
|
2484
|
+
function memoryLruGarbageCollector(_settings?: {
|
|
2485
|
+
cacheSizeBytes?: number;
|
|
2486
|
+
}): MemoryGarbageCollector;
|
|
2487
|
+
```
|
|
2488
|
+
|
|
2489
|
+
Inert config token accepted by [memoryLocalCache](#memorylocalcache)'s `garbageCollector`.
|
|
2490
|
+
|
|
2491
|
+
#### Parameters
|
|
2492
|
+
|
|
2493
|
+
| Parameter | Type |
|
|
2494
|
+
| :------ | :------ |
|
|
2495
|
+
| `_settings?` | \{ `cacheSizeBytes?`: `number`; \} |
|
|
2496
|
+
| `_settings.cacheSizeBytes?` | `number` |
|
|
2497
|
+
|
|
2498
|
+
#### Returns
|
|
2499
|
+
|
|
2500
|
+
[`MemoryGarbageCollector`](#memorygarbagecollector)
|
|
2501
|
+
|
|
2502
|
+
***
|
|
2503
|
+
|
|
2504
|
+
<a id="onsnapshot"></a>
|
|
2505
|
+
|
|
2506
|
+
### onSnapshot()
|
|
2507
|
+
|
|
2508
|
+
#### Call Signature
|
|
2509
|
+
|
|
2510
|
+
```ts
|
|
2511
|
+
function onSnapshot<T>(
|
|
2512
|
+
ref: T,
|
|
2513
|
+
observerOrNext:
|
|
2514
|
+
| SnapshotObserver<unknown>
|
|
2515
|
+
| (snap: unknown) => void,
|
|
2516
|
+
errorOrNothing?: (error: unknown) => void): Unsubscribe;
|
|
2517
|
+
```
|
|
2518
|
+
|
|
2519
|
+
##### Type Parameters
|
|
2520
|
+
|
|
2521
|
+
| Type Parameter |
|
|
2522
|
+
| :------ |
|
|
2523
|
+
| `T` *extends* \| [`DocumentReference`](#documentreference)\<`DocumentData`\> \| [`Query`](#query)\<`DocumentData`\> |
|
|
2524
|
+
|
|
2525
|
+
##### Parameters
|
|
2526
|
+
|
|
2527
|
+
| Parameter | Type |
|
|
2528
|
+
| :------ | :------ |
|
|
2529
|
+
| `ref` | `T` |
|
|
2530
|
+
| `observerOrNext` | \| [`SnapshotObserver`](#snapshotobserver)\<`unknown`\> \| (`snap`: `unknown`) => `void` |
|
|
2531
|
+
| `errorOrNothing?` | (`error`: `unknown`) => `void` |
|
|
2532
|
+
|
|
2533
|
+
##### Returns
|
|
2534
|
+
|
|
2535
|
+
[`Unsubscribe`](#unsubscribe)
|
|
2536
|
+
|
|
2537
|
+
#### Call Signature
|
|
2538
|
+
|
|
2539
|
+
```ts
|
|
2540
|
+
function onSnapshot<T>(
|
|
2541
|
+
ref: T,
|
|
2542
|
+
options: SnapshotListenOptions,
|
|
2543
|
+
observerOrNext:
|
|
2544
|
+
| SnapshotObserver<unknown>
|
|
2545
|
+
| (snap: unknown) => void,
|
|
2546
|
+
errorOrNothing?: (error: unknown) => void): Unsubscribe;
|
|
2547
|
+
```
|
|
2548
|
+
|
|
2549
|
+
##### Type Parameters
|
|
2550
|
+
|
|
2551
|
+
| Type Parameter |
|
|
2552
|
+
| :------ |
|
|
2553
|
+
| `T` *extends* \| [`DocumentReference`](#documentreference)\<`DocumentData`\> \| [`Query`](#query)\<`DocumentData`\> |
|
|
2554
|
+
|
|
2555
|
+
##### Parameters
|
|
2556
|
+
|
|
2557
|
+
| Parameter | Type |
|
|
2558
|
+
| :------ | :------ |
|
|
2559
|
+
| `ref` | `T` |
|
|
2560
|
+
| `options` | [`SnapshotListenOptions`](#snapshotlistenoptions) |
|
|
2561
|
+
| `observerOrNext` | \| [`SnapshotObserver`](#snapshotobserver)\<`unknown`\> \| (`snap`: `unknown`) => `void` |
|
|
2562
|
+
| `errorOrNothing?` | (`error`: `unknown`) => `void` |
|
|
2563
|
+
|
|
2564
|
+
##### Returns
|
|
2565
|
+
|
|
2566
|
+
[`Unsubscribe`](#unsubscribe)
|
|
2567
|
+
|
|
2568
|
+
***
|
|
2569
|
+
|
|
2570
|
+
<a id="onsnapshotsinsync"></a>
|
|
2571
|
+
|
|
2572
|
+
### onSnapshotsInSync()
|
|
2573
|
+
|
|
2574
|
+
```ts
|
|
2575
|
+
function onSnapshotsInSync(db: Firestore, observerOrCallback:
|
|
2576
|
+
| () => void
|
|
2577
|
+
| {
|
|
2578
|
+
complete?: () => void;
|
|
2579
|
+
error?: (error: unknown) => void;
|
|
2580
|
+
next?: () => void;
|
|
2581
|
+
}): Unsubscribe;
|
|
2582
|
+
```
|
|
2583
|
+
|
|
2584
|
+
Sandbox: fires the callback once the current snapshot-delivery
|
|
2585
|
+
microtask queue settles — the closest honest approximation of "every
|
|
2586
|
+
active listener has delivered its latest state" available without a
|
|
2587
|
+
true cross-listener sync signal (the sandbox doesn't track one).
|
|
2588
|
+
This is NOT the real SDK's guarantee (which is scoped to actual
|
|
2589
|
+
server round-trips); it is scoped to local delivery only.
|
|
2590
|
+
|
|
2591
|
+
#### Parameters
|
|
2592
|
+
|
|
2593
|
+
| Parameter | Type |
|
|
2594
|
+
| :------ | :------ |
|
|
2595
|
+
| `db` | [`Firestore`](#firestore) |
|
|
2596
|
+
| `observerOrCallback` | \| () => `void` \| \{ `complete?`: () => `void`; `error?`: (`error`: `unknown`) => `void`; `next?`: () => `void`; \} |
|
|
2597
|
+
|
|
2598
|
+
#### Returns
|
|
2599
|
+
|
|
2600
|
+
[`Unsubscribe`](#unsubscribe)
|
|
2601
|
+
|
|
2602
|
+
***
|
|
2603
|
+
|
|
2604
|
+
<a id="or"></a>
|
|
2605
|
+
|
|
2606
|
+
### or()
|
|
2607
|
+
|
|
2608
|
+
```ts
|
|
2609
|
+
function or(...filters: QueryConstraint[]): QueryConstraint;
|
|
2610
|
+
```
|
|
2611
|
+
|
|
2612
|
+
OR composite — at least one of the inner constraints must match.
|
|
2613
|
+
Each argument must itself be a filter constraint (`where()`, or
|
|
2614
|
+
nested `or()` / `and()`); passing `orderBy()` or `limit()` here is
|
|
2615
|
+
a type error at runtime.
|
|
2616
|
+
|
|
2617
|
+
Mirrors `firebase/firestore`'s `or(...filters)` shape.
|
|
2618
|
+
|
|
2619
|
+
#### Parameters
|
|
2620
|
+
|
|
2621
|
+
| Parameter | Type |
|
|
2622
|
+
| :------ | :------ |
|
|
2623
|
+
| ...`filters` | [`QueryConstraint`](#queryconstraint)[] |
|
|
2624
|
+
|
|
2625
|
+
#### Returns
|
|
2626
|
+
|
|
2627
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2628
|
+
|
|
2629
|
+
***
|
|
2630
|
+
|
|
2631
|
+
<a id="orderby"></a>
|
|
2632
|
+
|
|
2633
|
+
### orderBy()
|
|
2634
|
+
|
|
2635
|
+
```ts
|
|
2636
|
+
function orderBy(field: string | FieldPath, direction?: OrderDirection): QueryConstraint;
|
|
2637
|
+
```
|
|
2638
|
+
|
|
2639
|
+
#### Parameters
|
|
2640
|
+
|
|
2641
|
+
| Parameter | Type |
|
|
2642
|
+
| :------ | :------ |
|
|
2643
|
+
| `field` | `string` \| [`FieldPath`](#fieldpath) |
|
|
2644
|
+
| `direction?` | `OrderDirection` |
|
|
2645
|
+
|
|
2646
|
+
#### Returns
|
|
2647
|
+
|
|
2648
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2649
|
+
|
|
2650
|
+
***
|
|
2651
|
+
|
|
2652
|
+
<a id="persistentlocalcache"></a>
|
|
2653
|
+
|
|
2654
|
+
### persistentLocalCache()
|
|
2655
|
+
|
|
2656
|
+
```ts
|
|
2657
|
+
function persistentLocalCache(settings?: {
|
|
2658
|
+
cacheSizeBytes?: number;
|
|
2659
|
+
tabManager?: PersistentTabManager;
|
|
2660
|
+
}): LocalCache;
|
|
2661
|
+
```
|
|
2662
|
+
|
|
2663
|
+
Inert config token. Real Firebase uses this to select an on-disk,
|
|
2664
|
+
persistent IndexedDB cache tier; the sandbox has no separate cache
|
|
2665
|
+
tier — persistence is already the default — so this just returns a
|
|
2666
|
+
tagged token `initializeFirestore` can accept without crashing.
|
|
2667
|
+
|
|
2668
|
+
#### Parameters
|
|
2669
|
+
|
|
2670
|
+
| Parameter | Type |
|
|
2671
|
+
| :------ | :------ |
|
|
2672
|
+
| `settings?` | \{ `cacheSizeBytes?`: `number`; `tabManager?`: [`PersistentTabManager`](#persistenttabmanager); \} |
|
|
2673
|
+
| `settings.cacheSizeBytes?` | `number` |
|
|
2674
|
+
| `settings.tabManager?` | [`PersistentTabManager`](#persistenttabmanager) |
|
|
2675
|
+
|
|
2676
|
+
#### Returns
|
|
2677
|
+
|
|
2678
|
+
[`LocalCache`](#localcache-1)
|
|
2679
|
+
|
|
2680
|
+
***
|
|
2681
|
+
|
|
2682
|
+
<a id="persistentmultipletabmanager"></a>
|
|
2683
|
+
|
|
2684
|
+
### persistentMultipleTabManager()
|
|
2685
|
+
|
|
2686
|
+
```ts
|
|
2687
|
+
function persistentMultipleTabManager(): PersistentTabManager;
|
|
2688
|
+
```
|
|
2689
|
+
|
|
2690
|
+
Inert config token accepted by [persistentLocalCache](#persistentlocalcache)'s `tabManager`.
|
|
2691
|
+
|
|
2692
|
+
#### Returns
|
|
2693
|
+
|
|
2694
|
+
[`PersistentTabManager`](#persistenttabmanager)
|
|
2695
|
+
|
|
2696
|
+
***
|
|
2697
|
+
|
|
2698
|
+
<a id="persistentsingletabmanager"></a>
|
|
2699
|
+
|
|
2700
|
+
### persistentSingleTabManager()
|
|
2701
|
+
|
|
2702
|
+
```ts
|
|
2703
|
+
function persistentSingleTabManager(_settings?: {
|
|
2704
|
+
forceOwnership?: boolean;
|
|
2705
|
+
}): PersistentTabManager;
|
|
2706
|
+
```
|
|
2707
|
+
|
|
2708
|
+
Inert config token accepted by [persistentLocalCache](#persistentlocalcache)'s `tabManager`.
|
|
2709
|
+
|
|
2710
|
+
#### Parameters
|
|
2711
|
+
|
|
2712
|
+
| Parameter | Type |
|
|
2713
|
+
| :------ | :------ |
|
|
2714
|
+
| `_settings?` | \{ `forceOwnership?`: `boolean`; \} |
|
|
2715
|
+
| `_settings.forceOwnership?` | `boolean` |
|
|
2716
|
+
|
|
2717
|
+
#### Returns
|
|
2718
|
+
|
|
2719
|
+
[`PersistentTabManager`](#persistenttabmanager)
|
|
2720
|
+
|
|
2721
|
+
***
|
|
2722
|
+
|
|
2723
|
+
<a id="query-1"></a>
|
|
2724
|
+
|
|
2725
|
+
### query()
|
|
2726
|
+
|
|
2727
|
+
```ts
|
|
2728
|
+
function query<T>(source:
|
|
2729
|
+
| CollectionReference<T>
|
|
2730
|
+
| Query<T>, ...constraints: QueryConstraint[]): Query<T>;
|
|
2731
|
+
```
|
|
2732
|
+
|
|
2733
|
+
#### Type Parameters
|
|
2734
|
+
|
|
2735
|
+
| Type Parameter | Default type |
|
|
2736
|
+
| :------ | :------ |
|
|
2737
|
+
| `T` | `DocumentData` |
|
|
2738
|
+
|
|
2739
|
+
#### Parameters
|
|
2740
|
+
|
|
2741
|
+
| Parameter | Type |
|
|
2742
|
+
| :------ | :------ |
|
|
2743
|
+
| `source` | \| [`CollectionReference`](#collectionreference)\<`T`\> \| [`Query`](#query)\<`T`\> |
|
|
2744
|
+
| ...`constraints` | [`QueryConstraint`](#queryconstraint)[] |
|
|
2745
|
+
|
|
2746
|
+
#### Returns
|
|
2747
|
+
|
|
2748
|
+
[`Query`](#query)\<`T`\>
|
|
2749
|
+
|
|
2750
|
+
***
|
|
2751
|
+
|
|
2752
|
+
<a id="queryequal"></a>
|
|
2753
|
+
|
|
2754
|
+
### queryEqual()
|
|
2755
|
+
|
|
2756
|
+
```ts
|
|
2757
|
+
function queryEqual(a: Query, b: Query): boolean;
|
|
2758
|
+
```
|
|
2759
|
+
|
|
2760
|
+
#### Parameters
|
|
2761
|
+
|
|
2762
|
+
| Parameter | Type |
|
|
2763
|
+
| :------ | :------ |
|
|
2764
|
+
| `a` | [`Query`](#query) |
|
|
2765
|
+
| `b` | [`Query`](#query) |
|
|
2766
|
+
|
|
2767
|
+
#### Returns
|
|
2768
|
+
|
|
2769
|
+
`boolean`
|
|
2770
|
+
|
|
2771
|
+
***
|
|
2772
|
+
|
|
2773
|
+
<a id="refequal"></a>
|
|
2774
|
+
|
|
2775
|
+
### refEqual()
|
|
2776
|
+
|
|
2777
|
+
```ts
|
|
2778
|
+
function refEqual(a: DocumentReference, b: DocumentReference): boolean;
|
|
2779
|
+
```
|
|
2780
|
+
|
|
2781
|
+
#### Parameters
|
|
2782
|
+
|
|
2783
|
+
| Parameter | Type |
|
|
2784
|
+
| :------ | :------ |
|
|
2785
|
+
| `a` | [`DocumentReference`](#documentreference) |
|
|
2786
|
+
| `b` | [`DocumentReference`](#documentreference) |
|
|
2787
|
+
|
|
2788
|
+
#### Returns
|
|
2789
|
+
|
|
2790
|
+
`boolean`
|
|
2791
|
+
|
|
2792
|
+
***
|
|
2793
|
+
|
|
2794
|
+
<a id="runtransaction"></a>
|
|
2795
|
+
|
|
2796
|
+
### runTransaction()
|
|
2797
|
+
|
|
2798
|
+
```ts
|
|
2799
|
+
function runTransaction<R>(db: Firestore, fn: (tx: ChainTransaction) => R | Promise<R>): Promise<R>;
|
|
2800
|
+
```
|
|
2801
|
+
|
|
2802
|
+
#### Type Parameters
|
|
2803
|
+
|
|
2804
|
+
| Type Parameter |
|
|
2805
|
+
| :------ |
|
|
2806
|
+
| `R` |
|
|
2807
|
+
|
|
2808
|
+
#### Parameters
|
|
2809
|
+
|
|
2810
|
+
| Parameter | Type |
|
|
2811
|
+
| :------ | :------ |
|
|
2812
|
+
| `db` | [`Firestore`](#firestore) |
|
|
2813
|
+
| `fn` | (`tx`: `ChainTransaction`) => `R` \| `Promise`\<`R`\> |
|
|
2814
|
+
|
|
2815
|
+
#### Returns
|
|
2816
|
+
|
|
2817
|
+
`Promise`\<`R`\>
|
|
2818
|
+
|
|
2819
|
+
***
|
|
2820
|
+
|
|
2821
|
+
<a id="servertimestamp"></a>
|
|
2822
|
+
|
|
2823
|
+
### serverTimestamp()
|
|
2824
|
+
|
|
2825
|
+
```ts
|
|
2826
|
+
function serverTimestamp(): FieldValueSentinel;
|
|
2827
|
+
```
|
|
2828
|
+
|
|
2829
|
+
#### Returns
|
|
2830
|
+
|
|
2831
|
+
`FieldValueSentinel`
|
|
2832
|
+
|
|
2833
|
+
***
|
|
2834
|
+
|
|
2835
|
+
<a id="setdoc"></a>
|
|
2836
|
+
|
|
2837
|
+
### setDoc()
|
|
2838
|
+
|
|
2839
|
+
```ts
|
|
2840
|
+
function setDoc<T>(
|
|
2841
|
+
ref: DocumentReference<T>,
|
|
2842
|
+
data: T,
|
|
2843
|
+
options?: SetOptions): Promise<void>;
|
|
2844
|
+
```
|
|
2845
|
+
|
|
2846
|
+
#### Type Parameters
|
|
2847
|
+
|
|
2848
|
+
| Type Parameter | Default type |
|
|
2849
|
+
| :------ | :------ |
|
|
2850
|
+
| `T` | `DocumentData` |
|
|
2851
|
+
|
|
2852
|
+
#### Parameters
|
|
2853
|
+
|
|
2854
|
+
| Parameter | Type |
|
|
2855
|
+
| :------ | :------ |
|
|
2856
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
|
|
2857
|
+
| `data` | `T` |
|
|
2858
|
+
| `options?` | [`SetOptions`](#setoptions) |
|
|
2859
|
+
|
|
2860
|
+
#### Returns
|
|
2861
|
+
|
|
2862
|
+
`Promise`\<`void`\>
|
|
2863
|
+
|
|
2864
|
+
***
|
|
2865
|
+
|
|
2866
|
+
<a id="setloglevel"></a>
|
|
2867
|
+
|
|
2868
|
+
### setLogLevel()
|
|
2869
|
+
|
|
2870
|
+
```ts
|
|
2871
|
+
function setLogLevel(logLevel: LogLevel): void;
|
|
2872
|
+
```
|
|
2873
|
+
|
|
2874
|
+
Accepted no-op: the sandbox has no modular-SDK-style logger to wire
|
|
2875
|
+
a level into (it uses host-level `console` logging directly, gated
|
|
2876
|
+
by `pyric dev`'s own flags, not this call). Exists purely so app
|
|
2877
|
+
code that calls this defensively at startup doesn't crash on a
|
|
2878
|
+
missing export.
|
|
2879
|
+
|
|
2880
|
+
#### Parameters
|
|
2881
|
+
|
|
2882
|
+
| Parameter | Type |
|
|
2883
|
+
| :------ | :------ |
|
|
2884
|
+
| `logLevel` | [`LogLevel`](#loglevel) |
|
|
2885
|
+
|
|
2886
|
+
#### Returns
|
|
2887
|
+
|
|
2888
|
+
`void`
|
|
2889
|
+
|
|
2890
|
+
***
|
|
2891
|
+
|
|
2892
|
+
<a id="snapshotequal"></a>
|
|
2893
|
+
|
|
2894
|
+
### snapshotEqual()
|
|
2895
|
+
|
|
2896
|
+
```ts
|
|
2897
|
+
function snapshotEqual(a:
|
|
2898
|
+
| DocumentSnapshot<DocumentData>
|
|
2899
|
+
| QuerySnapshot<DocumentData>, b:
|
|
2900
|
+
| DocumentSnapshot<DocumentData>
|
|
2901
|
+
| QuerySnapshot<DocumentData>): boolean;
|
|
2902
|
+
```
|
|
2903
|
+
|
|
2904
|
+
#### Parameters
|
|
2905
|
+
|
|
2906
|
+
| Parameter | Type |
|
|
2907
|
+
| :------ | :------ |
|
|
2908
|
+
| `a` | \| [`DocumentSnapshot`](#documentsnapshot)\<`DocumentData`\> \| [`QuerySnapshot`](#querysnapshot)\<`DocumentData`\> |
|
|
2909
|
+
| `b` | \| [`DocumentSnapshot`](#documentsnapshot)\<`DocumentData`\> \| [`QuerySnapshot`](#querysnapshot)\<`DocumentData`\> |
|
|
2910
|
+
|
|
2911
|
+
#### Returns
|
|
2912
|
+
|
|
2913
|
+
`boolean`
|
|
2914
|
+
|
|
2915
|
+
***
|
|
2916
|
+
|
|
2917
|
+
<a id="startafter"></a>
|
|
2918
|
+
|
|
2919
|
+
### startAfter()
|
|
2920
|
+
|
|
2921
|
+
#### Call Signature
|
|
2922
|
+
|
|
2923
|
+
```ts
|
|
2924
|
+
function startAfter(snapshot: DocumentSnapshot): QueryConstraint;
|
|
2925
|
+
```
|
|
2926
|
+
|
|
2927
|
+
Same as `startAt`, but EXCLUDES the document at the cursor — the
|
|
2928
|
+
result starts at the next ordered position.
|
|
2929
|
+
|
|
2930
|
+
##### Parameters
|
|
2931
|
+
|
|
2932
|
+
| Parameter | Type |
|
|
2933
|
+
| :------ | :------ |
|
|
2934
|
+
| `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
|
|
2935
|
+
|
|
2936
|
+
##### Returns
|
|
2937
|
+
|
|
2938
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2939
|
+
|
|
2940
|
+
#### Call Signature
|
|
2941
|
+
|
|
2942
|
+
```ts
|
|
2943
|
+
function startAfter(...values: unknown[]): QueryConstraint;
|
|
2944
|
+
```
|
|
2945
|
+
|
|
2946
|
+
Same as `startAt`, but EXCLUDES the document at the cursor — the
|
|
2947
|
+
result starts at the next ordered position.
|
|
2948
|
+
|
|
2949
|
+
##### Parameters
|
|
2950
|
+
|
|
2951
|
+
| Parameter | Type |
|
|
2952
|
+
| :------ | :------ |
|
|
2953
|
+
| ...`values` | `unknown`[] |
|
|
2954
|
+
|
|
2955
|
+
##### Returns
|
|
2956
|
+
|
|
2957
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2958
|
+
|
|
2959
|
+
***
|
|
2960
|
+
|
|
2961
|
+
<a id="startat"></a>
|
|
2962
|
+
|
|
2963
|
+
### startAt()
|
|
2964
|
+
|
|
2965
|
+
#### Call Signature
|
|
2966
|
+
|
|
2967
|
+
```ts
|
|
2968
|
+
function startAt(snapshot: DocumentSnapshot): QueryConstraint;
|
|
2969
|
+
```
|
|
2970
|
+
|
|
2971
|
+
Start the query at the document whose ordered field values match
|
|
2972
|
+
the cursor. Inclusive — the document at the cursor IS included in
|
|
2973
|
+
the result. Two overloads:
|
|
2974
|
+
|
|
2975
|
+
`startAt(snapshot)` — values come from `snapshot.data()` indexed
|
|
2976
|
+
by the query's orderBy fields.
|
|
2977
|
+
`startAt(...values)` — explicit positional values (one per
|
|
2978
|
+
orderBy clause).
|
|
2979
|
+
|
|
2980
|
+
##### Parameters
|
|
2981
|
+
|
|
2982
|
+
| Parameter | Type |
|
|
2983
|
+
| :------ | :------ |
|
|
2984
|
+
| `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
|
|
2985
|
+
|
|
2986
|
+
##### Returns
|
|
2987
|
+
|
|
2988
|
+
[`QueryConstraint`](#queryconstraint)
|
|
2989
|
+
|
|
2990
|
+
#### Call Signature
|
|
2991
|
+
|
|
2992
|
+
```ts
|
|
2993
|
+
function startAt(...values: unknown[]): QueryConstraint;
|
|
2994
|
+
```
|
|
2995
|
+
|
|
2996
|
+
Start the query at the document whose ordered field values match
|
|
2997
|
+
the cursor. Inclusive — the document at the cursor IS included in
|
|
2998
|
+
the result. Two overloads:
|
|
2999
|
+
|
|
3000
|
+
`startAt(snapshot)` — values come from `snapshot.data()` indexed
|
|
3001
|
+
by the query's orderBy fields.
|
|
3002
|
+
`startAt(...values)` — explicit positional values (one per
|
|
3003
|
+
orderBy clause).
|
|
3004
|
+
|
|
3005
|
+
##### Parameters
|
|
3006
|
+
|
|
3007
|
+
| Parameter | Type |
|
|
3008
|
+
| :------ | :------ |
|
|
3009
|
+
| ...`values` | `unknown`[] |
|
|
3010
|
+
|
|
3011
|
+
##### Returns
|
|
3012
|
+
|
|
3013
|
+
[`QueryConstraint`](#queryconstraint)
|
|
3014
|
+
|
|
3015
|
+
***
|
|
3016
|
+
|
|
3017
|
+
<a id="sum"></a>
|
|
3018
|
+
|
|
3019
|
+
### sum()
|
|
3020
|
+
|
|
3021
|
+
```ts
|
|
3022
|
+
function sum(field: string): AggregateField;
|
|
3023
|
+
```
|
|
3024
|
+
|
|
3025
|
+
Factory: sum-of-`field` aggregate.
|
|
3026
|
+
|
|
3027
|
+
#### Parameters
|
|
3028
|
+
|
|
3029
|
+
| Parameter | Type |
|
|
3030
|
+
| :------ | :------ |
|
|
3031
|
+
| `field` | `string` |
|
|
3032
|
+
|
|
3033
|
+
#### Returns
|
|
3034
|
+
|
|
3035
|
+
[`AggregateField`](#aggregatefield)
|
|
3036
|
+
|
|
3037
|
+
***
|
|
3038
|
+
|
|
3039
|
+
<a id="terminate"></a>
|
|
3040
|
+
|
|
3041
|
+
### terminate()
|
|
3042
|
+
|
|
3043
|
+
```ts
|
|
3044
|
+
function terminate(db: Firestore): Promise<void>;
|
|
3045
|
+
```
|
|
3046
|
+
|
|
3047
|
+
Sandbox: genuinely tears the target down by calling
|
|
3048
|
+
`Sandbox.dispose()` — NOT a pure no-op like the rest of this family.
|
|
3049
|
+
`dispose()` tears down listener registries on the sandbox's
|
|
3050
|
+
environment without replacing it (idempotent, doesn't touch data).
|
|
3051
|
+
This is the honest mapping of "terminate this Firestore instance":
|
|
3052
|
+
a real app that calls `terminate(db)` expects listeners to stop and
|
|
3053
|
+
the instance to be unusable for further meaningful work, and
|
|
3054
|
+
`dispose()` delivers exactly that for the sandbox.
|
|
3055
|
+
|
|
3056
|
+
Caveat: `dispose()` operates on the whole `Sandbox`, not a
|
|
3057
|
+
Firestore-only slice of it — if `pyric/database` or `pyric/storage`
|
|
3058
|
+
share the same `Sandbox`, their listener registries are torn down
|
|
3059
|
+
too. This differs from the real SDK, where `terminate()` only
|
|
3060
|
+
affects the one `Firestore` instance. Documented divergence.
|
|
3061
|
+
|
|
3062
|
+
#### Parameters
|
|
3063
|
+
|
|
3064
|
+
| Parameter | Type |
|
|
3065
|
+
| :------ | :------ |
|
|
3066
|
+
| `db` | [`Firestore`](#firestore) |
|
|
3067
|
+
|
|
3068
|
+
#### Returns
|
|
3069
|
+
|
|
3070
|
+
`Promise`\<`void`\>
|
|
3071
|
+
|
|
3072
|
+
***
|
|
3073
|
+
|
|
3074
|
+
<a id="updatedoc"></a>
|
|
3075
|
+
|
|
3076
|
+
### updateDoc()
|
|
3077
|
+
|
|
3078
|
+
```ts
|
|
3079
|
+
function updateDoc(ref: DocumentReference, data: DocumentData): Promise<void>;
|
|
3080
|
+
```
|
|
3081
|
+
|
|
3082
|
+
`updateDoc` does NOT run the converter. Matches `firebase/firestore`'s
|
|
3083
|
+
Web SDK shape — partial updates can target any subset of fields, so
|
|
3084
|
+
a translator built around a full `AppModelType` would be a type-shape
|
|
3085
|
+
mismatch. Use the underlying `DocumentData` view (`withConverter(ref,
|
|
3086
|
+
null)`) for typed-and-untyped mixed access if you need both styles
|
|
3087
|
+
against the same path.
|
|
3088
|
+
|
|
3089
|
+
#### Parameters
|
|
3090
|
+
|
|
3091
|
+
| Parameter | Type |
|
|
3092
|
+
| :------ | :------ |
|
|
3093
|
+
| `ref` | [`DocumentReference`](#documentreference) |
|
|
3094
|
+
| `data` | `DocumentData` |
|
|
3095
|
+
|
|
3096
|
+
#### Returns
|
|
3097
|
+
|
|
3098
|
+
`Promise`\<`void`\>
|
|
3099
|
+
|
|
3100
|
+
***
|
|
3101
|
+
|
|
3102
|
+
<a id="vector"></a>
|
|
3103
|
+
|
|
3104
|
+
### vector()
|
|
3105
|
+
|
|
3106
|
+
```ts
|
|
3107
|
+
function vector(values?: number[]): VectorValue;
|
|
3108
|
+
```
|
|
3109
|
+
|
|
3110
|
+
#### Parameters
|
|
3111
|
+
|
|
3112
|
+
| Parameter | Type |
|
|
3113
|
+
| :------ | :------ |
|
|
3114
|
+
| `values?` | `number`[] |
|
|
3115
|
+
|
|
3116
|
+
#### Returns
|
|
3117
|
+
|
|
3118
|
+
[`VectorValue`](#vectorvalue)
|
|
3119
|
+
|
|
3120
|
+
***
|
|
3121
|
+
|
|
3122
|
+
<a id="waitforpendingwrites"></a>
|
|
3123
|
+
|
|
3124
|
+
### waitForPendingWrites()
|
|
3125
|
+
|
|
3126
|
+
```ts
|
|
3127
|
+
function waitForPendingWrites(db: Firestore): Promise<void>;
|
|
3128
|
+
```
|
|
3129
|
+
|
|
3130
|
+
Sandbox: resolves immediately. The real SDK's version waits for
|
|
3131
|
+
queued writes to reach the server; the sandbox has no server to wait
|
|
3132
|
+
on — every write it accepts is already committed to the local store
|
|
3133
|
+
by the time the write's own promise resolves, so by the time this is
|
|
3134
|
+
called there are, honestly, never any writes still pending a round
|
|
3135
|
+
trip.
|
|
3136
|
+
|
|
3137
|
+
#### Parameters
|
|
3138
|
+
|
|
3139
|
+
| Parameter | Type |
|
|
3140
|
+
| :------ | :------ |
|
|
3141
|
+
| `db` | [`Firestore`](#firestore) |
|
|
3142
|
+
|
|
3143
|
+
#### Returns
|
|
3144
|
+
|
|
3145
|
+
`Promise`\<`void`\>
|
|
3146
|
+
|
|
3147
|
+
***
|
|
3148
|
+
|
|
3149
|
+
<a id="where"></a>
|
|
3150
|
+
|
|
3151
|
+
### where()
|
|
3152
|
+
|
|
3153
|
+
```ts
|
|
3154
|
+
function where(
|
|
3155
|
+
field: string | FieldPath,
|
|
3156
|
+
op: WhereFilterOp,
|
|
3157
|
+
value: unknown): QueryConstraint;
|
|
3158
|
+
```
|
|
3159
|
+
|
|
3160
|
+
#### Parameters
|
|
3161
|
+
|
|
3162
|
+
| Parameter | Type |
|
|
3163
|
+
| :------ | :------ |
|
|
3164
|
+
| `field` | `string` \| [`FieldPath`](#fieldpath) |
|
|
3165
|
+
| `op` | `WhereFilterOp` |
|
|
3166
|
+
| `value` | `unknown` |
|
|
3167
|
+
|
|
3168
|
+
#### Returns
|
|
3169
|
+
|
|
3170
|
+
[`QueryConstraint`](#queryconstraint)
|
|
3171
|
+
|
|
3172
|
+
***
|
|
3173
|
+
|
|
3174
|
+
<a id="withconverter"></a>
|
|
3175
|
+
|
|
3176
|
+
### withConverter()
|
|
3177
|
+
|
|
3178
|
+
#### Call Signature
|
|
3179
|
+
|
|
3180
|
+
```ts
|
|
3181
|
+
function withConverter<AppModel, DbModel>(ref: DocumentReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): DocumentReference<AppModel>;
|
|
3182
|
+
```
|
|
3183
|
+
|
|
3184
|
+
##### Type Parameters
|
|
3185
|
+
|
|
3186
|
+
| Type Parameter | Default type |
|
|
3187
|
+
| :------ | :------ |
|
|
3188
|
+
| `AppModel` | - |
|
|
3189
|
+
| `DbModel` *extends* `DocumentData` | `DocumentData` |
|
|
3190
|
+
|
|
3191
|
+
##### Parameters
|
|
3192
|
+
|
|
3193
|
+
| Parameter | Type |
|
|
3194
|
+
| :------ | :------ |
|
|
3195
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`DocumentData`\> |
|
|
3196
|
+
| `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
|
|
3197
|
+
|
|
3198
|
+
##### Returns
|
|
3199
|
+
|
|
3200
|
+
[`DocumentReference`](#documentreference)\<`AppModel`\>
|
|
3201
|
+
|
|
3202
|
+
#### Call Signature
|
|
3203
|
+
|
|
3204
|
+
```ts
|
|
3205
|
+
function withConverter(ref: DocumentReference<unknown>, converter: null): DocumentReference<DocumentData>;
|
|
3206
|
+
```
|
|
3207
|
+
|
|
3208
|
+
##### Parameters
|
|
3209
|
+
|
|
3210
|
+
| Parameter | Type |
|
|
3211
|
+
| :------ | :------ |
|
|
3212
|
+
| `ref` | [`DocumentReference`](#documentreference)\<`unknown`\> |
|
|
3213
|
+
| `converter` | `null` |
|
|
3214
|
+
|
|
3215
|
+
##### Returns
|
|
3216
|
+
|
|
3217
|
+
[`DocumentReference`](#documentreference)\<`DocumentData`\>
|
|
3218
|
+
|
|
3219
|
+
#### Call Signature
|
|
3220
|
+
|
|
3221
|
+
```ts
|
|
3222
|
+
function withConverter<AppModel, DbModel>(ref: CollectionReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): CollectionReference<AppModel>;
|
|
3223
|
+
```
|
|
3224
|
+
|
|
3225
|
+
##### Type Parameters
|
|
3226
|
+
|
|
3227
|
+
| Type Parameter | Default type |
|
|
3228
|
+
| :------ | :------ |
|
|
3229
|
+
| `AppModel` | - |
|
|
3230
|
+
| `DbModel` *extends* `DocumentData` | `DocumentData` |
|
|
3231
|
+
|
|
3232
|
+
##### Parameters
|
|
3233
|
+
|
|
3234
|
+
| Parameter | Type |
|
|
3235
|
+
| :------ | :------ |
|
|
3236
|
+
| `ref` | [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
|
|
3237
|
+
| `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
|
|
3238
|
+
|
|
3239
|
+
##### Returns
|
|
3240
|
+
|
|
3241
|
+
[`CollectionReference`](#collectionreference)\<`AppModel`\>
|
|
3242
|
+
|
|
3243
|
+
#### Call Signature
|
|
3244
|
+
|
|
3245
|
+
```ts
|
|
3246
|
+
function withConverter(ref: CollectionReference<unknown>, converter: null): CollectionReference<DocumentData>;
|
|
3247
|
+
```
|
|
3248
|
+
|
|
3249
|
+
##### Parameters
|
|
3250
|
+
|
|
3251
|
+
| Parameter | Type |
|
|
3252
|
+
| :------ | :------ |
|
|
3253
|
+
| `ref` | [`CollectionReference`](#collectionreference)\<`unknown`\> |
|
|
3254
|
+
| `converter` | `null` |
|
|
3255
|
+
|
|
3256
|
+
##### Returns
|
|
3257
|
+
|
|
3258
|
+
[`CollectionReference`](#collectionreference)\<`DocumentData`\>
|
|
3259
|
+
|
|
3260
|
+
#### Call Signature
|
|
3261
|
+
|
|
3262
|
+
```ts
|
|
3263
|
+
function withConverter<AppModel, DbModel>(q: Query<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): Query<AppModel>;
|
|
3264
|
+
```
|
|
3265
|
+
|
|
3266
|
+
##### Type Parameters
|
|
3267
|
+
|
|
3268
|
+
| Type Parameter | Default type |
|
|
3269
|
+
| :------ | :------ |
|
|
3270
|
+
| `AppModel` | - |
|
|
3271
|
+
| `DbModel` *extends* `DocumentData` | `DocumentData` |
|
|
3272
|
+
|
|
3273
|
+
##### Parameters
|
|
3274
|
+
|
|
3275
|
+
| Parameter | Type |
|
|
3276
|
+
| :------ | :------ |
|
|
3277
|
+
| `q` | [`Query`](#query)\<`DocumentData`\> |
|
|
3278
|
+
| `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
|
|
3279
|
+
|
|
3280
|
+
##### Returns
|
|
3281
|
+
|
|
3282
|
+
[`Query`](#query)\<`AppModel`\>
|
|
3283
|
+
|
|
3284
|
+
#### Call Signature
|
|
3285
|
+
|
|
3286
|
+
```ts
|
|
3287
|
+
function withConverter(q: Query<unknown>, converter: null): Query<DocumentData>;
|
|
3288
|
+
```
|
|
3289
|
+
|
|
3290
|
+
##### Parameters
|
|
3291
|
+
|
|
3292
|
+
| Parameter | Type |
|
|
3293
|
+
| :------ | :------ |
|
|
3294
|
+
| `q` | [`Query`](#query)\<`unknown`\> |
|
|
3295
|
+
| `converter` | `null` |
|
|
3296
|
+
|
|
3297
|
+
##### Returns
|
|
3298
|
+
|
|
3299
|
+
[`Query`](#query)\<`DocumentData`\>
|
|
3300
|
+
|
|
3301
|
+
***
|
|
3302
|
+
|
|
3303
|
+
<a id="writebatch-1"></a>
|
|
3304
|
+
|
|
3305
|
+
### writeBatch()
|
|
3306
|
+
|
|
3307
|
+
```ts
|
|
3308
|
+
function writeBatch(db: Firestore): ChainWriteBatch;
|
|
3309
|
+
```
|
|
3310
|
+
|
|
3311
|
+
#### Parameters
|
|
3312
|
+
|
|
3313
|
+
| Parameter | Type |
|
|
3314
|
+
| :------ | :------ |
|
|
3315
|
+
| `db` | [`Firestore`](#firestore) |
|
|
3316
|
+
|
|
3317
|
+
#### Returns
|
|
3318
|
+
|
|
3319
|
+
`ChainWriteBatch`
|
|
3320
|
+
|
|
3321
|
+
## References
|
|
3322
|
+
|
|
3323
|
+
<a id="documentdata"></a>
|
|
3324
|
+
|
|
3325
|
+
### DocumentData
|
|
3326
|
+
|
|
3327
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3328
|
+
|
|
3329
|
+
***
|
|
3330
|
+
|
|
3331
|
+
<a id="fieldvalue"></a>
|
|
3332
|
+
|
|
3333
|
+
### FieldValue
|
|
3334
|
+
|
|
3335
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3336
|
+
|
|
3337
|
+
***
|
|
3338
|
+
|
|
3339
|
+
<a id="fieldvaluesentinel"></a>
|
|
3340
|
+
|
|
3341
|
+
### FieldValueSentinel
|
|
3342
|
+
|
|
3343
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3344
|
+
|
|
3345
|
+
***
|
|
3346
|
+
|
|
3347
|
+
<a id="lintresult"></a>
|
|
3348
|
+
|
|
3349
|
+
### LintResult
|
|
3350
|
+
|
|
3351
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3352
|
+
|
|
3353
|
+
***
|
|
3354
|
+
|
|
3355
|
+
<a id="orderdirection"></a>
|
|
3356
|
+
|
|
3357
|
+
### OrderDirection
|
|
3358
|
+
|
|
3359
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3360
|
+
|
|
3361
|
+
***
|
|
3362
|
+
|
|
3363
|
+
<a id="sandbox"></a>
|
|
3364
|
+
|
|
3365
|
+
### Sandbox
|
|
3366
|
+
|
|
3367
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3368
|
+
|
|
3369
|
+
***
|
|
3370
|
+
|
|
3371
|
+
<a id="sandboxcontext"></a>
|
|
3372
|
+
|
|
3373
|
+
### SandboxContext
|
|
3374
|
+
|
|
3375
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3376
|
+
|
|
3377
|
+
***
|
|
3378
|
+
|
|
3379
|
+
<a id="sandboxerror"></a>
|
|
3380
|
+
|
|
3381
|
+
### SandboxError
|
|
3382
|
+
|
|
3383
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3384
|
+
|
|
3385
|
+
***
|
|
3386
|
+
|
|
3387
|
+
<a id="timestamp"></a>
|
|
3388
|
+
|
|
3389
|
+
### Timestamp
|
|
3390
|
+
|
|
3391
|
+
Renames and re-exports [AuthState](#authstate)
|
|
3392
|
+
|
|
3393
|
+
***
|
|
3394
|
+
|
|
3395
|
+
<a id="wherefilterop"></a>
|
|
3396
|
+
|
|
3397
|
+
### WhereFilterOp
|
|
3398
|
+
|
|
3399
|
+
Renames and re-exports [AuthState](#authstate)
|