@pyric/cli 0.1.0-alpha.16 → 0.1.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -9
- package/dist/assurance/.generated/conformance-verdicts.d.ts +80 -72
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
- package/dist/assurance/.generated/conformance-verdicts.js +80 -72
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
- package/dist/cli/database-rules.d.ts.map +1 -1
- package/dist/cli/database-rules.js +6 -4
- package/dist/cli/database-rules.js.map +1 -1
- package/dist/cli/dev-runner.d.ts +9 -0
- package/dist/cli/dev-runner.d.ts.map +1 -1
- package/dist/cli/dev-runner.js +18 -0
- package/dist/cli/dev-runner.js.map +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +61 -6
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/verify.js +2 -2
- package/dist/cli/verify.js.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
- package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use.js +1 -1
- package/dist/conformance/.generated/can-i-use.js.map +1 -1
- package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
- package/dist/conformance/.generated/conformance-docs.js +1 -1
- package/dist/conformance/.generated/conformance-docs.js.map +1 -1
- package/dist/next/client-aliases.d.ts +11 -0
- package/dist/next/client-aliases.d.ts.map +1 -0
- package/dist/next/client-aliases.js +38 -0
- package/dist/next/client-aliases.js.map +1 -0
- package/dist/next/dev-rewrites.d.ts +9 -0
- package/dist/next/dev-rewrites.d.ts.map +1 -0
- package/dist/next/dev-rewrites.js +53 -0
- package/dist/next/dev-rewrites.js.map +1 -0
- package/dist/next/guard.d.ts +15 -0
- package/dist/next/guard.d.ts.map +1 -0
- package/dist/next/guard.js +52 -0
- package/dist/next/guard.js.map +1 -0
- package/dist/next/index.d.ts +12 -0
- package/dist/next/index.d.ts.map +1 -0
- package/dist/next/index.js +11 -0
- package/dist/next/index.js.map +1 -0
- package/dist/next/runtime-env.d.ts +7 -0
- package/dist/next/runtime-env.d.ts.map +1 -0
- package/dist/next/runtime-env.js +13 -0
- package/dist/next/runtime-env.js.map +1 -0
- package/dist/next/server-external-packages.d.ts +10 -0
- package/dist/next/server-external-packages.d.ts.map +1 -0
- package/dist/next/server-external-packages.js +34 -0
- package/dist/next/server-external-packages.js.map +1 -0
- package/dist/next/target-url.d.ts +11 -0
- package/dist/next/target-url.d.ts.map +1 -0
- package/dist/next/target-url.js +36 -0
- package/dist/next/target-url.js.map +1 -0
- package/dist/next/turbopack-config.d.ts +9 -0
- package/dist/next/turbopack-config.d.ts.map +1 -0
- package/dist/next/turbopack-config.js +39 -0
- package/dist/next/turbopack-config.js.map +1 -0
- package/dist/next/types.d.ts +40 -0
- package/dist/next/types.d.ts.map +1 -0
- package/dist/next/types.js +5 -0
- package/dist/next/types.js.map +1 -0
- package/dist/next/webpack-config.d.ts +11 -0
- package/dist/next/webpack-config.d.ts.map +1 -0
- package/dist/next/webpack-config.js +51 -0
- package/dist/next/webpack-config.js.map +1 -0
- package/dist/next/with-pyric.d.ts +22 -0
- package/dist/next/with-pyric.d.ts.map +1 -0
- package/dist/next/with-pyric.js +49 -0
- package/dist/next/with-pyric.js.map +1 -0
- package/dist/register/app-bridge.d.ts +9 -0
- package/dist/register/app-bridge.d.ts.map +1 -0
- package/dist/register/app-bridge.js +56 -0
- package/dist/register/app-bridge.js.map +1 -0
- package/dist/register/hooks.d.ts.map +1 -1
- package/dist/register/hooks.js +6 -1
- package/dist/register/hooks.js.map +1 -1
- package/dist/register/index.js +1 -1
- package/dist/register/index.js.map +1 -1
- package/dist/register/mapping.d.ts +3 -1
- package/dist/register/mapping.d.ts.map +1 -1
- package/dist/register/mapping.js +41 -5
- package/dist/register/mapping.js.map +1 -1
- package/dist/rtdb/rules-json.d.ts +12 -0
- package/dist/rtdb/rules-json.d.ts.map +1 -1
- package/dist/rtdb/rules-json.js +98 -0
- package/dist/rtdb/rules-json.js.map +1 -1
- package/dist/serve/bundler.d.ts.map +1 -1
- package/dist/serve/bundler.js +2 -0
- package/dist/serve/bundler.js.map +1 -1
- package/dist/serve/discovery.d.ts +4 -4
- package/dist/serve/discovery.d.ts.map +1 -1
- package/dist/serve/discovery.js +59 -38
- package/dist/serve/discovery.js.map +1 -1
- package/dist/serve/entries/app-ai-passthrough.d.ts +8 -0
- package/dist/serve/entries/app-ai-passthrough.d.ts.map +1 -0
- package/dist/serve/entries/app-ai-passthrough.js +59 -0
- package/dist/serve/entries/app-ai-passthrough.js.map +1 -0
- package/dist/serve/entries/auth-helper-core.js +9 -7
- package/dist/serve/entries/auth-helper-core.js.map +1 -1
- package/dist/serve/entries/auth.d.ts +1 -0
- package/dist/serve/entries/auth.d.ts.map +1 -1
- package/dist/serve/entries/auth.js +1 -0
- package/dist/serve/entries/auth.js.map +1 -1
- package/dist/serve/entries/bridge-url.d.ts.map +1 -1
- package/dist/serve/entries/bridge-url.js +7 -2
- package/dist/serve/entries/bridge-url.js.map +1 -1
- package/dist/serve/entries/database.d.ts +1 -0
- package/dist/serve/entries/database.d.ts.map +1 -1
- package/dist/serve/entries/database.js +1 -0
- package/dist/serve/entries/database.js.map +1 -1
- package/dist/serve/entries/firestore.d.ts +1 -0
- package/dist/serve/entries/firestore.d.ts.map +1 -1
- package/dist/serve/entries/firestore.js +1 -0
- package/dist/serve/entries/firestore.js.map +1 -1
- package/dist/serve/entries/init.d.ts.map +1 -1
- package/dist/serve/entries/init.js +4 -2
- package/dist/serve/entries/init.js.map +1 -1
- package/dist/serve/entries/runtime.js +23 -0
- package/dist/serve/entries/runtime.js.map +1 -1
- package/dist/serve/entries/storage.d.ts +2 -0
- package/dist/serve/entries/storage.d.ts.map +1 -1
- package/dist/serve/entries/storage.js +9 -2
- package/dist/serve/entries/storage.js.map +1 -1
- package/dist/serve/html-injection.d.ts +3 -1
- package/dist/serve/html-injection.d.ts.map +1 -1
- package/dist/serve/html-injection.js +27 -1
- package/dist/serve/html-injection.js.map +1 -1
- package/dist/serve/rules.js +2 -2
- package/dist/serve/rules.js.map +1 -1
- package/dist/serve/runtime/chip-config.d.ts +1 -1
- package/dist/serve/runtime/chip-config.d.ts.map +1 -1
- package/dist/serve/runtime/chip-config.js +16 -8
- package/dist/serve/runtime/chip-config.js.map +1 -1
- package/dist/serve/sandbox-session.d.ts +1 -0
- package/dist/serve/sandbox-session.d.ts.map +1 -1
- package/dist/serve/sandbox-session.js +30 -2
- package/dist/serve/sandbox-session.js.map +1 -1
- package/dist/serve/site-ui/_astro/_studio_.B6b_G1ev.css +1 -0
- package/dist/serve/site-ui/_astro/app.bnmVTkIY.js +11 -0
- package/dist/serve/site-ui/_astro/app.t6u-adB_.js +1 -0
- package/dist/serve/site-ui/_astro/{chess-showcase.CnoxIle5.js → chess-showcase.kC8dXLKY.js} +1 -1
- package/dist/serve/site-ui/_astro/{example-runtime.R1d96L6-.js → example-runtime.D79PnoSk.js} +1 -1
- package/dist/serve/site-ui/_astro/index.DzVde04M.js +1 -0
- package/dist/serve/site-ui/_astro/reads.BYBRLbsE.js +1 -0
- package/dist/serve/site-ui/_astro/sandbox-controls.C9Aaazt8.js +1252 -0
- package/dist/serve/site-ui/_astro/{seed.EyI3VYEu.js → seed.DANAIyRw.js} +1 -1
- package/dist/serve/site-ui/auth/index.html +2 -2
- package/dist/serve/site-ui/docs/_rhythm/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/set-up-your-agent/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/watch-and-review/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/work-with-an-agent/index.html +1 -1
- package/dist/serve/site-ui/docs/ai-compat/index.html +85 -85
- package/dist/serve/site-ui/docs/ai-compat.md +84 -84
- package/dist/serve/site-ui/docs/api-reference/index.html +3 -1
- package/dist/serve/site-ui/docs/api-reference.md +2 -0
- package/dist/serve/site-ui/docs/app-compat/index.html +28 -28
- package/dist/serve/site-ui/docs/app-compat.md +27 -27
- package/dist/serve/site-ui/docs/auth-compat/index.html +122 -122
- package/dist/serve/site-ui/docs/auth-compat.md +121 -121
- package/dist/serve/site-ui/docs/build/ai-logic/index.html +1 -1
- package/dist/serve/site-ui/docs/build/authentication/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-firestore/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-messaging/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-storage/index.html +1 -1
- package/dist/serve/site-ui/docs/build/realtime-database/index.html +1 -1
- package/dist/serve/site-ui/docs/conformance-scores/index.html +4 -4
- package/dist/serve/site-ui/docs/conformance-scores.md +3 -3
- package/dist/serve/site-ui/docs/create-pyric-reference-api/index.html +6 -6
- package/dist/serve/site-ui/docs/create-pyric-reference-api.md +5 -5
- package/dist/serve/site-ui/docs/database-compat/index.html +200 -448
- package/dist/serve/site-ui/docs/database-compat.md +198 -461
- package/dist/serve/site-ui/docs/examples/chess/index.html +2 -2
- package/dist/serve/site-ui/docs/examples/index.html +1 -1
- package/dist/serve/site-ui/docs/firestore-compat/index.html +186 -195
- package/dist/serve/site-ui/docs/firestore-compat.md +184 -195
- package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +15 -15
- package/dist/serve/site-ui/docs/functions-rtdb-compat.md +14 -14
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/nextjs/index.html +57 -0
- package/dist/serve/site-ui/docs/get-started/nextjs.md +86 -0
- package/dist/serve/site-ui/docs/get-started/start-building/index.html +25 -8
- package/dist/serve/site-ui/docs/get-started/start-building.md +34 -5
- package/dist/serve/site-ui/docs/get-started/vite/index.html +26 -0
- package/dist/serve/site-ui/docs/get-started/vite.md +45 -0
- package/dist/serve/site-ui/docs/index.json +668 -103
- package/dist/serve/site-ui/docs/messaging-compat/index.html +56 -56
- package/dist/serve/site-ui/docs/messaging-compat.md +55 -55
- package/dist/serve/site-ui/docs/observe/resolve-runtime-status/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/see-whats-happening/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/shape-your-data/index.html +1 -1
- package/dist/serve/site-ui/docs/overview/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-app-reference-api/index.html +39 -13
- package/dist/serve/site-ui/docs/pyric-admin-app-reference-api.md +28 -2
- package/dist/serve/site-ui/docs/pyric-admin-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-database-reference-api/index.html +38 -6
- package/dist/serve/site-ui/docs/pyric-admin-database-reference-api.md +43 -0
- package/dist/serve/site-ui/docs/pyric-admin-firestore-reference-api/index.html +9 -1
- package/dist/serve/site-ui/docs/pyric-admin-firestore-reference-api.md +8 -0
- package/dist/serve/site-ui/docs/pyric-admin-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-storage-reference-api/index.html +27 -4
- package/dist/serve/site-ui/docs/pyric-admin-storage-reference-api.md +23 -0
- package/dist/serve/site-ui/docs/pyric-ai-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-app-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-credentials-node-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-discover-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +123 -0
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api.md +99 -0
- package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-reference-api/index.html +127 -0
- package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-reference-api.md +174 -0
- package/dist/serve/site-ui/docs/pyric-cli-register-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-remote-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +570 -326
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api.md +198 -6
- package/dist/serve/site-ui/docs/pyric-cli-verify-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-vite-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-firestore-reference-api/index.html +2971 -627
- package/dist/serve/site-ui/docs/pyric-firestore-reference-api.md +2873 -517
- package/dist/serve/site-ui/docs/pyric-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-messaging-sw-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +43 -3
- package/dist/serve/site-ui/docs/pyric-rules-reference-api.md +8 -0
- package/dist/serve/site-ui/docs/pyric-sandbox-database-reference-api/index.html +26 -2
- package/dist/serve/site-ui/docs/pyric-sandbox-database-reference-api.md +24 -0
- package/dist/serve/site-ui/docs/pyric-sandbox-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-reference-api/index.html +77 -9
- package/dist/serve/site-ui/docs/pyric-sandbox-reference-api.md +28 -13
- package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +240 -63
- package/dist/serve/site-ui/docs/pyric-storage-reference-api.md +164 -5
- package/dist/serve/site-ui/docs/pyric-ui-agents-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-primitives-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rtdb-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-reference-api/index.html +2 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-reference-api.md +1 -0
- package/dist/serve/site-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-traffic-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/rules-compat/index.html +87 -79
- package/dist/serve/site-ui/docs/rules-compat.md +86 -78
- package/dist/serve/site-ui/docs/secure/audit-your-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/firestore-rules-limits/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/read-a-denial/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rtdb-rules-in-typescript/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/secure-it-with-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/simulate-and-lint/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/write-a-rules-test-suite/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/ship-to-production/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/test-in-node/index.html +1 -1
- package/dist/serve/site-ui/docs/storage-compat/index.html +119 -125
- package/dist/serve/site-ui/docs/storage-compat.md +118 -124
- package/dist/serve/site-ui/docs/trust/how-we-know-it-matches-firebase/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/storage-rules-stdlib-research/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/versioning-and-compatibility/index.html +1 -1
- package/dist/serve/site-ui/docs/tutorial/index.html +1 -1
- package/dist/serve/site-ui/examples/chess/index.html +1 -1
- package/dist/serve/site-ui/examples/firestore-first-write/index.html +1 -1
- package/dist/serve/site-ui/firestore/index.html +2 -2
- package/dist/serve/site-ui/index.html +2 -2
- package/dist/serve/site-ui/llms.txt +6 -2
- package/dist/serve/site-ui/rtdb/index.html +2 -2
- package/dist/serve/site-ui/settings/index.html +2 -2
- package/dist/serve/site-ui/storage/index.html +2 -2
- package/dist/serve/site-ui/traffic/index.html +2 -2
- package/dist/serve/vite-ai-config.d.ts +4 -1
- package/dist/serve/vite-ai-config.d.ts.map +1 -1
- package/dist/serve/vite-ai-config.js +83 -19
- package/dist/serve/vite-ai-config.js.map +1 -1
- package/dist/serve/vite-generation-rules-watch.d.ts.map +1 -1
- package/dist/serve/vite-generation-rules-watch.js +61 -14
- package/dist/serve/vite-generation-rules-watch.js.map +1 -1
- package/dist/serve/vite-module-swap.d.ts +4 -1
- package/dist/serve/vite-module-swap.d.ts.map +1 -1
- package/dist/serve/vite-module-swap.js +106 -21
- package/dist/serve/vite-module-swap.js.map +1 -1
- package/dist/serve/vite-plugin.d.ts.map +1 -1
- package/dist/serve/vite-plugin.js +45 -5
- package/dist/serve/vite-plugin.js.map +1 -1
- package/dist/serve/vite-sandbox-generation.js +1 -1
- package/dist/serve/vite-sandbox-generation.js.map +1 -1
- package/dist/serve/worker/client/resumable.d.ts +30 -0
- package/dist/serve/worker/client/resumable.d.ts.map +1 -0
- package/dist/serve/worker/client/resumable.js +416 -0
- package/dist/serve/worker/client/resumable.js.map +1 -0
- package/dist/serve/worker/client/rtdb-references.d.ts.map +1 -1
- package/dist/serve/worker/client/rtdb-references.js +4 -1
- package/dist/serve/worker/client/rtdb-references.js.map +1 -1
- package/dist/serve/worker/client/storage.d.ts +16 -2
- package/dist/serve/worker/client/storage.d.ts.map +1 -1
- package/dist/serve/worker/client/storage.js +57 -6
- package/dist/serve/worker/client/storage.js.map +1 -1
- package/dist/serve/worker/host/rules.d.ts.map +1 -1
- package/dist/serve/worker/host/rules.js +2 -1
- package/dist/serve/worker/host/rules.js.map +1 -1
- package/dist/serve/worker/index.d.ts +1 -1
- package/dist/serve/worker/index.d.ts.map +1 -1
- package/dist/serve/worker/index.js +1 -1
- package/dist/serve/worker/index.js.map +1 -1
- package/dist/serve/worker/serve-init.d.ts.map +1 -1
- package/dist/serve/worker/serve-init.js +31 -0
- package/dist/serve/worker/serve-init.js.map +1 -1
- package/package.json +15 -4
- package/src/assurance/.generated/conformance-verdicts.ts +80 -72
- package/src/cli/cli.test.ts +14 -0
- package/src/cli/database-rules.ts +6 -4
- package/src/cli/dev-runner.ts +21 -0
- package/src/cli/serve.ts +62 -5
- package/src/cli/verify.ts +2 -2
- package/src/conformance/.generated/can-i-use-browser.ts +1 -1
- package/src/conformance/.generated/can-i-use.ts +1 -1
- package/src/conformance/.generated/conformance-docs.ts +1 -1
- package/src/next/client-aliases.ts +39 -0
- package/src/next/dev-rewrites.ts +77 -0
- package/src/next/guard.ts +61 -0
- package/src/next/index.ts +16 -0
- package/src/next/runtime-env.ts +18 -0
- package/src/next/server-external-packages.ts +43 -0
- package/src/next/target-url.ts +46 -0
- package/src/next/turbopack-config.ts +54 -0
- package/src/next/types.ts +47 -0
- package/src/next/webpack-config.ts +71 -0
- package/src/next/with-pyric.ts +58 -0
- package/src/register/app-bridge.ts +79 -0
- package/src/register/hooks.ts +6 -1
- package/src/register/index.ts +1 -1
- package/src/register/mapping.ts +50 -4
- package/src/rtdb/rules-json.ts +110 -0
- package/src/serve/bundler.ts +2 -0
- package/src/serve/discovery.ts +65 -44
- package/src/serve/entries/app-ai-passthrough.ts +83 -0
- package/src/serve/entries/auth-helper-core.ts +9 -7
- package/src/serve/entries/auth.ts +1 -0
- package/src/serve/entries/bridge-url.ts +9 -2
- package/src/serve/entries/database.ts +1 -0
- package/src/serve/entries/firestore.ts +1 -0
- package/src/serve/entries/init.ts +5 -2
- package/src/serve/entries/runtime.ts +25 -0
- package/src/serve/entries/storage.ts +12 -1
- package/src/serve/html-injection.ts +26 -1
- package/src/serve/rules.ts +2 -2
- package/src/serve/runtime/chip-config.ts +19 -6
- package/src/serve/sandbox-session.ts +31 -2
- package/src/serve/vite-ai-config.ts +86 -19
- package/src/serve/vite-generation-rules-watch.ts +67 -15
- package/src/serve/vite-module-swap.ts +121 -21
- package/src/serve/vite-plugin.ts +44 -6
- package/src/serve/vite-sandbox-generation.ts +1 -1
- package/src/serve/worker/client/resumable.ts +506 -0
- package/src/serve/worker/client/rtdb-references.ts +4 -1
- package/src/serve/worker/client/storage.ts +77 -7
- package/src/serve/worker/host/rules.ts +2 -1
- package/src/serve/worker/index.ts +4 -0
- package/src/serve/worker/serve-init.ts +30 -0
- package/dist/serve/site-ui/_astro/_studio_.BtYpqe1A.css +0 -1
- package/dist/serve/site-ui/_astro/app.4HeLP_FA.js +0 -109
- package/dist/serve/site-ui/_astro/app.BgSnCR5G.js +0 -1
- package/dist/serve/site-ui/_astro/index.BJiOemMX.js +0 -1
- package/dist/serve/site-ui/_astro/reads.BrKNdKAa.js +0 -1
- package/dist/serve/site-ui/_astro/sandbox-controls.BTb3EbQp.js +0 -1153
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<img src="https://pyric.dev/pyric-logo.svg" alt="Pyric" width="180" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">
|
|
5
|
+
<h1 align="center">A local first Firebase development framework built for Agents</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">Keep the same <code>firebase/*</code> code. Pyric runs it against a local backend during development, then gets out of the way when the app ships to Firebase.</p>
|
|
8
8
|
|
|
@@ -38,7 +38,7 @@ Add it to the existing Vite configuration:
|
|
|
38
38
|
```ts
|
|
39
39
|
// vite.config.ts
|
|
40
40
|
import { defineConfig } from 'vite';
|
|
41
|
-
import {
|
|
41
|
+
import { pyric } from '@pyric/cli/vite';
|
|
42
42
|
|
|
43
43
|
export default defineConfig({
|
|
44
44
|
plugins: [pyricSandbox()],
|
|
@@ -57,7 +57,7 @@ Pyric Studio is available on the Vite origin at `/__pyric/ui/`. It opens the sam
|
|
|
57
57
|
|
|
58
58
|
For a static application or a Node process, `pyric dev` provides the same development-only package swap without the Vite plugin. The [CLI reference](packages/cli/docs/reference/cli.md) documents those paths and every command.
|
|
59
59
|
|
|
60
|
-
## Keep
|
|
60
|
+
## Keep using official Firebase SDKs
|
|
61
61
|
|
|
62
62
|
Application code continues to import Firebase:
|
|
63
63
|
|
|
@@ -81,16 +81,18 @@ The Firebase configuration is accepted by the local mirror during development. T
|
|
|
81
81
|
|
|
82
82
|
Pyric documents the parts that differ locally, including supported behavior, Security Rules, persistence, inspection, verification, and known gaps. See [use the Vite plugin](packages/cli/docs/how-to/use-the-vite-plugin.md) for the complete plugin contract.
|
|
83
83
|
|
|
84
|
-
##
|
|
84
|
+
## Monitor the local environment in Pyric Studio
|
|
85
85
|
|
|
86
86
|
Pyric Studio shows local data, requests, authentication state, Security Rules verdicts, and denied operations. Open `/__pyric/ui/` on the development server and reproduce the failure. A denied request includes the path and verdict needed to correct the rule or the application code.
|
|
87
87
|
|
|
88
|
+
<img width="1512" height="947" alt="image" src="https://github.com/user-attachments/assets/cb4a219c-c5f0-4fb7-8904-996416c0a79c" />
|
|
89
|
+
|
|
88
90
|
The Vite plugin discovers the Firestore rules path from `firebase.json`, or falls back to `firestore.rules`. Saving that file replaces the active local ruleset without a production deploy. A parse failure leaves the last valid ruleset active and reports the error in the development server.
|
|
89
91
|
|
|
90
92
|
State and test identities stay browser-local by default. Add `persist: true` to write a committable `.pyric/state/state.json`, or use `seed` to start from a known scenario:
|
|
91
93
|
|
|
92
94
|
```ts
|
|
93
|
-
|
|
95
|
+
pyric({
|
|
94
96
|
persist: true,
|
|
95
97
|
seed: 'seed.json',
|
|
96
98
|
});
|
|
@@ -98,19 +100,21 @@ pyricSandbox({
|
|
|
98
100
|
|
|
99
101
|
See [persistence and multi-tab behavior](packages/cli/docs/how-to/serve-persistence-and-multi-tab.md) for reset and seed precedence.
|
|
100
102
|
|
|
101
|
-
##
|
|
103
|
+
## Connect Coding Agents to the Sandbox using the Pyric MCP server
|
|
102
104
|
|
|
103
105
|
An agent can keep writing the same Firebase code while inspecting and changing the backend that the application is already using. Agent access is opt-in. Enable the MCP bridge in the Vite plugin:
|
|
104
106
|
|
|
105
107
|
```ts
|
|
106
|
-
|
|
108
|
+
pyric({
|
|
109
|
+
bridge: true
|
|
110
|
+
});
|
|
107
111
|
```
|
|
108
112
|
|
|
109
|
-
The bridge mounts on the Vite development origin and routes agent operations to the same SharedWorker backend used by the application and Studio.
|
|
113
|
+
The bridge mounts on the Vite development origin and routes agent operations to the same SharedWorker backend used by the application and Studio.
|
|
110
114
|
|
|
111
115
|
This protects the local workflow, not an independently credentialed process. A coding agent with production Firebase credentials or deployment access can still affect production outside Pyric.
|
|
112
116
|
|
|
113
|
-
## Verify the rules
|
|
117
|
+
## Verify the rules against production
|
|
114
118
|
|
|
115
119
|
Development sessions capture Firestore and Realtime Database operations in `.pyric/last-session.json` by default. Replay those requests against candidate rules before deployment:
|
|
116
120
|
|
|
@@ -285,7 +285,13 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
285
285
|
readonly "firestore#149": "qualified";
|
|
286
286
|
readonly "firestore#15": "supported";
|
|
287
287
|
readonly "firestore#150": "supported";
|
|
288
|
+
readonly "firestore#151": "supported";
|
|
288
289
|
readonly "firestore#152": "supported";
|
|
290
|
+
readonly "firestore#153": "supported";
|
|
291
|
+
readonly "firestore#154": "supported";
|
|
292
|
+
readonly "firestore#155": "supported";
|
|
293
|
+
readonly "firestore#156": "supported";
|
|
294
|
+
readonly "firestore#157": "supported";
|
|
289
295
|
readonly "firestore#16": "supported";
|
|
290
296
|
readonly "firestore#17": "supported";
|
|
291
297
|
readonly "firestore#18": "supported";
|
|
@@ -417,6 +423,8 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
417
423
|
readonly "firestore-rules#187": "supported";
|
|
418
424
|
readonly "firestore-rules#188": "supported";
|
|
419
425
|
readonly "firestore-rules#189": "supported";
|
|
426
|
+
readonly "firestore-rules#190": "supported";
|
|
427
|
+
readonly "firestore-rules#191": "supported";
|
|
420
428
|
readonly "firestore.binding.path-variable": "supported";
|
|
421
429
|
readonly "firestore.binding.request": "supported";
|
|
422
430
|
readonly "firestore.binding.request.auth": "supported";
|
|
@@ -433,7 +441,7 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
433
441
|
readonly "firestore.binding.resource.__name__": "supported";
|
|
434
442
|
readonly "firestore.binding.resource.data": "supported";
|
|
435
443
|
readonly "firestore.binding.resource.id": "supported";
|
|
436
|
-
readonly "firestore.function.cast.bool": "
|
|
444
|
+
readonly "firestore.function.cast.bool": "supported";
|
|
437
445
|
readonly "firestore.function.cast.float": "supported";
|
|
438
446
|
readonly "firestore.function.cast.int": "supported";
|
|
439
447
|
readonly "firestore.function.cast.path": "supported";
|
|
@@ -454,7 +462,7 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
454
462
|
readonly "firestore.function.math.abs": "supported";
|
|
455
463
|
readonly "firestore.function.math.ceil": "supported";
|
|
456
464
|
readonly "firestore.function.math.floor": "supported";
|
|
457
|
-
readonly "firestore.function.math.isInfinite": "
|
|
465
|
+
readonly "firestore.function.math.isInfinite": "supported";
|
|
458
466
|
readonly "firestore.function.math.isNaN": "supported";
|
|
459
467
|
readonly "firestore.function.math.pow": "supported";
|
|
460
468
|
readonly "firestore.function.math.round": "supported";
|
|
@@ -479,9 +487,9 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
479
487
|
readonly "firestore.method.list.toSet": "supported";
|
|
480
488
|
readonly "firestore.method.map.diff": "supported";
|
|
481
489
|
readonly "firestore.method.map.get": "supported";
|
|
482
|
-
readonly "firestore.method.map.hasAll": "
|
|
483
|
-
readonly "firestore.method.map.hasAny": "
|
|
484
|
-
readonly "firestore.method.map.hasOnly": "
|
|
490
|
+
readonly "firestore.method.map.hasAll": "supported";
|
|
491
|
+
readonly "firestore.method.map.hasAny": "supported";
|
|
492
|
+
readonly "firestore.method.map.hasOnly": "supported";
|
|
485
493
|
readonly "firestore.method.map.keys": "supported";
|
|
486
494
|
readonly "firestore.method.map.size": "supported";
|
|
487
495
|
readonly "firestore.method.map.values": "supported";
|
|
@@ -871,62 +879,62 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
871
879
|
readonly "rtdb-rules#7": "supported";
|
|
872
880
|
readonly "rtdb-rules#8": "supported";
|
|
873
881
|
readonly "rtdb-rules#9": "supported";
|
|
874
|
-
readonly "rtdb.binding.auth": "
|
|
875
|
-
readonly "rtdb.binding.auth.token": "
|
|
876
|
-
readonly "rtdb.binding.auth.uid": "
|
|
877
|
-
readonly "rtdb.binding.data": "
|
|
878
|
-
readonly "rtdb.binding.newData": "
|
|
879
|
-
readonly "rtdb.binding.now": "
|
|
880
|
-
readonly "rtdb.binding.path-variable": "
|
|
881
|
-
readonly "rtdb.binding.root": "
|
|
882
|
-
readonly "rtdb.method.snapshot.child": "
|
|
883
|
-
readonly "rtdb.method.snapshot.exists": "
|
|
884
|
-
readonly "rtdb.method.snapshot.getPriority": "
|
|
885
|
-
readonly "rtdb.method.snapshot.hasChild": "
|
|
886
|
-
readonly "rtdb.method.snapshot.hasChildren": "
|
|
887
|
-
readonly "rtdb.method.snapshot.isBoolean": "
|
|
888
|
-
readonly "rtdb.method.snapshot.isNumber": "
|
|
889
|
-
readonly "rtdb.method.snapshot.isString": "
|
|
890
|
-
readonly "rtdb.method.snapshot.parent": "
|
|
891
|
-
readonly "rtdb.method.snapshot.val": "
|
|
892
|
-
readonly "rtdb.method.string.beginsWith": "
|
|
893
|
-
readonly "rtdb.method.string.contains": "
|
|
894
|
-
readonly "rtdb.method.string.endsWith": "
|
|
895
|
-
readonly "rtdb.method.string.length": "
|
|
896
|
-
readonly "rtdb.method.string.matches": "
|
|
897
|
-
readonly "rtdb.method.string.replace": "
|
|
898
|
-
readonly "rtdb.method.string.toLowerCase": "
|
|
899
|
-
readonly "rtdb.method.string.toUpperCase": "
|
|
900
|
-
readonly "rtdb.operator.add": "
|
|
901
|
-
readonly "rtdb.operator.and": "
|
|
902
|
-
readonly "rtdb.operator.div": "
|
|
903
|
-
readonly "rtdb.operator.gt": "
|
|
904
|
-
readonly "rtdb.operator.gte": "
|
|
905
|
-
readonly "rtdb.operator.index": "
|
|
906
|
-
readonly "rtdb.operator.looseEq": "
|
|
907
|
-
readonly "rtdb.operator.looseNeq": "
|
|
908
|
-
readonly "rtdb.operator.lt": "
|
|
909
|
-
readonly "rtdb.operator.lte": "
|
|
910
|
-
readonly "rtdb.operator.member": "
|
|
911
|
-
readonly "rtdb.operator.mod": "
|
|
912
|
-
readonly "rtdb.operator.mul": "
|
|
913
|
-
readonly "rtdb.operator.neg": "
|
|
914
|
-
readonly "rtdb.operator.not": "
|
|
915
|
-
readonly "rtdb.operator.or": "
|
|
916
|
-
readonly "rtdb.operator.strictEq": "
|
|
917
|
-
readonly "rtdb.operator.strictNeq": "
|
|
918
|
-
readonly "rtdb.operator.sub": "
|
|
919
|
-
readonly "rtdb.operator.ternary": "
|
|
920
|
-
readonly "rtdb.rule-kind.indexOn": "
|
|
921
|
-
readonly "rtdb.rule-kind.location-wildcard": "
|
|
922
|
-
readonly "rtdb.rule-kind.read": "
|
|
923
|
-
readonly "rtdb.rule-kind.validate": "
|
|
924
|
-
readonly "rtdb.rule-kind.write": "
|
|
882
|
+
readonly "rtdb.binding.auth": "supported";
|
|
883
|
+
readonly "rtdb.binding.auth.token": "supported";
|
|
884
|
+
readonly "rtdb.binding.auth.uid": "supported";
|
|
885
|
+
readonly "rtdb.binding.data": "supported";
|
|
886
|
+
readonly "rtdb.binding.newData": "supported";
|
|
887
|
+
readonly "rtdb.binding.now": "supported";
|
|
888
|
+
readonly "rtdb.binding.path-variable": "supported";
|
|
889
|
+
readonly "rtdb.binding.root": "supported";
|
|
890
|
+
readonly "rtdb.method.snapshot.child": "supported";
|
|
891
|
+
readonly "rtdb.method.snapshot.exists": "supported";
|
|
892
|
+
readonly "rtdb.method.snapshot.getPriority": "supported";
|
|
893
|
+
readonly "rtdb.method.snapshot.hasChild": "supported";
|
|
894
|
+
readonly "rtdb.method.snapshot.hasChildren": "supported";
|
|
895
|
+
readonly "rtdb.method.snapshot.isBoolean": "supported";
|
|
896
|
+
readonly "rtdb.method.snapshot.isNumber": "supported";
|
|
897
|
+
readonly "rtdb.method.snapshot.isString": "supported";
|
|
898
|
+
readonly "rtdb.method.snapshot.parent": "supported";
|
|
899
|
+
readonly "rtdb.method.snapshot.val": "supported";
|
|
900
|
+
readonly "rtdb.method.string.beginsWith": "supported";
|
|
901
|
+
readonly "rtdb.method.string.contains": "supported";
|
|
902
|
+
readonly "rtdb.method.string.endsWith": "supported";
|
|
903
|
+
readonly "rtdb.method.string.length": "supported";
|
|
904
|
+
readonly "rtdb.method.string.matches": "supported";
|
|
905
|
+
readonly "rtdb.method.string.replace": "supported";
|
|
906
|
+
readonly "rtdb.method.string.toLowerCase": "supported";
|
|
907
|
+
readonly "rtdb.method.string.toUpperCase": "supported";
|
|
908
|
+
readonly "rtdb.operator.add": "supported";
|
|
909
|
+
readonly "rtdb.operator.and": "supported";
|
|
910
|
+
readonly "rtdb.operator.div": "supported";
|
|
911
|
+
readonly "rtdb.operator.gt": "supported";
|
|
912
|
+
readonly "rtdb.operator.gte": "supported";
|
|
913
|
+
readonly "rtdb.operator.index": "supported";
|
|
914
|
+
readonly "rtdb.operator.looseEq": "supported";
|
|
915
|
+
readonly "rtdb.operator.looseNeq": "supported";
|
|
916
|
+
readonly "rtdb.operator.lt": "supported";
|
|
917
|
+
readonly "rtdb.operator.lte": "supported";
|
|
918
|
+
readonly "rtdb.operator.member": "supported";
|
|
919
|
+
readonly "rtdb.operator.mod": "supported";
|
|
920
|
+
readonly "rtdb.operator.mul": "supported";
|
|
921
|
+
readonly "rtdb.operator.neg": "supported";
|
|
922
|
+
readonly "rtdb.operator.not": "supported";
|
|
923
|
+
readonly "rtdb.operator.or": "supported";
|
|
924
|
+
readonly "rtdb.operator.strictEq": "supported";
|
|
925
|
+
readonly "rtdb.operator.strictNeq": "supported";
|
|
926
|
+
readonly "rtdb.operator.sub": "supported";
|
|
927
|
+
readonly "rtdb.operator.ternary": "supported";
|
|
928
|
+
readonly "rtdb.rule-kind.indexOn": "supported";
|
|
929
|
+
readonly "rtdb.rule-kind.location-wildcard": "supported";
|
|
930
|
+
readonly "rtdb.rule-kind.read": "supported";
|
|
931
|
+
readonly "rtdb.rule-kind.validate": "supported";
|
|
932
|
+
readonly "rtdb.rule-kind.write": "supported";
|
|
925
933
|
readonly "rtdb.semantic.deny-by-default": "qualified";
|
|
926
|
-
readonly "rtdb.semantic.read-cascade": "
|
|
927
|
-
readonly "rtdb.semantic.regex-literal": "
|
|
928
|
-
readonly "rtdb.semantic.validate-non-cascade": "
|
|
929
|
-
readonly "rtdb.semantic.write-cascade": "
|
|
934
|
+
readonly "rtdb.semantic.read-cascade": "supported";
|
|
935
|
+
readonly "rtdb.semantic.regex-literal": "supported";
|
|
936
|
+
readonly "rtdb.semantic.validate-non-cascade": "supported";
|
|
937
|
+
readonly "rtdb.semantic.write-cascade": "supported";
|
|
930
938
|
readonly "storage#1": "supported";
|
|
931
939
|
readonly "storage#10": "supported";
|
|
932
940
|
readonly "storage#105": "supported";
|
|
@@ -973,12 +981,12 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
973
981
|
readonly "storage#44": "supported";
|
|
974
982
|
readonly "storage#45": "supported";
|
|
975
983
|
readonly "storage#46": "supported";
|
|
976
|
-
readonly "storage#47": "
|
|
977
|
-
readonly "storage#48": "
|
|
978
|
-
readonly "storage#49": "
|
|
984
|
+
readonly "storage#47": "qualified";
|
|
985
|
+
readonly "storage#48": "qualified";
|
|
986
|
+
readonly "storage#49": "qualified";
|
|
979
987
|
readonly "storage#4a": "supported";
|
|
980
988
|
readonly "storage#5": "supported";
|
|
981
|
-
readonly "storage#50": "
|
|
989
|
+
readonly "storage#50": "qualified";
|
|
982
990
|
readonly "storage#51": "qualified";
|
|
983
991
|
readonly "storage#52": "supported";
|
|
984
992
|
readonly "storage#53": "supported";
|
|
@@ -1089,30 +1097,30 @@ export declare const CONFORMANCE_VERDICTS: {
|
|
|
1089
1097
|
readonly "storage.method.map.get": "supported";
|
|
1090
1098
|
readonly "storage.method.map.keys": "supported";
|
|
1091
1099
|
readonly "storage.method.set.hasAll": "supported";
|
|
1092
|
-
readonly "storage.method.size": "
|
|
1100
|
+
readonly "storage.method.size": "supported";
|
|
1093
1101
|
readonly "storage.method.string.matches": "supported";
|
|
1094
|
-
readonly "storage.method.string.split": "
|
|
1102
|
+
readonly "storage.method.string.split": "supported";
|
|
1095
1103
|
readonly "storage.operator.add": "supported";
|
|
1096
1104
|
readonly "storage.operator.and": "supported";
|
|
1097
1105
|
readonly "storage.operator.div": "supported";
|
|
1098
1106
|
readonly "storage.operator.eq": "supported";
|
|
1099
1107
|
readonly "storage.operator.gt": "supported";
|
|
1100
1108
|
readonly "storage.operator.gte": "supported";
|
|
1101
|
-
readonly "storage.operator.in": "
|
|
1109
|
+
readonly "storage.operator.in": "supported";
|
|
1102
1110
|
readonly "storage.operator.index": "supported";
|
|
1103
|
-
readonly "storage.operator.is": "
|
|
1111
|
+
readonly "storage.operator.is": "supported";
|
|
1104
1112
|
readonly "storage.operator.lt": "supported";
|
|
1105
1113
|
readonly "storage.operator.lte": "supported";
|
|
1106
1114
|
readonly "storage.operator.member": "supported";
|
|
1107
|
-
readonly "storage.operator.mod": "
|
|
1115
|
+
readonly "storage.operator.mod": "supported";
|
|
1108
1116
|
readonly "storage.operator.mul": "supported";
|
|
1109
1117
|
readonly "storage.operator.neq": "supported";
|
|
1110
1118
|
readonly "storage.operator.not": "supported";
|
|
1111
1119
|
readonly "storage.operator.or": "supported";
|
|
1112
|
-
readonly "storage.operator.slice": "
|
|
1120
|
+
readonly "storage.operator.slice": "supported";
|
|
1113
1121
|
readonly "storage.operator.sub": "supported";
|
|
1114
|
-
readonly "storage.operator.ternary": "
|
|
1115
|
-
readonly "storage.operator.unary-minus": "
|
|
1122
|
+
readonly "storage.operator.ternary": "supported";
|
|
1123
|
+
readonly "storage.operator.unary-minus": "supported";
|
|
1116
1124
|
readonly "storage.rule-kind.allow-create": "supported";
|
|
1117
1125
|
readonly "storage.rule-kind.allow-delete": "supported";
|
|
1118
1126
|
readonly "storage.rule-kind.allow-get": "supported";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance-verdicts.d.ts","sourceRoot":"","sources":["../../../src/assurance/.generated/conformance-verdicts.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3E,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"conformance-verdicts.d.ts","sourceRoot":"","sources":["../../../src/assurance/.generated/conformance-verdicts.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAinCgC,CAAC"}
|
|
@@ -284,7 +284,13 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
284
284
|
"firestore#149": "qualified",
|
|
285
285
|
"firestore#15": "supported",
|
|
286
286
|
"firestore#150": "supported",
|
|
287
|
+
"firestore#151": "supported",
|
|
287
288
|
"firestore#152": "supported",
|
|
289
|
+
"firestore#153": "supported",
|
|
290
|
+
"firestore#154": "supported",
|
|
291
|
+
"firestore#155": "supported",
|
|
292
|
+
"firestore#156": "supported",
|
|
293
|
+
"firestore#157": "supported",
|
|
288
294
|
"firestore#16": "supported",
|
|
289
295
|
"firestore#17": "supported",
|
|
290
296
|
"firestore#18": "supported",
|
|
@@ -416,6 +422,8 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
416
422
|
"firestore-rules#187": "supported",
|
|
417
423
|
"firestore-rules#188": "supported",
|
|
418
424
|
"firestore-rules#189": "supported",
|
|
425
|
+
"firestore-rules#190": "supported",
|
|
426
|
+
"firestore-rules#191": "supported",
|
|
419
427
|
"firestore.binding.path-variable": "supported",
|
|
420
428
|
"firestore.binding.request": "supported",
|
|
421
429
|
"firestore.binding.request.auth": "supported",
|
|
@@ -432,7 +440,7 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
432
440
|
"firestore.binding.resource.__name__": "supported",
|
|
433
441
|
"firestore.binding.resource.data": "supported",
|
|
434
442
|
"firestore.binding.resource.id": "supported",
|
|
435
|
-
"firestore.function.cast.bool": "
|
|
443
|
+
"firestore.function.cast.bool": "supported",
|
|
436
444
|
"firestore.function.cast.float": "supported",
|
|
437
445
|
"firestore.function.cast.int": "supported",
|
|
438
446
|
"firestore.function.cast.path": "supported",
|
|
@@ -453,7 +461,7 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
453
461
|
"firestore.function.math.abs": "supported",
|
|
454
462
|
"firestore.function.math.ceil": "supported",
|
|
455
463
|
"firestore.function.math.floor": "supported",
|
|
456
|
-
"firestore.function.math.isInfinite": "
|
|
464
|
+
"firestore.function.math.isInfinite": "supported",
|
|
457
465
|
"firestore.function.math.isNaN": "supported",
|
|
458
466
|
"firestore.function.math.pow": "supported",
|
|
459
467
|
"firestore.function.math.round": "supported",
|
|
@@ -478,9 +486,9 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
478
486
|
"firestore.method.list.toSet": "supported",
|
|
479
487
|
"firestore.method.map.diff": "supported",
|
|
480
488
|
"firestore.method.map.get": "supported",
|
|
481
|
-
"firestore.method.map.hasAll": "
|
|
482
|
-
"firestore.method.map.hasAny": "
|
|
483
|
-
"firestore.method.map.hasOnly": "
|
|
489
|
+
"firestore.method.map.hasAll": "supported",
|
|
490
|
+
"firestore.method.map.hasAny": "supported",
|
|
491
|
+
"firestore.method.map.hasOnly": "supported",
|
|
484
492
|
"firestore.method.map.keys": "supported",
|
|
485
493
|
"firestore.method.map.size": "supported",
|
|
486
494
|
"firestore.method.map.values": "supported",
|
|
@@ -870,62 +878,62 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
870
878
|
"rtdb-rules#7": "supported",
|
|
871
879
|
"rtdb-rules#8": "supported",
|
|
872
880
|
"rtdb-rules#9": "supported",
|
|
873
|
-
"rtdb.binding.auth": "
|
|
874
|
-
"rtdb.binding.auth.token": "
|
|
875
|
-
"rtdb.binding.auth.uid": "
|
|
876
|
-
"rtdb.binding.data": "
|
|
877
|
-
"rtdb.binding.newData": "
|
|
878
|
-
"rtdb.binding.now": "
|
|
879
|
-
"rtdb.binding.path-variable": "
|
|
880
|
-
"rtdb.binding.root": "
|
|
881
|
-
"rtdb.method.snapshot.child": "
|
|
882
|
-
"rtdb.method.snapshot.exists": "
|
|
883
|
-
"rtdb.method.snapshot.getPriority": "
|
|
884
|
-
"rtdb.method.snapshot.hasChild": "
|
|
885
|
-
"rtdb.method.snapshot.hasChildren": "
|
|
886
|
-
"rtdb.method.snapshot.isBoolean": "
|
|
887
|
-
"rtdb.method.snapshot.isNumber": "
|
|
888
|
-
"rtdb.method.snapshot.isString": "
|
|
889
|
-
"rtdb.method.snapshot.parent": "
|
|
890
|
-
"rtdb.method.snapshot.val": "
|
|
891
|
-
"rtdb.method.string.beginsWith": "
|
|
892
|
-
"rtdb.method.string.contains": "
|
|
893
|
-
"rtdb.method.string.endsWith": "
|
|
894
|
-
"rtdb.method.string.length": "
|
|
895
|
-
"rtdb.method.string.matches": "
|
|
896
|
-
"rtdb.method.string.replace": "
|
|
897
|
-
"rtdb.method.string.toLowerCase": "
|
|
898
|
-
"rtdb.method.string.toUpperCase": "
|
|
899
|
-
"rtdb.operator.add": "
|
|
900
|
-
"rtdb.operator.and": "
|
|
901
|
-
"rtdb.operator.div": "
|
|
902
|
-
"rtdb.operator.gt": "
|
|
903
|
-
"rtdb.operator.gte": "
|
|
904
|
-
"rtdb.operator.index": "
|
|
905
|
-
"rtdb.operator.looseEq": "
|
|
906
|
-
"rtdb.operator.looseNeq": "
|
|
907
|
-
"rtdb.operator.lt": "
|
|
908
|
-
"rtdb.operator.lte": "
|
|
909
|
-
"rtdb.operator.member": "
|
|
910
|
-
"rtdb.operator.mod": "
|
|
911
|
-
"rtdb.operator.mul": "
|
|
912
|
-
"rtdb.operator.neg": "
|
|
913
|
-
"rtdb.operator.not": "
|
|
914
|
-
"rtdb.operator.or": "
|
|
915
|
-
"rtdb.operator.strictEq": "
|
|
916
|
-
"rtdb.operator.strictNeq": "
|
|
917
|
-
"rtdb.operator.sub": "
|
|
918
|
-
"rtdb.operator.ternary": "
|
|
919
|
-
"rtdb.rule-kind.indexOn": "
|
|
920
|
-
"rtdb.rule-kind.location-wildcard": "
|
|
921
|
-
"rtdb.rule-kind.read": "
|
|
922
|
-
"rtdb.rule-kind.validate": "
|
|
923
|
-
"rtdb.rule-kind.write": "
|
|
881
|
+
"rtdb.binding.auth": "supported",
|
|
882
|
+
"rtdb.binding.auth.token": "supported",
|
|
883
|
+
"rtdb.binding.auth.uid": "supported",
|
|
884
|
+
"rtdb.binding.data": "supported",
|
|
885
|
+
"rtdb.binding.newData": "supported",
|
|
886
|
+
"rtdb.binding.now": "supported",
|
|
887
|
+
"rtdb.binding.path-variable": "supported",
|
|
888
|
+
"rtdb.binding.root": "supported",
|
|
889
|
+
"rtdb.method.snapshot.child": "supported",
|
|
890
|
+
"rtdb.method.snapshot.exists": "supported",
|
|
891
|
+
"rtdb.method.snapshot.getPriority": "supported",
|
|
892
|
+
"rtdb.method.snapshot.hasChild": "supported",
|
|
893
|
+
"rtdb.method.snapshot.hasChildren": "supported",
|
|
894
|
+
"rtdb.method.snapshot.isBoolean": "supported",
|
|
895
|
+
"rtdb.method.snapshot.isNumber": "supported",
|
|
896
|
+
"rtdb.method.snapshot.isString": "supported",
|
|
897
|
+
"rtdb.method.snapshot.parent": "supported",
|
|
898
|
+
"rtdb.method.snapshot.val": "supported",
|
|
899
|
+
"rtdb.method.string.beginsWith": "supported",
|
|
900
|
+
"rtdb.method.string.contains": "supported",
|
|
901
|
+
"rtdb.method.string.endsWith": "supported",
|
|
902
|
+
"rtdb.method.string.length": "supported",
|
|
903
|
+
"rtdb.method.string.matches": "supported",
|
|
904
|
+
"rtdb.method.string.replace": "supported",
|
|
905
|
+
"rtdb.method.string.toLowerCase": "supported",
|
|
906
|
+
"rtdb.method.string.toUpperCase": "supported",
|
|
907
|
+
"rtdb.operator.add": "supported",
|
|
908
|
+
"rtdb.operator.and": "supported",
|
|
909
|
+
"rtdb.operator.div": "supported",
|
|
910
|
+
"rtdb.operator.gt": "supported",
|
|
911
|
+
"rtdb.operator.gte": "supported",
|
|
912
|
+
"rtdb.operator.index": "supported",
|
|
913
|
+
"rtdb.operator.looseEq": "supported",
|
|
914
|
+
"rtdb.operator.looseNeq": "supported",
|
|
915
|
+
"rtdb.operator.lt": "supported",
|
|
916
|
+
"rtdb.operator.lte": "supported",
|
|
917
|
+
"rtdb.operator.member": "supported",
|
|
918
|
+
"rtdb.operator.mod": "supported",
|
|
919
|
+
"rtdb.operator.mul": "supported",
|
|
920
|
+
"rtdb.operator.neg": "supported",
|
|
921
|
+
"rtdb.operator.not": "supported",
|
|
922
|
+
"rtdb.operator.or": "supported",
|
|
923
|
+
"rtdb.operator.strictEq": "supported",
|
|
924
|
+
"rtdb.operator.strictNeq": "supported",
|
|
925
|
+
"rtdb.operator.sub": "supported",
|
|
926
|
+
"rtdb.operator.ternary": "supported",
|
|
927
|
+
"rtdb.rule-kind.indexOn": "supported",
|
|
928
|
+
"rtdb.rule-kind.location-wildcard": "supported",
|
|
929
|
+
"rtdb.rule-kind.read": "supported",
|
|
930
|
+
"rtdb.rule-kind.validate": "supported",
|
|
931
|
+
"rtdb.rule-kind.write": "supported",
|
|
924
932
|
"rtdb.semantic.deny-by-default": "qualified",
|
|
925
|
-
"rtdb.semantic.read-cascade": "
|
|
926
|
-
"rtdb.semantic.regex-literal": "
|
|
927
|
-
"rtdb.semantic.validate-non-cascade": "
|
|
928
|
-
"rtdb.semantic.write-cascade": "
|
|
933
|
+
"rtdb.semantic.read-cascade": "supported",
|
|
934
|
+
"rtdb.semantic.regex-literal": "supported",
|
|
935
|
+
"rtdb.semantic.validate-non-cascade": "supported",
|
|
936
|
+
"rtdb.semantic.write-cascade": "supported",
|
|
929
937
|
"storage#1": "supported",
|
|
930
938
|
"storage#10": "supported",
|
|
931
939
|
"storage#105": "supported",
|
|
@@ -972,12 +980,12 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
972
980
|
"storage#44": "supported",
|
|
973
981
|
"storage#45": "supported",
|
|
974
982
|
"storage#46": "supported",
|
|
975
|
-
"storage#47": "
|
|
976
|
-
"storage#48": "
|
|
977
|
-
"storage#49": "
|
|
983
|
+
"storage#47": "qualified",
|
|
984
|
+
"storage#48": "qualified",
|
|
985
|
+
"storage#49": "qualified",
|
|
978
986
|
"storage#4a": "supported",
|
|
979
987
|
"storage#5": "supported",
|
|
980
|
-
"storage#50": "
|
|
988
|
+
"storage#50": "qualified",
|
|
981
989
|
"storage#51": "qualified",
|
|
982
990
|
"storage#52": "supported",
|
|
983
991
|
"storage#53": "supported",
|
|
@@ -1088,30 +1096,30 @@ export const CONFORMANCE_VERDICTS = {
|
|
|
1088
1096
|
"storage.method.map.get": "supported",
|
|
1089
1097
|
"storage.method.map.keys": "supported",
|
|
1090
1098
|
"storage.method.set.hasAll": "supported",
|
|
1091
|
-
"storage.method.size": "
|
|
1099
|
+
"storage.method.size": "supported",
|
|
1092
1100
|
"storage.method.string.matches": "supported",
|
|
1093
|
-
"storage.method.string.split": "
|
|
1101
|
+
"storage.method.string.split": "supported",
|
|
1094
1102
|
"storage.operator.add": "supported",
|
|
1095
1103
|
"storage.operator.and": "supported",
|
|
1096
1104
|
"storage.operator.div": "supported",
|
|
1097
1105
|
"storage.operator.eq": "supported",
|
|
1098
1106
|
"storage.operator.gt": "supported",
|
|
1099
1107
|
"storage.operator.gte": "supported",
|
|
1100
|
-
"storage.operator.in": "
|
|
1108
|
+
"storage.operator.in": "supported",
|
|
1101
1109
|
"storage.operator.index": "supported",
|
|
1102
|
-
"storage.operator.is": "
|
|
1110
|
+
"storage.operator.is": "supported",
|
|
1103
1111
|
"storage.operator.lt": "supported",
|
|
1104
1112
|
"storage.operator.lte": "supported",
|
|
1105
1113
|
"storage.operator.member": "supported",
|
|
1106
|
-
"storage.operator.mod": "
|
|
1114
|
+
"storage.operator.mod": "supported",
|
|
1107
1115
|
"storage.operator.mul": "supported",
|
|
1108
1116
|
"storage.operator.neq": "supported",
|
|
1109
1117
|
"storage.operator.not": "supported",
|
|
1110
1118
|
"storage.operator.or": "supported",
|
|
1111
|
-
"storage.operator.slice": "
|
|
1119
|
+
"storage.operator.slice": "supported",
|
|
1112
1120
|
"storage.operator.sub": "supported",
|
|
1113
|
-
"storage.operator.ternary": "
|
|
1114
|
-
"storage.operator.unary-minus": "
|
|
1121
|
+
"storage.operator.ternary": "supported",
|
|
1122
|
+
"storage.operator.unary-minus": "supported",
|
|
1115
1123
|
"storage.rule-kind.allow-create": "supported",
|
|
1116
1124
|
"storage.rule-kind.allow-delete": "supported",
|
|
1117
1125
|
"storage.rule-kind.allow-get": "supported",
|