@pyric/cli 0.1.0-alpha.10 → 0.1.0-alpha.11
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.orig +2 -2
- package/dist/assurance/.generated/conformance-verdicts.d.ts +16 -0
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
- package/dist/assurance/.generated/conformance-verdicts.js +16 -0
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
- package/dist/bridge/server/peer.d.ts +1 -1
- package/dist/bridge/server.d.ts +1 -1
- package/dist/bridge/server.js +1 -1
- package/dist/cli/index.d.ts +11 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +13 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +3 -3
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +5 -5
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +8 -2
- package/dist/cli/serve.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 +12 -0
- package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -0
- package/dist/conformance/.generated/conformance-docs.js +2 -0
- package/dist/conformance/.generated/conformance-docs.js.map +1 -0
- package/dist/conformance/docs.d.ts +6 -0
- package/dist/conformance/docs.d.ts.map +1 -0
- package/dist/conformance/docs.js +6 -0
- package/dist/conformance/docs.js.map +1 -0
- package/dist/remote/index.d.ts.map +1 -1
- package/dist/remote/index.js +1 -0
- package/dist/remote/index.js.map +1 -1
- package/dist/serve/activity-guard.d.ts +4 -0
- package/dist/serve/activity-guard.d.ts.map +1 -0
- package/dist/serve/activity-guard.js +22 -0
- package/dist/serve/activity-guard.js.map +1 -0
- package/dist/serve/activity-route.d.ts +4 -0
- package/dist/serve/activity-route.d.ts.map +1 -0
- package/dist/serve/activity-route.js +157 -0
- package/dist/serve/activity-route.js.map +1 -0
- package/dist/serve/activity-warning.d.ts +4 -0
- package/dist/serve/activity-warning.d.ts.map +1 -0
- package/dist/serve/activity-warning.js +21 -0
- package/dist/serve/activity-warning.js.map +1 -0
- package/dist/serve/bridge-mount.d.ts +5 -0
- package/dist/serve/bridge-mount.d.ts.map +1 -1
- package/dist/serve/bridge-mount.js +1 -0
- package/dist/serve/bridge-mount.js.map +1 -1
- package/dist/serve/docs-ui/404.html +3 -0
- package/dist/serve/docs-ui/_astro/{_slug_.DPUwShm2.css → _slug_.CXh9yTP1.css} +1 -1
- package/dist/serve/docs-ui/_astro/_slug_.DUci-duz.css +1 -0
- package/dist/serve/docs-ui/docs/_rhythm/index.html +2 -1
- package/dist/serve/docs-ui/docs/agent/set-up-your-agent/index.html +3 -2
- package/dist/serve/docs-ui/docs/agent/set-up-your-agent.md +1 -1
- package/dist/serve/docs-ui/docs/agent/watch-and-review/index.html +2 -1
- package/dist/serve/docs-ui/docs/agent/work-with-an-agent/index.html +2 -1
- package/dist/serve/docs-ui/docs/ai-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/api-reference/index.html +51 -49
- package/dist/serve/docs-ui/docs/api-reference.md +2 -2
- package/dist/serve/docs-ui/docs/app-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/auth-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/build/ai-logic/index.html +18 -3
- package/dist/serve/docs-ui/docs/build/ai-logic.md +30 -2
- package/dist/serve/docs-ui/docs/build/authentication/index.html +2 -1
- package/dist/serve/docs-ui/docs/build/authentication.md +1 -1
- package/dist/serve/docs-ui/docs/build/cloud-firestore/index.html +2 -1
- package/dist/serve/docs-ui/docs/build/cloud-messaging/index.html +46 -2
- package/dist/serve/docs-ui/docs/build/cloud-messaging.md +56 -1
- package/dist/serve/docs-ui/docs/build/cloud-storage/index.html +2 -1
- package/dist/serve/docs-ui/docs/build/cloud-storage.md +1 -1
- package/dist/serve/docs-ui/docs/build/realtime-database/index.html +21 -3
- package/dist/serve/docs-ui/docs/build/realtime-database.md +25 -1
- package/dist/serve/docs-ui/docs/conformance-scores/index.html +2 -1
- package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +61 -28
- package/dist/serve/docs-ui/docs/create-pyric-reference-api.md +65 -20
- package/dist/serve/docs-ui/docs/database-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/firestore-compat/index.html +6 -5
- package/dist/serve/docs-ui/docs/firestore-compat.md +4 -4
- package/dist/serve/docs-ui/docs/functions-rtdb-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/get-started/how-the-swap-works/index.html +2 -1
- package/dist/serve/docs-ui/docs/get-started/start-building/index.html +4 -3
- package/dist/serve/docs-ui/docs/get-started/start-building.md +2 -2
- package/dist/serve/docs-ui/docs/index.json +800 -575
- package/dist/serve/docs-ui/docs/messaging-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/observe/see-whats-happening/index.html +2 -1
- package/dist/serve/docs-ui/docs/observe/shape-your-data/index.html +2 -1
- package/dist/serve/docs-ui/docs/overview/index.html +2 -1
- package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +5 -4
- package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +5 -4
- package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +5 -4
- package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +2503 -12
- package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +2219 -8
- package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +4 -3
- package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api.md +2 -3
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +16 -11
- package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +14 -13
- package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +4 -3
- package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api.md +2 -3
- package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +7 -2
- package/dist/serve/docs-ui/docs/pyric-app-reference-api.md +5 -2
- package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +23 -12
- package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +15 -12
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +10 -48
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api.md +11 -24
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +87 -97
- package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +53 -65
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +14 -15
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api.md +19 -28
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +4 -3
- package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api.md +2 -3
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +51 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-docs-reference-api.md +36 -0
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1067 -83
- package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api.md +1291 -160
- package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +123 -92
- package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +49 -20
- package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +72 -7
- package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api.md +22 -7
- package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +33 -12
- package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api.md +15 -12
- package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +18 -17
- package/dist/serve/docs-ui/docs/pyric-database-reference-api.md +19 -22
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +1512 -545
- package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +1311 -316
- package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +5 -4
- package/dist/serve/docs-ui/docs/pyric-messaging-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +69 -369
- package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api.md +103 -216
- package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +10 -9
- package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +9 -10
- package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +8 -7
- package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api.md +6 -7
- package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +10 -9
- package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api.md +9 -10
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +374 -910
- package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +377 -911
- package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +25 -17
- package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +21 -19
- package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +63 -776
- package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api.md +69 -510
- package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +22 -21
- package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api.md +29 -30
- package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +15 -168
- package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api.md +17 -87
- package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +6 -5
- package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api.md +5 -6
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +82 -970
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api.md +104 -479
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +30 -29
- package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api.md +54 -55
- package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +3 -2
- package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api.md +1 -2
- package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +5 -4
- package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +9 -124
- package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api.md +7 -58
- package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +24 -23
- package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api.md +31 -34
- package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +104 -1385
- package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api.md +133 -817
- package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +34 -33
- package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api.md +37 -38
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +116 -1169
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api.md +142 -590
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +4 -3
- package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api.md +3 -4
- package/dist/serve/docs-ui/docs/rules-compat/index.html +34 -1
- package/dist/serve/docs-ui/docs/rules-compat.md +32 -0
- package/dist/serve/docs-ui/docs/secure/audit-your-rules/index.html +19 -2
- package/dist/serve/docs-ui/docs/secure/audit-your-rules.md +32 -0
- package/dist/serve/docs-ui/docs/secure/firestore-rules-limits/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/read-a-denial/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript.md +1 -1
- package/dist/serve/docs-ui/docs/secure/rules-standard-library/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/secure-it-with-rules/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/simulate-and-lint/index.html +2 -1
- package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite/index.html +2 -1
- package/dist/serve/docs-ui/docs/ship/ship-to-production/index.html +2 -1
- package/dist/serve/docs-ui/docs/ship/test-in-node/index.html +2 -1
- package/dist/serve/docs-ui/docs/storage-compat/index.html +2 -1
- package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase/index.html +2 -1
- package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility/index.html +2 -1
- package/dist/serve/docs-ui/llms.txt +1 -0
- package/dist/serve/entries/ai.d.ts.map +1 -1
- package/dist/serve/entries/ai.js +39 -1
- package/dist/serve/entries/ai.js.map +1 -1
- package/dist/serve/entries/messaging-sw.d.ts.map +1 -1
- package/dist/serve/entries/messaging-sw.js +5 -1
- package/dist/serve/entries/messaging-sw.js.map +1 -1
- package/dist/serve/entries/messaging.d.ts.map +1 -1
- package/dist/serve/entries/messaging.js +7 -1
- package/dist/serve/entries/messaging.js.map +1 -1
- package/dist/serve/entries/runtime.d.ts.map +1 -1
- package/dist/serve/entries/runtime.js +20 -1
- package/dist/serve/entries/runtime.js.map +1 -1
- package/dist/serve/init-payload.d.ts +25 -0
- package/dist/serve/init-payload.d.ts.map +1 -1
- package/dist/serve/namespace.d.ts +39 -0
- package/dist/serve/namespace.d.ts.map +1 -1
- package/dist/serve/namespace.js +80 -1
- package/dist/serve/namespace.js.map +1 -1
- package/dist/serve/standalone-assets.d.ts +11 -9
- package/dist/serve/standalone-assets.d.ts.map +1 -1
- package/dist/serve/standalone-assets.js +6 -5
- package/dist/serve/standalone-assets.js.map +1 -1
- package/dist/serve/studio-ui/assets/{RulesCodeEditor-CXdSLKhO.js → RulesCodeEditor-CxVYcZXw.js} +1 -1
- package/dist/serve/studio-ui/assets/index-cpSfgQ7H.js +1218 -0
- package/dist/serve/studio-ui/assets/seed-DeuFKi4J.js +20 -0
- package/dist/serve/studio-ui/index.html +1 -1
- package/dist/serve/vite-plugin.d.ts +92 -15
- package/dist/serve/vite-plugin.d.ts.map +1 -1
- package/dist/serve/vite-plugin.js +281 -11
- package/dist/serve/vite-plugin.js.map +1 -1
- package/dist/serve/worker/activity-bootstrap.d.ts +8 -0
- package/dist/serve/worker/activity-bootstrap.d.ts.map +1 -0
- package/dist/serve/worker/activity-bootstrap.js +11 -0
- package/dist/serve/worker/activity-bootstrap.js.map +1 -0
- package/dist/serve/worker/client/connection.d.ts.map +1 -1
- package/dist/serve/worker/client/connection.js +17 -5
- package/dist/serve/worker/client/connection.js.map +1 -1
- package/dist/serve/worker/client/core.d.ts +2 -2
- package/dist/serve/worker/client/core.d.ts.map +1 -1
- package/dist/serve/worker/client/core.js +33 -5
- package/dist/serve/worker/client/core.js.map +1 -1
- package/dist/serve/worker/client/firestore-writes.d.ts.map +1 -1
- package/dist/serve/worker/client/firestore-writes.js +1 -0
- package/dist/serve/worker/client/firestore-writes.js.map +1 -1
- package/dist/serve/worker/client/messaging.d.ts +9 -1
- package/dist/serve/worker/client/messaging.d.ts.map +1 -1
- package/dist/serve/worker/client/messaging.js +15 -0
- package/dist/serve/worker/client/messaging.js.map +1 -1
- package/dist/serve/worker/client/studio.d.ts +10 -0
- package/dist/serve/worker/client/studio.d.ts.map +1 -1
- package/dist/serve/worker/client/studio.js +11 -0
- package/dist/serve/worker/client/studio.js.map +1 -1
- package/dist/serve/worker/durable-persistence.d.ts +12 -0
- package/dist/serve/worker/durable-persistence.d.ts.map +1 -0
- package/dist/serve/worker/durable-persistence.js +118 -0
- package/dist/serve/worker/durable-persistence.js.map +1 -0
- package/dist/serve/worker/entry.d.ts +7 -3
- package/dist/serve/worker/entry.d.ts.map +1 -1
- package/dist/serve/worker/entry.js +7 -3
- package/dist/serve/worker/entry.js.map +1 -1
- package/dist/serve/worker/host/core.d.ts +9 -5
- package/dist/serve/worker/host/core.d.ts.map +1 -1
- package/dist/serve/worker/host/core.js +33 -8
- package/dist/serve/worker/host/core.js.map +1 -1
- package/dist/serve/worker/host/dispatch.d.ts.map +1 -1
- package/dist/serve/worker/host/dispatch.js +9 -2
- package/dist/serve/worker/host/dispatch.js.map +1 -1
- package/dist/serve/worker/host/studio.d.ts +1 -1
- package/dist/serve/worker/host/studio.d.ts.map +1 -1
- package/dist/serve/worker/host/studio.js +36 -1
- package/dist/serve/worker/host/studio.js.map +1 -1
- package/dist/serve/worker/host/subscriptions.d.ts.map +1 -1
- package/dist/serve/worker/host/subscriptions.js +27 -7
- package/dist/serve/worker/host/subscriptions.js.map +1 -1
- package/dist/serve/worker/host-context.d.ts +15 -0
- package/dist/serve/worker/host-context.d.ts.map +1 -1
- package/dist/serve/worker/host-context.js +10 -0
- package/dist/serve/worker/host-context.js.map +1 -1
- package/dist/serve/worker/host-messaging.d.ts.map +1 -1
- package/dist/serve/worker/host-messaging.js +9 -2
- package/dist/serve/worker/host-messaging.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 +2 -0
- package/dist/serve/worker/index.js.map +1 -1
- package/dist/serve/worker/protocol.d.ts +25 -3
- package/dist/serve/worker/protocol.d.ts.map +1 -1
- package/dist/serve/worker/protocol.js.map +1 -1
- package/dist/serve/worker/serve-init.d.ts +23 -37
- package/dist/serve/worker/serve-init.d.ts.map +1 -1
- package/dist/serve/worker/serve-init.js +95 -172
- package/dist/serve/worker/serve-init.js.map +1 -1
- package/dist/vite.d.ts +4 -4
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +3 -3
- package/dist/vite.js.map +1 -1
- package/package.json +8 -4
- package/dist/serve/studio-ui/assets/index-BvtQIpGn.js +0 -1211
- package/dist/serve/studio-ui/assets/seed-3DMedLL3.js +0 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>API reference: @pyric/ui/auth · Pyric Studio</title><meta name="description" content="Published declarations for @pyric/ui/auth."><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"><link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.DPUwShm2.css"></head> <body> <header class="studio__bar"> <div class="studio__bar-inner"> <a class="studio__brand" href="/__pyric/ui/" aria-label="Pyric Studio">Pyric</a> <nav class="studio__nav" aria-label="Studio tabs"> <a class="studio__nav-tab" href="/__pyric/ui/"> Home </a><a class="studio__nav-tab" href="/__pyric/ui/firestore"> Firestore </a><a class="studio__nav-tab" href="/__pyric/ui/auth"> Auth </a><a class="studio__nav-tab" href="/__pyric/ui/rtdb"> RTDB </a><a class="studio__nav-tab" href="/__pyric/ui/storage"> Storage </a><a class="studio__nav-tab" href="/__pyric/ui/traffic"> Traffic </a><a class="studio__nav-tab" href="/__pyric/ui/settings"> Settings </a><a class="studio__nav-tab" href="/__pyric/ui/docs" aria-current="page"> Docs </a> </nav> </div> </header> <div class="docs-shell"> <details class="docs-nav-drawer"> <summary>Navigate</summary> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <script type="module">let i=null;function d(t){return i||(i=fetch(t).then(e=>e.json())),i}function l(t,e){return t.title.toLowerCase().includes(e)||t.excerpt.toLowerCase().includes(e)?!0:t.headings.some(r=>r.text.toLowerCase().includes(e))}function u(t,e,r){if(e.innerHTML="",t.length===0){e.hidden=!1;{const n=document.createElement("li");n.className="docs-search-empty",n.textContent="No matches",e.appendChild(n)}return}e.hidden=!1;for(const n of t.slice(0,8)){const s=document.createElement("li"),c=document.createElement("a");c.href=n.path;const o=document.createElement("span");o.className="docs-search-result-title",o.textContent=n.title;const a=document.createElement("span");a.className="docs-search-result-meta",a.textContent=[n.group,n.section].filter(Boolean).join(" / "),c.append(o,a),s.appendChild(c),e.appendChild(s)}}document.querySelectorAll(".docs-search").forEach(t=>{const e=t.dataset.indexUrl,r=t.querySelector(".docs-search-input"),n=t.querySelector(".docs-search-results");r.addEventListener("input",async()=>{const s=r.value.trim().toLowerCase();if(!s){n.hidden=!0,n.innerHTML="";return}const{pages:c}=await d(e);r.value.trim().toLowerCase()===s&&u(c.filter(o=>l(o,s)),n)}),r.addEventListener("focus",()=>{d(e),n.childElementCount>0&&(n.hidden=!1)}),r.addEventListener("keydown",s=>{s.key==="Escape"&&(r.value="",n.hidden=!0,n.innerHTML="",r.blur())}),r.addEventListener("blur",()=>{window.setTimeout(()=>{n.hidden=!0},150)})});document.addEventListener("keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!=="k")return;const e=[...document.querySelectorAll(".docs-search-input")].find(r=>r.offsetParent!==null);e&&(t.preventDefault(),e.focus(),e.select())});</script> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/"> Overview </a><details class="docs-nav-group"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Trust </a><details class="docs-nav-group"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/" aria-current="page"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> </details> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/" id="nav-group-overview"> Overview </a><details class="docs-nav-group" id="nav-group-get-started"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-build"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-secure-debug"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-observe-shape"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-ship-test"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-work-with-an-agent"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/" id="nav-group-trust"> Trust </a><details class="docs-nav-group" id="nav-group-conformance"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" id="nav-group-reference" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/" aria-current="page"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> <main class="doc-main"> <nav class="docs-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/__pyric/ui/docs/api-reference/">API reference</a> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span>@pyric/ui</span> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span aria-current="page">@pyric/ui/auth</span> </li> </ol> </nav> <header class="api-reference-header"> <p class="api-reference-kicker">API reference</p> <h1><code>@pyric/ui/auth</code></h1> <p class="api-reference-meta"> 51 published symbols from <code>@pyric/ui</code> </p> <p class="api-reference-source">
|
|
1
|
+
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>API reference: @pyric/ui/auth · Pyric Studio</title><meta name="description" content="Published declarations for @pyric/ui/auth."><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"><link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.CXh9yTP1.css">
|
|
2
|
+
<link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.DUci-duz.css"></head> <body> <header class="studio__bar"> <div class="studio__bar-inner"> <a class="studio__brand" href="/__pyric/ui/" aria-label="Pyric Studio">Pyric</a> <nav class="studio__nav" aria-label="Studio tabs"> <a class="studio__nav-tab" href="/__pyric/ui/"> Home </a><a class="studio__nav-tab" href="/__pyric/ui/firestore"> Firestore </a><a class="studio__nav-tab" href="/__pyric/ui/auth"> Auth </a><a class="studio__nav-tab" href="/__pyric/ui/rtdb"> RTDB </a><a class="studio__nav-tab" href="/__pyric/ui/storage"> Storage </a><a class="studio__nav-tab" href="/__pyric/ui/traffic"> Traffic </a><a class="studio__nav-tab" href="/__pyric/ui/settings"> Settings </a><a class="studio__nav-tab" href="/__pyric/ui/docs" aria-current="page"> Docs </a> </nav> </div> </header> <div class="docs-shell"> <details class="docs-nav-drawer"> <summary>Navigate</summary> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <script type="module">let i=null;function d(t){return i||(i=fetch(t).then(e=>e.json())),i}function l(t,e){return t.title.toLowerCase().includes(e)||t.excerpt.toLowerCase().includes(e)?!0:t.headings.some(r=>r.text.toLowerCase().includes(e))}function u(t,e,r){if(e.innerHTML="",t.length===0){e.hidden=!1;{const n=document.createElement("li");n.className="docs-search-empty",n.textContent="No matches",e.appendChild(n)}return}e.hidden=!1;for(const n of t.slice(0,8)){const s=document.createElement("li"),c=document.createElement("a");c.href=n.path;const o=document.createElement("span");o.className="docs-search-result-title",o.textContent=n.title;const a=document.createElement("span");a.className="docs-search-result-meta",a.textContent=[n.group,n.section].filter(Boolean).join(" / "),c.append(o,a),s.appendChild(c),e.appendChild(s)}}document.querySelectorAll(".docs-search").forEach(t=>{const e=t.dataset.indexUrl,r=t.querySelector(".docs-search-input"),n=t.querySelector(".docs-search-results");r.addEventListener("input",async()=>{const s=r.value.trim().toLowerCase();if(!s){n.hidden=!0,n.innerHTML="";return}const{pages:c}=await d(e);r.value.trim().toLowerCase()===s&&u(c.filter(o=>l(o,s)),n)}),r.addEventListener("focus",()=>{d(e),n.childElementCount>0&&(n.hidden=!1)}),r.addEventListener("keydown",s=>{s.key==="Escape"&&(r.value="",n.hidden=!0,n.innerHTML="",r.blur())}),r.addEventListener("blur",()=>{window.setTimeout(()=>{n.hidden=!0},150)})});document.addEventListener("keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!=="k")return;const e=[...document.querySelectorAll(".docs-search-input")].find(r=>r.offsetParent!==null);e&&(t.preventDefault(),e.focus(),e.select())});</script> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/"> Overview </a><details class="docs-nav-group"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Trust </a><details class="docs-nav-group"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/" aria-current="page"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> </details> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/" id="nav-group-overview"> Overview </a><details class="docs-nav-group" id="nav-group-get-started"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-build"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-secure-debug"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-observe-shape"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-ship-test"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-work-with-an-agent"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/" id="nav-group-trust"> Trust </a><details class="docs-nav-group" id="nav-group-conformance"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" id="nav-group-reference" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/" aria-current="page"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> <main class="doc-main"> <nav class="docs-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/__pyric/ui/docs/api-reference/">API reference</a> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span>@pyric/ui</span> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span aria-current="page">@pyric/ui/auth</span> </li> </ol> </nav> <header class="api-reference-header"> <p class="api-reference-kicker">API reference</p> <h1><code>@pyric/ui/auth</code></h1> <p class="api-reference-meta"> 51 published symbols from <code>@pyric/ui</code> </p> <p class="api-reference-source">
|
|
2
3
|
Generated from the TypeScript declarations shipped at this import path.
|
|
3
|
-
</p> </header> <article class="prose api-reference-body"> <!-- Generated from published package declarations via TypeDoc.
|
|
4
|
+
</p> </header> <article class="prose api-reference-body"> <!-- Generated from published package declarations via TypeDoc. Rendered by the api-reference content loader. -->
|
|
4
5
|
<h2 id="classes">Classes</h2>
|
|
5
6
|
<p><a id="authflowcontroller"></a></p>
|
|
6
7
|
<h3 id="authflowcontroller">AuthFlowController</h3>
|
|
@@ -22,7 +23,7 @@ Generated from the TypeScript declarations shipped at this import path.
|
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
|
|
25
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><code>Auth</code></td></tr></tbody></table></div>
|
|
26
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#auth"><code>Auth</code></a></td></tr></tbody></table></div>
|
|
26
27
|
<h6 id="returns">Returns</h6>
|
|
27
28
|
<p><a href="#authflowcontroller"><code>AuthFlowController</code></a></p>
|
|
28
29
|
<h4 id="methods">Methods</h4>
|
|
@@ -95,7 +96,7 @@ uninstall in the cleanup) — StrictMode-safe.</p>
|
|
|
95
96
|
<p>The resolver to hand to <code>sandbox.setAuthFlowResolver</code>. Popup and
|
|
96
97
|
redirect share one implementation (the sandbox has no navigation).</p>
|
|
97
98
|
<h6 id="returns-5">Returns</h6>
|
|
98
|
-
<p><code>AuthFlowResolver</code></p>
|
|
99
|
+
<p><a href="/docs/pyric-auth-reference-api/#authflowresolver"><code>AuthFlowResolver</code></a></p>
|
|
99
100
|
<p><a id="snapshot"></a></p>
|
|
100
101
|
<h5 id="snapshot">snapshot()</h5>
|
|
101
102
|
<pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#61AFEF">snapshot</span><span style="color:#ABB2BF">(): </span><span style="color:#E06C75">HelperState</span><span style="color:#ABB2BF">;</span></span></code></pre>
|
|
@@ -270,7 +271,7 @@ redirect share one implementation (the sandbox has no navigation).</p>
|
|
|
270
271
|
|
|
271
272
|
|
|
272
273
|
|
|
273
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="classname-1"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="description"></a> <code>description?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional helper text rendered under the title (<code>[data-pyric-helper-description]</code>). Default: none.</td></tr><tr><td align="left"><a id="initialvalues"></a> <code>initialValues?</code></td><td align="left">{ <code>claims?</code>: <code>string</code>; <code>displayName?</code>: <code>string</code>; <code>email?</code>: <code>string</code>; }</td><td align="left">Prefill for the add-account form (e.g. a host-suggested email). Read once on mount; <code>claims</code> is the raw textarea JSON text.</td></tr><tr><td align="left"><code>initialValues.claims?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><code>initialValues.displayName?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><code>initialValues.email?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="onadd"></a> <code>onAdd</code></td><td align="left">(<code>spec</code>: <a href="#newidentityspec"><code>NewIdentitySpec</code></a>) => <code>void</code></td><td align="left">Create + sign in as a new identity (wire to the hook’s <code>add</code>).</td></tr><tr><td align="left"><a id="oncancel"></a> <code>onCancel</code></td><td align="left">() => <code>void</code></td><td align="left">Dismiss the flow (wire to the hook’s <code>cancel</code>). Rejects the app’s sign-in promise with <code>auth/popup-closed-by-user</code>.</td></tr><tr><td align="left"><a id="onpick"></a> <code>onPick</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">Settle with an existing identity (wire to the hook’s <code>pick</code>).</td></tr><tr><td align="left"><a id="renderaccount"></a> <code>renderAccount?</code></td><td align="left">(<code>identity</code>: <code>
|
|
274
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="classname-1"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="description"></a> <code>description?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional helper text rendered under the title (<code>[data-pyric-helper-description]</code>). Default: none.</td></tr><tr><td align="left"><a id="initialvalues"></a> <code>initialValues?</code></td><td align="left">{ <code>claims?</code>: <code>string</code>; <code>displayName?</code>: <code>string</code>; <code>email?</code>: <code>string</code>; }</td><td align="left">Prefill for the add-account form (e.g. a host-suggested email). Read once on mount; <code>claims</code> is the raw textarea JSON text.</td></tr><tr><td align="left"><code>initialValues.claims?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><code>initialValues.displayName?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><code>initialValues.email?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="onadd"></a> <code>onAdd</code></td><td align="left">(<code>spec</code>: <a href="#newidentityspec"><code>NewIdentitySpec</code></a>) => <code>void</code></td><td align="left">Create + sign in as a new identity (wire to the hook’s <code>add</code>).</td></tr><tr><td align="left"><a id="oncancel"></a> <code>onCancel</code></td><td align="left">() => <code>void</code></td><td align="left">Dismiss the flow (wire to the hook’s <code>cancel</code>). Rejects the app’s sign-in promise with <code>auth/popup-closed-by-user</code>.</td></tr><tr><td align="left"><a id="onpick"></a> <code>onPick</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">Settle with an existing identity (wire to the hook’s <code>pick</code>).</td></tr><tr><td align="left"><a id="renderaccount"></a> <code>renderAccount?</code></td><td align="left">(<code>identity</code>: { <code>customClaims</code>: <code>Record</code><<code>string</code>, <code>unknown</code>>; <code>displayName</code>: <code>string</code>; <code>email</code>: <code>string</code>; <code>isAnonymous</code>: <code>boolean</code>; <code>providerId</code>: <code>string</code>; <code>providerUserInfo</code>: <a href="/docs/pyric-auth-reference-api/#provideruserinfo-2"><code>ProviderUserInfo</code></a>[]; <code>uid</code>: <code>string</code>; }) => <code>ReactNode</code></td><td align="left">Optional renderer for an account row’s content. Default renders the display name (or email, or uid) plus the email when both exist. The row button + data attributes stay owned by the component; this slot only fills the button’s children.</td></tr><tr><td align="left"><a id="state"></a> <code>state</code></td><td align="left"><a href="#helperstate"><code>HelperState</code></a></td><td align="left">Snapshot from <code>useAuthFlowHelper</code>. Renders nothing while <code>state.request</code> is null.</td></tr><tr><td align="left"><a id="title"></a> <code>title?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Heading text. Default: <code>Sign in with <provider label></code>.</td></tr></tbody></table></div>
|
|
274
275
|
<hr>
|
|
275
276
|
<p><a id="authusereditorerrors"></a></p>
|
|
276
277
|
<h3 id="authusereditorerrors">AuthUserEditorErrors</h3>
|
|
@@ -476,7 +477,7 @@ field) and never appears here.</p>
|
|
|
476
477
|
|
|
477
478
|
|
|
478
479
|
|
|
479
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="cancellabel"></a> <code>cancelLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="children"></a> <code>children?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Extra content rendered before the action row (e.g. an error from a failed <code>createUser</code> call).</td></tr><tr><td align="left"><a id="classname-2"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="initial-1"></a> <code>initial?</code></td><td align="left"><code>AuthUserRecord</code></td><td align="left">Existing record → edit mode (delta payloads); omit → create mode.</td></tr><tr><td align="left"><a id="oncancel-1"></a> <code>onCancel?</code></td><td align="left">() => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="onsubmit"></a> <code>onSubmit</code></td><td align="left">(<code>submit</code>: <a href="#authuserformsubmit"><code>AuthUserFormSubmit</code></a>) => <code>void</code></td><td align="left">Receives the validated payload. Wire <code>create</code> to <code>useAuthUsers().createUser</code> and <code>edit</code> to <code>updateUser</code>.</td></tr><tr><td align="left"><a id="renderfield"></a> <code>renderField?</code></td><td align="left">(<code>field</code>: <a href="#authuserformfield"><code>AuthUserFormField</code></a>) => <code>ReactNode</code></td><td align="left">Per-field layout override. Called for each field (see <a href="#authuserformfieldname-1">AuthUserFormFieldName</a> order); return your own markup around <code>field.input</code>, or <code>field.defaultRender()</code> to keep the stock label wrapper for that field. Omit the prop for the default layout.</td></tr><tr><td align="left"><a id="submitlabel"></a> <code>submitLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr></tbody></table></div>
|
|
480
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="cancellabel"></a> <code>cancelLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="children"></a> <code>children?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Extra content rendered before the action row (e.g. an error from a failed <code>createUser</code> call).</td></tr><tr><td align="left"><a id="classname-2"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="initial-1"></a> <code>initial?</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td><td align="left">Existing record → edit mode (delta payloads); omit → create mode.</td></tr><tr><td align="left"><a id="oncancel-1"></a> <code>onCancel?</code></td><td align="left">() => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="onsubmit"></a> <code>onSubmit</code></td><td align="left">(<code>submit</code>: <a href="#authuserformsubmit"><code>AuthUserFormSubmit</code></a>) => <code>void</code></td><td align="left">Receives the validated payload. Wire <code>create</code> to <code>useAuthUsers().createUser</code> and <code>edit</code> to <code>updateUser</code>.</td></tr><tr><td align="left"><a id="renderfield"></a> <code>renderField?</code></td><td align="left">(<code>field</code>: <a href="#authuserformfield"><code>AuthUserFormField</code></a>) => <code>ReactNode</code></td><td align="left">Per-field layout override. Called for each field (see <a href="#authuserformfieldname-1">AuthUserFormFieldName</a> order); return your own markup around <code>field.input</code>, or <code>field.defaultRender()</code> to keep the stock label wrapper for that field. Omit the prop for the default layout.</td></tr><tr><td align="left"><a id="submitlabel"></a> <code>submitLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr></tbody></table></div>
|
|
480
481
|
<hr>
|
|
481
482
|
<p><a id="authuserlistprops"></a></p>
|
|
482
483
|
<h3 id="authuserlistprops">AuthUserListProps</h3>
|
|
@@ -586,7 +587,7 @@ field) and never appears here.</p>
|
|
|
586
587
|
|
|
587
588
|
|
|
588
589
|
|
|
589
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="classname-3"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="emptystate"></a> <code>emptyState?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Zero state when the project has no users at all.</td></tr><tr><td align="left"><a id="error-2"></a> <code>error?</code></td><td align="left"><code>Error</code></td><td align="left">-</td></tr><tr><td align="left"><a id="filter"></a> <code>filter?</code></td><td align="left"><code>string</code></td><td align="left">The active filter text. Distinguishes the “no users yet” zero state (empty filter) from “no results” (non-empty).</td></tr><tr><td align="left"><a id="formatcreatedat"></a> <code>formatCreatedAt?</code></td><td align="left">(<code>iso</code>: <code>string</code>) => <code>ReactNode</code></td><td align="left">Timestamp formatter for Created. Default: locale date, em dash for null.</td></tr><tr><td align="left"><a id="formatlastloginat"></a> <code>formatLastLoginAt?</code></td><td align="left">(<code>iso</code>: <code>string</code>) => <code>ReactNode</code></td><td align="left">Timestamp formatter for Signed In. Kept separate because a missing login means “never”, while a missing/invalid creation time is malformed data.</td></tr><tr><td align="left"><a id="isloading-1"></a> <code>isLoading?</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="noresultsstate"></a> <code>noResultsState?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Zero state when the filter matches nothing.</td></tr><tr><td align="left"><a id="onselect"></a> <code>onSelect?</code></td><td align="left">(<code>user</code>: <code>AuthUserRecord</code>) => <code>void</code></td><td align="left">Fired when the identifier cell is clicked. When omitted, the identifier renders as plain text.</td></tr><tr><td align="left"><a id="renderactions"></a> <code>renderActions?</code></td><td align="left">(<code>user</code>: <code>AuthUserRecord</code>) => <code>ReactNode</code></td><td align="left">Per-row action slot (edit / disable / delete menu). Rendered in a trailing cell; column header is added when this is provided.</td></tr><tr><td align="left"><a id="renderactionsheader"></a> <code>renderActionsHeader?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional content for the trailing actions column header (for example, a select-all checkbox). Only rendered with <code>renderActions</code>.</td></tr><tr><td align="left"><a id="renderidentifier"></a> <code>renderIdentifier?</code></td><td align="left">(<code>user</code>: <code>AuthUserRecord</code>) => <code>ReactNode</code></td><td align="left">Identifier-cell override. Default: email, else phone, else <code>anonymous</code>, else the uid.</td></tr><tr><td align="left"><a id="renderproviders"></a> <code>renderProviders?</code></td><td align="left">(<code>user</code>: <code>AuthUserRecord</code>) => <code>ReactNode</code></td><td align="left">Providers-cell override. Default: one <code><span data-pyric-provider-id></code> per linked provider with its text label (<code>anonymous</code> for anonymous users) — hook icons off the attribute.</td></tr><tr><td align="left"><a id="renderselection"></a> <code>renderSelection?</code></td><td align="left">(<code>user</code>: <code>AuthUserRecord</code>) => <code>ReactNode</code></td><td align="left">Per-row selection control. Rendered in the leading cell so bulk selection stays visually separate from trailing row actions.</td></tr><tr><td align="left"><a id="renderselectionheader"></a> <code>renderSelectionHeader?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional content for the leading selection column header (for example, a select-all checkbox). Only rendered with <code>renderSelection</code>.</td></tr><tr><td align="left"><a id="rowheight"></a> <code>rowHeight?</code></td><td align="left"><code>number</code> | (<code>index</code>: <code>number</code>) => <code>number</code></td><td align="left">Estimated row height when virtualizing. Default 44.</td></tr><tr><td align="left"><a id="users"></a> <code>users</code></td><td align="left"><code>AuthUserRecord</code>[]</td><td align="left">Rows to render — usually <code>useAuthUsers().users</code>.</td></tr><tr><td align="left"><a id="virtualizedheight"></a> <code>virtualizedHeight?</code></td><td align="left"><code>string</code> | <code>number</code></td><td align="left">Scroll-container height when virtualized. Default <code>'60vh'</code>.</td></tr><tr><td align="left"><a id="virtualizethreshold"></a> <code>virtualizeThreshold?</code></td><td align="left"><code>number</code></td><td align="left">Above this row count, rows render through <code><VirtualList></code>. Default 100. <code>Infinity</code> disables.</td></tr></tbody></table></div>
|
|
590
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="classname-3"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="emptystate"></a> <code>emptyState?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Zero state when the project has no users at all.</td></tr><tr><td align="left"><a id="error-2"></a> <code>error?</code></td><td align="left"><code>Error</code></td><td align="left">-</td></tr><tr><td align="left"><a id="filter"></a> <code>filter?</code></td><td align="left"><code>string</code></td><td align="left">The active filter text. Distinguishes the “no users yet” zero state (empty filter) from “no results” (non-empty).</td></tr><tr><td align="left"><a id="formatcreatedat"></a> <code>formatCreatedAt?</code></td><td align="left">(<code>iso</code>: <code>string</code>) => <code>ReactNode</code></td><td align="left">Timestamp formatter for Created. Default: locale date, em dash for null.</td></tr><tr><td align="left"><a id="formatlastloginat"></a> <code>formatLastLoginAt?</code></td><td align="left">(<code>iso</code>: <code>string</code>) => <code>ReactNode</code></td><td align="left">Timestamp formatter for Signed In. Kept separate because a missing login means “never”, while a missing/invalid creation time is malformed data.</td></tr><tr><td align="left"><a id="isloading-1"></a> <code>isLoading?</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="noresultsstate"></a> <code>noResultsState?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Zero state when the filter matches nothing.</td></tr><tr><td align="left"><a id="onselect"></a> <code>onSelect?</code></td><td align="left">(<code>user</code>: <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>) => <code>void</code></td><td align="left">Fired when the identifier cell is clicked. When omitted, the identifier renders as plain text.</td></tr><tr><td align="left"><a id="renderactions"></a> <code>renderActions?</code></td><td align="left">(<code>user</code>: <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>) => <code>ReactNode</code></td><td align="left">Per-row action slot (edit / disable / delete menu). Rendered in a trailing cell; column header is added when this is provided.</td></tr><tr><td align="left"><a id="renderactionsheader"></a> <code>renderActionsHeader?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional content for the trailing actions column header (for example, a select-all checkbox). Only rendered with <code>renderActions</code>.</td></tr><tr><td align="left"><a id="renderidentifier"></a> <code>renderIdentifier?</code></td><td align="left">(<code>user</code>: <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>) => <code>ReactNode</code></td><td align="left">Identifier-cell override. Default: email, else phone, else <code>anonymous</code>, else the uid.</td></tr><tr><td align="left"><a id="renderproviders"></a> <code>renderProviders?</code></td><td align="left">(<code>user</code>: <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>) => <code>ReactNode</code></td><td align="left">Providers-cell override. Default: one <code><span data-pyric-provider-id></code> per linked provider with its text label (<code>anonymous</code> for anonymous users) — hook icons off the attribute.</td></tr><tr><td align="left"><a id="renderselection"></a> <code>renderSelection?</code></td><td align="left">(<code>user</code>: <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>) => <code>ReactNode</code></td><td align="left">Per-row selection control. Rendered in the leading cell so bulk selection stays visually separate from trailing row actions.</td></tr><tr><td align="left"><a id="renderselectionheader"></a> <code>renderSelectionHeader?</code></td><td align="left"><code>ReactNode</code></td><td align="left">Optional content for the leading selection column header (for example, a select-all checkbox). Only rendered with <code>renderSelection</code>.</td></tr><tr><td align="left"><a id="rowheight"></a> <code>rowHeight?</code></td><td align="left"><code>number</code> | (<code>index</code>: <code>number</code>) => <code>number</code></td><td align="left">Estimated row height when virtualizing. Default 44.</td></tr><tr><td align="left"><a id="users"></a> <code>users</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>[]</td><td align="left">Rows to render — usually <code>useAuthUsers().users</code>.</td></tr><tr><td align="left"><a id="virtualizedheight"></a> <code>virtualizedHeight?</code></td><td align="left"><code>string</code> | <code>number</code></td><td align="left">Scroll-container height when virtualized. Default <code>'60vh'</code>.</td></tr><tr><td align="left"><a id="virtualizethreshold"></a> <code>virtualizeThreshold?</code></td><td align="left"><code>number</code></td><td align="left">Above this row count, rows render through <code><VirtualList></code>. Default 100. <code>Infinity</code> disables.</td></tr></tbody></table></div>
|
|
590
591
|
<hr>
|
|
591
592
|
<p><a id="claimsfieldprops"></a></p>
|
|
592
593
|
<h3 id="claimsfieldprops">ClaimsFieldProps</h3>
|
|
@@ -731,7 +732,7 @@ field) and never appears here.</p>
|
|
|
731
732
|
|
|
732
733
|
|
|
733
734
|
|
|
734
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="body-1"></a> <code>body?</code></td><td align="left"><code>ReactNode</code></td><td align="left">-</td></tr><tr><td align="left"><a id="classname-6"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="confirmlabel-1"></a> <code>confirmLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="ondelete"></a> <code>onDelete</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">Runs after the user confirms. Wire to <code>useAuthUsers().deleteUser</code>.</td></tr><tr><td align="left"><a id="rendertrigger-1"></a> <code>renderTrigger?</code></td><td align="left">(<code>props</code>: <code>TriggerProps</code>) => <code>ReactNode</code></td><td align="left">Trigger override; default is a plain destructive <code><button></code>.</td></tr><tr><td align="left"><a id="title-2"></a> <code>title?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="user"></a> <code>user</code></td><td align="left"><code>AuthUserRecord</code></td><td align="left">-</td></tr></tbody></table></div>
|
|
735
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="body-1"></a> <code>body?</code></td><td align="left"><code>ReactNode</code></td><td align="left">-</td></tr><tr><td align="left"><a id="classname-6"></a> <code>className?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="confirmlabel-1"></a> <code>confirmLabel?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="ondelete"></a> <code>onDelete</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">Runs after the user confirms. Wire to <code>useAuthUsers().deleteUser</code>.</td></tr><tr><td align="left"><a id="rendertrigger-1"></a> <code>renderTrigger?</code></td><td align="left">(<code>props</code>: <code>TriggerProps</code>) => <code>ReactNode</code></td><td align="left">Trigger override; default is a plain destructive <code><button></code>.</td></tr><tr><td align="left"><a id="title-2"></a> <code>title?</code></td><td align="left"><code>string</code></td><td align="left">-</td></tr><tr><td align="left"><a id="user"></a> <code>user</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td><td align="left">-</td></tr></tbody></table></div>
|
|
735
736
|
<hr>
|
|
736
737
|
<p><a id="helperstate"></a></p>
|
|
737
738
|
<h3 id="helperstate">HelperState</h3>
|
|
@@ -757,7 +758,7 @@ field) and never appears here.</p>
|
|
|
757
758
|
|
|
758
759
|
|
|
759
760
|
|
|
760
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="identities"></a> <code>identities</code></td><td align="left"><code>
|
|
761
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="identities"></a> <code>identities</code></td><td align="left">{ <code>customClaims</code>: <code>Record</code><<code>string</code>, <code>unknown</code>>; <code>displayName</code>: <code>string</code>; <code>email</code>: <code>string</code>; <code>isAnonymous</code>: <code>boolean</code>; <code>providerId</code>: <code>string</code>; <code>providerUserInfo</code>: <a href="/docs/pyric-auth-reference-api/#provideruserinfo-2"><code>ProviderUserInfo</code></a>[]; <code>uid</code>: <code>string</code>; }[]</td><td align="left">Existing identities to pick from (seeded + previously created).</td></tr><tr><td align="left"><a id="request"></a> <code>request</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authflowrequest"><code>AuthFlowRequest</code></a></td><td align="left">The in-flight request, or null when the helper is closed.</td></tr></tbody></table></div>
|
|
761
762
|
<hr>
|
|
762
763
|
<p><a id="newidentityspec"></a></p>
|
|
763
764
|
<h3 id="newidentityspec">NewIdentitySpec</h3>
|
|
@@ -888,7 +889,7 @@ field) and never appears here.</p>
|
|
|
888
889
|
|
|
889
890
|
|
|
890
891
|
|
|
891
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="initial-2"></a> <code>initial?</code></td><td align="left"><code>AuthUserRecord</code></td><td align="left">Existing record to edit. Omit for create mode.</td></tr></tbody></table></div>
|
|
892
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="initial-2"></a> <code>initial?</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td><td align="left">Existing record to edit. Omit for create mode.</td></tr></tbody></table></div>
|
|
892
893
|
<hr>
|
|
893
894
|
<p><a id="useauthusereditorresult"></a></p>
|
|
894
895
|
<h3 id="useauthusereditorresult">UseAuthUserEditorResult</h3>
|
|
@@ -948,7 +949,7 @@ field) and never appears here.</p>
|
|
|
948
949
|
|
|
949
950
|
|
|
950
951
|
|
|
951
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="dispatch"></a> <code>dispatch</code></td><td align="left">(<code>action</code>: <a href="#authusereditoraction"><code>AuthUserEditorAction</code></a>) => <code>void</code></td><td align="left">Raw reducer access for advanced consumers.</td></tr><tr><td align="left"><a id="errors"></a> <code>errors</code></td><td align="left"><a href="#authusereditorerrors"><code>AuthUserEditorErrors</code></a></td><td align="left">Per-field validation messages (emulator-UI wording). Empty when valid.</td></tr><tr><td align="left"><a id="fields-1"></a> <code>fields</code></td><td align="left"><a href="#authusereditorfields"><code>AuthUserEditorFields</code></a></td><td align="left">-</td></tr><tr><td align="left"><a id="isdirty"></a> <code>isDirty</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="isvalid"></a> <code>isValid</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="reset"></a> <code>reset</code></td><td align="left">() => <code>void</code></td><td align="left">Back to the initial snapshot.</td></tr><tr><td align="left"><a id="setfield"></a> <code>setField</code></td><td align="left"><<code>K</code>>(<code>field</code>: <code>K</code>, <code>value</code>: <a href="#authusereditorfields"><code>AuthUserEditorFields</code></a>[<code>K</code>]) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="tocreaterequest"></a> <code>toCreateRequest</code></td><td align="left">() => <code>CreateUserRequest</code></td><td align="left">Full payload for <code>createUser</code> (every non-empty field).</td></tr><tr><td align="left"><a id="toupdaterequest"></a> <code>toUpdateRequest</code></td><td align="left">() => <code>UpdateUserRequest</code></td><td align="left">Delta payload for <code>updateUser</code> (only changed fields).</td></tr></tbody></table></div>
|
|
952
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="dispatch"></a> <code>dispatch</code></td><td align="left">(<code>action</code>: <a href="#authusereditoraction"><code>AuthUserEditorAction</code></a>) => <code>void</code></td><td align="left">Raw reducer access for advanced consumers.</td></tr><tr><td align="left"><a id="errors"></a> <code>errors</code></td><td align="left"><a href="#authusereditorerrors"><code>AuthUserEditorErrors</code></a></td><td align="left">Per-field validation messages (emulator-UI wording). Empty when valid.</td></tr><tr><td align="left"><a id="fields-1"></a> <code>fields</code></td><td align="left"><a href="#authusereditorfields"><code>AuthUserEditorFields</code></a></td><td align="left">-</td></tr><tr><td align="left"><a id="isdirty"></a> <code>isDirty</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="isvalid"></a> <code>isValid</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="reset"></a> <code>reset</code></td><td align="left">() => <code>void</code></td><td align="left">Back to the initial snapshot.</td></tr><tr><td align="left"><a id="setfield"></a> <code>setField</code></td><td align="left"><<code>K</code>>(<code>field</code>: <code>K</code>, <code>value</code>: <a href="#authusereditorfields"><code>AuthUserEditorFields</code></a>[<code>K</code>]) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="tocreaterequest"></a> <code>toCreateRequest</code></td><td align="left">() => <a href="/docs/pyric-auth-reference-api/#createuserrequest"><code>CreateUserRequest</code></a></td><td align="left">Full payload for <code>createUser</code> (every non-empty field).</td></tr><tr><td align="left"><a id="toupdaterequest"></a> <code>toUpdateRequest</code></td><td align="left">() => <a href="/docs/pyric-auth-reference-api/#updateuserrequest"><code>UpdateUserRequest</code></a></td><td align="left">Delta payload for <code>updateUser</code> (only changed fields).</td></tr></tbody></table></div>
|
|
952
953
|
<hr>
|
|
953
954
|
<p><a id="useauthusersresult"></a></p>
|
|
954
955
|
<h3 id="useauthusersresult">UseAuthUsersResult</h3>
|
|
@@ -1018,11 +1019,11 @@ field) and never appears here.</p>
|
|
|
1018
1019
|
|
|
1019
1020
|
|
|
1020
1021
|
|
|
1021
|
-
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="clearusers"></a> <code>clearUsers</code></td><td align="left">() => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="createuser"></a> <code>createUser</code></td><td align="left">(<code>request</code>: <code>CreateUserRequest</code>) => <code>AuthUserRecord</code></td><td align="left">-</td></tr><tr><td align="left"><a id="deleteuser"></a> <code>deleteUser</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="error-5"></a> <code>error</code></td><td align="left"><code>Error</code></td><td align="left">-</td></tr><tr><td align="left"><a id="filter-1"></a> <code>filter</code></td><td align="left"><code>string</code></td><td align="left">Case-insensitive substring match over uid, email, display name and phone number (the emulator UI’s search semantics).</td></tr><tr><td align="left"><a id="isloading-3"></a> <code>isLoading</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="refresh-1"></a> <code>refresh</code></td><td align="left">() => <code>void</code></td><td align="left">Re-list manually. Rarely needed, every mutation (including ones made by the agent or the running app) already triggers <code>subscribeUsers</code>.</td></tr><tr><td align="left"><a id="setfilter"></a> <code>setFilter</code></td><td align="left">(<code>filter</code>: <code>string</code>) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="totalcount"></a> <code>totalCount</code></td><td align="left"><code>number</code></td><td align="left">Unfiltered count: lets a list distinguish “no users at all” from “no results for this filter”.</td></tr><tr><td align="left"><a id="updateuser"></a> <code>updateUser</code></td><td align="left">(<code>uid</code>: <code>string</code>, <code>update</code>: <code>UpdateUserRequest</code>) => <code>AuthUserRecord</code></td><td align="left">-</td></tr><tr><td align="left"><a id="users-1"></a> <code>users</code></td><td align="left"><code>AuthUserRecord</code>[]</td><td align="left">Users matching <a href="#filter-1">filter</a> (everyone when the filter is empty).</td></tr></tbody></table></div>
|
|
1022
|
+
<table><thead><tr><th align="left">Property</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><a id="clearusers"></a> <code>clearUsers</code></td><td align="left">() => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="createuser"></a> <code>createUser</code></td><td align="left">(<code>request</code>: <a href="/docs/pyric-auth-reference-api/#createuserrequest"><code>CreateUserRequest</code></a>) => <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td><td align="left">-</td></tr><tr><td align="left"><a id="deleteuser"></a> <code>deleteUser</code></td><td align="left">(<code>uid</code>: <code>string</code>) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="error-5"></a> <code>error</code></td><td align="left"><code>Error</code></td><td align="left">-</td></tr><tr><td align="left"><a id="filter-1"></a> <code>filter</code></td><td align="left"><code>string</code></td><td align="left">Case-insensitive substring match over uid, email, display name and phone number (the emulator UI’s search semantics).</td></tr><tr><td align="left"><a id="isloading-3"></a> <code>isLoading</code></td><td align="left"><code>boolean</code></td><td align="left">-</td></tr><tr><td align="left"><a id="refresh-1"></a> <code>refresh</code></td><td align="left">() => <code>void</code></td><td align="left">Re-list manually. Rarely needed, every mutation (including ones made by the agent or the running app) already triggers <code>subscribeUsers</code>.</td></tr><tr><td align="left"><a id="setfilter"></a> <code>setFilter</code></td><td align="left">(<code>filter</code>: <code>string</code>) => <code>void</code></td><td align="left">-</td></tr><tr><td align="left"><a id="totalcount"></a> <code>totalCount</code></td><td align="left"><code>number</code></td><td align="left">Unfiltered count: lets a list distinguish “no users at all” from “no results for this filter”.</td></tr><tr><td align="left"><a id="updateuser"></a> <code>updateUser</code></td><td align="left">(<code>uid</code>: <code>string</code>, <code>update</code>: <a href="/docs/pyric-auth-reference-api/#updateuserrequest"><code>UpdateUserRequest</code></a>) => <a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td><td align="left">-</td></tr><tr><td align="left"><a id="users-1"></a> <code>users</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a>[]</td><td align="left">Users matching <a href="#filter-1">filter</a> (everyone when the filter is empty).</td></tr></tbody></table></div>
|
|
1022
1023
|
<h2 id="type-aliases">Type Aliases</h2>
|
|
1023
1024
|
<p><a id="authapi"></a></p>
|
|
1024
1025
|
<h3 id="authapi">AuthApi</h3>
|
|
1025
|
-
<pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#C678DD">type</span><span style="color:#E5C07B"> AuthApi</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> Pick</span><span style="color:#ABB2BF"><</span><span style="color:#C678DD">typeof</span><span style="color:#E06C75">
|
|
1026
|
+
<pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#C678DD">type</span><span style="color:#E5C07B"> AuthApi</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> Pick</span><span style="color:#ABB2BF"><</span><span style="color:#C678DD">typeof</span><span style="color:#E06C75"> sandbox</span><span style="color:#ABB2BF">,</span></span>
|
|
1026
1027
|
<span class="line"><span style="color:#ABB2BF"> | </span><span style="color:#98C379">"listUsers"</span></span>
|
|
1027
1028
|
<span class="line"><span style="color:#ABB2BF"> | </span><span style="color:#98C379">"subscribeUsers"</span></span>
|
|
1028
1029
|
<span class="line"><span style="color:#ABB2BF"> | </span><span style="color:#98C379">"createUser"</span></span>
|
|
@@ -1118,7 +1119,7 @@ in render order. Claims is NOT a slot field — it stays the standalone
|
|
|
1118
1119
|
<hr>
|
|
1119
1120
|
<p><a id="sandboxidentity"></a></p>
|
|
1120
1121
|
<h3 id="sandboxidentity">SandboxIdentity</h3>
|
|
1121
|
-
<pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#C678DD">type</span><span style="color:#E5C07B"> SandboxIdentity</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> ReturnType</span><span style="color:#ABB2BF"><</span><span style="color:#C678DD">typeof</span><span style="color:#
|
|
1122
|
+
<pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#C678DD">type</span><span style="color:#E5C07B"> SandboxIdentity</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> ReturnType</span><span style="color:#ABB2BF"><</span><span style="color:#C678DD">typeof</span><span style="color:#E06C75"> listIdentities</span><span style="color:#ABB2BF">>[</span><span style="color:#E5C07B">number</span><span style="color:#ABB2BF">];</span></span></code></pre>
|
|
1122
1123
|
<p>One pickable identity, as reported by <code>sandbox.listIdentities</code>.</p>
|
|
1123
1124
|
<h2 id="variables">Variables</h2>
|
|
1124
1125
|
<p><a id="custom_claims_max_length"></a></p>
|
|
@@ -1444,7 +1445,7 @@ Requires a <code><ConfirmProvider></code> ancestor.</p>
|
|
|
1444
1445
|
|
|
1445
1446
|
|
|
1446
1447
|
|
|
1447
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>record?</code></td><td align="left"><code>AuthUserRecord</code></td></tr></tbody></table></div>
|
|
1448
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>record?</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td></tr></tbody></table></div>
|
|
1448
1449
|
<h4 id="returns-19">Returns</h4>
|
|
1449
1450
|
<p><a href="#authusereditorfields"><code>AuthUserEditorFields</code></a></p>
|
|
1450
1451
|
<hr>
|
|
@@ -1465,7 +1466,7 @@ Requires a <code><ConfirmProvider></code> ancestor.</p>
|
|
|
1465
1466
|
|
|
1466
1467
|
|
|
1467
1468
|
|
|
1468
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>initial?</code></td><td align="left"><code>AuthUserRecord</code></td></tr></tbody></table></div>
|
|
1469
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>initial?</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#authuserrecord"><code>AuthUserRecord</code></a></td></tr></tbody></table></div>
|
|
1469
1470
|
<h4 id="returns-20">Returns</h4>
|
|
1470
1471
|
<p><a href="#authusereditorstate"><code>AuthUserEditorState</code></a></p>
|
|
1471
1472
|
<hr>
|
|
@@ -1512,7 +1513,7 @@ Requires a <code><ConfirmProvider></code> ancestor.</p>
|
|
|
1512
1513
|
|
|
1513
1514
|
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>state</code></td><td align="left"><a href="#authusereditorstate"><code>AuthUserEditorState</code></a></td></tr></tbody></table></div>
|
|
1514
1515
|
<h4 id="returns-22">Returns</h4>
|
|
1515
|
-
<p><code>CreateUserRequest</code></p>
|
|
1516
|
+
<p><a href="/docs/pyric-auth-reference-api/#createuserrequest"><code>CreateUserRequest</code></a></p>
|
|
1516
1517
|
<hr>
|
|
1517
1518
|
<p><a id="toupdaterequest-1"></a></p>
|
|
1518
1519
|
<h3 id="toupdaterequest">toUpdateRequest()</h3>
|
|
@@ -1536,7 +1537,7 @@ from the initial record. A cleared displayName maps to <code>null</code>
|
|
|
1536
1537
|
|
|
1537
1538
|
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>state</code></td><td align="left"><a href="#authusereditorstate"><code>AuthUserEditorState</code></a></td></tr></tbody></table></div>
|
|
1538
1539
|
<h4 id="returns-23">Returns</h4>
|
|
1539
|
-
<p><code>UpdateUserRequest</code></p>
|
|
1540
|
+
<p><a href="/docs/pyric-auth-reference-api/#updateuserrequest"><code>UpdateUserRequest</code></a></p>
|
|
1540
1541
|
<hr>
|
|
1541
1542
|
<p><a id="useauthapi"></a></p>
|
|
1542
1543
|
<h3 id="useauthapi">useAuthApi()</h3>
|
|
@@ -1573,7 +1574,7 @@ installs and cleanly uninstalls. Sandbox-only: the controller throws
|
|
|
1573
1574
|
|
|
1574
1575
|
|
|
1575
1576
|
|
|
1576
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><code>Auth</code></td></tr></tbody></table></div>
|
|
1577
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#auth"><code>Auth</code></a></td></tr></tbody></table></div>
|
|
1577
1578
|
<h4 id="returns-25">Returns</h4>
|
|
1578
1579
|
<p><a href="#useauthflowhelperresult"><code>UseAuthFlowHelperResult</code></a></p>
|
|
1579
1580
|
<hr>
|
|
@@ -1601,7 +1602,7 @@ hook surfaces that via <code>error</code>, same as <code>useAuthUsers</code>).</
|
|
|
1601
1602
|
|
|
1602
1603
|
|
|
1603
1604
|
|
|
1604
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><code>Auth</code></td></tr></tbody></table></div>
|
|
1605
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#auth"><code>Auth</code></a></td></tr></tbody></table></div>
|
|
1605
1606
|
<h4 id="returns-26">Returns</h4>
|
|
1606
1607
|
<p><a href="#useauthproviderconfigresult"><code>UseAuthProviderConfigResult</code></a></p>
|
|
1607
1608
|
<hr>
|
|
@@ -1658,7 +1659,7 @@ hook surfaces that via <code>error</code>).</p>
|
|
|
1658
1659
|
|
|
1659
1660
|
|
|
1660
1661
|
|
|
1661
|
-
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><code>Auth</code></td></tr></tbody></table></div>
|
|
1662
|
+
<table><thead><tr><th align="left">Parameter</th><th align="left">Type</th></tr></thead><tbody><tr><td align="left"><code>auth</code></td><td align="left"><a href="/docs/pyric-auth-reference-api/#auth"><code>Auth</code></a></td></tr></tbody></table></div>
|
|
1662
1663
|
<h4 id="returns-28">Returns</h4>
|
|
1663
1664
|
<p><a href="#useauthusersresult"><code>UseAuthUsersResult</code></a></p>
|
|
1664
1665
|
<hr>
|