@pyric/cli 0.1.0-alpha.30.1 → 0.1.0-alpha.31
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/dist/assurance/.generated/conformance-verdicts.d.ts +111 -40
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
- package/dist/assurance/.generated/conformance-verdicts.js +111 -40
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
- package/dist/assurance/capabilities.d.ts.map +1 -1
- package/dist/assurance/capabilities.js +12 -14
- package/dist/assurance/capabilities.js.map +1 -1
- package/dist/bounded-request.d.ts +27 -5
- package/dist/bounded-request.d.ts.map +1 -1
- package/dist/bounded-request.js +48 -4
- package/dist/bounded-request.js.map +1 -1
- package/dist/bridge/client/bridge-url.d.ts +5 -1
- package/dist/bridge/client/bridge-url.d.ts.map +1 -1
- package/dist/bridge/client/bridge-url.js +5 -1
- package/dist/bridge/client/bridge-url.js.map +1 -1
- package/dist/bridge/client/bridge.d.ts +9 -3
- package/dist/bridge/client/bridge.d.ts.map +1 -1
- package/dist/bridge/client/bridge.js +17 -3
- package/dist/bridge/client/bridge.js.map +1 -1
- package/dist/bridge/frame-output.d.ts.map +1 -1
- package/dist/bridge/frame-output.js +46 -0
- package/dist/bridge/frame-output.js.map +1 -1
- package/dist/bridge/protocol.d.ts +10 -0
- package/dist/bridge/protocol.d.ts.map +1 -1
- package/dist/bridge/protocol.js +10 -0
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/server/in-process.d.ts +16 -7
- package/dist/bridge/server/in-process.d.ts.map +1 -1
- package/dist/bridge/server/in-process.js +51 -17
- package/dist/bridge/server/in-process.js.map +1 -1
- package/dist/bridge/server/peer.d.ts +18 -0
- package/dist/bridge/server/peer.d.ts.map +1 -1
- package/dist/bridge/server/peer.js +56 -1
- package/dist/bridge/server/peer.js.map +1 -1
- package/dist/bridge/server/standalone.d.ts +7 -2
- package/dist/bridge/server/standalone.d.ts.map +1 -1
- package/dist/bridge/server/standalone.js +27 -99
- package/dist/bridge/server/standalone.js.map +1 -1
- package/dist/bridge/surface/arguments/firestore.d.ts +6 -6
- package/dist/bridge/surface/arguments/sandbox.d.ts +0 -47
- package/dist/bridge/surface/arguments/sandbox.d.ts.map +1 -1
- package/dist/bridge/surface/arguments/sandbox.js +2 -59
- package/dist/bridge/surface/arguments/sandbox.js.map +1 -1
- package/dist/bridge/surface/arguments/seed.d.ts +61 -0
- package/dist/bridge/surface/arguments/seed.d.ts.map +1 -0
- package/dist/bridge/surface/arguments/seed.js +67 -0
- package/dist/bridge/surface/arguments/seed.js.map +1 -0
- package/dist/bridge/surface/arguments/storage.d.ts +2 -2
- package/dist/bridge/surface/context.d.ts +5 -10
- package/dist/bridge/surface/context.d.ts.map +1 -1
- package/dist/bridge/surface/context.js +11 -23
- package/dist/bridge/surface/context.js.map +1 -1
- package/dist/bridge/surface/database-instance-catalog.d.ts +0 -3
- package/dist/bridge/surface/database-instance-catalog.d.ts.map +1 -1
- package/dist/bridge/surface/database-instance-catalog.js +4 -27
- package/dist/bridge/surface/database-instance-catalog.js.map +1 -1
- package/dist/bridge/surface/database-instance-project.d.ts +5 -0
- package/dist/bridge/surface/database-instance-project.d.ts.map +1 -0
- package/dist/bridge/surface/database-instance-project.js +32 -0
- package/dist/bridge/surface/database-instance-project.js.map +1 -0
- package/dist/bridge/surface/database-instance.d.ts +3 -3
- package/dist/bridge/surface/database-instance.d.ts.map +1 -1
- package/dist/bridge/surface/database-instance.js +1 -2
- package/dist/bridge/surface/database-instance.js.map +1 -1
- package/dist/bridge/surface/functions-runtime.d.ts +2 -2
- package/dist/bridge/surface/functions-runtime.js +5 -5
- package/dist/bridge/surface/functions-runtime.js.map +1 -1
- package/dist/bridge/surface/held-identity.d.ts +4 -4
- package/dist/bridge/surface/held-identity.d.ts.map +1 -1
- package/dist/bridge/surface/held-identity.js.map +1 -1
- package/dist/bridge/surface/manifest.sandbox.generated.d.ts +3 -0
- package/dist/bridge/surface/manifest.sandbox.generated.d.ts.map +1 -0
- package/dist/bridge/surface/manifest.sandbox.generated.js +135 -0
- package/dist/bridge/surface/manifest.sandbox.generated.js.map +1 -0
- package/dist/bridge/surface/method-types.d.ts +48 -7
- package/dist/bridge/surface/method-types.d.ts.map +1 -1
- package/dist/bridge/surface/method-types.js +15 -0
- package/dist/bridge/surface/method-types.js.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts +2 -1
- package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/clearScripts.js +2 -1
- package/dist/bridge/surface/methods/ai_logic/clearScripts.js.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/script.d.ts +2 -1
- package/dist/bridge/surface/methods/ai_logic/script.d.ts.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/script.js +2 -1
- package/dist/bridge/surface/methods/ai_logic/script.js.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/scripts.d.ts +2 -1
- package/dist/bridge/surface/methods/ai_logic/scripts.d.ts.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/scripts.js +2 -1
- package/dist/bridge/surface/methods/ai_logic/scripts.js.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/status.d.ts +2 -1
- package/dist/bridge/surface/methods/ai_logic/status.d.ts.map +1 -1
- package/dist/bridge/surface/methods/ai_logic/status.js +1 -0
- package/dist/bridge/surface/methods/ai_logic/status.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/attach.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/attach.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/attach.js +1 -0
- package/dist/bridge/surface/methods/assurance/attach.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/canIUse.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/canIUse.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/canIUse.js +1 -0
- package/dist/bridge/surface/methods/assurance/canIUse.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/define.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/define.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/define.js +1 -0
- package/dist/bridge/surface/methods/assurance/define.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/export.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/export.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/export.js +1 -0
- package/dist/bridge/surface/methods/assurance/export.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/inspect.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/inspect.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/inspect.js +1 -0
- package/dist/bridge/surface/methods/assurance/inspect.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/map.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/map.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/map.js +1 -0
- package/dist/bridge/surface/methods/assurance/map.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/minimize.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/minimize.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/minimize.js +1 -0
- package/dist/bridge/surface/methods/assurance/minimize.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/propose.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/propose.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/propose.js +1 -0
- package/dist/bridge/surface/methods/assurance/propose.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/replaySession.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/replaySession.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/replaySession.js +1 -0
- package/dist/bridge/surface/methods/assurance/replaySession.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/run.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/run.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/run.js +1 -0
- package/dist/bridge/surface/methods/assurance/run.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/start.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/start.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/start.js +1 -0
- package/dist/bridge/surface/methods/assurance/start.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/testRulesHosted.js +1 -0
- package/dist/bridge/surface/methods/assurance/testRulesHosted.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/verify.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/verify.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/verify.js +1 -0
- package/dist/bridge/surface/methods/assurance/verify.js.map +1 -1
- package/dist/bridge/surface/methods/assurance/verifyCases.d.ts +1 -0
- package/dist/bridge/surface/methods/assurance/verifyCases.d.ts.map +1 -1
- package/dist/bridge/surface/methods/assurance/verifyCases.js +1 -0
- package/dist/bridge/surface/methods/assurance/verifyCases.js.map +1 -1
- package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/actAsAdmin.js +1 -0
- package/dist/bridge/surface/methods/auth/actAsAdmin.js.map +1 -1
- package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/actAsAnonymous.js +1 -0
- package/dist/bridge/surface/methods/auth/actAsAnonymous.js.map +1 -1
- package/dist/bridge/surface/methods/auth/createCustomToken.d.ts +1 -0
- package/dist/bridge/surface/methods/auth/createCustomToken.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/createCustomToken.js +1 -0
- package/dist/bridge/surface/methods/auth/createCustomToken.js.map +1 -1
- package/dist/bridge/surface/methods/auth/createUser.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/createUser.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/createUser.js +2 -1
- package/dist/bridge/surface/methods/auth/createUser.js.map +1 -1
- package/dist/bridge/surface/methods/auth/deleteUser.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/deleteUser.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/deleteUser.js +2 -1
- package/dist/bridge/surface/methods/auth/deleteUser.js.map +1 -1
- package/dist/bridge/surface/methods/auth/getUser.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/getUser.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/getUser.js +2 -1
- package/dist/bridge/surface/methods/auth/getUser.js.map +1 -1
- package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/getUserByEmail.js +2 -1
- package/dist/bridge/surface/methods/auth/getUserByEmail.js.map +1 -1
- package/dist/bridge/surface/methods/auth/impersonate.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/impersonate.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/impersonate.js +1 -0
- package/dist/bridge/surface/methods/auth/impersonate.js.map +1 -1
- package/dist/bridge/surface/methods/auth/importUsers.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/importUsers.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/importUsers.js +3 -2
- package/dist/bridge/surface/methods/auth/importUsers.js.map +1 -1
- package/dist/bridge/surface/methods/auth/listUsers.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/listUsers.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/listUsers.js +2 -1
- package/dist/bridge/surface/methods/auth/listUsers.js.map +1 -1
- package/dist/bridge/surface/methods/auth/sessions.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/sessions.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/sessions.js +1 -0
- package/dist/bridge/surface/methods/auth/sessions.js.map +1 -1
- package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/setCustomUserClaims.js +2 -1
- package/dist/bridge/surface/methods/auth/setCustomUserClaims.js.map +1 -1
- package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/signInAnonymously.js +1 -0
- package/dist/bridge/surface/methods/auth/signInAnonymously.js.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithCredential.js +1 -0
- package/dist/bridge/surface/methods/auth/signInWithCredential.js.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithCustomToken.js +1 -0
- package/dist/bridge/surface/methods/auth/signInWithCustomToken.js.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js +1 -0
- package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js.map +1 -1
- package/dist/bridge/surface/methods/auth/signOut.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/signOut.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/signOut.js +1 -0
- package/dist/bridge/surface/methods/auth/signOut.js.map +1 -1
- package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/takeAuthMail.js +1 -0
- package/dist/bridge/surface/methods/auth/takeAuthMail.js.map +1 -1
- package/dist/bridge/surface/methods/auth/updateUser.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/updateUser.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/updateUser.js +2 -1
- package/dist/bridge/surface/methods/auth/updateUser.js.map +1 -1
- package/dist/bridge/surface/methods/auth/useAppSession.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/useAppSession.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/useAppSession.js +1 -0
- package/dist/bridge/surface/methods/auth/useAppSession.js.map +1 -1
- package/dist/bridge/surface/methods/auth/whoami.d.ts +2 -1
- package/dist/bridge/surface/methods/auth/whoami.d.ts.map +1 -1
- package/dist/bridge/surface/methods/auth/whoami.js +1 -0
- package/dist/bridge/surface/methods/auth/whoami.js.map +1 -1
- package/dist/bridge/surface/methods/database/crawl.d.ts +2 -1
- package/dist/bridge/surface/methods/database/crawl.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/crawl.js +1 -0
- package/dist/bridge/surface/methods/database/crawl.js.map +1 -1
- package/dist/bridge/surface/methods/database/get.d.ts +2 -1
- package/dist/bridge/surface/methods/database/get.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/get.js +1 -0
- package/dist/bridge/surface/methods/database/get.js.map +1 -1
- package/dist/bridge/surface/methods/database/push.d.ts +2 -1
- package/dist/bridge/surface/methods/database/push.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/push.js +1 -0
- package/dist/bridge/surface/methods/database/push.js.map +1 -1
- package/dist/bridge/surface/methods/database/query.d.ts +2 -1
- package/dist/bridge/surface/methods/database/query.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/query.js +1 -0
- package/dist/bridge/surface/methods/database/query.js.map +1 -1
- package/dist/bridge/surface/methods/database/remove.d.ts +2 -1
- package/dist/bridge/surface/methods/database/remove.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/remove.js +1 -0
- package/dist/bridge/surface/methods/database/remove.js.map +1 -1
- package/dist/bridge/surface/methods/database/set.d.ts +2 -1
- package/dist/bridge/surface/methods/database/set.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/set.js +1 -0
- package/dist/bridge/surface/methods/database/set.js.map +1 -1
- package/dist/bridge/surface/methods/database/update.d.ts +2 -1
- package/dist/bridge/surface/methods/database/update.d.ts.map +1 -1
- package/dist/bridge/surface/methods/database/update.js +1 -0
- package/dist/bridge/surface/methods/database/update.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/addDoc.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/addDoc.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/addDoc.js +2 -1
- package/dist/bridge/surface/methods/firestore/addDoc.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/deleteDoc.js +2 -1
- package/dist/bridge/surface/methods/firestore/deleteDoc.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/discoverPaths.js +1 -0
- package/dist/bridge/surface/methods/firestore/discoverPaths.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts +7 -6
- package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/extractIndexes.js +1 -0
- package/dist/bridge/surface/methods/firestore/extractIndexes.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/findCollectionGroup.js +1 -0
- package/dist/bridge/surface/methods/firestore/findCollectionGroup.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts +6 -5
- package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js +1 -0
- package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts +6 -5
- package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/getCountFromServer.js +1 -0
- package/dist/bridge/surface/methods/firestore/getCountFromServer.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/getDoc.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/getDoc.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/getDoc.js +2 -1
- package/dist/bridge/surface/methods/firestore/getDoc.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/getDocs.d.ts +6 -5
- package/dist/bridge/surface/methods/firestore/getDocs.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/getDocs.js +2 -1
- package/dist/bridge/surface/methods/firestore/getDocs.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/setDoc.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/setDoc.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/setDoc.js +2 -1
- package/dist/bridge/surface/methods/firestore/setDoc.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/updateDoc.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/updateDoc.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/updateDoc.js +2 -1
- package/dist/bridge/surface/methods/firestore/updateDoc.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/writeBatch.d.ts +2 -1
- package/dist/bridge/surface/methods/firestore/writeBatch.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/writeBatch.js +2 -1
- package/dist/bridge/surface/methods/firestore/writeBatch.js.map +1 -1
- package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts +1 -0
- package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts.map +1 -1
- package/dist/bridge/surface/methods/firestore/writeIndexes.js +1 -0
- package/dist/bridge/surface/methods/firestore/writeIndexes.js.map +1 -1
- package/dist/bridge/surface/methods/functions/executions.d.ts +3 -2
- package/dist/bridge/surface/methods/functions/executions.d.ts.map +1 -1
- package/dist/bridge/surface/methods/functions/executions.js +2 -1
- package/dist/bridge/surface/methods/functions/executions.js.map +1 -1
- package/dist/bridge/surface/methods/functions/fire.d.ts +1 -0
- package/dist/bridge/surface/methods/functions/fire.d.ts.map +1 -1
- package/dist/bridge/surface/methods/functions/fire.js +6 -5
- package/dist/bridge/surface/methods/functions/fire.js.map +1 -1
- package/dist/bridge/surface/methods/functions/listTriggers.d.ts +2 -1
- package/dist/bridge/surface/methods/functions/listTriggers.d.ts.map +1 -1
- package/dist/bridge/surface/methods/functions/listTriggers.js +1 -0
- package/dist/bridge/surface/methods/functions/listTriggers.js.map +1 -1
- package/dist/bridge/surface/methods/messaging/deliveries.d.ts +2 -1
- package/dist/bridge/surface/methods/messaging/deliveries.d.ts.map +1 -1
- package/dist/bridge/surface/methods/messaging/deliveries.js +1 -0
- package/dist/bridge/surface/methods/messaging/deliveries.js.map +1 -1
- package/dist/bridge/surface/methods/messaging/send.d.ts +2 -1
- package/dist/bridge/surface/methods/messaging/send.d.ts.map +1 -1
- package/dist/bridge/surface/methods/messaging/send.js +2 -1
- package/dist/bridge/surface/methods/messaging/send.js.map +1 -1
- package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts +2 -1
- package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts.map +1 -1
- package/dist/bridge/surface/methods/messaging/subscribeToTopic.js +1 -0
- package/dist/bridge/surface/methods/messaging/subscribeToTopic.js.map +1 -1
- package/dist/bridge/surface/methods/messaging/tokens.d.ts +2 -1
- package/dist/bridge/surface/methods/messaging/tokens.d.ts.map +1 -1
- package/dist/bridge/surface/methods/messaging/tokens.js +1 -0
- package/dist/bridge/surface/methods/messaging/tokens.js.map +1 -1
- package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts +2 -1
- package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts.map +1 -1
- package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js +1 -0
- package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js.map +1 -1
- package/dist/bridge/surface/methods/registry.d.ts.map +1 -1
- package/dist/bridge/surface/methods/registry.js +2 -8
- package/dist/bridge/surface/methods/registry.js.map +1 -1
- package/dist/bridge/surface/methods/rules/explainDenial.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/explainDenial.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/explainDenial.js +1 -0
- package/dist/bridge/surface/methods/rules/explainDenial.js.map +1 -1
- package/dist/bridge/surface/methods/rules/getStdlib.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/getStdlib.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/getStdlib.js +1 -0
- package/dist/bridge/surface/methods/rules/getStdlib.js.map +1 -1
- package/dist/bridge/surface/methods/rules/lint.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/lint.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/lint.js +1 -0
- package/dist/bridge/surface/methods/rules/lint.js.map +1 -1
- package/dist/bridge/surface/methods/rules/listStdlib.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/listStdlib.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/listStdlib.js +1 -0
- package/dist/bridge/surface/methods/rules/listStdlib.js.map +1 -1
- package/dist/bridge/surface/methods/rules/set.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/set.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/set.js +1 -0
- package/dist/bridge/surface/methods/rules/set.js.map +1 -1
- package/dist/bridge/surface/methods/rules/simulate.d.ts +1 -0
- package/dist/bridge/surface/methods/rules/simulate.d.ts.map +1 -1
- package/dist/bridge/surface/methods/rules/simulate.js +1 -0
- package/dist/bridge/surface/methods/rules/simulate.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/activity.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/activity.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/activity.js +2 -1
- package/dist/bridge/surface/methods/sandbox/activity.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/advanceClock.js +1 -0
- package/dist/bridge/surface/methods/sandbox/advanceClock.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/apply.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/apply.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/apply.js +1 -0
- package/dist/bridge/surface/methods/sandbox/apply.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/checkpoint.js +1 -0
- package/dist/bridge/surface/methods/sandbox/checkpoint.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/deleteCapture.js +1 -1
- package/dist/bridge/surface/methods/sandbox/deleteCapture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js +1 -0
- package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/diff.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/diff.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/diff.js +1 -0
- package/dist/bridge/surface/methods/sandbox/diff.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/discard.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/discard.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/discard.js +1 -0
- package/dist/bridge/surface/methods/sandbox/discard.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/events.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/events.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/events.js +2 -1
- package/dist/bridge/surface/methods/sandbox/events.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/exportFixture.js +1 -0
- package/dist/bridge/surface/methods/sandbox/exportFixture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/fork.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/fork.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/fork.js +1 -0
- package/dist/bridge/surface/methods/sandbox/fork.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/inspect.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/inspect.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/inspect.js +2 -1
- package/dist/bridge/surface/methods/sandbox/inspect.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listBranches.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/listBranches.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listBranches.js +1 -0
- package/dist/bridge/surface/methods/sandbox/listBranches.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listCaptures.js +1 -1
- package/dist/bridge/surface/methods/sandbox/listCaptures.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listCheckpoints.js +1 -0
- package/dist/bridge/surface/methods/sandbox/listCheckpoints.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listeners.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/listeners.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/listeners.js +1 -0
- package/dist/bridge/surface/methods/sandbox/listeners.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/openCapture.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/openCapture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/openCapture.js +1 -1
- package/dist/bridge/surface/methods/sandbox/openCapture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/promote.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/promote.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/promote.js +1 -0
- package/dist/bridge/surface/methods/sandbox/promote.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts +3 -2
- package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/renameCapture.js +1 -1
- package/dist/bridge/surface/methods/sandbox/renameCapture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/reset.d.ts +3 -2
- package/dist/bridge/surface/methods/sandbox/reset.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/reset.js +1 -0
- package/dist/bridge/surface/methods/sandbox/reset.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/resetClock.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/resetClock.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/resetClock.js +1 -0
- package/dist/bridge/surface/methods/sandbox/resetClock.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/restore.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/restore.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/restore.js +1 -0
- package/dist/bridge/surface/methods/sandbox/restore.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/saveCapture.js +1 -1
- package/dist/bridge/surface/methods/sandbox/saveCapture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/seed.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/seed.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/seed.js +3 -2
- package/dist/bridge/surface/methods/sandbox/seed.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts +1 -0
- package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/seedFromFixture.js +1 -0
- package/dist/bridge/surface/methods/sandbox/seedFromFixture.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox/setClock.d.ts +2 -1
- package/dist/bridge/surface/methods/sandbox/setClock.d.ts.map +1 -1
- package/dist/bridge/surface/methods/sandbox/setClock.js +1 -0
- package/dist/bridge/surface/methods/sandbox/setClock.js.map +1 -1
- package/dist/bridge/surface/methods/sandbox-registry.d.ts +6 -0
- package/dist/bridge/surface/methods/sandbox-registry.d.ts.map +1 -0
- package/dist/bridge/surface/methods/sandbox-registry.js +21 -0
- package/dist/bridge/surface/methods/sandbox-registry.js.map +1 -0
- package/dist/bridge/surface/methods/storage/deleteObject.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/deleteObject.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/deleteObject.js +1 -0
- package/dist/bridge/surface/methods/storage/deleteObject.js.map +1 -1
- package/dist/bridge/surface/methods/storage/getBytes.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/getBytes.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/getBytes.js +1 -0
- package/dist/bridge/surface/methods/storage/getBytes.js.map +1 -1
- package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/getDownloadURL.js +1 -0
- package/dist/bridge/surface/methods/storage/getDownloadURL.js.map +1 -1
- package/dist/bridge/surface/methods/storage/getMetadata.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/getMetadata.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/getMetadata.js +1 -0
- package/dist/bridge/surface/methods/storage/getMetadata.js.map +1 -1
- package/dist/bridge/surface/methods/storage/listAll.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/listAll.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/listAll.js +1 -0
- package/dist/bridge/surface/methods/storage/listAll.js.map +1 -1
- package/dist/bridge/surface/methods/storage/provision.d.ts +1 -0
- package/dist/bridge/surface/methods/storage/provision.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/provision.js +1 -0
- package/dist/bridge/surface/methods/storage/provision.js.map +1 -1
- package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts +2 -1
- package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/setCrossServiceIam.js +1 -0
- package/dist/bridge/surface/methods/storage/setCrossServiceIam.js.map +1 -1
- package/dist/bridge/surface/methods/storage/status.d.ts +1 -0
- package/dist/bridge/surface/methods/storage/status.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/status.js +1 -0
- package/dist/bridge/surface/methods/storage/status.js.map +1 -1
- package/dist/bridge/surface/methods/storage/updateMetadata.d.ts +6 -5
- package/dist/bridge/surface/methods/storage/updateMetadata.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/updateMetadata.js +1 -0
- package/dist/bridge/surface/methods/storage/updateMetadata.js.map +1 -1
- package/dist/bridge/surface/methods/storage/uploadBytes.d.ts +1 -0
- package/dist/bridge/surface/methods/storage/uploadBytes.d.ts.map +1 -1
- package/dist/bridge/surface/methods/storage/uploadBytes.js +1 -0
- package/dist/bridge/surface/methods/storage/uploadBytes.js.map +1 -1
- package/dist/bridge/surface/render/discriminator-schemas.d.ts +2 -2
- package/dist/bridge/surface/request-instant.d.ts +2 -2
- package/dist/bridge/surface/request-instant.d.ts.map +1 -1
- package/dist/bridge/surface/request-instant.js.map +1 -1
- package/dist/bridge/surface/rules-engines/database.d.ts.map +1 -1
- package/dist/bridge/surface/rules-engines/database.js +1 -2
- package/dist/bridge/surface/rules-engines/database.js.map +1 -1
- package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts +38 -0
- package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts.map +1 -0
- package/dist/bridge/surface/rules-engines/storage-request-resource.js +246 -0
- package/dist/bridge/surface/rules-engines/storage-request-resource.js.map +1 -0
- package/dist/bridge/surface/rules-engines/storage.d.ts.map +1 -1
- package/dist/bridge/surface/rules-engines/storage.js +44 -65
- package/dist/bridge/surface/rules-engines/storage.js.map +1 -1
- package/dist/bridge/surface/sandbox-context.d.ts +25 -0
- package/dist/bridge/surface/sandbox-context.d.ts.map +1 -0
- package/dist/bridge/surface/sandbox-context.js +29 -0
- package/dist/bridge/surface/sandbox-context.js.map +1 -0
- package/dist/bridge/surface/service-handles.d.ts +6 -6
- package/dist/bridge/surface/service-handles.d.ts.map +1 -1
- package/dist/bridge/surface/service-handles.js +7 -4
- package/dist/bridge/surface/service-handles.js.map +1 -1
- package/dist/bridge/surface/sign-in.d.ts +2 -2
- package/dist/bridge/surface/sign-in.d.ts.map +1 -1
- package/dist/bridge/surface/sign-in.js +1 -1
- package/dist/bridge/surface/sign-in.js.map +1 -1
- package/dist/bridge/surface/storage-rules.d.ts +2 -9
- package/dist/bridge/surface/storage-rules.d.ts.map +1 -1
- package/dist/bridge/surface/storage-rules.js +0 -10
- package/dist/bridge/surface/storage-rules.js.map +1 -1
- package/dist/bridge/surface/stored-identity.d.ts +3 -3
- package/dist/bridge/surface/stored-identity.d.ts.map +1 -1
- package/dist/bridge/surface/stored-identity.js.map +1 -1
- package/dist/bridge/surface/types.d.ts +29 -8
- package/dist/bridge/surface/types.d.ts.map +1 -1
- package/dist/cli/firebase-json.d.ts +35 -7
- package/dist/cli/firebase-json.d.ts.map +1 -1
- package/dist/cli/firebase-json.js +13 -0
- package/dist/cli/firebase-json.js.map +1 -1
- package/dist/cli/firestore-indexes.d.ts.map +1 -1
- package/dist/cli/firestore-indexes.js +2 -1
- package/dist/cli/firestore-indexes.js.map +1 -1
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +44 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/public-dir-hint.d.ts +8 -0
- package/dist/cli/public-dir-hint.d.ts.map +1 -0
- package/dist/cli/public-dir-hint.js +30 -0
- package/dist/cli/public-dir-hint.js.map +1 -0
- package/dist/cli/run.d.ts +8 -2
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +28 -5
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/sandbox-runner.d.ts.map +1 -1
- package/dist/cli/sandbox-runner.js +11 -2
- package/dist/cli/sandbox-runner.js.map +1 -1
- package/dist/cli/serve-diagnostics.d.ts.map +1 -1
- package/dist/cli/serve-diagnostics.js +11 -1
- package/dist/cli/serve-diagnostics.js.map +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +25 -24
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/snapshot.d.ts.map +1 -1
- package/dist/cli/snapshot.js +13 -5
- package/dist/cli/snapshot.js.map +1 -1
- package/dist/cli/surface-method-runner.js +1 -1
- package/dist/cli/surface-method-runner.js.map +1 -1
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +10 -1
- package/dist/cli/verify.js.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js +19 -3
- package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
- package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use.js +1 -1
- package/dist/conformance/.generated/can-i-use.js.map +1 -1
- package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
- package/dist/conformance/.generated/conformance-docs.js +1 -1
- package/dist/conformance/.generated/conformance-docs.js.map +1 -1
- package/dist/conformance/.generated/served-availability.d.ts.map +1 -1
- package/dist/conformance/.generated/served-availability.js +1 -1
- package/dist/conformance/.generated/served-availability.js.map +1 -1
- package/dist/discover/merge.d.ts.map +1 -1
- package/dist/discover/merge.js +11 -3
- package/dist/discover/merge.js.map +1 -1
- package/dist/functions/child-protocol.d.ts +43 -0
- package/dist/functions/child-protocol.d.ts.map +1 -0
- package/dist/functions/child-protocol.js +14 -0
- package/dist/functions/child-protocol.js.map +1 -0
- package/dist/functions/child.d.ts +2 -0
- package/dist/functions/child.d.ts.map +1 -0
- package/dist/functions/child.js +92 -0
- package/dist/functions/child.js.map +1 -0
- package/dist/{functions-rtdb → functions}/development-runtime.d.ts +5 -4
- package/dist/functions/development-runtime.d.ts.map +1 -0
- package/dist/{functions-rtdb → functions}/development-runtime.js +2 -2
- package/dist/functions/development-runtime.js.map +1 -0
- package/dist/functions/endpoints.d.ts +39 -0
- package/dist/functions/endpoints.d.ts.map +1 -0
- package/dist/functions/endpoints.js +48 -0
- package/dist/functions/endpoints.js.map +1 -0
- package/dist/functions/events.d.ts.map +1 -0
- package/dist/functions/events.js.map +1 -0
- package/dist/functions/execution-log.d.ts.map +1 -0
- package/dist/functions/execution-log.js.map +1 -0
- package/dist/functions/module-loader.d.ts.map +1 -0
- package/dist/functions/module-loader.js.map +1 -0
- package/dist/functions/project.d.ts +7 -0
- package/dist/functions/project.d.ts.map +1 -0
- package/dist/{functions-rtdb → functions}/project.js +1 -1
- package/dist/functions/project.js.map +1 -0
- package/dist/functions/rtdb/child-runtime.d.ts +23 -0
- package/dist/functions/rtdb/child-runtime.d.ts.map +1 -0
- package/dist/functions/rtdb/child-runtime.js +102 -0
- package/dist/functions/rtdb/child-runtime.js.map +1 -0
- package/dist/functions/rtdb/delivery.d.ts.map +1 -0
- package/dist/functions/rtdb/delivery.js.map +1 -0
- package/dist/{functions-rtdb → functions/rtdb}/discovery.d.ts +3 -20
- package/dist/functions/rtdb/discovery.d.ts.map +1 -0
- package/dist/{functions-rtdb → functions/rtdb}/discovery.js +6 -21
- package/dist/functions/rtdb/discovery.js.map +1 -0
- package/dist/functions/rtdb/event.d.ts.map +1 -0
- package/dist/functions/rtdb/event.js.map +1 -0
- package/dist/functions/rtdb/execution.d.ts.map +1 -0
- package/dist/functions/rtdb/execution.js.map +1 -0
- package/dist/functions/rtdb/in-memory-delivery.d.ts.map +1 -0
- package/dist/functions/rtdb/in-memory-delivery.js.map +1 -0
- package/dist/functions/rtdb/projection.d.ts.map +1 -0
- package/dist/functions/rtdb/projection.js.map +1 -0
- package/dist/functions/rtdb/reference-pattern.d.ts.map +1 -0
- package/dist/functions/rtdb/reference-pattern.js.map +1 -0
- package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.d.ts +1 -1
- package/dist/functions/rtdb/remote-delivery.d.ts.map +1 -0
- package/dist/functions/rtdb/remote-delivery.js.map +1 -0
- package/dist/{functions-rtdb/child.d.ts → functions/spawn.d.ts} +16 -38
- package/dist/functions/spawn.d.ts.map +1 -0
- package/dist/functions/spawn.js +166 -0
- package/dist/functions/spawn.js.map +1 -0
- package/dist/functions/unsupported.d.ts +23 -0
- package/dist/functions/unsupported.d.ts.map +1 -0
- package/dist/functions/unsupported.js +25 -0
- package/dist/functions/unsupported.js.map +1 -0
- package/dist/google-endpoints.d.ts +9 -2
- package/dist/google-endpoints.d.ts.map +1 -1
- package/dist/google-endpoints.js +72 -3
- package/dist/google-endpoints.js.map +1 -1
- package/dist/next/bridge-import-loader.d.ts +9 -0
- package/dist/next/bridge-import-loader.d.ts.map +1 -0
- package/dist/next/bridge-import-loader.js +45 -0
- package/dist/next/bridge-import-loader.js.map +1 -0
- package/dist/next/bridge-imports.d.ts +26 -0
- package/dist/next/bridge-imports.d.ts.map +1 -0
- package/dist/next/bridge-imports.js +90 -0
- package/dist/next/bridge-imports.js.map +1 -0
- package/dist/next/client-aliases.d.ts +13 -5
- package/dist/next/client-aliases.d.ts.map +1 -1
- package/dist/next/client-aliases.js +14 -27
- package/dist/next/client-aliases.js.map +1 -1
- package/dist/next/guard.d.ts +3 -2
- package/dist/next/guard.d.ts.map +1 -1
- package/dist/next/guard.js +28 -10
- package/dist/next/guard.js.map +1 -1
- package/dist/next/turbopack-config.d.ts +9 -0
- package/dist/next/turbopack-config.d.ts.map +1 -1
- package/dist/next/turbopack-config.js +21 -0
- package/dist/next/turbopack-config.js.map +1 -1
- package/dist/next/webpack-config.d.ts +9 -0
- package/dist/next/webpack-config.d.ts.map +1 -1
- package/dist/next/webpack-config.js +18 -0
- package/dist/next/webpack-config.js.map +1 -1
- package/dist/next/with-pyric.d.ts +1 -0
- package/dist/next/with-pyric.d.ts.map +1 -1
- package/dist/next/with-pyric.js +25 -0
- package/dist/next/with-pyric.js.map +1 -1
- package/dist/register/activation.d.ts +16 -0
- package/dist/register/activation.d.ts.map +1 -0
- package/dist/register/activation.js +22 -0
- package/dist/register/activation.js.map +1 -0
- package/dist/register/app-bridge-admin-app-check.d.ts.map +1 -1
- package/dist/register/app-bridge-admin-app-check.js +3 -1
- package/dist/register/app-bridge-admin-app-check.js.map +1 -1
- package/dist/register/child-process-guard.d.ts +43 -0
- package/dist/register/child-process-guard.d.ts.map +1 -0
- package/dist/register/child-process-guard.js +165 -0
- package/dist/register/child-process-guard.js.map +1 -0
- package/dist/register/client/bootstrap.js +6 -1
- package/dist/register/client/bootstrap.js.map +1 -1
- package/dist/register/connect-prototypes.d.ts +9 -0
- package/dist/register/connect-prototypes.d.ts.map +1 -1
- package/dist/register/connect-prototypes.js +11 -0
- package/dist/register/connect-prototypes.js.map +1 -1
- package/dist/register/hooks.d.ts +7 -1
- package/dist/register/hooks.d.ts.map +1 -1
- package/dist/register/hooks.js +44 -2
- package/dist/register/hooks.js.map +1 -1
- package/dist/register/index.d.ts.map +1 -1
- package/dist/register/index.js +93 -23
- package/dist/register/index.js.map +1 -1
- package/dist/register/mapping.d.ts +33 -0
- package/dist/register/mapping.d.ts.map +1 -1
- package/dist/register/mapping.js +45 -3
- package/dist/register/mapping.js.map +1 -1
- package/dist/register/net-guard.d.ts +17 -0
- package/dist/register/net-guard.d.ts.map +1 -1
- package/dist/register/net-guard.js +118 -41
- package/dist/register/net-guard.js.map +1 -1
- package/dist/register/package-identity.d.ts +16 -0
- package/dist/register/package-identity.d.ts.map +1 -0
- package/dist/register/package-identity.js +97 -0
- package/dist/register/package-identity.js.map +1 -0
- package/dist/register/swap-or-stop.d.ts +27 -0
- package/dist/register/swap-or-stop.d.ts.map +1 -0
- package/dist/register/swap-or-stop.js +170 -0
- package/dist/register/swap-or-stop.js.map +1 -0
- package/dist/register/worker-guard.d.ts +20 -0
- package/dist/register/worker-guard.d.ts.map +1 -0
- package/dist/register/worker-guard.js +77 -0
- package/dist/register/worker-guard.js.map +1 -0
- package/dist/remote/resolve-host.d.ts +9 -0
- package/dist/remote/resolve-host.d.ts.map +1 -1
- package/dist/remote/resolve-host.js +13 -2
- package/dist/remote/resolve-host.js.map +1 -1
- package/dist/serve/ai-diagnostics-relay.d.ts +4 -1
- package/dist/serve/ai-diagnostics-relay.d.ts.map +1 -1
- package/dist/serve/ai-diagnostics-relay.js +3 -0
- package/dist/serve/ai-diagnostics-relay.js.map +1 -1
- package/dist/serve/ai-proxy.d.ts +23 -1
- package/dist/serve/ai-proxy.d.ts.map +1 -1
- package/dist/serve/ai-proxy.js +70 -20
- package/dist/serve/ai-proxy.js.map +1 -1
- package/dist/serve/ai-terminal-blocks.d.ts +6 -4
- package/dist/serve/ai-terminal-blocks.d.ts.map +1 -1
- package/dist/serve/ai-terminal-blocks.js +7 -4
- package/dist/serve/ai-terminal-blocks.js.map +1 -1
- package/dist/serve/ai-terminal-text.d.ts +8 -0
- package/dist/serve/ai-terminal-text.d.ts.map +1 -1
- package/dist/serve/ai-terminal-text.js +10 -0
- package/dist/serve/ai-terminal-text.js.map +1 -1
- package/dist/serve/app-ports.d.ts +48 -0
- package/dist/serve/app-ports.d.ts.map +1 -0
- package/dist/serve/app-ports.js +82 -0
- package/dist/serve/app-ports.js.map +1 -0
- package/dist/serve/bridge-mount.d.ts +13 -0
- package/dist/serve/bridge-mount.d.ts.map +1 -1
- package/dist/serve/bridge-mount.js +28 -8
- package/dist/serve/bridge-mount.js.map +1 -1
- package/dist/serve/bundler.d.ts +6 -0
- package/dist/serve/bundler.d.ts.map +1 -1
- package/dist/serve/bundler.js +78 -26
- package/dist/serve/bundler.js.map +1 -1
- package/dist/serve/discovery.d.ts +17 -3
- package/dist/serve/discovery.d.ts.map +1 -1
- package/dist/serve/discovery.js +199 -63
- package/dist/serve/discovery.js.map +1 -1
- package/dist/serve/entries/ai.d.ts.map +1 -1
- package/dist/serve/entries/ai.js +28 -26
- package/dist/serve/entries/ai.js.map +1 -1
- package/dist/serve/entries/auth.d.ts.map +1 -1
- package/dist/serve/entries/auth.js +19 -1
- package/dist/serve/entries/auth.js.map +1 -1
- package/dist/serve/entries/firestore-surface.d.ts +1 -0
- package/dist/serve/entries/firestore-surface.d.ts.map +1 -1
- package/dist/serve/entries/firestore-surface.js +1 -0
- package/dist/serve/entries/firestore-surface.js.map +1 -1
- package/dist/serve/entries/init-payload.d.ts +9 -2
- package/dist/serve/entries/init-payload.d.ts.map +1 -1
- package/dist/serve/entries/init-payload.js +25 -5
- package/dist/serve/entries/init-payload.js.map +1 -1
- package/dist/serve/entries/moved-host.d.ts +18 -0
- package/dist/serve/entries/moved-host.d.ts.map +1 -0
- package/dist/serve/entries/moved-host.js +14 -0
- package/dist/serve/entries/moved-host.js.map +1 -0
- package/dist/serve/entries/runtime-origin.d.ts +6 -0
- package/dist/serve/entries/runtime-origin.d.ts.map +1 -1
- package/dist/serve/entries/runtime-origin.js.map +1 -1
- package/dist/serve/entries/unsupported/firestore.d.ts +0 -1
- package/dist/serve/entries/unsupported/firestore.d.ts.map +1 -1
- package/dist/serve/entries/unsupported/firestore.js +0 -1
- package/dist/serve/entries/unsupported/firestore.js.map +1 -1
- package/dist/serve/entries/worker-runtime.d.ts.map +1 -1
- package/dist/serve/entries/worker-runtime.js +19 -7
- package/dist/serve/entries/worker-runtime.js.map +1 -1
- package/dist/serve/firebase-module-swap.d.ts +19 -2
- package/dist/serve/firebase-module-swap.d.ts.map +1 -1
- package/dist/serve/firebase-module-swap.js +92 -16
- package/dist/serve/firebase-module-swap.js.map +1 -1
- package/dist/serve/gemini-proxy.d.ts +40 -0
- package/dist/serve/gemini-proxy.d.ts.map +1 -0
- package/dist/serve/gemini-proxy.js +105 -0
- package/dist/serve/gemini-proxy.js.map +1 -0
- package/dist/serve/hosted/runtime.d.ts.map +1 -1
- package/dist/serve/hosted/runtime.js +10 -3
- package/dist/serve/hosted/runtime.js.map +1 -1
- package/dist/serve/namespace.d.ts +16 -0
- package/dist/serve/namespace.d.ts.map +1 -1
- package/dist/serve/namespace.js +87 -27
- package/dist/serve/namespace.js.map +1 -1
- package/dist/serve/repro/compare.d.ts +2 -1
- package/dist/serve/repro/compare.d.ts.map +1 -1
- package/dist/serve/repro/compare.js +9 -1
- package/dist/serve/repro/compare.js.map +1 -1
- package/dist/serve/rules-fixture-check.d.ts.map +1 -1
- package/dist/serve/rules-fixture-check.js +22 -10
- package/dist/serve/rules-fixture-check.js.map +1 -1
- package/dist/serve/rules.d.ts +35 -9
- package/dist/serve/rules.d.ts.map +1 -1
- package/dist/serve/rules.js +72 -21
- package/dist/serve/rules.js.map +1 -1
- package/dist/serve/sandbox-session.d.ts +6 -0
- package/dist/serve/sandbox-session.d.ts.map +1 -1
- package/dist/serve/sandbox-session.js +11 -3
- package/dist/serve/sandbox-session.js.map +1 -1
- package/dist/serve/server.d.ts +10 -2
- package/dist/serve/server.d.ts.map +1 -1
- package/dist/serve/server.js +24 -4
- package/dist/serve/server.js.map +1 -1
- package/dist/serve/site-ui/_astro/{RulesCodeEditor.Cp_-FK3b.js → RulesCodeEditor.D-eQLCvu.js} +1 -1
- package/dist/serve/site-ui/_astro/app.BjQiEBOY.js +1 -0
- package/dist/serve/site-ui/_astro/app.C84Qr10v.js +151 -0
- package/dist/serve/site-ui/_astro/{chess-showcase.CVhCNUi_.js → chess-showcase.CsH1s4g7.js} +1 -1
- package/dist/serve/site-ui/_astro/{example-runtime.zC1l-Yka.js → example-runtime.CTp8mh7I.js} +1 -1
- package/dist/serve/site-ui/_astro/sandbox-controls.DI8MTU3L.js +1725 -0
- package/dist/serve/site-ui/_astro/{seed.B4vza_Bv.js → seed.BvtbLu-q.js} +1 -1
- package/dist/serve/site-ui/_astro/writes.D8gcuovU.js +1 -0
- package/dist/serve/site-ui/auth/index.html +1 -1
- package/dist/serve/site-ui/docs/ai-compat/index.html +66 -8
- package/dist/serve/site-ui/docs/ai-compat.md +73 -7
- package/dist/serve/site-ui/docs/app-check-compat/index.html +102 -26
- package/dist/serve/site-ui/docs/app-check-compat.md +107 -25
- package/dist/serve/site-ui/docs/auth-compat/index.html +33 -21
- package/dist/serve/site-ui/docs/auth-compat.md +35 -20
- package/dist/serve/site-ui/docs/build/ai-logic/index.html +29 -6
- package/dist/serve/site-ui/docs/build/ai-logic.md +30 -3
- package/dist/serve/site-ui/docs/conformance-scores/index.html +2 -2
- package/dist/serve/site-ui/docs/conformance-scores.md +2 -2
- package/dist/serve/site-ui/docs/database-compat/index.html +113 -49
- package/dist/serve/site-ui/docs/database-compat.md +118 -48
- package/dist/serve/site-ui/docs/firestore-compat/index.html +144 -37
- package/dist/serve/site-ui/docs/firestore-compat.md +149 -36
- package/dist/serve/site-ui/docs/firestore-swift-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/firestore-swift-compat.md +1 -1
- package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +12 -12
- package/dist/serve/site-ui/docs/functions-rtdb-compat.md +12 -12
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works.md +1 -1
- package/dist/serve/site-ui/docs/get-started/node-host/index.html +1 -0
- package/dist/serve/site-ui/docs/get-started/node-host.md +2 -0
- package/dist/serve/site-ui/docs/index.json +55 -5
- package/dist/serve/site-ui/docs/messaging-compat/index.html +2 -2
- package/dist/serve/site-ui/docs/messaging-compat.md +2 -2
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +3 -1
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api.md +2 -0
- package/dist/serve/site-ui/docs/pyric-app-check-reference-api/index.html +11 -3
- package/dist/serve/site-ui/docs/pyric-app-check-reference-api.md +13 -3
- package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api.md +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +1 -0
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api.md +1 -0
- package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api.md +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +17 -9
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api.md +13 -11
- package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +8 -4
- package/dist/serve/site-ui/docs/pyric-database-reference-api.md +9 -4
- package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +15 -4
- package/dist/serve/site-ui/docs/pyric-rules-reference-api.md +21 -4
- package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +7 -1
- package/dist/serve/site-ui/docs/pyric-storage-reference-api.md +1 -0
- package/dist/serve/site-ui/docs/reference/cli/index.html +4 -3
- package/dist/serve/site-ui/docs/reference/cli.md +5 -3
- package/dist/serve/site-ui/docs/rules-compat/index.html +150 -49
- package/dist/serve/site-ui/docs/rules-compat.md +149 -51
- package/dist/serve/site-ui/docs/storage-compat/index.html +20 -20
- package/dist/serve/site-ui/docs/storage-compat.md +20 -20
- package/dist/serve/site-ui/docs/tutorial/index.html +12 -1
- package/dist/serve/site-ui/docs/tutorial.md +13 -1
- package/dist/serve/site-ui/examples/chess/index.html +1 -1
- package/dist/serve/site-ui/firestore/index.html +1 -1
- package/dist/serve/site-ui/rtdb/index.html +1 -1
- package/dist/serve/site-ui/settings/index.html +1 -1
- package/dist/serve/site-ui/storage/index.html +1 -1
- package/dist/serve/site-ui/studio/index.html +1 -1
- package/dist/serve/site-ui/traffic/index.html +1 -1
- package/dist/serve/vite-ai-config.d.ts +8 -0
- package/dist/serve/vite-ai-config.d.ts.map +1 -1
- package/dist/serve/vite-ai-config.js +16 -1
- package/dist/serve/vite-ai-config.js.map +1 -1
- package/dist/serve/vite-functions-development.d.ts +3 -3
- package/dist/serve/vite-functions-development.d.ts.map +1 -1
- package/dist/serve/vite-functions-development.js +1 -1
- package/dist/serve/vite-functions-development.js.map +1 -1
- package/dist/serve/vite-generation-bridge.d.ts +2 -2
- package/dist/serve/vite-generation-bridge.d.ts.map +1 -1
- package/dist/serve/vite-generation-functions.d.ts +3 -3
- package/dist/serve/vite-generation-functions.d.ts.map +1 -1
- package/dist/serve/vite-generation-functions.js +1 -1
- package/dist/serve/vite-generation-functions.js.map +1 -1
- package/dist/serve/vite-generation-middleware.d.ts +1 -1
- package/dist/serve/vite-generation-middleware.d.ts.map +1 -1
- package/dist/serve/vite-generation-middleware.js +36 -1
- package/dist/serve/vite-generation-middleware.js.map +1 -1
- package/dist/serve/vite-module-swap.d.ts.map +1 -1
- package/dist/serve/vite-module-swap.js +8 -0
- package/dist/serve/vite-module-swap.js.map +1 -1
- package/dist/serve/vite-page-runtime.d.ts.map +1 -1
- package/dist/serve/vite-page-runtime.js +7 -1
- package/dist/serve/vite-page-runtime.js.map +1 -1
- package/dist/serve/vite-rules-source.d.ts +1 -1
- package/dist/serve/vite-rules-source.d.ts.map +1 -1
- package/dist/serve/vite-rules-source.js +2 -4
- package/dist/serve/vite-rules-source.js.map +1 -1
- package/dist/serve/vite-sandbox-generation.d.ts +2 -2
- package/dist/serve/vite-sandbox-generation.d.ts.map +1 -1
- package/dist/serve/vite-sandbox-generation.js +4 -2
- package/dist/serve/vite-sandbox-generation.js.map +1 -1
- package/dist/serve/worker/ai-proxy-paths.d.ts +32 -0
- package/dist/serve/worker/ai-proxy-paths.d.ts.map +1 -0
- package/dist/serve/worker/ai-proxy-paths.js +20 -0
- package/dist/serve/worker/ai-proxy-paths.js.map +1 -0
- package/dist/serve/worker/client/ai.d.ts +3 -1
- package/dist/serve/worker/client/ai.d.ts.map +1 -1
- package/dist/serve/worker/client/ai.js +3 -0
- package/dist/serve/worker/client/ai.js.map +1 -1
- package/dist/serve/worker/client/auth.d.ts +29 -5
- package/dist/serve/worker/client/auth.d.ts.map +1 -1
- package/dist/serve/worker/client/auth.js +61 -11
- package/dist/serve/worker/client/auth.js.map +1 -1
- package/dist/serve/worker/client/clock.d.ts +0 -16
- package/dist/serve/worker/client/clock.d.ts.map +1 -1
- package/dist/serve/worker/client/clock.js +23 -10
- package/dist/serve/worker/client/clock.js.map +1 -1
- package/dist/serve/worker/client/firestore-reads.d.ts +12 -5
- package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -1
- package/dist/serve/worker/client/firestore-reads.js +47 -16
- package/dist/serve/worker/client/firestore-reads.js.map +1 -1
- package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -1
- package/dist/serve/worker/client/firestore-refs.js +4 -14
- package/dist/serve/worker/client/firestore-refs.js.map +1 -1
- package/dist/serve/worker/client/rtdb-connection-lifecycle.d.ts.map +1 -1
- package/dist/serve/worker/client/rtdb-connection-lifecycle.js +5 -0
- package/dist/serve/worker/client/rtdb-connection-lifecycle.js.map +1 -1
- package/dist/serve/worker/client/rtdb-snapshots.d.ts +7 -0
- package/dist/serve/worker/client/rtdb-snapshots.d.ts.map +1 -1
- package/dist/serve/worker/client/rtdb-snapshots.js +25 -1
- package/dist/serve/worker/client/rtdb-snapshots.js.map +1 -1
- package/dist/serve/worker/client/rtdb-value-validation.d.ts +21 -0
- package/dist/serve/worker/client/rtdb-value-validation.d.ts.map +1 -0
- package/dist/serve/worker/client/rtdb-value-validation.js +183 -0
- package/dist/serve/worker/client/rtdb-value-validation.js.map +1 -0
- package/dist/serve/worker/client/rtdb-writes.d.ts.map +1 -1
- package/dist/serve/worker/client/rtdb-writes.js +7 -0
- package/dist/serve/worker/client/rtdb-writes.js.map +1 -1
- package/dist/serve/worker/client/snapshots.d.ts +2 -0
- package/dist/serve/worker/client/snapshots.d.ts.map +1 -1
- package/dist/serve/worker/client/snapshots.js +13 -7
- package/dist/serve/worker/client/snapshots.js.map +1 -1
- package/dist/serve/worker/client/websocket-connection.d.ts +6 -0
- package/dist/serve/worker/client/websocket-connection.d.ts.map +1 -1
- package/dist/serve/worker/client/websocket-connection.js +32 -3
- package/dist/serve/worker/client/websocket-connection.js.map +1 -1
- package/dist/serve/worker/entry.js +2 -0
- package/dist/serve/worker/entry.js.map +1 -1
- package/dist/serve/worker/host/auth-credential-sign-in.d.ts +33 -0
- package/dist/serve/worker/host/auth-credential-sign-in.d.ts.map +1 -0
- package/dist/serve/worker/host/auth-credential-sign-in.js +70 -0
- package/dist/serve/worker/host/auth-credential-sign-in.js.map +1 -0
- package/dist/serve/worker/host/auth-reauthentication.js +3 -3
- package/dist/serve/worker/host/auth-reauthentication.js.map +1 -1
- package/dist/serve/worker/host/rules.d.ts +15 -1
- package/dist/serve/worker/host/rules.d.ts.map +1 -1
- package/dist/serve/worker/host/rules.js +43 -34
- package/dist/serve/worker/host/rules.js.map +1 -1
- package/dist/serve/worker/host/staged-sign-in-results.d.ts +24 -0
- package/dist/serve/worker/host/staged-sign-in-results.d.ts.map +1 -0
- package/dist/serve/worker/host/staged-sign-in-results.js +40 -0
- package/dist/serve/worker/host/staged-sign-in-results.js.map +1 -0
- package/dist/serve/worker/host/storage.d.ts.map +1 -1
- package/dist/serve/worker/host/storage.js +20 -12
- package/dist/serve/worker/host/storage.js.map +1 -1
- package/dist/serve/worker/host/subscriptions.d.ts.map +1 -1
- package/dist/serve/worker/host/subscriptions.js +6 -2
- package/dist/serve/worker/host/subscriptions.js.map +1 -1
- package/dist/serve/worker/host-ai.d.ts +4 -5
- package/dist/serve/worker/host-ai.d.ts.map +1 -1
- package/dist/serve/worker/host-ai.js +19 -23
- package/dist/serve/worker/host-ai.js.map +1 -1
- package/dist/serve/worker/host-auth.d.ts +3 -0
- package/dist/serve/worker/host-auth.d.ts.map +1 -1
- package/dist/serve/worker/host-auth.js +32 -13
- package/dist/serve/worker/host-auth.js.map +1 -1
- package/dist/serve/worker/host-context.d.ts +13 -4
- package/dist/serve/worker/host-context.d.ts.map +1 -1
- package/dist/serve/worker/host-context.js.map +1 -1
- package/dist/serve/worker/inbound-validation/operation-arguments.d.ts.map +1 -1
- package/dist/serve/worker/inbound-validation/operation-arguments.js +38 -14
- package/dist/serve/worker/inbound-validation/operation-arguments.js.map +1 -1
- package/dist/serve/worker/operation-persistence.d.ts +1 -0
- package/dist/serve/worker/operation-persistence.d.ts.map +1 -1
- package/dist/serve/worker/operation-persistence.js +1 -0
- package/dist/serve/worker/operation-persistence.js.map +1 -1
- package/dist/serve/worker/protocol.d.ts +22 -1
- package/dist/serve/worker/protocol.d.ts.map +1 -1
- package/dist/serve/worker/protocol.js.map +1 -1
- package/dist/serve/worker/rtdb-value-equality.d.ts.map +1 -1
- package/dist/serve/worker/rtdb-value-equality.js +3 -1
- package/dist/serve/worker/rtdb-value-equality.js.map +1 -1
- package/dist/serve/worker/serve-init.d.ts.map +1 -1
- package/dist/serve/worker/serve-init.js +3 -9
- package/dist/serve/worker/serve-init.js.map +1 -1
- package/dist/serve/worker-build-lock.d.ts +23 -0
- package/dist/serve/worker-build-lock.d.ts.map +1 -0
- package/dist/serve/worker-build-lock.js +179 -0
- package/dist/serve/worker-build-lock.js.map +1 -0
- package/dist/serve/worker-bundle-cache.d.ts +17 -0
- package/dist/serve/worker-bundle-cache.d.ts.map +1 -0
- package/dist/serve/worker-bundle-cache.js +89 -0
- package/dist/serve/worker-bundle-cache.js.map +1 -0
- package/dist/verify/cases.js +7 -3
- package/dist/verify/cases.js.map +1 -1
- package/dist/verify/index.d.ts.map +1 -1
- package/dist/verify/index.js +11 -5
- package/dist/verify/index.js.map +1 -1
- package/package.json +10 -4
- package/src/assurance/.generated/conformance-verdicts.ts +111 -40
- package/src/assurance/capabilities.ts +11 -15
- package/src/bounded-request.ts +66 -7
- package/src/bridge/client/bridge-url.ts +5 -1
- package/src/bridge/client/bridge.ts +19 -3
- package/src/bridge/frame-output.ts +45 -0
- package/src/bridge/protocol.ts +13 -0
- package/src/bridge/server/in-process.ts +57 -17
- package/src/bridge/server/peer.ts +60 -1
- package/src/bridge/server/standalone.ts +29 -107
- package/src/bridge/surface/arguments/sandbox.ts +2 -69
- package/src/bridge/surface/arguments/seed.ts +78 -0
- package/src/bridge/surface/context.ts +26 -37
- package/src/bridge/surface/database-instance-catalog.ts +4 -32
- package/src/bridge/surface/database-instance-project.ts +40 -0
- package/src/bridge/surface/database-instance.ts +4 -4
- package/src/bridge/surface/functions-runtime.ts +5 -5
- package/src/bridge/surface/held-identity.ts +4 -4
- package/src/bridge/surface/manifest.sandbox.generated.ts +137 -0
- package/src/bridge/surface/method-types.ts +61 -7
- package/src/bridge/surface/methods/ai_logic/clearScripts.ts +2 -1
- package/src/bridge/surface/methods/ai_logic/script.ts +2 -1
- package/src/bridge/surface/methods/ai_logic/scripts.ts +2 -1
- package/src/bridge/surface/methods/ai_logic/status.ts +1 -0
- package/src/bridge/surface/methods/assurance/attach.ts +1 -0
- package/src/bridge/surface/methods/assurance/canIUse.ts +1 -0
- package/src/bridge/surface/methods/assurance/define.ts +1 -0
- package/src/bridge/surface/methods/assurance/export.ts +1 -0
- package/src/bridge/surface/methods/assurance/inspect.ts +1 -0
- package/src/bridge/surface/methods/assurance/map.ts +1 -0
- package/src/bridge/surface/methods/assurance/minimize.ts +1 -0
- package/src/bridge/surface/methods/assurance/propose.ts +1 -0
- package/src/bridge/surface/methods/assurance/replaySession.ts +1 -0
- package/src/bridge/surface/methods/assurance/run.ts +1 -0
- package/src/bridge/surface/methods/assurance/start.ts +1 -0
- package/src/bridge/surface/methods/assurance/testRulesHosted.ts +1 -0
- package/src/bridge/surface/methods/assurance/verify.ts +1 -0
- package/src/bridge/surface/methods/assurance/verifyCases.ts +1 -0
- package/src/bridge/surface/methods/auth/actAsAdmin.ts +1 -0
- package/src/bridge/surface/methods/auth/actAsAnonymous.ts +1 -0
- package/src/bridge/surface/methods/auth/createCustomToken.ts +1 -0
- package/src/bridge/surface/methods/auth/createUser.ts +2 -1
- package/src/bridge/surface/methods/auth/deleteUser.ts +2 -1
- package/src/bridge/surface/methods/auth/getUser.ts +2 -1
- package/src/bridge/surface/methods/auth/getUserByEmail.ts +2 -1
- package/src/bridge/surface/methods/auth/impersonate.ts +1 -0
- package/src/bridge/surface/methods/auth/importUsers.ts +3 -2
- package/src/bridge/surface/methods/auth/listUsers.ts +2 -1
- package/src/bridge/surface/methods/auth/sessions.ts +1 -0
- package/src/bridge/surface/methods/auth/setCustomUserClaims.ts +2 -1
- package/src/bridge/surface/methods/auth/signInAnonymously.ts +1 -0
- package/src/bridge/surface/methods/auth/signInWithCredential.ts +1 -0
- package/src/bridge/surface/methods/auth/signInWithCustomToken.ts +1 -0
- package/src/bridge/surface/methods/auth/signInWithEmailAndPassword.ts +1 -0
- package/src/bridge/surface/methods/auth/signOut.ts +1 -0
- package/src/bridge/surface/methods/auth/takeAuthMail.ts +1 -0
- package/src/bridge/surface/methods/auth/updateUser.ts +2 -1
- package/src/bridge/surface/methods/auth/useAppSession.ts +1 -0
- package/src/bridge/surface/methods/auth/whoami.ts +1 -0
- package/src/bridge/surface/methods/database/crawl.ts +1 -0
- package/src/bridge/surface/methods/database/get.ts +1 -0
- package/src/bridge/surface/methods/database/push.ts +1 -0
- package/src/bridge/surface/methods/database/query.ts +1 -0
- package/src/bridge/surface/methods/database/remove.ts +1 -0
- package/src/bridge/surface/methods/database/set.ts +1 -0
- package/src/bridge/surface/methods/database/update.ts +1 -0
- package/src/bridge/surface/methods/firestore/addDoc.ts +2 -1
- package/src/bridge/surface/methods/firestore/deleteDoc.ts +2 -1
- package/src/bridge/surface/methods/firestore/discoverPaths.ts +1 -0
- package/src/bridge/surface/methods/firestore/extractIndexes.ts +1 -0
- package/src/bridge/surface/methods/firestore/findCollectionGroup.ts +1 -0
- package/src/bridge/surface/methods/firestore/getAggregateFromServer.ts +1 -0
- package/src/bridge/surface/methods/firestore/getCountFromServer.ts +1 -0
- package/src/bridge/surface/methods/firestore/getDoc.ts +2 -1
- package/src/bridge/surface/methods/firestore/getDocs.ts +2 -1
- package/src/bridge/surface/methods/firestore/setDoc.ts +2 -1
- package/src/bridge/surface/methods/firestore/updateDoc.ts +2 -1
- package/src/bridge/surface/methods/firestore/writeBatch.ts +2 -1
- package/src/bridge/surface/methods/firestore/writeIndexes.ts +1 -0
- package/src/bridge/surface/methods/functions/executions.ts +2 -1
- package/src/bridge/surface/methods/functions/fire.ts +7 -6
- package/src/bridge/surface/methods/functions/listTriggers.ts +1 -0
- package/src/bridge/surface/methods/messaging/deliveries.ts +1 -0
- package/src/bridge/surface/methods/messaging/send.ts +2 -1
- package/src/bridge/surface/methods/messaging/subscribeToTopic.ts +1 -0
- package/src/bridge/surface/methods/messaging/tokens.ts +1 -0
- package/src/bridge/surface/methods/messaging/unsubscribeFromTopic.ts +1 -0
- package/src/bridge/surface/methods/registry.ts +2 -12
- package/src/bridge/surface/methods/rules/explainDenial.ts +1 -0
- package/src/bridge/surface/methods/rules/getStdlib.ts +1 -0
- package/src/bridge/surface/methods/rules/lint.ts +1 -0
- package/src/bridge/surface/methods/rules/listStdlib.ts +1 -0
- package/src/bridge/surface/methods/rules/set.ts +1 -0
- package/src/bridge/surface/methods/rules/simulate.ts +1 -0
- package/src/bridge/surface/methods/sandbox/activity.ts +2 -1
- package/src/bridge/surface/methods/sandbox/advanceClock.ts +1 -0
- package/src/bridge/surface/methods/sandbox/apply.ts +1 -0
- package/src/bridge/surface/methods/sandbox/checkpoint.ts +1 -0
- package/src/bridge/surface/methods/sandbox/deleteCapture.ts +1 -1
- package/src/bridge/surface/methods/sandbox/deleteCheckpoint.ts +1 -0
- package/src/bridge/surface/methods/sandbox/diff.ts +1 -0
- package/src/bridge/surface/methods/sandbox/discard.ts +1 -0
- package/src/bridge/surface/methods/sandbox/events.ts +2 -1
- package/src/bridge/surface/methods/sandbox/exportFixture.ts +1 -0
- package/src/bridge/surface/methods/sandbox/fork.ts +1 -0
- package/src/bridge/surface/methods/sandbox/inspect.ts +2 -1
- package/src/bridge/surface/methods/sandbox/listBranches.ts +1 -0
- package/src/bridge/surface/methods/sandbox/listCaptures.ts +1 -1
- package/src/bridge/surface/methods/sandbox/listCheckpoints.ts +1 -0
- package/src/bridge/surface/methods/sandbox/listeners.ts +1 -0
- package/src/bridge/surface/methods/sandbox/openCapture.ts +1 -1
- package/src/bridge/surface/methods/sandbox/promote.ts +1 -0
- package/src/bridge/surface/methods/sandbox/renameCapture.ts +1 -1
- package/src/bridge/surface/methods/sandbox/reset.ts +3 -2
- package/src/bridge/surface/methods/sandbox/resetClock.ts +1 -0
- package/src/bridge/surface/methods/sandbox/restore.ts +1 -0
- package/src/bridge/surface/methods/sandbox/saveCapture.ts +1 -1
- package/src/bridge/surface/methods/sandbox/seed.ts +3 -2
- package/src/bridge/surface/methods/sandbox/seedFromFixture.ts +1 -0
- package/src/bridge/surface/methods/sandbox/setClock.ts +1 -0
- package/src/bridge/surface/methods/sandbox-registry.ts +24 -0
- package/src/bridge/surface/methods/storage/deleteObject.ts +1 -0
- package/src/bridge/surface/methods/storage/getBytes.ts +1 -0
- package/src/bridge/surface/methods/storage/getDownloadURL.ts +1 -0
- package/src/bridge/surface/methods/storage/getMetadata.ts +1 -0
- package/src/bridge/surface/methods/storage/listAll.ts +1 -0
- package/src/bridge/surface/methods/storage/provision.ts +1 -0
- package/src/bridge/surface/methods/storage/setCrossServiceIam.ts +1 -0
- package/src/bridge/surface/methods/storage/status.ts +1 -0
- package/src/bridge/surface/methods/storage/updateMetadata.ts +1 -0
- package/src/bridge/surface/methods/storage/uploadBytes.ts +1 -0
- package/src/bridge/surface/request-instant.ts +2 -2
- package/src/bridge/surface/rules-engines/database.ts +1 -2
- package/src/bridge/surface/rules-engines/storage-request-resource.ts +275 -0
- package/src/bridge/surface/rules-engines/storage.ts +54 -81
- package/src/bridge/surface/sandbox-context.ts +49 -0
- package/src/bridge/surface/service-handles.ts +13 -9
- package/src/bridge/surface/sign-in.ts +3 -3
- package/src/bridge/surface/storage-rules.ts +2 -14
- package/src/bridge/surface/stored-identity.ts +3 -3
- package/src/bridge/surface/types.ts +30 -8
- package/src/cli/firebase-json.ts +45 -7
- package/src/cli/firestore-indexes.ts +2 -1
- package/src/cli/index.ts +46 -11
- package/src/cli/public-dir-hint.ts +35 -0
- package/src/cli/run.ts +35 -7
- package/src/cli/sandbox-runner.ts +10 -2
- package/src/cli/serve-diagnostics.ts +12 -1
- package/src/cli/serve.ts +27 -26
- package/src/cli/service-commands.test.ts +7 -0
- package/src/cli/snapshot.ts +15 -6
- package/src/cli/surface-method-runner.ts +1 -1
- package/src/cli/verify.ts +11 -1
- package/src/conformance/.generated/can-i-use-browser.ts +22 -3
- package/src/conformance/.generated/can-i-use.ts +1 -1
- package/src/conformance/.generated/conformance-docs.ts +1 -1
- package/src/conformance/.generated/served-availability.ts +1 -1
- package/src/discover/merge.ts +12 -3
- package/src/functions/child-protocol.ts +59 -0
- package/src/functions/child.ts +107 -0
- package/src/{functions-rtdb → functions}/development-runtime.ts +13 -14
- package/src/functions/endpoints.ts +80 -0
- package/src/{functions-rtdb → functions}/project.ts +2 -2
- package/src/functions/rtdb/child-runtime.ts +139 -0
- package/src/{functions-rtdb → functions/rtdb}/discovery.ts +9 -43
- package/src/{functions-rtdb → functions/rtdb}/remote-delivery.ts +1 -1
- package/src/functions/spawn.ts +212 -0
- package/src/functions/unsupported.ts +42 -0
- package/src/google-endpoints.ts +74 -3
- package/src/next/bridge-import-loader.ts +56 -0
- package/src/next/bridge-imports.ts +108 -0
- package/src/next/client-aliases.ts +14 -27
- package/src/next/guard.ts +33 -11
- package/src/next/turbopack-config.ts +26 -0
- package/src/next/webpack-config.ts +26 -0
- package/src/next/with-pyric.ts +26 -0
- package/src/register/activation.ts +26 -0
- package/src/register/app-bridge-admin-app-check.ts +3 -1
- package/src/register/child-process-guard.ts +189 -0
- package/src/register/client/bootstrap.ts +7 -1
- package/src/register/connect-prototypes.ts +12 -0
- package/src/register/hooks.ts +56 -3
- package/src/register/index.ts +92 -20
- package/src/register/mapping.ts +57 -3
- package/src/register/net-guard.ts +149 -39
- package/src/register/package-identity.ts +98 -0
- package/src/register/swap-or-stop.ts +194 -0
- package/src/register/worker-guard.ts +90 -0
- package/src/remote/resolve-host.ts +14 -2
- package/src/serve/ai-diagnostics-relay.ts +6 -1
- package/src/serve/ai-proxy.ts +77 -20
- package/src/serve/ai-terminal-blocks.ts +8 -4
- package/src/serve/ai-terminal-text.ts +11 -0
- package/src/serve/app-ports.ts +119 -0
- package/src/serve/bridge-mount.ts +36 -8
- package/src/serve/bundler.ts +87 -29
- package/src/serve/discovery.ts +244 -67
- package/src/serve/entries/ai.ts +28 -27
- package/src/serve/entries/auth.ts +22 -1
- package/src/serve/entries/firestore-surface.ts +1 -0
- package/src/serve/entries/init-payload.ts +28 -5
- package/src/serve/entries/moved-host.ts +28 -0
- package/src/serve/entries/runtime-origin.ts +6 -0
- package/src/serve/entries/unsupported/firestore.ts +0 -1
- package/src/serve/entries/worker-runtime.ts +19 -6
- package/src/serve/firebase-module-swap.ts +98 -15
- package/src/serve/gemini-proxy.ts +140 -0
- package/src/serve/hosted/runtime.ts +10 -2
- package/src/serve/namespace.ts +99 -32
- package/src/serve/repro/compare.ts +9 -1
- package/src/serve/rules-fixture-check.ts +34 -9
- package/src/serve/rules.ts +104 -20
- package/src/serve/sandbox-session.ts +15 -3
- package/src/serve/server.ts +29 -2
- package/src/serve/vite-ai-config.ts +19 -1
- package/src/serve/vite-functions-development.ts +3 -3
- package/src/serve/vite-generation-bridge.ts +2 -2
- package/src/serve/vite-generation-functions.ts +5 -5
- package/src/serve/vite-generation-middleware.ts +38 -2
- package/src/serve/vite-module-swap.ts +8 -0
- package/src/serve/vite-page-runtime.ts +6 -0
- package/src/serve/vite-rules-source.ts +2 -5
- package/src/serve/vite-sandbox-generation.ts +7 -5
- package/src/serve/worker/__tests__/auth-credential-sign-in.test.ts +343 -0
- package/src/serve/worker/__tests__/auth-m2-parity.test.ts +45 -1
- package/src/serve/worker/__tests__/staged-sign-in-results.test.ts +139 -0
- package/src/serve/worker/ai-proxy-paths.ts +35 -0
- package/src/serve/worker/client/ai.ts +6 -1
- package/src/serve/worker/client/auth.ts +97 -21
- package/src/serve/worker/client/clock.ts +10 -12
- package/src/serve/worker/client/firestore-reads.ts +70 -21
- package/src/serve/worker/client/firestore-refs.ts +4 -14
- package/src/serve/worker/client/rtdb-connection-lifecycle.ts +5 -0
- package/src/serve/worker/client/rtdb-snapshots.ts +24 -2
- package/src/serve/worker/client/rtdb-value-validation.ts +198 -0
- package/src/serve/worker/client/rtdb-writes.ts +7 -0
- package/src/serve/worker/client/snapshots.ts +15 -6
- package/src/serve/worker/client/websocket-connection.ts +39 -3
- package/src/serve/worker/entry.ts +2 -0
- package/src/serve/worker/host/auth-credential-sign-in.ts +97 -0
- package/src/serve/worker/host/auth-reauthentication.ts +3 -3
- package/src/serve/worker/host/rules.ts +53 -34
- package/src/serve/worker/host/staged-sign-in-results.ts +53 -0
- package/src/serve/worker/host/storage.ts +26 -11
- package/src/serve/worker/host/subscriptions.ts +7 -4
- package/src/serve/worker/host-ai.ts +23 -23
- package/src/serve/worker/host-auth.ts +33 -15
- package/src/serve/worker/host-context.ts +13 -3
- package/src/serve/worker/inbound-validation/operation-arguments.ts +38 -14
- package/src/serve/worker/operation-persistence.ts +1 -0
- package/src/serve/worker/protocol.ts +21 -3
- package/src/serve/worker/rtdb-value-equality.ts +3 -1
- package/src/serve/worker/serve-init.ts +3 -9
- package/src/serve/worker-build-lock.ts +207 -0
- package/src/serve/worker-bundle-cache.ts +90 -0
- package/src/verify/cases.ts +6 -3
- package/src/verify/index.ts +16 -4
- package/dist/functions-rtdb/child.d.ts.map +0 -1
- package/dist/functions-rtdb/child.js +0 -386
- package/dist/functions-rtdb/child.js.map +0 -1
- package/dist/functions-rtdb/delivery.d.ts.map +0 -1
- package/dist/functions-rtdb/delivery.js.map +0 -1
- package/dist/functions-rtdb/development-runtime.d.ts.map +0 -1
- package/dist/functions-rtdb/development-runtime.js.map +0 -1
- package/dist/functions-rtdb/discovery.d.ts.map +0 -1
- package/dist/functions-rtdb/discovery.js.map +0 -1
- package/dist/functions-rtdb/event.d.ts.map +0 -1
- package/dist/functions-rtdb/event.js.map +0 -1
- package/dist/functions-rtdb/events.d.ts.map +0 -1
- package/dist/functions-rtdb/events.js.map +0 -1
- package/dist/functions-rtdb/execution-log.d.ts.map +0 -1
- package/dist/functions-rtdb/execution-log.js.map +0 -1
- package/dist/functions-rtdb/execution.d.ts.map +0 -1
- package/dist/functions-rtdb/execution.js.map +0 -1
- package/dist/functions-rtdb/in-memory-delivery.d.ts.map +0 -1
- package/dist/functions-rtdb/in-memory-delivery.js.map +0 -1
- package/dist/functions-rtdb/module-loader.d.ts.map +0 -1
- package/dist/functions-rtdb/module-loader.js.map +0 -1
- package/dist/functions-rtdb/project.d.ts +0 -7
- package/dist/functions-rtdb/project.d.ts.map +0 -1
- package/dist/functions-rtdb/project.js.map +0 -1
- package/dist/functions-rtdb/projection.d.ts.map +0 -1
- package/dist/functions-rtdb/projection.js.map +0 -1
- package/dist/functions-rtdb/reference-pattern.d.ts.map +0 -1
- package/dist/functions-rtdb/reference-pattern.js.map +0 -1
- package/dist/functions-rtdb/remote-delivery.d.ts.map +0 -1
- package/dist/functions-rtdb/remote-delivery.js.map +0 -1
- package/dist/serve/site-ui/_astro/app.C--T2qDK.js +0 -151
- package/dist/serve/site-ui/_astro/app.DqyhRyrU.js +0 -1
- package/dist/serve/site-ui/_astro/sandbox-controls.Bv6lfpIe.js +0 -1725
- package/dist/serve/site-ui/_astro/writes.Bg0YEEA7.js +0 -1
- package/src/functions-rtdb/child.ts +0 -512
- /package/dist/{functions-rtdb → functions}/events.d.ts +0 -0
- /package/dist/{functions-rtdb → functions}/events.js +0 -0
- /package/dist/{functions-rtdb → functions}/execution-log.d.ts +0 -0
- /package/dist/{functions-rtdb → functions}/execution-log.js +0 -0
- /package/dist/{functions-rtdb → functions}/module-loader.d.ts +0 -0
- /package/dist/{functions-rtdb → functions}/module-loader.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/delivery.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/delivery.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/event.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/event.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/execution.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/execution.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/projection.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/projection.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.d.ts +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.js +0 -0
- /package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.js +0 -0
- /package/src/{functions-rtdb → functions}/events.ts +0 -0
- /package/src/{functions-rtdb → functions}/execution-log.ts +0 -0
- /package/src/{functions-rtdb → functions}/module-loader.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/delivery.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/event.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/execution.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/in-memory-delivery.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/projection.ts +0 -0
- /package/src/{functions-rtdb → functions/rtdb}/reference-pattern.ts +0 -0
package/src/serve/discovery.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
21
21
|
import { dirname, join, resolve } from 'node:path';
|
|
22
|
-
import {
|
|
22
|
+
import { boundedRequest, type BoundedResponse } from '../bounded-request.js';
|
|
23
23
|
|
|
24
24
|
/** Ports probed when the pointer is absent — serve's default scan window PLUS
|
|
25
25
|
* the standard Vite dev ports (5173-5177), which the plain 3473+ window would miss
|
|
@@ -97,14 +97,53 @@ export function basesForPort(port: number): string[] {
|
|
|
97
97
|
* milliseconds; a port that has not answered in a second is not going to. */
|
|
98
98
|
const HEALTH_PROBE_DEADLINE_MS = 1000;
|
|
99
99
|
|
|
100
|
+
/**
|
|
101
|
+
* What `/__pyric/health` at one base answered. A sandbox host answers 200 with
|
|
102
|
+
* its health reply (`mode: 'sandbox'`), or 503 while its mount is closing
|
|
103
|
+
* (`bridge-mount.ts`). Any other answer comes from a server that is not a
|
|
104
|
+
* sandbox host: an in-page Vite server answers 404 to a JSON request.
|
|
105
|
+
*/
|
|
106
|
+
type HealthAnswer =
|
|
107
|
+
| { readonly kind: 'sandbox'; readonly health: HealthLite }
|
|
108
|
+
| { readonly kind: 'no-answer' }
|
|
109
|
+
| { readonly kind: 'other' };
|
|
110
|
+
|
|
111
|
+
const NO_HEALTH_ANSWER: HealthAnswer = { kind: 'no-answer' };
|
|
112
|
+
const OTHER_HEALTH_ANSWER: HealthAnswer = { kind: 'other' };
|
|
113
|
+
|
|
114
|
+
/** The health reply in a response, or `null` when the response is not one. */
|
|
115
|
+
function sandboxHealthOf(response: BoundedResponse): HealthLite | null {
|
|
116
|
+
const isOk = response.status === 200;
|
|
117
|
+
if (!isOk) return null;
|
|
118
|
+
let body: unknown;
|
|
119
|
+
try {
|
|
120
|
+
body = JSON.parse(response.body.toString('utf8'));
|
|
121
|
+
} catch {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
const health = body as HealthLite | null;
|
|
125
|
+
const isSandbox = typeof health === 'object' && health !== null && health.mode === 'sandbox';
|
|
126
|
+
return isSandbox ? health : null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Bounded by {@link HEALTH_PROBE_DEADLINE_MS} and leaves no socket behind (#1162). */
|
|
130
|
+
async function healthAnswer(base: string): Promise<HealthAnswer> {
|
|
131
|
+
const response = await boundedRequest(`${base}/__pyric/health`, {
|
|
132
|
+
headers: { accept: 'application/json' },
|
|
133
|
+
deadlineMs: HEALTH_PROBE_DEADLINE_MS,
|
|
134
|
+
});
|
|
135
|
+
if (response === null) return NO_HEALTH_ANSWER;
|
|
136
|
+
const isClosingHost = response.status === 503;
|
|
137
|
+
if (isClosingHost) return NO_HEALTH_ANSWER;
|
|
138
|
+
const health = sandboxHealthOf(response);
|
|
139
|
+
return health === null ? OTHER_HEALTH_ANSWER : { kind: 'sandbox', health };
|
|
140
|
+
}
|
|
141
|
+
|
|
100
142
|
/** A sandbox bridge's health at `base`, or `null`. Bounded by
|
|
101
143
|
* {@link HEALTH_PROBE_DEADLINE_MS} and leaves no socket behind (#1162). */
|
|
102
144
|
export async function probeHealth(base: string): Promise<HealthLite | null> {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
const body = response.body as HealthLite | null;
|
|
106
|
-
const isSandbox = typeof body === 'object' && body !== null && body.mode === 'sandbox';
|
|
107
|
-
return isSandbox ? body : null;
|
|
145
|
+
const answer = await healthAnswer(base);
|
|
146
|
+
return answer.kind === 'sandbox' ? answer.health : null;
|
|
108
147
|
}
|
|
109
148
|
|
|
110
149
|
/**
|
|
@@ -119,15 +158,32 @@ export async function healthyBase(
|
|
|
119
158
|
port: number,
|
|
120
159
|
expectedInstanceId?: string | null,
|
|
121
160
|
): Promise<{ base: string; instanceId: string | null } | null> {
|
|
161
|
+
return (await probePort(port, expectedInstanceId)).match;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** What answered on a port's loopback families. */
|
|
165
|
+
interface PortProbe {
|
|
166
|
+
/** The family that answered as the expected sandbox, or `null`. */
|
|
167
|
+
match: AnsweringHost | null;
|
|
168
|
+
/** Whether a sandbox with another identity answered. */
|
|
169
|
+
otherAnswered: boolean;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
async function probePort(port: number, expectedInstanceId?: string | null): Promise<PortProbe> {
|
|
173
|
+
let otherAnswered = false;
|
|
122
174
|
for (const base of basesForPort(port)) {
|
|
123
175
|
const health = await probeHealth(base);
|
|
124
176
|
if (!health) continue;
|
|
125
177
|
const id = health.instanceId ?? null;
|
|
126
178
|
// Healthy but the WRONG server (the cross-family squatter): skip, try next.
|
|
127
|
-
|
|
128
|
-
|
|
179
|
+
const isOtherHost = Boolean(expectedInstanceId) && id !== expectedInstanceId;
|
|
180
|
+
if (isOtherHost) {
|
|
181
|
+
otherAnswered = true;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
return { match: { base, instanceId: id }, otherAnswered };
|
|
129
185
|
}
|
|
130
|
-
return null;
|
|
186
|
+
return { match: null, otherAnswered };
|
|
131
187
|
}
|
|
132
188
|
|
|
133
189
|
/** Best-effort port extraction from a pointer url/mcpUrl. */
|
|
@@ -187,27 +243,81 @@ export interface AnsweringHost {
|
|
|
187
243
|
const LOOPBACK_HOSTNAMES = new Set(['localhost', '127.0.0.1', '[::1]']);
|
|
188
244
|
|
|
189
245
|
/**
|
|
190
|
-
*
|
|
246
|
+
* What an explicit host URL's health probe found: a sandbox host; no answer,
|
|
247
|
+
* which is worth waiting for; or a server that answers but is not a sandbox
|
|
248
|
+
* host, which waiting will not change.
|
|
249
|
+
*/
|
|
250
|
+
export type HostUrlAnswer =
|
|
251
|
+
| { readonly kind: 'host'; readonly host: AnsweringHost }
|
|
252
|
+
| { readonly kind: 'no-answer' }
|
|
253
|
+
| { readonly kind: 'not-a-host'; readonly base: string };
|
|
254
|
+
|
|
255
|
+
const NO_HOST_URL_ANSWER: HostUrlAnswer = { kind: 'no-answer' };
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* The bases a host URL is probed on. A loopback URL is probed on both loopback
|
|
191
259
|
* families by port, as discovery does, because `localhost` resolves to
|
|
192
260
|
* different families under different runtimes. Any other URL is probed as given.
|
|
193
261
|
*/
|
|
194
|
-
|
|
262
|
+
function basesForHostUrl(url: string): string[] {
|
|
195
263
|
let parsed: URL;
|
|
196
264
|
try {
|
|
197
265
|
parsed = new URL(url);
|
|
198
266
|
} catch {
|
|
199
|
-
return
|
|
267
|
+
return [];
|
|
200
268
|
}
|
|
201
269
|
const isLoopback = LOOPBACK_HOSTNAMES.has(parsed.hostname);
|
|
202
|
-
if (isLoopback)
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
270
|
+
if (isLoopback) return basesForPort(urlPort(parsed));
|
|
271
|
+
return [`${parsed.protocol}//${parsed.host}`];
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/** Health-probe an explicit host URL on each of its bases; a sandbox host on any base wins. */
|
|
275
|
+
export async function probeHostUrlAnswer(url: string): Promise<HostUrlAnswer> {
|
|
276
|
+
let notHostBase: string | null = null;
|
|
277
|
+
for (const base of basesForHostUrl(url)) {
|
|
278
|
+
const answer = await healthAnswer(base);
|
|
279
|
+
if (answer.kind === 'sandbox') return { kind: 'host', host: { base, instanceId: answer.health.instanceId ?? null } };
|
|
280
|
+
const isOtherServer = answer.kind === 'other';
|
|
281
|
+
if (isOtherServer) notHostBase ??= base;
|
|
282
|
+
}
|
|
283
|
+
return notHostBase === null ? NO_HOST_URL_ANSWER : { kind: 'not-a-host', base: notHostBase };
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/** Health-probe an explicit host URL: the sandbox host it reaches, or `null`. */
|
|
287
|
+
export async function probeHostUrl(url: string): Promise<AnsweringHost | null> {
|
|
288
|
+
const answer = await probeHostUrlAnswer(url);
|
|
289
|
+
return answer.kind === 'host' ? answer.host : null;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/** Whether `base` serves Vite's client environment module, which every Vite dev server serves. */
|
|
293
|
+
export async function servesViteClient(base: string): Promise<boolean> {
|
|
294
|
+
const response = await boundedRequest(`${base}/@vite/env`, { deadlineMs: HEALTH_PROBE_DEADLINE_MS });
|
|
295
|
+
return response !== null && response.status === 200;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/** The port a URL names, or its scheme's default when it names none. */
|
|
299
|
+
function urlPort(parsed: URL): number {
|
|
300
|
+
const defaultPort = parsed.protocol === 'https:' ? 443 : 80;
|
|
301
|
+
return parsed.port === '' ? defaultPort : Number(parsed.port);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Whether `url` reaches the project's host: the same port on loopback, where
|
|
306
|
+
* `localhost` and either loopback address name one server, as
|
|
307
|
+
* {@link probeHostUrl} probes them; otherwise the same origin.
|
|
308
|
+
*/
|
|
309
|
+
function urlNamesHost(url: string, host: Discovered): boolean {
|
|
310
|
+
let wanted: URL;
|
|
311
|
+
let found: URL;
|
|
312
|
+
try {
|
|
313
|
+
wanted = new URL(url);
|
|
314
|
+
found = new URL(host.base);
|
|
315
|
+
} catch {
|
|
316
|
+
return false;
|
|
206
317
|
}
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
return { base, instanceId: health.instanceId ?? null };
|
|
318
|
+
const bothLoopback = LOOPBACK_HOSTNAMES.has(wanted.hostname) && LOOPBACK_HOSTNAMES.has(found.hostname);
|
|
319
|
+
if (bothLoopback) return urlPort(wanted) === urlPort(found);
|
|
320
|
+
return wanted.origin === found.origin;
|
|
211
321
|
}
|
|
212
322
|
|
|
213
323
|
/** How an explicit `PYRIC_SANDBOX=remote:<url>` resolves. */
|
|
@@ -251,6 +361,11 @@ export async function selectExplicitHost(input: {
|
|
|
251
361
|
const project = selectProjectHost(await (input.discover ?? discoverServe)(input.cwd), () => {});
|
|
252
362
|
const isProjectHost = answered !== null && project !== null && answeredId !== null && answeredId === project.instanceId;
|
|
253
363
|
if (isProjectHost) return { kind: 'explicit', serveUrl, base: answered.base };
|
|
364
|
+
// The probe found nothing, and discovery, a moment later, found this
|
|
365
|
+
// project's host at the same url: the host was starting or restarting
|
|
366
|
+
// between the two, so the url is current, not stale (#1527).
|
|
367
|
+
const projectAnswersAtUrl = answered === null && project !== null && urlNamesHost(serveUrl, project);
|
|
368
|
+
if (projectAnswersAtUrl) return { kind: 'explicit', serveUrl, base: project.base };
|
|
254
369
|
|
|
255
370
|
const portable = 'Set PYRIC_SANDBOX=remote to find this project\'s host through .pyric/serve.json.';
|
|
256
371
|
if (project !== null) {
|
|
@@ -340,6 +455,96 @@ export function readProjectPointerUrl(cwd: string): string | null {
|
|
|
340
455
|
return null;
|
|
341
456
|
}
|
|
342
457
|
|
|
458
|
+
/**
|
|
459
|
+
* How long discovery waits for the host a pointer names when the pointer's
|
|
460
|
+
* process is running but nothing answers on its port: a dev server that is
|
|
461
|
+
* restarting, or one whose event loop is busy past the one-second health
|
|
462
|
+
* probe. Not answering is not the same as gone (#1527). It matches how long
|
|
463
|
+
* the Node remote client holds calls for a host that dropped its connection.
|
|
464
|
+
*/
|
|
465
|
+
const LIVE_POINTER_WAIT_MS = 10_000;
|
|
466
|
+
const LIVE_POINTER_POLL_MS = 250;
|
|
467
|
+
|
|
468
|
+
interface ServePointer {
|
|
469
|
+
url?: string;
|
|
470
|
+
mcpUrl?: string;
|
|
471
|
+
port?: number;
|
|
472
|
+
pid?: unknown;
|
|
473
|
+
instanceId?: string;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
type PointerOutcome =
|
|
477
|
+
| { kind: 'found'; host: Discovered }
|
|
478
|
+
/** Nothing answered as the pointer's host. `waits` when its process still runs and nothing else holds the port. */
|
|
479
|
+
| { kind: 'unanswered'; port: number; expectedId: string | null; waits: boolean }
|
|
480
|
+
/** No pointer here, or one discovery cannot use. */
|
|
481
|
+
| { kind: 'unusable' };
|
|
482
|
+
|
|
483
|
+
function readPointer(pointerPath: string): ServePointer | null {
|
|
484
|
+
const hasPointerFile = existsSync(pointerPath);
|
|
485
|
+
if (!hasPointerFile) return null;
|
|
486
|
+
try {
|
|
487
|
+
return JSON.parse(readFileSync(pointerPath, 'utf8')) as ServePointer;
|
|
488
|
+
} catch {
|
|
489
|
+
return null; // corrupt, or caught mid-write: try the next candidate
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/** Whether a pointer records a pid and that process is running. */
|
|
494
|
+
function hasRunningProcess(pid: unknown): boolean {
|
|
495
|
+
const hasPid = typeof pid === 'number' && Number.isInteger(pid) && pid > 0;
|
|
496
|
+
return hasPid && isPointerProcessAlive(pid);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
/** One look at the host the pointer at `pointerPath` names. */
|
|
500
|
+
async function probePointer(pointerPath: string): Promise<PointerOutcome> {
|
|
501
|
+
const p = readPointer(pointerPath);
|
|
502
|
+
if (p === null) return { kind: 'unusable' };
|
|
503
|
+
const port = p.port ?? portOf(p.mcpUrl) ?? portOf(p.url);
|
|
504
|
+
const hasPort = port !== null && Boolean(port);
|
|
505
|
+
if (!hasPort) return { kind: 'unusable' };
|
|
506
|
+
const hasExpectedId = typeof p.instanceId === 'string' && p.instanceId !== '';
|
|
507
|
+
const expectedId = hasExpectedId ? p.instanceId ?? null : null;
|
|
508
|
+
const probe = await probePort(port, expectedId);
|
|
509
|
+
const match = probe.match;
|
|
510
|
+
if (match === null) {
|
|
511
|
+
const waits = !probe.otherAnswered && hasRunningProcess(p.pid);
|
|
512
|
+
return { kind: 'unanswered', port, expectedId, waits };
|
|
513
|
+
}
|
|
514
|
+
let pointerProjectDir: string;
|
|
515
|
+
try {
|
|
516
|
+
pointerProjectDir = realpathSync(dirname(dirname(pointerPath)));
|
|
517
|
+
} catch {
|
|
518
|
+
return { kind: 'unusable' }; // the pointer's directory went away
|
|
519
|
+
}
|
|
520
|
+
return {
|
|
521
|
+
kind: 'found',
|
|
522
|
+
host: {
|
|
523
|
+
pointerProjectDir,
|
|
524
|
+
mcpUrl: `${match.base}/__pyric/mcp`,
|
|
525
|
+
url: canonicalServeUrl(port, p.url),
|
|
526
|
+
base: match.base,
|
|
527
|
+
instanceId: match.instanceId,
|
|
528
|
+
source: `pointer ${pointerPath}`,
|
|
529
|
+
},
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* The host the pointer names, waiting up to {@link LIVE_POINTER_WAIT_MS} while
|
|
535
|
+
* its process runs and nothing answers. The pointer is read again each time,
|
|
536
|
+
* since a restarted dev server rewrites it.
|
|
537
|
+
*/
|
|
538
|
+
async function waitForPointerHost(pointerPath: string): Promise<PointerOutcome> {
|
|
539
|
+
const deadline = Date.now() + LIVE_POINTER_WAIT_MS;
|
|
540
|
+
let outcome = await probePointer(pointerPath);
|
|
541
|
+
while (outcome.kind === 'unanswered' && outcome.waits && Date.now() < deadline) {
|
|
542
|
+
await new Promise((resolve) => setTimeout(resolve, LIVE_POINTER_POLL_MS));
|
|
543
|
+
outcome = await probePointer(pointerPath);
|
|
544
|
+
}
|
|
545
|
+
return outcome;
|
|
546
|
+
}
|
|
547
|
+
|
|
343
548
|
/** Find the running serve: pointer first (in `cwd`), then a port scan. The
|
|
344
549
|
* pointer gives the PORT and (when present) the identity; the family is
|
|
345
550
|
* resolved by probing, so the returned base always uses the address the
|
|
@@ -352,53 +557,25 @@ export async function discoverServe(
|
|
|
352
557
|
scanPorts: number[] = SCAN_PORTS,
|
|
353
558
|
): Promise<Discovered | null> {
|
|
354
559
|
for (const pointerPath of candidatePointerPaths(cwd)) {
|
|
355
|
-
const
|
|
356
|
-
if (
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
pointerProjectDir: realpathSync(dirname(dirname(pointerPath))),
|
|
375
|
-
mcpUrl: `${hit.base}/__pyric/mcp`,
|
|
376
|
-
url: canonicalServeUrl(port, p.url),
|
|
377
|
-
base: hit.base,
|
|
378
|
-
instanceId: hit.instanceId,
|
|
379
|
-
source: `pointer ${pointerPath}`,
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
// The pointer named a specific identity we could NOT find on its port:
|
|
383
|
-
// a different sandbox may be squatting it (cross-family collision) or
|
|
384
|
-
// the server stopped. Do NOT scan into a possibly-wrong server — that
|
|
385
|
-
// split-brain is exactly what this identity check prevents. Fail legibly.
|
|
386
|
-
const pinsInstance = expectedId !== null;
|
|
387
|
-
if (pinsInstance) {
|
|
388
|
-
log(
|
|
389
|
-
`pointer ${pointerPath} names a server (instanceId ${expectedId.slice(0, 8)}…) ` +
|
|
390
|
-
`that isn't answering on port ${port} — another sandbox may be squatting the ` +
|
|
391
|
-
`port on the other loopback family, or the server stopped. Not falling back to ` +
|
|
392
|
-
`a blind port scan (it could hit the wrong sandbox). Restart your dev server, ` +
|
|
393
|
-
`and open the exact URL it prints (http://localhost:<port> by default) — every ` +
|
|
394
|
-
`page must share that ONE origin, or the browser splits into separate sandboxes.`,
|
|
395
|
-
);
|
|
396
|
-
return null;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
} catch {
|
|
400
|
-
/* stale/corrupt pointer — fall through to next candidate */
|
|
401
|
-
}
|
|
560
|
+
const outcome = await waitForPointerHost(pointerPath);
|
|
561
|
+
if (outcome.kind === 'found') return outcome.host;
|
|
562
|
+
// The pointer named a specific identity we could NOT find on its port:
|
|
563
|
+
// a different sandbox may be squatting it (cross-family collision) or
|
|
564
|
+
// the server stopped. Do NOT scan into a possibly-wrong server — that
|
|
565
|
+
// split-brain is exactly what this identity check prevents. Fail legibly.
|
|
566
|
+
if (outcome.kind === 'unusable') continue;
|
|
567
|
+
const expectedId = outcome.expectedId;
|
|
568
|
+
const pinsInstance = expectedId !== null;
|
|
569
|
+
if (pinsInstance) {
|
|
570
|
+
log(
|
|
571
|
+
`pointer ${pointerPath} names a server (instanceId ${expectedId.slice(0, 8)}…) ` +
|
|
572
|
+
`that isn't answering on port ${outcome.port} — another sandbox may be squatting the ` +
|
|
573
|
+
`port on the other loopback family, or the server stopped. Not falling back to ` +
|
|
574
|
+
`a blind port scan (it could hit the wrong sandbox). Restart your dev server, ` +
|
|
575
|
+
`and open the exact URL it prints (http://localhost:<port> by default) — every ` +
|
|
576
|
+
`page must share that ONE origin, or the browser splits into separate sandboxes.`,
|
|
577
|
+
);
|
|
578
|
+
return null;
|
|
402
579
|
}
|
|
403
580
|
}
|
|
404
581
|
for (const port of scanPorts) {
|
package/src/serve/entries/ai.ts
CHANGED
|
@@ -16,8 +16,11 @@
|
|
|
16
16
|
* config with no `baseUrl` targets serve's same-origin `/__pyric/ai-proxy`
|
|
17
17
|
* route (which forwards to the configured upstream, default
|
|
18
18
|
* `http://localhost:11434/v1`) — so a localhost Ollama needs no CORS setup
|
|
19
|
-
* on EITHER path. A
|
|
20
|
-
*
|
|
19
|
+
* on EITHER path. A gemini config without its own `apiKey` sends through
|
|
20
|
+
* `/__pyric/ai-proxy/gemini`, where the server attaches the key from its
|
|
21
|
+
* environment, so the key never reaches the page. A custom AnswerEngine
|
|
22
|
+
* OBJECT can't cross the port and is rejected in worker mode rather than
|
|
23
|
+
* creating a second page-local backend.
|
|
21
24
|
* Direct/in-process `pyric/ai` sandboxes still accept custom engines.
|
|
22
25
|
*
|
|
23
26
|
* Engine config is per-sandbox (#98.4) and first-call-wins at the worker
|
|
@@ -27,12 +30,14 @@
|
|
|
27
30
|
*/
|
|
28
31
|
import * as ipAi from 'pyric/ai';
|
|
29
32
|
import { aiErrorFromEnvelope, unpackAiEvidence, getAiEvidence, setAiEvidence } from 'pyric/ai/internal';
|
|
33
|
+
import type { AppCheckClaim } from 'pyric/ai/internal';
|
|
30
34
|
import { getAI as pyricGetAI } from 'pyric/ai';
|
|
31
35
|
import { createTransportAI } from 'pyric/ai/internal';
|
|
32
36
|
import { FirebaseError, getApp, type FirebaseApp } from 'pyric/app';
|
|
33
37
|
import { isSandboxAppDeleted } from 'pyric/app/internal';
|
|
34
38
|
import type { AiEngineConfigWire } from '../worker/protocol.js';
|
|
35
39
|
import { aiGenerateContent, aiCountTokens, aiStreamGenerateContent } from '../worker/client.js';
|
|
40
|
+
import { AI_PROXY_PATH, browserGeminiEngine } from '../worker/ai-proxy-paths.js';
|
|
36
41
|
import { useWorker } from './worker-runtime.js';
|
|
37
42
|
import { workerClientForApp } from './app-client.js';
|
|
38
43
|
|
|
@@ -80,9 +85,6 @@ export {
|
|
|
80
85
|
type EngineOption = NonNullable<ipAi.AIOptions['engine']>;
|
|
81
86
|
type AnswerTransport = Parameters<typeof createTransportAI>[2];
|
|
82
87
|
|
|
83
|
-
/** The serve proxy route the browser openai engine defaults to (#98.2). */
|
|
84
|
-
const AI_PROXY_PATH = '/__pyric/ai-proxy';
|
|
85
|
-
|
|
86
88
|
/** A custom AnswerEngine object (vs a plain, worker-cloneable EngineConfig). */
|
|
87
89
|
function isAnswerEngine(engine: EngineOption): boolean {
|
|
88
90
|
return typeof (engine as { generateContent?: unknown }).generateContent === 'function';
|
|
@@ -150,20 +152,7 @@ function wireToEngineOption(wire: AiEngineConfigWire): EngineOption {
|
|
|
150
152
|
} as EngineOption;
|
|
151
153
|
}
|
|
152
154
|
const isGeminiWire = wire.kind === 'gemini';
|
|
153
|
-
if (isGeminiWire)
|
|
154
|
-
const result: Record<string, unknown> = {
|
|
155
|
-
kind: 'gemini',
|
|
156
|
-
};
|
|
157
|
-
const hasBaseUrl = wire.baseUrl !== undefined;
|
|
158
|
-
if (hasBaseUrl) {
|
|
159
|
-
result.baseUrl = wire.baseUrl;
|
|
160
|
-
}
|
|
161
|
-
const hasApiKey = wire.apiKey !== undefined;
|
|
162
|
-
if (hasApiKey) {
|
|
163
|
-
result.apiKey = wire.apiKey;
|
|
164
|
-
}
|
|
165
|
-
return result as unknown as EngineOption;
|
|
166
|
-
}
|
|
155
|
+
if (isGeminiWire) return browserGeminiEngine(wire) as EngineOption;
|
|
167
156
|
return {
|
|
168
157
|
kind: 'scripted',
|
|
169
158
|
...(wire.script !== undefined
|
|
@@ -172,7 +161,10 @@ function wireToEngineOption(wire: AiEngineConfigWire): EngineOption {
|
|
|
172
161
|
} as EngineOption;
|
|
173
162
|
}
|
|
174
163
|
|
|
175
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* In-page path: default an openai config's absent baseUrl to the proxy, and
|
|
166
|
+
* send a gemini config without its own key through the gemini proxy.
|
|
167
|
+
*/
|
|
176
168
|
function withProxyDefault(options?: ipAi.AIOptions): ipAi.AIOptions | undefined {
|
|
177
169
|
const engine = options?.engine;
|
|
178
170
|
if (!engine || isAnswerEngine(engine)) return options;
|
|
@@ -180,6 +172,10 @@ function withProxyDefault(options?: ipAi.AIOptions): ipAi.AIOptions | undefined
|
|
|
180
172
|
if (config.kind === 'openai' && config.baseUrl === undefined) {
|
|
181
173
|
return { ...options, engine: { ...config, baseUrl: AI_PROXY_PATH } as EngineOption };
|
|
182
174
|
}
|
|
175
|
+
const isKeylessGemini = config.kind === 'gemini' && (engine as { apiKey?: string }).apiKey === undefined;
|
|
176
|
+
if (isKeylessGemini) {
|
|
177
|
+
return { ...options, engine: browserGeminiEngine({ kind: 'gemini' }) as EngineOption };
|
|
178
|
+
}
|
|
183
179
|
return options;
|
|
184
180
|
}
|
|
185
181
|
|
|
@@ -191,22 +187,27 @@ function aiErrorFromWire(err: unknown, modelResource: string, op: string): unkno
|
|
|
191
187
|
|
|
192
188
|
// ── The port-forwarding AnswerEngine (worker path) ─────────────────────────
|
|
193
189
|
|
|
190
|
+
/**
|
|
191
|
+
* The handle's App Check claim rides every request to the worker broker,
|
|
192
|
+
* which plays AI Logic's gate (`pyric/ai`'s `app-check-gate.ts`).
|
|
193
|
+
*/
|
|
194
194
|
function portEngine(db: ReturnType<typeof workerClientForApp>, engineWire: AiEngineConfigWire | undefined): AnswerTransport {
|
|
195
|
-
const params = (model: string, request: Record<string, unknown
|
|
195
|
+
const params = (model: string, request: Record<string, unknown>, appCheck: AppCheckClaim | undefined) => ({
|
|
196
196
|
model,
|
|
197
197
|
request,
|
|
198
198
|
...(engineWire !== undefined ? { engine: engineWire } : {}),
|
|
199
|
+
...(appCheck !== undefined ? { appCheck } : {}),
|
|
199
200
|
});
|
|
200
201
|
const engine = {
|
|
201
|
-
async generateContent(req: Record<string, unknown>, model: string): Promise<Record<string, unknown>> {
|
|
202
|
+
async generateContent(req: Record<string, unknown>, model: string, appCheck?: AppCheckClaim): Promise<Record<string, unknown>> {
|
|
202
203
|
try {
|
|
203
|
-
return unpackAiEvidence(await aiGenerateContent(db, params(model, req)));
|
|
204
|
+
return unpackAiEvidence(await aiGenerateContent(db, params(model, req, appCheck)));
|
|
204
205
|
} catch (err) {
|
|
205
206
|
throw aiErrorFromWire(err, model, 'generateContent');
|
|
206
207
|
}
|
|
207
208
|
},
|
|
208
|
-
streamGenerateContent(req: Record<string, unknown>, model: string): AsyncIterable<Record<string, unknown>> {
|
|
209
|
-
const inner = aiStreamGenerateContent(db, params(model, req));
|
|
209
|
+
streamGenerateContent(req: Record<string, unknown>, model: string, appCheck?: AppCheckClaim): AsyncIterable<Record<string, unknown>> {
|
|
210
|
+
const inner = aiStreamGenerateContent(db, params(model, req, appCheck));
|
|
210
211
|
return (async function* mapped(): AsyncGenerator<Record<string, unknown>> {
|
|
211
212
|
try {
|
|
212
213
|
for await (const chunk of inner) yield unpackAiEvidence(chunk);
|
|
@@ -215,9 +216,9 @@ function portEngine(db: ReturnType<typeof workerClientForApp>, engineWire: AiEng
|
|
|
215
216
|
}
|
|
216
217
|
})();
|
|
217
218
|
},
|
|
218
|
-
async countTokens(req: Record<string, unknown>, model: string): Promise<Record<string, unknown>> {
|
|
219
|
+
async countTokens(req: Record<string, unknown>, model: string, appCheck?: AppCheckClaim): Promise<Record<string, unknown>> {
|
|
219
220
|
try {
|
|
220
|
-
return unpackAiEvidence(await aiCountTokens(db, params(model, req)));
|
|
221
|
+
return unpackAiEvidence(await aiCountTokens(db, params(model, req, appCheck)));
|
|
221
222
|
} catch (err) {
|
|
222
223
|
throw aiErrorFromWire(err, model, 'countTokens');
|
|
223
224
|
}
|
|
@@ -19,7 +19,8 @@ import './init.js';
|
|
|
19
19
|
import * as ipAuth from 'pyric/auth';
|
|
20
20
|
import { getAuth as pyricGetAuth, setPersistence as pyricSetPersistence } from 'pyric/auth';
|
|
21
21
|
import * as wcRaw from '../worker/client.js';
|
|
22
|
-
import { acceptProviderCredential, restorePortSession } from '../worker/client.js';
|
|
22
|
+
import { acceptProviderCredential, restorePortSession, stageSignInResult } from '../worker/client.js';
|
|
23
|
+
import { SERVED_SANDBOX_HOOK, type ServedSandboxHook } from 'pyric/auth/internal';
|
|
23
24
|
import { useWorker } from './worker-runtime.js';
|
|
24
25
|
import { sessionStoreForApp } from './app-session-store.js';
|
|
25
26
|
import { helperCustomClaims } from './auth-helper-core.js';
|
|
@@ -108,10 +109,27 @@ function wireAppPersistence(
|
|
|
108
109
|
});
|
|
109
110
|
}
|
|
110
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Attach the hook `pyric/auth`'s `sandbox.mockSignInResult` uses on a handle it
|
|
114
|
+
* didn't make (#1466). Fixed once attached: not writable, not configurable.
|
|
115
|
+
*/
|
|
116
|
+
function attachServedSandboxHook(
|
|
117
|
+
handle: ReturnType<typeof pyricGetAuth>,
|
|
118
|
+
hook: ServedSandboxHook,
|
|
119
|
+
): void {
|
|
120
|
+
const isAttached = Object.hasOwn(handle, SERVED_SANDBOX_HOOK);
|
|
121
|
+
if (isAttached) return;
|
|
122
|
+
Object.defineProperty(handle, SERVED_SANDBOX_HOOK, { value: hook, writable: false, configurable: false });
|
|
123
|
+
}
|
|
124
|
+
|
|
111
125
|
export const getAuth = ((app?: FirebaseApp) => {
|
|
112
126
|
const resolved = app ?? getApp();
|
|
113
127
|
if (!useWorker) {
|
|
114
128
|
const handle = pyricGetAuth(resolved);
|
|
129
|
+
// A page whose pyric/auth is another copy stages through this bundle's own.
|
|
130
|
+
attachServedSandboxHook(handle, {
|
|
131
|
+
mockSignInResult: (result) => ipAuth.sandbox.mockSignInResult(handle, result),
|
|
132
|
+
});
|
|
115
133
|
wireAppPersistence(resolved, handle);
|
|
116
134
|
const releaseActiveAuth = registerActiveAuth(handle);
|
|
117
135
|
registerAppCleanup(resolved, releaseActiveAuth);
|
|
@@ -123,6 +141,9 @@ export const getAuth = ((app?: FirebaseApp) => {
|
|
|
123
141
|
const handle = Object.assign(wc.getAuth(client as never), {
|
|
124
142
|
app: resolved,
|
|
125
143
|
}) as unknown as ReturnType<typeof pyricGetAuth>;
|
|
144
|
+
attachServedSandboxHook(handle, {
|
|
145
|
+
mockSignInResult: (result) => stageSignInResult(handle as never, result),
|
|
146
|
+
});
|
|
126
147
|
workerAuthByApp.set(resolved, handle);
|
|
127
148
|
wireAppPersistence(resolved, handle);
|
|
128
149
|
const releaseActiveAuth = registerActiveAuth(handle);
|
|
@@ -41,6 +41,7 @@ export const doc = D.doc;
|
|
|
41
41
|
export const getDoc = D.getDoc;
|
|
42
42
|
export const getDocs = D.getDocs;
|
|
43
43
|
export const getCountFromServer = D.getCountFromServer;
|
|
44
|
+
export const getAggregateFromServer = D.getAggregateFromServer;
|
|
44
45
|
export const setDoc = D.setDoc;
|
|
45
46
|
export const addDoc = D.addDoc;
|
|
46
47
|
export const updateDoc = D.updateDoc;
|
|
@@ -146,15 +146,38 @@ export function forgetSessionToken(): void {
|
|
|
146
146
|
sessionTokenIsStale = true;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
+
/** Reads `init.json` from the host serving it now; the read also answers the next session-token read. */
|
|
150
|
+
async function readHostPayload(): Promise<InitPayload> {
|
|
151
|
+
const payload = await requestInitPayload();
|
|
152
|
+
sessionTokenRequest = Promise.resolve(payload.sessionToken ?? null);
|
|
153
|
+
sessionTokenIsStale = false;
|
|
154
|
+
return payload;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** The read a reattach made for its socket url, which its boot id comes from too. */
|
|
158
|
+
let readForReattach: Promise<InitPayload> | undefined;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The `init.json` of the host serving now, read afresh before a Node process
|
|
162
|
+
* reattaches: its bridge url says where the socket goes, on a host that may
|
|
163
|
+
* have moved. The next {@link currentHostInstanceId} answers from this read.
|
|
164
|
+
*/
|
|
165
|
+
export function currentHostPayload(): Promise<InitPayload> {
|
|
166
|
+
const read = readHostPayload();
|
|
167
|
+
readForReattach = read;
|
|
168
|
+
return read;
|
|
169
|
+
}
|
|
170
|
+
|
|
149
171
|
/**
|
|
150
172
|
* The boot id of the host serving `init.json` now, read afresh. A Node process
|
|
151
173
|
* presents it when it reattaches, so after a host restart it presents the new
|
|
152
|
-
* boot.
|
|
153
|
-
*
|
|
174
|
+
* boot. It comes from the read the reattach made for its url when there is one,
|
|
175
|
+
* and that read answers the next session-token read, so a reconnect reads
|
|
176
|
+
* `init.json` once.
|
|
154
177
|
*/
|
|
155
178
|
export async function currentHostInstanceId(): Promise<string | undefined> {
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
179
|
+
const pending = readForReattach;
|
|
180
|
+
readForReattach = undefined;
|
|
181
|
+
const payload = await (pending ?? readHostPayload());
|
|
159
182
|
return payload.instanceId;
|
|
160
183
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a Node process's socket goes when it reattaches to a host that may
|
|
3
|
+
* have moved. Discovery reads `.pyric/serve.json` in this project and its
|
|
4
|
+
* parent and sibling folders, and a host removes its pointer when it stops,
|
|
5
|
+
* so while this project's host restarts, discovery can answer with a
|
|
6
|
+
* neighbouring project's host or with a host that is not the Node host.
|
|
7
|
+
* Attaching there closes the client for good, so the url is refused instead
|
|
8
|
+
* and the reattach tries again on its backoff until this project's host is back.
|
|
9
|
+
*/
|
|
10
|
+
import type { InitPayload } from '../init-payload.js';
|
|
11
|
+
import { toPageOriginWsUrl } from './bridge-url.js';
|
|
12
|
+
import { hostLocation } from './runtime-origin.js';
|
|
13
|
+
|
|
14
|
+
/** The host a Node process attached to first: its project and its socket path. */
|
|
15
|
+
export interface AttachedHost {
|
|
16
|
+
readonly projectKey: string;
|
|
17
|
+
readonly bridgeUrl: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** The socket url on `host`, whose `init.json` is `current`, or a throw while `host` is not this project's Node host. */
|
|
21
|
+
export function movedSocketUrl(current: InitPayload, host: string, attached: AttachedHost): string {
|
|
22
|
+
const isOtherProject = current.projectKey !== attached.projectKey;
|
|
23
|
+
if (isOtherProject) throw new Error(`The host at ${host} serves another project; waiting for this project's host.`);
|
|
24
|
+
const isNotNodeHost = current.hosted !== true;
|
|
25
|
+
if (isNotNodeHost) throw new Error(`The host at ${host} is not the Node host; waiting for this project's host.`);
|
|
26
|
+
const bridgeUrl = typeof current.bridgeUrl === 'string' ? current.bridgeUrl : attached.bridgeUrl;
|
|
27
|
+
return toPageOriginWsUrl(bridgeUrl, hostLocation(host), 'page-origin');
|
|
28
|
+
}
|
|
@@ -26,6 +26,12 @@ export interface NodeRuntimeOrigin {
|
|
|
26
26
|
* settles. Discovery starts at the first call, so importing an SDK opens nothing.
|
|
27
27
|
*/
|
|
28
28
|
readonly host: () => Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* The connection to the host was lost: the next `host()` resolves it again,
|
|
31
|
+
* as `pyric-admin`'s remote sandbox does at each connect, so a host that
|
|
32
|
+
* came back on another port is found there.
|
|
33
|
+
*/
|
|
34
|
+
readonly forgetHost?: () => void;
|
|
29
35
|
/** The socket and event-loop behavior of a hosted connection in Node. */
|
|
30
36
|
readonly socketRealm: HostedSocketRealm;
|
|
31
37
|
/** Raised for every call when the host is not a Node host. */
|
|
@@ -6,7 +6,6 @@ export const documentSnapshotFromJSON = unsupportedServedApi('firestore', 'docum
|
|
|
6
6
|
export const enablePersistentCacheIndexAutoCreation = unsupportedServedApi('firestore', 'enablePersistentCacheIndexAutoCreation');
|
|
7
7
|
export const ensureFirestoreConfigured = unsupportedServedApi('firestore', 'ensureFirestoreConfigured');
|
|
8
8
|
export const executeWrite = unsupportedServedApi('firestore', 'executeWrite');
|
|
9
|
-
export const getAggregateFromServer = unsupportedServedApi('firestore', 'getAggregateFromServer');
|
|
10
9
|
export const getPersistentCacheIndexManager = unsupportedServedApi('firestore', 'getPersistentCacheIndexManager');
|
|
11
10
|
export const loadBundle = unsupportedServedApi('firestore', 'loadBundle');
|
|
12
11
|
export const namedQuery = unsupportedServedApi('firestore', 'namedQuery');
|