@pyric/cli 0.1.0-alpha.30.2 → 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.
Files changed (1327) hide show
  1. package/dist/assurance/.generated/conformance-verdicts.d.ts +107 -40
  2. package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
  3. package/dist/assurance/.generated/conformance-verdicts.js +107 -40
  4. package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
  5. package/dist/assurance/capabilities.d.ts.map +1 -1
  6. package/dist/assurance/capabilities.js +12 -14
  7. package/dist/assurance/capabilities.js.map +1 -1
  8. package/dist/bounded-request.d.ts +27 -5
  9. package/dist/bounded-request.d.ts.map +1 -1
  10. package/dist/bounded-request.js +48 -4
  11. package/dist/bounded-request.js.map +1 -1
  12. package/dist/bridge/client/bridge-url.d.ts +5 -1
  13. package/dist/bridge/client/bridge-url.d.ts.map +1 -1
  14. package/dist/bridge/client/bridge-url.js +5 -1
  15. package/dist/bridge/client/bridge-url.js.map +1 -1
  16. package/dist/bridge/client/bridge.d.ts +9 -3
  17. package/dist/bridge/client/bridge.d.ts.map +1 -1
  18. package/dist/bridge/client/bridge.js +17 -3
  19. package/dist/bridge/client/bridge.js.map +1 -1
  20. package/dist/bridge/frame-output.d.ts.map +1 -1
  21. package/dist/bridge/frame-output.js +46 -0
  22. package/dist/bridge/frame-output.js.map +1 -1
  23. package/dist/bridge/protocol.d.ts +10 -0
  24. package/dist/bridge/protocol.d.ts.map +1 -1
  25. package/dist/bridge/protocol.js +10 -0
  26. package/dist/bridge/protocol.js.map +1 -1
  27. package/dist/bridge/server/in-process.d.ts +16 -7
  28. package/dist/bridge/server/in-process.d.ts.map +1 -1
  29. package/dist/bridge/server/in-process.js +51 -17
  30. package/dist/bridge/server/in-process.js.map +1 -1
  31. package/dist/bridge/server/peer.d.ts +8 -0
  32. package/dist/bridge/server/peer.d.ts.map +1 -1
  33. package/dist/bridge/server/peer.js +10 -0
  34. package/dist/bridge/server/peer.js.map +1 -1
  35. package/dist/bridge/server/standalone.d.ts +7 -2
  36. package/dist/bridge/server/standalone.d.ts.map +1 -1
  37. package/dist/bridge/server/standalone.js +27 -99
  38. package/dist/bridge/server/standalone.js.map +1 -1
  39. package/dist/bridge/surface/arguments/firestore.d.ts +6 -6
  40. package/dist/bridge/surface/arguments/sandbox.d.ts +0 -47
  41. package/dist/bridge/surface/arguments/sandbox.d.ts.map +1 -1
  42. package/dist/bridge/surface/arguments/sandbox.js +2 -59
  43. package/dist/bridge/surface/arguments/sandbox.js.map +1 -1
  44. package/dist/bridge/surface/arguments/seed.d.ts +61 -0
  45. package/dist/bridge/surface/arguments/seed.d.ts.map +1 -0
  46. package/dist/bridge/surface/arguments/seed.js +67 -0
  47. package/dist/bridge/surface/arguments/seed.js.map +1 -0
  48. package/dist/bridge/surface/arguments/storage.d.ts +2 -2
  49. package/dist/bridge/surface/context.d.ts +5 -10
  50. package/dist/bridge/surface/context.d.ts.map +1 -1
  51. package/dist/bridge/surface/context.js +11 -23
  52. package/dist/bridge/surface/context.js.map +1 -1
  53. package/dist/bridge/surface/database-instance-catalog.d.ts +0 -3
  54. package/dist/bridge/surface/database-instance-catalog.d.ts.map +1 -1
  55. package/dist/bridge/surface/database-instance-catalog.js +4 -27
  56. package/dist/bridge/surface/database-instance-catalog.js.map +1 -1
  57. package/dist/bridge/surface/database-instance-project.d.ts +5 -0
  58. package/dist/bridge/surface/database-instance-project.d.ts.map +1 -0
  59. package/dist/bridge/surface/database-instance-project.js +32 -0
  60. package/dist/bridge/surface/database-instance-project.js.map +1 -0
  61. package/dist/bridge/surface/database-instance.d.ts +3 -3
  62. package/dist/bridge/surface/database-instance.d.ts.map +1 -1
  63. package/dist/bridge/surface/database-instance.js +1 -2
  64. package/dist/bridge/surface/database-instance.js.map +1 -1
  65. package/dist/bridge/surface/functions-runtime.d.ts +2 -2
  66. package/dist/bridge/surface/functions-runtime.js +5 -5
  67. package/dist/bridge/surface/functions-runtime.js.map +1 -1
  68. package/dist/bridge/surface/held-identity.d.ts +4 -4
  69. package/dist/bridge/surface/held-identity.d.ts.map +1 -1
  70. package/dist/bridge/surface/held-identity.js.map +1 -1
  71. package/dist/bridge/surface/manifest.sandbox.generated.d.ts +3 -0
  72. package/dist/bridge/surface/manifest.sandbox.generated.d.ts.map +1 -0
  73. package/dist/bridge/surface/manifest.sandbox.generated.js +135 -0
  74. package/dist/bridge/surface/manifest.sandbox.generated.js.map +1 -0
  75. package/dist/bridge/surface/method-types.d.ts +48 -7
  76. package/dist/bridge/surface/method-types.d.ts.map +1 -1
  77. package/dist/bridge/surface/method-types.js +15 -0
  78. package/dist/bridge/surface/method-types.js.map +1 -1
  79. package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts +2 -1
  80. package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts.map +1 -1
  81. package/dist/bridge/surface/methods/ai_logic/clearScripts.js +2 -1
  82. package/dist/bridge/surface/methods/ai_logic/clearScripts.js.map +1 -1
  83. package/dist/bridge/surface/methods/ai_logic/script.d.ts +2 -1
  84. package/dist/bridge/surface/methods/ai_logic/script.d.ts.map +1 -1
  85. package/dist/bridge/surface/methods/ai_logic/script.js +2 -1
  86. package/dist/bridge/surface/methods/ai_logic/script.js.map +1 -1
  87. package/dist/bridge/surface/methods/ai_logic/scripts.d.ts +2 -1
  88. package/dist/bridge/surface/methods/ai_logic/scripts.d.ts.map +1 -1
  89. package/dist/bridge/surface/methods/ai_logic/scripts.js +2 -1
  90. package/dist/bridge/surface/methods/ai_logic/scripts.js.map +1 -1
  91. package/dist/bridge/surface/methods/ai_logic/status.d.ts +2 -1
  92. package/dist/bridge/surface/methods/ai_logic/status.d.ts.map +1 -1
  93. package/dist/bridge/surface/methods/ai_logic/status.js +1 -0
  94. package/dist/bridge/surface/methods/ai_logic/status.js.map +1 -1
  95. package/dist/bridge/surface/methods/assurance/attach.d.ts +1 -0
  96. package/dist/bridge/surface/methods/assurance/attach.d.ts.map +1 -1
  97. package/dist/bridge/surface/methods/assurance/attach.js +1 -0
  98. package/dist/bridge/surface/methods/assurance/attach.js.map +1 -1
  99. package/dist/bridge/surface/methods/assurance/canIUse.d.ts +1 -0
  100. package/dist/bridge/surface/methods/assurance/canIUse.d.ts.map +1 -1
  101. package/dist/bridge/surface/methods/assurance/canIUse.js +1 -0
  102. package/dist/bridge/surface/methods/assurance/canIUse.js.map +1 -1
  103. package/dist/bridge/surface/methods/assurance/define.d.ts +1 -0
  104. package/dist/bridge/surface/methods/assurance/define.d.ts.map +1 -1
  105. package/dist/bridge/surface/methods/assurance/define.js +1 -0
  106. package/dist/bridge/surface/methods/assurance/define.js.map +1 -1
  107. package/dist/bridge/surface/methods/assurance/export.d.ts +1 -0
  108. package/dist/bridge/surface/methods/assurance/export.d.ts.map +1 -1
  109. package/dist/bridge/surface/methods/assurance/export.js +1 -0
  110. package/dist/bridge/surface/methods/assurance/export.js.map +1 -1
  111. package/dist/bridge/surface/methods/assurance/inspect.d.ts +1 -0
  112. package/dist/bridge/surface/methods/assurance/inspect.d.ts.map +1 -1
  113. package/dist/bridge/surface/methods/assurance/inspect.js +1 -0
  114. package/dist/bridge/surface/methods/assurance/inspect.js.map +1 -1
  115. package/dist/bridge/surface/methods/assurance/map.d.ts +1 -0
  116. package/dist/bridge/surface/methods/assurance/map.d.ts.map +1 -1
  117. package/dist/bridge/surface/methods/assurance/map.js +1 -0
  118. package/dist/bridge/surface/methods/assurance/map.js.map +1 -1
  119. package/dist/bridge/surface/methods/assurance/minimize.d.ts +1 -0
  120. package/dist/bridge/surface/methods/assurance/minimize.d.ts.map +1 -1
  121. package/dist/bridge/surface/methods/assurance/minimize.js +1 -0
  122. package/dist/bridge/surface/methods/assurance/minimize.js.map +1 -1
  123. package/dist/bridge/surface/methods/assurance/propose.d.ts +1 -0
  124. package/dist/bridge/surface/methods/assurance/propose.d.ts.map +1 -1
  125. package/dist/bridge/surface/methods/assurance/propose.js +1 -0
  126. package/dist/bridge/surface/methods/assurance/propose.js.map +1 -1
  127. package/dist/bridge/surface/methods/assurance/replaySession.d.ts +1 -0
  128. package/dist/bridge/surface/methods/assurance/replaySession.d.ts.map +1 -1
  129. package/dist/bridge/surface/methods/assurance/replaySession.js +1 -0
  130. package/dist/bridge/surface/methods/assurance/replaySession.js.map +1 -1
  131. package/dist/bridge/surface/methods/assurance/run.d.ts +1 -0
  132. package/dist/bridge/surface/methods/assurance/run.d.ts.map +1 -1
  133. package/dist/bridge/surface/methods/assurance/run.js +1 -0
  134. package/dist/bridge/surface/methods/assurance/run.js.map +1 -1
  135. package/dist/bridge/surface/methods/assurance/start.d.ts +1 -0
  136. package/dist/bridge/surface/methods/assurance/start.d.ts.map +1 -1
  137. package/dist/bridge/surface/methods/assurance/start.js +1 -0
  138. package/dist/bridge/surface/methods/assurance/start.js.map +1 -1
  139. package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts +1 -0
  140. package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts.map +1 -1
  141. package/dist/bridge/surface/methods/assurance/testRulesHosted.js +1 -0
  142. package/dist/bridge/surface/methods/assurance/testRulesHosted.js.map +1 -1
  143. package/dist/bridge/surface/methods/assurance/verify.d.ts +1 -0
  144. package/dist/bridge/surface/methods/assurance/verify.d.ts.map +1 -1
  145. package/dist/bridge/surface/methods/assurance/verify.js +1 -0
  146. package/dist/bridge/surface/methods/assurance/verify.js.map +1 -1
  147. package/dist/bridge/surface/methods/assurance/verifyCases.d.ts +1 -0
  148. package/dist/bridge/surface/methods/assurance/verifyCases.d.ts.map +1 -1
  149. package/dist/bridge/surface/methods/assurance/verifyCases.js +1 -0
  150. package/dist/bridge/surface/methods/assurance/verifyCases.js.map +1 -1
  151. package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts +2 -1
  152. package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts.map +1 -1
  153. package/dist/bridge/surface/methods/auth/actAsAdmin.js +1 -0
  154. package/dist/bridge/surface/methods/auth/actAsAdmin.js.map +1 -1
  155. package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts +2 -1
  156. package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts.map +1 -1
  157. package/dist/bridge/surface/methods/auth/actAsAnonymous.js +1 -0
  158. package/dist/bridge/surface/methods/auth/actAsAnonymous.js.map +1 -1
  159. package/dist/bridge/surface/methods/auth/createCustomToken.d.ts +1 -0
  160. package/dist/bridge/surface/methods/auth/createCustomToken.d.ts.map +1 -1
  161. package/dist/bridge/surface/methods/auth/createCustomToken.js +1 -0
  162. package/dist/bridge/surface/methods/auth/createCustomToken.js.map +1 -1
  163. package/dist/bridge/surface/methods/auth/createUser.d.ts +2 -1
  164. package/dist/bridge/surface/methods/auth/createUser.d.ts.map +1 -1
  165. package/dist/bridge/surface/methods/auth/createUser.js +2 -1
  166. package/dist/bridge/surface/methods/auth/createUser.js.map +1 -1
  167. package/dist/bridge/surface/methods/auth/deleteUser.d.ts +2 -1
  168. package/dist/bridge/surface/methods/auth/deleteUser.d.ts.map +1 -1
  169. package/dist/bridge/surface/methods/auth/deleteUser.js +2 -1
  170. package/dist/bridge/surface/methods/auth/deleteUser.js.map +1 -1
  171. package/dist/bridge/surface/methods/auth/getUser.d.ts +2 -1
  172. package/dist/bridge/surface/methods/auth/getUser.d.ts.map +1 -1
  173. package/dist/bridge/surface/methods/auth/getUser.js +2 -1
  174. package/dist/bridge/surface/methods/auth/getUser.js.map +1 -1
  175. package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts +2 -1
  176. package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts.map +1 -1
  177. package/dist/bridge/surface/methods/auth/getUserByEmail.js +2 -1
  178. package/dist/bridge/surface/methods/auth/getUserByEmail.js.map +1 -1
  179. package/dist/bridge/surface/methods/auth/impersonate.d.ts +2 -1
  180. package/dist/bridge/surface/methods/auth/impersonate.d.ts.map +1 -1
  181. package/dist/bridge/surface/methods/auth/impersonate.js +1 -0
  182. package/dist/bridge/surface/methods/auth/impersonate.js.map +1 -1
  183. package/dist/bridge/surface/methods/auth/importUsers.d.ts +2 -1
  184. package/dist/bridge/surface/methods/auth/importUsers.d.ts.map +1 -1
  185. package/dist/bridge/surface/methods/auth/importUsers.js +3 -2
  186. package/dist/bridge/surface/methods/auth/importUsers.js.map +1 -1
  187. package/dist/bridge/surface/methods/auth/listUsers.d.ts +2 -1
  188. package/dist/bridge/surface/methods/auth/listUsers.d.ts.map +1 -1
  189. package/dist/bridge/surface/methods/auth/listUsers.js +2 -1
  190. package/dist/bridge/surface/methods/auth/listUsers.js.map +1 -1
  191. package/dist/bridge/surface/methods/auth/sessions.d.ts +2 -1
  192. package/dist/bridge/surface/methods/auth/sessions.d.ts.map +1 -1
  193. package/dist/bridge/surface/methods/auth/sessions.js +1 -0
  194. package/dist/bridge/surface/methods/auth/sessions.js.map +1 -1
  195. package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts +2 -1
  196. package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts.map +1 -1
  197. package/dist/bridge/surface/methods/auth/setCustomUserClaims.js +2 -1
  198. package/dist/bridge/surface/methods/auth/setCustomUserClaims.js.map +1 -1
  199. package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts +2 -1
  200. package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts.map +1 -1
  201. package/dist/bridge/surface/methods/auth/signInAnonymously.js +1 -0
  202. package/dist/bridge/surface/methods/auth/signInAnonymously.js.map +1 -1
  203. package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts +2 -1
  204. package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts.map +1 -1
  205. package/dist/bridge/surface/methods/auth/signInWithCredential.js +1 -0
  206. package/dist/bridge/surface/methods/auth/signInWithCredential.js.map +1 -1
  207. package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts +2 -1
  208. package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts.map +1 -1
  209. package/dist/bridge/surface/methods/auth/signInWithCustomToken.js +1 -0
  210. package/dist/bridge/surface/methods/auth/signInWithCustomToken.js.map +1 -1
  211. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts +2 -1
  212. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts.map +1 -1
  213. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js +1 -0
  214. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js.map +1 -1
  215. package/dist/bridge/surface/methods/auth/signOut.d.ts +2 -1
  216. package/dist/bridge/surface/methods/auth/signOut.d.ts.map +1 -1
  217. package/dist/bridge/surface/methods/auth/signOut.js +1 -0
  218. package/dist/bridge/surface/methods/auth/signOut.js.map +1 -1
  219. package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts +2 -1
  220. package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts.map +1 -1
  221. package/dist/bridge/surface/methods/auth/takeAuthMail.js +1 -0
  222. package/dist/bridge/surface/methods/auth/takeAuthMail.js.map +1 -1
  223. package/dist/bridge/surface/methods/auth/updateUser.d.ts +2 -1
  224. package/dist/bridge/surface/methods/auth/updateUser.d.ts.map +1 -1
  225. package/dist/bridge/surface/methods/auth/updateUser.js +2 -1
  226. package/dist/bridge/surface/methods/auth/updateUser.js.map +1 -1
  227. package/dist/bridge/surface/methods/auth/useAppSession.d.ts +2 -1
  228. package/dist/bridge/surface/methods/auth/useAppSession.d.ts.map +1 -1
  229. package/dist/bridge/surface/methods/auth/useAppSession.js +1 -0
  230. package/dist/bridge/surface/methods/auth/useAppSession.js.map +1 -1
  231. package/dist/bridge/surface/methods/auth/whoami.d.ts +2 -1
  232. package/dist/bridge/surface/methods/auth/whoami.d.ts.map +1 -1
  233. package/dist/bridge/surface/methods/auth/whoami.js +1 -0
  234. package/dist/bridge/surface/methods/auth/whoami.js.map +1 -1
  235. package/dist/bridge/surface/methods/database/crawl.d.ts +2 -1
  236. package/dist/bridge/surface/methods/database/crawl.d.ts.map +1 -1
  237. package/dist/bridge/surface/methods/database/crawl.js +1 -0
  238. package/dist/bridge/surface/methods/database/crawl.js.map +1 -1
  239. package/dist/bridge/surface/methods/database/get.d.ts +2 -1
  240. package/dist/bridge/surface/methods/database/get.d.ts.map +1 -1
  241. package/dist/bridge/surface/methods/database/get.js +1 -0
  242. package/dist/bridge/surface/methods/database/get.js.map +1 -1
  243. package/dist/bridge/surface/methods/database/push.d.ts +2 -1
  244. package/dist/bridge/surface/methods/database/push.d.ts.map +1 -1
  245. package/dist/bridge/surface/methods/database/push.js +1 -0
  246. package/dist/bridge/surface/methods/database/push.js.map +1 -1
  247. package/dist/bridge/surface/methods/database/query.d.ts +2 -1
  248. package/dist/bridge/surface/methods/database/query.d.ts.map +1 -1
  249. package/dist/bridge/surface/methods/database/query.js +1 -0
  250. package/dist/bridge/surface/methods/database/query.js.map +1 -1
  251. package/dist/bridge/surface/methods/database/remove.d.ts +2 -1
  252. package/dist/bridge/surface/methods/database/remove.d.ts.map +1 -1
  253. package/dist/bridge/surface/methods/database/remove.js +1 -0
  254. package/dist/bridge/surface/methods/database/remove.js.map +1 -1
  255. package/dist/bridge/surface/methods/database/set.d.ts +2 -1
  256. package/dist/bridge/surface/methods/database/set.d.ts.map +1 -1
  257. package/dist/bridge/surface/methods/database/set.js +1 -0
  258. package/dist/bridge/surface/methods/database/set.js.map +1 -1
  259. package/dist/bridge/surface/methods/database/update.d.ts +2 -1
  260. package/dist/bridge/surface/methods/database/update.d.ts.map +1 -1
  261. package/dist/bridge/surface/methods/database/update.js +1 -0
  262. package/dist/bridge/surface/methods/database/update.js.map +1 -1
  263. package/dist/bridge/surface/methods/firestore/addDoc.d.ts +2 -1
  264. package/dist/bridge/surface/methods/firestore/addDoc.d.ts.map +1 -1
  265. package/dist/bridge/surface/methods/firestore/addDoc.js +2 -1
  266. package/dist/bridge/surface/methods/firestore/addDoc.js.map +1 -1
  267. package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts +2 -1
  268. package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts.map +1 -1
  269. package/dist/bridge/surface/methods/firestore/deleteDoc.js +2 -1
  270. package/dist/bridge/surface/methods/firestore/deleteDoc.js.map +1 -1
  271. package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts +2 -1
  272. package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts.map +1 -1
  273. package/dist/bridge/surface/methods/firestore/discoverPaths.js +1 -0
  274. package/dist/bridge/surface/methods/firestore/discoverPaths.js.map +1 -1
  275. package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts +7 -6
  276. package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts.map +1 -1
  277. package/dist/bridge/surface/methods/firestore/extractIndexes.js +1 -0
  278. package/dist/bridge/surface/methods/firestore/extractIndexes.js.map +1 -1
  279. package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts +2 -1
  280. package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts.map +1 -1
  281. package/dist/bridge/surface/methods/firestore/findCollectionGroup.js +1 -0
  282. package/dist/bridge/surface/methods/firestore/findCollectionGroup.js.map +1 -1
  283. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts +6 -5
  284. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts.map +1 -1
  285. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js +1 -0
  286. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js.map +1 -1
  287. package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts +6 -5
  288. package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts.map +1 -1
  289. package/dist/bridge/surface/methods/firestore/getCountFromServer.js +1 -0
  290. package/dist/bridge/surface/methods/firestore/getCountFromServer.js.map +1 -1
  291. package/dist/bridge/surface/methods/firestore/getDoc.d.ts +2 -1
  292. package/dist/bridge/surface/methods/firestore/getDoc.d.ts.map +1 -1
  293. package/dist/bridge/surface/methods/firestore/getDoc.js +2 -1
  294. package/dist/bridge/surface/methods/firestore/getDoc.js.map +1 -1
  295. package/dist/bridge/surface/methods/firestore/getDocs.d.ts +6 -5
  296. package/dist/bridge/surface/methods/firestore/getDocs.d.ts.map +1 -1
  297. package/dist/bridge/surface/methods/firestore/getDocs.js +2 -1
  298. package/dist/bridge/surface/methods/firestore/getDocs.js.map +1 -1
  299. package/dist/bridge/surface/methods/firestore/setDoc.d.ts +2 -1
  300. package/dist/bridge/surface/methods/firestore/setDoc.d.ts.map +1 -1
  301. package/dist/bridge/surface/methods/firestore/setDoc.js +2 -1
  302. package/dist/bridge/surface/methods/firestore/setDoc.js.map +1 -1
  303. package/dist/bridge/surface/methods/firestore/updateDoc.d.ts +2 -1
  304. package/dist/bridge/surface/methods/firestore/updateDoc.d.ts.map +1 -1
  305. package/dist/bridge/surface/methods/firestore/updateDoc.js +2 -1
  306. package/dist/bridge/surface/methods/firestore/updateDoc.js.map +1 -1
  307. package/dist/bridge/surface/methods/firestore/writeBatch.d.ts +2 -1
  308. package/dist/bridge/surface/methods/firestore/writeBatch.d.ts.map +1 -1
  309. package/dist/bridge/surface/methods/firestore/writeBatch.js +2 -1
  310. package/dist/bridge/surface/methods/firestore/writeBatch.js.map +1 -1
  311. package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts +1 -0
  312. package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts.map +1 -1
  313. package/dist/bridge/surface/methods/firestore/writeIndexes.js +1 -0
  314. package/dist/bridge/surface/methods/firestore/writeIndexes.js.map +1 -1
  315. package/dist/bridge/surface/methods/functions/executions.d.ts +3 -2
  316. package/dist/bridge/surface/methods/functions/executions.d.ts.map +1 -1
  317. package/dist/bridge/surface/methods/functions/executions.js +2 -1
  318. package/dist/bridge/surface/methods/functions/executions.js.map +1 -1
  319. package/dist/bridge/surface/methods/functions/fire.d.ts +1 -0
  320. package/dist/bridge/surface/methods/functions/fire.d.ts.map +1 -1
  321. package/dist/bridge/surface/methods/functions/fire.js +6 -5
  322. package/dist/bridge/surface/methods/functions/fire.js.map +1 -1
  323. package/dist/bridge/surface/methods/functions/listTriggers.d.ts +2 -1
  324. package/dist/bridge/surface/methods/functions/listTriggers.d.ts.map +1 -1
  325. package/dist/bridge/surface/methods/functions/listTriggers.js +1 -0
  326. package/dist/bridge/surface/methods/functions/listTriggers.js.map +1 -1
  327. package/dist/bridge/surface/methods/messaging/deliveries.d.ts +2 -1
  328. package/dist/bridge/surface/methods/messaging/deliveries.d.ts.map +1 -1
  329. package/dist/bridge/surface/methods/messaging/deliveries.js +1 -0
  330. package/dist/bridge/surface/methods/messaging/deliveries.js.map +1 -1
  331. package/dist/bridge/surface/methods/messaging/send.d.ts +2 -1
  332. package/dist/bridge/surface/methods/messaging/send.d.ts.map +1 -1
  333. package/dist/bridge/surface/methods/messaging/send.js +2 -1
  334. package/dist/bridge/surface/methods/messaging/send.js.map +1 -1
  335. package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts +2 -1
  336. package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts.map +1 -1
  337. package/dist/bridge/surface/methods/messaging/subscribeToTopic.js +1 -0
  338. package/dist/bridge/surface/methods/messaging/subscribeToTopic.js.map +1 -1
  339. package/dist/bridge/surface/methods/messaging/tokens.d.ts +2 -1
  340. package/dist/bridge/surface/methods/messaging/tokens.d.ts.map +1 -1
  341. package/dist/bridge/surface/methods/messaging/tokens.js +1 -0
  342. package/dist/bridge/surface/methods/messaging/tokens.js.map +1 -1
  343. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts +2 -1
  344. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts.map +1 -1
  345. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js +1 -0
  346. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js.map +1 -1
  347. package/dist/bridge/surface/methods/registry.d.ts.map +1 -1
  348. package/dist/bridge/surface/methods/registry.js +2 -8
  349. package/dist/bridge/surface/methods/registry.js.map +1 -1
  350. package/dist/bridge/surface/methods/rules/explainDenial.d.ts +1 -0
  351. package/dist/bridge/surface/methods/rules/explainDenial.d.ts.map +1 -1
  352. package/dist/bridge/surface/methods/rules/explainDenial.js +1 -0
  353. package/dist/bridge/surface/methods/rules/explainDenial.js.map +1 -1
  354. package/dist/bridge/surface/methods/rules/getStdlib.d.ts +1 -0
  355. package/dist/bridge/surface/methods/rules/getStdlib.d.ts.map +1 -1
  356. package/dist/bridge/surface/methods/rules/getStdlib.js +1 -0
  357. package/dist/bridge/surface/methods/rules/getStdlib.js.map +1 -1
  358. package/dist/bridge/surface/methods/rules/lint.d.ts +1 -0
  359. package/dist/bridge/surface/methods/rules/lint.d.ts.map +1 -1
  360. package/dist/bridge/surface/methods/rules/lint.js +1 -0
  361. package/dist/bridge/surface/methods/rules/lint.js.map +1 -1
  362. package/dist/bridge/surface/methods/rules/listStdlib.d.ts +1 -0
  363. package/dist/bridge/surface/methods/rules/listStdlib.d.ts.map +1 -1
  364. package/dist/bridge/surface/methods/rules/listStdlib.js +1 -0
  365. package/dist/bridge/surface/methods/rules/listStdlib.js.map +1 -1
  366. package/dist/bridge/surface/methods/rules/set.d.ts +1 -0
  367. package/dist/bridge/surface/methods/rules/set.d.ts.map +1 -1
  368. package/dist/bridge/surface/methods/rules/set.js +1 -0
  369. package/dist/bridge/surface/methods/rules/set.js.map +1 -1
  370. package/dist/bridge/surface/methods/rules/simulate.d.ts +1 -0
  371. package/dist/bridge/surface/methods/rules/simulate.d.ts.map +1 -1
  372. package/dist/bridge/surface/methods/rules/simulate.js +1 -0
  373. package/dist/bridge/surface/methods/rules/simulate.js.map +1 -1
  374. package/dist/bridge/surface/methods/sandbox/activity.d.ts +2 -1
  375. package/dist/bridge/surface/methods/sandbox/activity.d.ts.map +1 -1
  376. package/dist/bridge/surface/methods/sandbox/activity.js +2 -1
  377. package/dist/bridge/surface/methods/sandbox/activity.js.map +1 -1
  378. package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts +2 -1
  379. package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts.map +1 -1
  380. package/dist/bridge/surface/methods/sandbox/advanceClock.js +1 -0
  381. package/dist/bridge/surface/methods/sandbox/advanceClock.js.map +1 -1
  382. package/dist/bridge/surface/methods/sandbox/apply.d.ts +1 -0
  383. package/dist/bridge/surface/methods/sandbox/apply.d.ts.map +1 -1
  384. package/dist/bridge/surface/methods/sandbox/apply.js +1 -0
  385. package/dist/bridge/surface/methods/sandbox/apply.js.map +1 -1
  386. package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts +1 -0
  387. package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts.map +1 -1
  388. package/dist/bridge/surface/methods/sandbox/checkpoint.js +1 -0
  389. package/dist/bridge/surface/methods/sandbox/checkpoint.js.map +1 -1
  390. package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts +1 -0
  391. package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts.map +1 -1
  392. package/dist/bridge/surface/methods/sandbox/deleteCapture.js +1 -1
  393. package/dist/bridge/surface/methods/sandbox/deleteCapture.js.map +1 -1
  394. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts +1 -0
  395. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts.map +1 -1
  396. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js +1 -0
  397. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js.map +1 -1
  398. package/dist/bridge/surface/methods/sandbox/diff.d.ts +1 -0
  399. package/dist/bridge/surface/methods/sandbox/diff.d.ts.map +1 -1
  400. package/dist/bridge/surface/methods/sandbox/diff.js +1 -0
  401. package/dist/bridge/surface/methods/sandbox/diff.js.map +1 -1
  402. package/dist/bridge/surface/methods/sandbox/discard.d.ts +1 -0
  403. package/dist/bridge/surface/methods/sandbox/discard.d.ts.map +1 -1
  404. package/dist/bridge/surface/methods/sandbox/discard.js +1 -0
  405. package/dist/bridge/surface/methods/sandbox/discard.js.map +1 -1
  406. package/dist/bridge/surface/methods/sandbox/events.d.ts +2 -1
  407. package/dist/bridge/surface/methods/sandbox/events.d.ts.map +1 -1
  408. package/dist/bridge/surface/methods/sandbox/events.js +2 -1
  409. package/dist/bridge/surface/methods/sandbox/events.js.map +1 -1
  410. package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts +1 -0
  411. package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts.map +1 -1
  412. package/dist/bridge/surface/methods/sandbox/exportFixture.js +1 -0
  413. package/dist/bridge/surface/methods/sandbox/exportFixture.js.map +1 -1
  414. package/dist/bridge/surface/methods/sandbox/fork.d.ts +1 -0
  415. package/dist/bridge/surface/methods/sandbox/fork.d.ts.map +1 -1
  416. package/dist/bridge/surface/methods/sandbox/fork.js +1 -0
  417. package/dist/bridge/surface/methods/sandbox/fork.js.map +1 -1
  418. package/dist/bridge/surface/methods/sandbox/inspect.d.ts +2 -1
  419. package/dist/bridge/surface/methods/sandbox/inspect.d.ts.map +1 -1
  420. package/dist/bridge/surface/methods/sandbox/inspect.js +2 -1
  421. package/dist/bridge/surface/methods/sandbox/inspect.js.map +1 -1
  422. package/dist/bridge/surface/methods/sandbox/listBranches.d.ts +1 -0
  423. package/dist/bridge/surface/methods/sandbox/listBranches.d.ts.map +1 -1
  424. package/dist/bridge/surface/methods/sandbox/listBranches.js +1 -0
  425. package/dist/bridge/surface/methods/sandbox/listBranches.js.map +1 -1
  426. package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts +1 -0
  427. package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts.map +1 -1
  428. package/dist/bridge/surface/methods/sandbox/listCaptures.js +1 -1
  429. package/dist/bridge/surface/methods/sandbox/listCaptures.js.map +1 -1
  430. package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts +1 -0
  431. package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts.map +1 -1
  432. package/dist/bridge/surface/methods/sandbox/listCheckpoints.js +1 -0
  433. package/dist/bridge/surface/methods/sandbox/listCheckpoints.js.map +1 -1
  434. package/dist/bridge/surface/methods/sandbox/listeners.d.ts +2 -1
  435. package/dist/bridge/surface/methods/sandbox/listeners.d.ts.map +1 -1
  436. package/dist/bridge/surface/methods/sandbox/listeners.js +1 -0
  437. package/dist/bridge/surface/methods/sandbox/listeners.js.map +1 -1
  438. package/dist/bridge/surface/methods/sandbox/openCapture.d.ts +1 -0
  439. package/dist/bridge/surface/methods/sandbox/openCapture.d.ts.map +1 -1
  440. package/dist/bridge/surface/methods/sandbox/openCapture.js +1 -1
  441. package/dist/bridge/surface/methods/sandbox/openCapture.js.map +1 -1
  442. package/dist/bridge/surface/methods/sandbox/promote.d.ts +1 -0
  443. package/dist/bridge/surface/methods/sandbox/promote.d.ts.map +1 -1
  444. package/dist/bridge/surface/methods/sandbox/promote.js +1 -0
  445. package/dist/bridge/surface/methods/sandbox/promote.js.map +1 -1
  446. package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts +3 -2
  447. package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts.map +1 -1
  448. package/dist/bridge/surface/methods/sandbox/renameCapture.js +1 -1
  449. package/dist/bridge/surface/methods/sandbox/renameCapture.js.map +1 -1
  450. package/dist/bridge/surface/methods/sandbox/reset.d.ts +3 -2
  451. package/dist/bridge/surface/methods/sandbox/reset.d.ts.map +1 -1
  452. package/dist/bridge/surface/methods/sandbox/reset.js +1 -0
  453. package/dist/bridge/surface/methods/sandbox/reset.js.map +1 -1
  454. package/dist/bridge/surface/methods/sandbox/resetClock.d.ts +2 -1
  455. package/dist/bridge/surface/methods/sandbox/resetClock.d.ts.map +1 -1
  456. package/dist/bridge/surface/methods/sandbox/resetClock.js +1 -0
  457. package/dist/bridge/surface/methods/sandbox/resetClock.js.map +1 -1
  458. package/dist/bridge/surface/methods/sandbox/restore.d.ts +1 -0
  459. package/dist/bridge/surface/methods/sandbox/restore.d.ts.map +1 -1
  460. package/dist/bridge/surface/methods/sandbox/restore.js +1 -0
  461. package/dist/bridge/surface/methods/sandbox/restore.js.map +1 -1
  462. package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts +1 -0
  463. package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts.map +1 -1
  464. package/dist/bridge/surface/methods/sandbox/saveCapture.js +1 -1
  465. package/dist/bridge/surface/methods/sandbox/saveCapture.js.map +1 -1
  466. package/dist/bridge/surface/methods/sandbox/seed.d.ts +2 -1
  467. package/dist/bridge/surface/methods/sandbox/seed.d.ts.map +1 -1
  468. package/dist/bridge/surface/methods/sandbox/seed.js +3 -2
  469. package/dist/bridge/surface/methods/sandbox/seed.js.map +1 -1
  470. package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts +1 -0
  471. package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts.map +1 -1
  472. package/dist/bridge/surface/methods/sandbox/seedFromFixture.js +1 -0
  473. package/dist/bridge/surface/methods/sandbox/seedFromFixture.js.map +1 -1
  474. package/dist/bridge/surface/methods/sandbox/setClock.d.ts +2 -1
  475. package/dist/bridge/surface/methods/sandbox/setClock.d.ts.map +1 -1
  476. package/dist/bridge/surface/methods/sandbox/setClock.js +1 -0
  477. package/dist/bridge/surface/methods/sandbox/setClock.js.map +1 -1
  478. package/dist/bridge/surface/methods/sandbox-registry.d.ts +6 -0
  479. package/dist/bridge/surface/methods/sandbox-registry.d.ts.map +1 -0
  480. package/dist/bridge/surface/methods/sandbox-registry.js +21 -0
  481. package/dist/bridge/surface/methods/sandbox-registry.js.map +1 -0
  482. package/dist/bridge/surface/methods/storage/deleteObject.d.ts +2 -1
  483. package/dist/bridge/surface/methods/storage/deleteObject.d.ts.map +1 -1
  484. package/dist/bridge/surface/methods/storage/deleteObject.js +1 -0
  485. package/dist/bridge/surface/methods/storage/deleteObject.js.map +1 -1
  486. package/dist/bridge/surface/methods/storage/getBytes.d.ts +2 -1
  487. package/dist/bridge/surface/methods/storage/getBytes.d.ts.map +1 -1
  488. package/dist/bridge/surface/methods/storage/getBytes.js +1 -0
  489. package/dist/bridge/surface/methods/storage/getBytes.js.map +1 -1
  490. package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts +2 -1
  491. package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts.map +1 -1
  492. package/dist/bridge/surface/methods/storage/getDownloadURL.js +1 -0
  493. package/dist/bridge/surface/methods/storage/getDownloadURL.js.map +1 -1
  494. package/dist/bridge/surface/methods/storage/getMetadata.d.ts +2 -1
  495. package/dist/bridge/surface/methods/storage/getMetadata.d.ts.map +1 -1
  496. package/dist/bridge/surface/methods/storage/getMetadata.js +1 -0
  497. package/dist/bridge/surface/methods/storage/getMetadata.js.map +1 -1
  498. package/dist/bridge/surface/methods/storage/listAll.d.ts +2 -1
  499. package/dist/bridge/surface/methods/storage/listAll.d.ts.map +1 -1
  500. package/dist/bridge/surface/methods/storage/listAll.js +1 -0
  501. package/dist/bridge/surface/methods/storage/listAll.js.map +1 -1
  502. package/dist/bridge/surface/methods/storage/provision.d.ts +1 -0
  503. package/dist/bridge/surface/methods/storage/provision.d.ts.map +1 -1
  504. package/dist/bridge/surface/methods/storage/provision.js +1 -0
  505. package/dist/bridge/surface/methods/storage/provision.js.map +1 -1
  506. package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts +2 -1
  507. package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts.map +1 -1
  508. package/dist/bridge/surface/methods/storage/setCrossServiceIam.js +1 -0
  509. package/dist/bridge/surface/methods/storage/setCrossServiceIam.js.map +1 -1
  510. package/dist/bridge/surface/methods/storage/status.d.ts +1 -0
  511. package/dist/bridge/surface/methods/storage/status.d.ts.map +1 -1
  512. package/dist/bridge/surface/methods/storage/status.js +1 -0
  513. package/dist/bridge/surface/methods/storage/status.js.map +1 -1
  514. package/dist/bridge/surface/methods/storage/updateMetadata.d.ts +6 -5
  515. package/dist/bridge/surface/methods/storage/updateMetadata.d.ts.map +1 -1
  516. package/dist/bridge/surface/methods/storage/updateMetadata.js +1 -0
  517. package/dist/bridge/surface/methods/storage/updateMetadata.js.map +1 -1
  518. package/dist/bridge/surface/methods/storage/uploadBytes.d.ts +1 -0
  519. package/dist/bridge/surface/methods/storage/uploadBytes.d.ts.map +1 -1
  520. package/dist/bridge/surface/methods/storage/uploadBytes.js +1 -0
  521. package/dist/bridge/surface/methods/storage/uploadBytes.js.map +1 -1
  522. package/dist/bridge/surface/render/discriminator-schemas.d.ts +2 -2
  523. package/dist/bridge/surface/request-instant.d.ts +2 -2
  524. package/dist/bridge/surface/request-instant.d.ts.map +1 -1
  525. package/dist/bridge/surface/request-instant.js.map +1 -1
  526. package/dist/bridge/surface/rules-engines/database.d.ts.map +1 -1
  527. package/dist/bridge/surface/rules-engines/database.js +1 -2
  528. package/dist/bridge/surface/rules-engines/database.js.map +1 -1
  529. package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts +38 -0
  530. package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts.map +1 -0
  531. package/dist/bridge/surface/rules-engines/storage-request-resource.js +246 -0
  532. package/dist/bridge/surface/rules-engines/storage-request-resource.js.map +1 -0
  533. package/dist/bridge/surface/rules-engines/storage.d.ts.map +1 -1
  534. package/dist/bridge/surface/rules-engines/storage.js +44 -65
  535. package/dist/bridge/surface/rules-engines/storage.js.map +1 -1
  536. package/dist/bridge/surface/sandbox-context.d.ts +25 -0
  537. package/dist/bridge/surface/sandbox-context.d.ts.map +1 -0
  538. package/dist/bridge/surface/sandbox-context.js +29 -0
  539. package/dist/bridge/surface/sandbox-context.js.map +1 -0
  540. package/dist/bridge/surface/service-handles.d.ts +6 -6
  541. package/dist/bridge/surface/service-handles.d.ts.map +1 -1
  542. package/dist/bridge/surface/service-handles.js +7 -4
  543. package/dist/bridge/surface/service-handles.js.map +1 -1
  544. package/dist/bridge/surface/sign-in.d.ts +2 -2
  545. package/dist/bridge/surface/sign-in.d.ts.map +1 -1
  546. package/dist/bridge/surface/sign-in.js +1 -1
  547. package/dist/bridge/surface/sign-in.js.map +1 -1
  548. package/dist/bridge/surface/storage-rules.d.ts +2 -9
  549. package/dist/bridge/surface/storage-rules.d.ts.map +1 -1
  550. package/dist/bridge/surface/storage-rules.js +0 -10
  551. package/dist/bridge/surface/storage-rules.js.map +1 -1
  552. package/dist/bridge/surface/stored-identity.d.ts +3 -3
  553. package/dist/bridge/surface/stored-identity.d.ts.map +1 -1
  554. package/dist/bridge/surface/stored-identity.js.map +1 -1
  555. package/dist/bridge/surface/types.d.ts +29 -8
  556. package/dist/bridge/surface/types.d.ts.map +1 -1
  557. package/dist/cli/firebase-json.d.ts +35 -7
  558. package/dist/cli/firebase-json.d.ts.map +1 -1
  559. package/dist/cli/firebase-json.js +13 -0
  560. package/dist/cli/firebase-json.js.map +1 -1
  561. package/dist/cli/firestore-indexes.d.ts.map +1 -1
  562. package/dist/cli/firestore-indexes.js +2 -1
  563. package/dist/cli/firestore-indexes.js.map +1 -1
  564. package/dist/cli/index.d.ts +6 -0
  565. package/dist/cli/index.d.ts.map +1 -1
  566. package/dist/cli/index.js +44 -11
  567. package/dist/cli/index.js.map +1 -1
  568. package/dist/cli/public-dir-hint.d.ts +8 -0
  569. package/dist/cli/public-dir-hint.d.ts.map +1 -0
  570. package/dist/cli/public-dir-hint.js +30 -0
  571. package/dist/cli/public-dir-hint.js.map +1 -0
  572. package/dist/cli/run.d.ts +8 -2
  573. package/dist/cli/run.d.ts.map +1 -1
  574. package/dist/cli/run.js +28 -5
  575. package/dist/cli/run.js.map +1 -1
  576. package/dist/cli/sandbox-runner.d.ts.map +1 -1
  577. package/dist/cli/sandbox-runner.js +11 -2
  578. package/dist/cli/sandbox-runner.js.map +1 -1
  579. package/dist/cli/serve-diagnostics.d.ts.map +1 -1
  580. package/dist/cli/serve-diagnostics.js +11 -1
  581. package/dist/cli/serve-diagnostics.js.map +1 -1
  582. package/dist/cli/serve.d.ts.map +1 -1
  583. package/dist/cli/serve.js +25 -24
  584. package/dist/cli/serve.js.map +1 -1
  585. package/dist/cli/snapshot.d.ts.map +1 -1
  586. package/dist/cli/snapshot.js +13 -5
  587. package/dist/cli/snapshot.js.map +1 -1
  588. package/dist/cli/surface-method-runner.js +1 -1
  589. package/dist/cli/surface-method-runner.js.map +1 -1
  590. package/dist/cli/verify.d.ts.map +1 -1
  591. package/dist/cli/verify.js +10 -1
  592. package/dist/cli/verify.js.map +1 -1
  593. package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
  594. package/dist/conformance/.generated/can-i-use-browser.js +19 -3
  595. package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
  596. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
  597. package/dist/conformance/.generated/can-i-use.js +1 -1
  598. package/dist/conformance/.generated/can-i-use.js.map +1 -1
  599. package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
  600. package/dist/conformance/.generated/conformance-docs.js +1 -1
  601. package/dist/conformance/.generated/conformance-docs.js.map +1 -1
  602. package/dist/conformance/.generated/served-availability.d.ts.map +1 -1
  603. package/dist/conformance/.generated/served-availability.js +1 -1
  604. package/dist/conformance/.generated/served-availability.js.map +1 -1
  605. package/dist/discover/merge.d.ts.map +1 -1
  606. package/dist/discover/merge.js +11 -3
  607. package/dist/discover/merge.js.map +1 -1
  608. package/dist/functions/child-protocol.d.ts +43 -0
  609. package/dist/functions/child-protocol.d.ts.map +1 -0
  610. package/dist/functions/child-protocol.js +14 -0
  611. package/dist/functions/child-protocol.js.map +1 -0
  612. package/dist/functions/child.d.ts +2 -0
  613. package/dist/functions/child.d.ts.map +1 -0
  614. package/dist/functions/child.js +92 -0
  615. package/dist/functions/child.js.map +1 -0
  616. package/dist/{functions-rtdb → functions}/development-runtime.d.ts +5 -4
  617. package/dist/functions/development-runtime.d.ts.map +1 -0
  618. package/dist/{functions-rtdb → functions}/development-runtime.js +2 -2
  619. package/dist/functions/development-runtime.js.map +1 -0
  620. package/dist/functions/endpoints.d.ts +39 -0
  621. package/dist/functions/endpoints.d.ts.map +1 -0
  622. package/dist/functions/endpoints.js +48 -0
  623. package/dist/functions/endpoints.js.map +1 -0
  624. package/dist/functions/events.d.ts.map +1 -0
  625. package/dist/functions/events.js.map +1 -0
  626. package/dist/functions/execution-log.d.ts.map +1 -0
  627. package/dist/functions/execution-log.js.map +1 -0
  628. package/dist/functions/module-loader.d.ts.map +1 -0
  629. package/dist/functions/module-loader.js.map +1 -0
  630. package/dist/functions/project.d.ts +7 -0
  631. package/dist/functions/project.d.ts.map +1 -0
  632. package/dist/{functions-rtdb → functions}/project.js +1 -1
  633. package/dist/functions/project.js.map +1 -0
  634. package/dist/functions/rtdb/child-runtime.d.ts +23 -0
  635. package/dist/functions/rtdb/child-runtime.d.ts.map +1 -0
  636. package/dist/functions/rtdb/child-runtime.js +102 -0
  637. package/dist/functions/rtdb/child-runtime.js.map +1 -0
  638. package/dist/functions/rtdb/delivery.d.ts.map +1 -0
  639. package/dist/functions/rtdb/delivery.js.map +1 -0
  640. package/dist/{functions-rtdb → functions/rtdb}/discovery.d.ts +3 -20
  641. package/dist/functions/rtdb/discovery.d.ts.map +1 -0
  642. package/dist/{functions-rtdb → functions/rtdb}/discovery.js +6 -21
  643. package/dist/functions/rtdb/discovery.js.map +1 -0
  644. package/dist/functions/rtdb/event.d.ts.map +1 -0
  645. package/dist/functions/rtdb/event.js.map +1 -0
  646. package/dist/functions/rtdb/execution.d.ts.map +1 -0
  647. package/dist/functions/rtdb/execution.js.map +1 -0
  648. package/dist/functions/rtdb/in-memory-delivery.d.ts.map +1 -0
  649. package/dist/functions/rtdb/in-memory-delivery.js.map +1 -0
  650. package/dist/functions/rtdb/projection.d.ts.map +1 -0
  651. package/dist/functions/rtdb/projection.js.map +1 -0
  652. package/dist/functions/rtdb/reference-pattern.d.ts.map +1 -0
  653. package/dist/functions/rtdb/reference-pattern.js.map +1 -0
  654. package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.d.ts +1 -1
  655. package/dist/functions/rtdb/remote-delivery.d.ts.map +1 -0
  656. package/dist/functions/rtdb/remote-delivery.js.map +1 -0
  657. package/dist/{functions-rtdb/child.d.ts → functions/spawn.d.ts} +16 -38
  658. package/dist/functions/spawn.d.ts.map +1 -0
  659. package/dist/functions/spawn.js +166 -0
  660. package/dist/functions/spawn.js.map +1 -0
  661. package/dist/functions/unsupported.d.ts +23 -0
  662. package/dist/functions/unsupported.d.ts.map +1 -0
  663. package/dist/functions/unsupported.js +25 -0
  664. package/dist/functions/unsupported.js.map +1 -0
  665. package/dist/google-endpoints.d.ts +9 -2
  666. package/dist/google-endpoints.d.ts.map +1 -1
  667. package/dist/google-endpoints.js +72 -3
  668. package/dist/google-endpoints.js.map +1 -1
  669. package/dist/next/bridge-import-loader.d.ts +9 -0
  670. package/dist/next/bridge-import-loader.d.ts.map +1 -0
  671. package/dist/next/bridge-import-loader.js +45 -0
  672. package/dist/next/bridge-import-loader.js.map +1 -0
  673. package/dist/next/bridge-imports.d.ts +26 -0
  674. package/dist/next/bridge-imports.d.ts.map +1 -0
  675. package/dist/next/bridge-imports.js +90 -0
  676. package/dist/next/bridge-imports.js.map +1 -0
  677. package/dist/next/client-aliases.d.ts +13 -5
  678. package/dist/next/client-aliases.d.ts.map +1 -1
  679. package/dist/next/client-aliases.js +14 -27
  680. package/dist/next/client-aliases.js.map +1 -1
  681. package/dist/next/guard.d.ts +3 -2
  682. package/dist/next/guard.d.ts.map +1 -1
  683. package/dist/next/guard.js +28 -10
  684. package/dist/next/guard.js.map +1 -1
  685. package/dist/next/turbopack-config.d.ts +9 -0
  686. package/dist/next/turbopack-config.d.ts.map +1 -1
  687. package/dist/next/turbopack-config.js +21 -0
  688. package/dist/next/turbopack-config.js.map +1 -1
  689. package/dist/next/webpack-config.d.ts +9 -0
  690. package/dist/next/webpack-config.d.ts.map +1 -1
  691. package/dist/next/webpack-config.js +18 -0
  692. package/dist/next/webpack-config.js.map +1 -1
  693. package/dist/next/with-pyric.d.ts +1 -0
  694. package/dist/next/with-pyric.d.ts.map +1 -1
  695. package/dist/next/with-pyric.js +25 -0
  696. package/dist/next/with-pyric.js.map +1 -1
  697. package/dist/register/activation.d.ts +16 -0
  698. package/dist/register/activation.d.ts.map +1 -0
  699. package/dist/register/activation.js +22 -0
  700. package/dist/register/activation.js.map +1 -0
  701. package/dist/register/app-bridge-admin-app-check.d.ts.map +1 -1
  702. package/dist/register/app-bridge-admin-app-check.js +3 -1
  703. package/dist/register/app-bridge-admin-app-check.js.map +1 -1
  704. package/dist/register/child-process-guard.d.ts +43 -0
  705. package/dist/register/child-process-guard.d.ts.map +1 -0
  706. package/dist/register/child-process-guard.js +165 -0
  707. package/dist/register/child-process-guard.js.map +1 -0
  708. package/dist/register/client/bootstrap.js +6 -1
  709. package/dist/register/client/bootstrap.js.map +1 -1
  710. package/dist/register/connect-prototypes.d.ts +9 -0
  711. package/dist/register/connect-prototypes.d.ts.map +1 -1
  712. package/dist/register/connect-prototypes.js +11 -0
  713. package/dist/register/connect-prototypes.js.map +1 -1
  714. package/dist/register/hooks.d.ts +7 -1
  715. package/dist/register/hooks.d.ts.map +1 -1
  716. package/dist/register/hooks.js +44 -2
  717. package/dist/register/hooks.js.map +1 -1
  718. package/dist/register/index.d.ts.map +1 -1
  719. package/dist/register/index.js +93 -23
  720. package/dist/register/index.js.map +1 -1
  721. package/dist/register/mapping.d.ts +33 -0
  722. package/dist/register/mapping.d.ts.map +1 -1
  723. package/dist/register/mapping.js +45 -3
  724. package/dist/register/mapping.js.map +1 -1
  725. package/dist/register/net-guard.d.ts +17 -0
  726. package/dist/register/net-guard.d.ts.map +1 -1
  727. package/dist/register/net-guard.js +118 -41
  728. package/dist/register/net-guard.js.map +1 -1
  729. package/dist/register/package-identity.d.ts +16 -0
  730. package/dist/register/package-identity.d.ts.map +1 -0
  731. package/dist/register/package-identity.js +97 -0
  732. package/dist/register/package-identity.js.map +1 -0
  733. package/dist/register/swap-or-stop.d.ts +27 -0
  734. package/dist/register/swap-or-stop.d.ts.map +1 -0
  735. package/dist/register/swap-or-stop.js +170 -0
  736. package/dist/register/swap-or-stop.js.map +1 -0
  737. package/dist/register/worker-guard.d.ts +20 -0
  738. package/dist/register/worker-guard.d.ts.map +1 -0
  739. package/dist/register/worker-guard.js +77 -0
  740. package/dist/register/worker-guard.js.map +1 -0
  741. package/dist/remote/resolve-host.d.ts +9 -0
  742. package/dist/remote/resolve-host.d.ts.map +1 -1
  743. package/dist/remote/resolve-host.js +13 -2
  744. package/dist/remote/resolve-host.js.map +1 -1
  745. package/dist/serve/ai-proxy.d.ts +2 -0
  746. package/dist/serve/ai-proxy.d.ts.map +1 -1
  747. package/dist/serve/ai-proxy.js +33 -8
  748. package/dist/serve/ai-proxy.js.map +1 -1
  749. package/dist/serve/app-ports.d.ts +48 -0
  750. package/dist/serve/app-ports.d.ts.map +1 -0
  751. package/dist/serve/app-ports.js +82 -0
  752. package/dist/serve/app-ports.js.map +1 -0
  753. package/dist/serve/bridge-mount.d.ts +13 -0
  754. package/dist/serve/bridge-mount.d.ts.map +1 -1
  755. package/dist/serve/bridge-mount.js +28 -8
  756. package/dist/serve/bridge-mount.js.map +1 -1
  757. package/dist/serve/bundler.d.ts +6 -0
  758. package/dist/serve/bundler.d.ts.map +1 -1
  759. package/dist/serve/bundler.js +78 -26
  760. package/dist/serve/bundler.js.map +1 -1
  761. package/dist/serve/discovery.d.ts +17 -3
  762. package/dist/serve/discovery.d.ts.map +1 -1
  763. package/dist/serve/discovery.js +199 -63
  764. package/dist/serve/discovery.js.map +1 -1
  765. package/dist/serve/entries/auth.d.ts.map +1 -1
  766. package/dist/serve/entries/auth.js +19 -1
  767. package/dist/serve/entries/auth.js.map +1 -1
  768. package/dist/serve/entries/firestore-surface.d.ts +1 -0
  769. package/dist/serve/entries/firestore-surface.d.ts.map +1 -1
  770. package/dist/serve/entries/firestore-surface.js +1 -0
  771. package/dist/serve/entries/firestore-surface.js.map +1 -1
  772. package/dist/serve/entries/init-payload.d.ts +9 -2
  773. package/dist/serve/entries/init-payload.d.ts.map +1 -1
  774. package/dist/serve/entries/init-payload.js +25 -5
  775. package/dist/serve/entries/init-payload.js.map +1 -1
  776. package/dist/serve/entries/moved-host.d.ts +18 -0
  777. package/dist/serve/entries/moved-host.d.ts.map +1 -0
  778. package/dist/serve/entries/moved-host.js +14 -0
  779. package/dist/serve/entries/moved-host.js.map +1 -0
  780. package/dist/serve/entries/runtime-origin.d.ts +6 -0
  781. package/dist/serve/entries/runtime-origin.d.ts.map +1 -1
  782. package/dist/serve/entries/runtime-origin.js.map +1 -1
  783. package/dist/serve/entries/unsupported/firestore.d.ts +0 -1
  784. package/dist/serve/entries/unsupported/firestore.d.ts.map +1 -1
  785. package/dist/serve/entries/unsupported/firestore.js +0 -1
  786. package/dist/serve/entries/unsupported/firestore.js.map +1 -1
  787. package/dist/serve/entries/worker-runtime.d.ts.map +1 -1
  788. package/dist/serve/entries/worker-runtime.js +19 -7
  789. package/dist/serve/entries/worker-runtime.js.map +1 -1
  790. package/dist/serve/firebase-module-swap.d.ts +19 -2
  791. package/dist/serve/firebase-module-swap.d.ts.map +1 -1
  792. package/dist/serve/firebase-module-swap.js +92 -16
  793. package/dist/serve/firebase-module-swap.js.map +1 -1
  794. package/dist/serve/gemini-proxy.js +2 -2
  795. package/dist/serve/gemini-proxy.js.map +1 -1
  796. package/dist/serve/hosted/runtime.d.ts.map +1 -1
  797. package/dist/serve/hosted/runtime.js +10 -3
  798. package/dist/serve/hosted/runtime.js.map +1 -1
  799. package/dist/serve/namespace.d.ts +7 -0
  800. package/dist/serve/namespace.d.ts.map +1 -1
  801. package/dist/serve/namespace.js +32 -24
  802. package/dist/serve/namespace.js.map +1 -1
  803. package/dist/serve/repro/compare.d.ts +2 -1
  804. package/dist/serve/repro/compare.d.ts.map +1 -1
  805. package/dist/serve/repro/compare.js +9 -1
  806. package/dist/serve/repro/compare.js.map +1 -1
  807. package/dist/serve/rules-fixture-check.d.ts.map +1 -1
  808. package/dist/serve/rules-fixture-check.js +22 -10
  809. package/dist/serve/rules-fixture-check.js.map +1 -1
  810. package/dist/serve/rules.d.ts +35 -9
  811. package/dist/serve/rules.d.ts.map +1 -1
  812. package/dist/serve/rules.js +72 -21
  813. package/dist/serve/rules.js.map +1 -1
  814. package/dist/serve/sandbox-session.d.ts +3 -0
  815. package/dist/serve/sandbox-session.d.ts.map +1 -1
  816. package/dist/serve/sandbox-session.js +10 -3
  817. package/dist/serve/sandbox-session.js.map +1 -1
  818. package/dist/serve/server.d.ts +10 -2
  819. package/dist/serve/server.d.ts.map +1 -1
  820. package/dist/serve/server.js +24 -4
  821. package/dist/serve/server.js.map +1 -1
  822. package/dist/serve/site-ui/_astro/{RulesCodeEditor.Cp_-FK3b.js → RulesCodeEditor.D-eQLCvu.js} +1 -1
  823. package/dist/serve/site-ui/_astro/app.BjQiEBOY.js +1 -0
  824. package/dist/serve/site-ui/_astro/app.C84Qr10v.js +151 -0
  825. package/dist/serve/site-ui/_astro/{chess-showcase.CVhCNUi_.js → chess-showcase.CsH1s4g7.js} +1 -1
  826. package/dist/serve/site-ui/_astro/{example-runtime.zC1l-Yka.js → example-runtime.CTp8mh7I.js} +1 -1
  827. package/dist/serve/site-ui/_astro/sandbox-controls.DI8MTU3L.js +1725 -0
  828. package/dist/serve/site-ui/_astro/{seed.B4vza_Bv.js → seed.BvtbLu-q.js} +1 -1
  829. package/dist/serve/site-ui/_astro/writes.D8gcuovU.js +1 -0
  830. package/dist/serve/site-ui/auth/index.html +1 -1
  831. package/dist/serve/site-ui/docs/ai-compat/index.html +48 -9
  832. package/dist/serve/site-ui/docs/ai-compat.md +53 -8
  833. package/dist/serve/site-ui/docs/app-check-compat/index.html +102 -26
  834. package/dist/serve/site-ui/docs/app-check-compat.md +107 -25
  835. package/dist/serve/site-ui/docs/auth-compat/index.html +33 -21
  836. package/dist/serve/site-ui/docs/auth-compat.md +35 -20
  837. package/dist/serve/site-ui/docs/build/ai-logic/index.html +13 -4
  838. package/dist/serve/site-ui/docs/build/ai-logic.md +14 -4
  839. package/dist/serve/site-ui/docs/conformance-scores/index.html +2 -2
  840. package/dist/serve/site-ui/docs/conformance-scores.md +2 -2
  841. package/dist/serve/site-ui/docs/database-compat/index.html +113 -49
  842. package/dist/serve/site-ui/docs/database-compat.md +118 -48
  843. package/dist/serve/site-ui/docs/firestore-compat/index.html +144 -37
  844. package/dist/serve/site-ui/docs/firestore-compat.md +149 -36
  845. package/dist/serve/site-ui/docs/firestore-swift-compat/index.html +1 -1
  846. package/dist/serve/site-ui/docs/firestore-swift-compat.md +1 -1
  847. package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +12 -12
  848. package/dist/serve/site-ui/docs/functions-rtdb-compat.md +12 -12
  849. package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
  850. package/dist/serve/site-ui/docs/get-started/how-the-swap-works.md +1 -1
  851. package/dist/serve/site-ui/docs/get-started/node-host/index.html +1 -0
  852. package/dist/serve/site-ui/docs/get-started/node-host.md +2 -0
  853. package/dist/serve/site-ui/docs/index.json +45 -5
  854. package/dist/serve/site-ui/docs/messaging-compat/index.html +2 -2
  855. package/dist/serve/site-ui/docs/messaging-compat.md +2 -2
  856. package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +3 -1
  857. package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api.md +2 -0
  858. package/dist/serve/site-ui/docs/pyric-app-check-reference-api/index.html +11 -3
  859. package/dist/serve/site-ui/docs/pyric-app-check-reference-api.md +13 -3
  860. package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
  861. package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api.md +1 -1
  862. package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +1 -0
  863. package/dist/serve/site-ui/docs/pyric-cli-next-reference-api.md +1 -0
  864. package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api/index.html +1 -1
  865. package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api.md +1 -1
  866. package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +17 -9
  867. package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api.md +13 -11
  868. package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +8 -4
  869. package/dist/serve/site-ui/docs/pyric-database-reference-api.md +9 -4
  870. package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +15 -4
  871. package/dist/serve/site-ui/docs/pyric-rules-reference-api.md +21 -4
  872. package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +7 -1
  873. package/dist/serve/site-ui/docs/pyric-storage-reference-api.md +1 -0
  874. package/dist/serve/site-ui/docs/reference/cli/index.html +4 -3
  875. package/dist/serve/site-ui/docs/reference/cli.md +5 -3
  876. package/dist/serve/site-ui/docs/rules-compat/index.html +150 -49
  877. package/dist/serve/site-ui/docs/rules-compat.md +149 -51
  878. package/dist/serve/site-ui/docs/storage-compat/index.html +20 -20
  879. package/dist/serve/site-ui/docs/storage-compat.md +20 -20
  880. package/dist/serve/site-ui/docs/tutorial/index.html +2 -1
  881. package/dist/serve/site-ui/docs/tutorial.md +2 -1
  882. package/dist/serve/site-ui/examples/chess/index.html +1 -1
  883. package/dist/serve/site-ui/firestore/index.html +1 -1
  884. package/dist/serve/site-ui/rtdb/index.html +1 -1
  885. package/dist/serve/site-ui/settings/index.html +1 -1
  886. package/dist/serve/site-ui/storage/index.html +1 -1
  887. package/dist/serve/site-ui/studio/index.html +1 -1
  888. package/dist/serve/site-ui/traffic/index.html +1 -1
  889. package/dist/serve/vite-ai-config.d.ts +8 -0
  890. package/dist/serve/vite-ai-config.d.ts.map +1 -1
  891. package/dist/serve/vite-ai-config.js +16 -1
  892. package/dist/serve/vite-ai-config.js.map +1 -1
  893. package/dist/serve/vite-functions-development.d.ts +3 -3
  894. package/dist/serve/vite-functions-development.d.ts.map +1 -1
  895. package/dist/serve/vite-functions-development.js +1 -1
  896. package/dist/serve/vite-functions-development.js.map +1 -1
  897. package/dist/serve/vite-generation-bridge.d.ts +2 -2
  898. package/dist/serve/vite-generation-bridge.d.ts.map +1 -1
  899. package/dist/serve/vite-generation-functions.d.ts +3 -3
  900. package/dist/serve/vite-generation-functions.d.ts.map +1 -1
  901. package/dist/serve/vite-generation-functions.js +1 -1
  902. package/dist/serve/vite-generation-functions.js.map +1 -1
  903. package/dist/serve/vite-generation-middleware.d.ts +1 -1
  904. package/dist/serve/vite-generation-middleware.d.ts.map +1 -1
  905. package/dist/serve/vite-generation-middleware.js +36 -1
  906. package/dist/serve/vite-generation-middleware.js.map +1 -1
  907. package/dist/serve/vite-module-swap.d.ts.map +1 -1
  908. package/dist/serve/vite-module-swap.js +8 -0
  909. package/dist/serve/vite-module-swap.js.map +1 -1
  910. package/dist/serve/vite-page-runtime.d.ts.map +1 -1
  911. package/dist/serve/vite-page-runtime.js +7 -1
  912. package/dist/serve/vite-page-runtime.js.map +1 -1
  913. package/dist/serve/vite-rules-source.d.ts +1 -1
  914. package/dist/serve/vite-rules-source.d.ts.map +1 -1
  915. package/dist/serve/vite-rules-source.js +2 -4
  916. package/dist/serve/vite-rules-source.js.map +1 -1
  917. package/dist/serve/vite-sandbox-generation.d.ts +2 -2
  918. package/dist/serve/vite-sandbox-generation.d.ts.map +1 -1
  919. package/dist/serve/vite-sandbox-generation.js +2 -2
  920. package/dist/serve/vite-sandbox-generation.js.map +1 -1
  921. package/dist/serve/worker/client/auth.d.ts +29 -5
  922. package/dist/serve/worker/client/auth.d.ts.map +1 -1
  923. package/dist/serve/worker/client/auth.js +61 -11
  924. package/dist/serve/worker/client/auth.js.map +1 -1
  925. package/dist/serve/worker/client/clock.d.ts +0 -16
  926. package/dist/serve/worker/client/clock.d.ts.map +1 -1
  927. package/dist/serve/worker/client/clock.js +23 -10
  928. package/dist/serve/worker/client/clock.js.map +1 -1
  929. package/dist/serve/worker/client/firestore-reads.d.ts +12 -5
  930. package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -1
  931. package/dist/serve/worker/client/firestore-reads.js +47 -16
  932. package/dist/serve/worker/client/firestore-reads.js.map +1 -1
  933. package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -1
  934. package/dist/serve/worker/client/firestore-refs.js +4 -14
  935. package/dist/serve/worker/client/firestore-refs.js.map +1 -1
  936. package/dist/serve/worker/client/rtdb-connection-lifecycle.d.ts.map +1 -1
  937. package/dist/serve/worker/client/rtdb-connection-lifecycle.js +5 -0
  938. package/dist/serve/worker/client/rtdb-connection-lifecycle.js.map +1 -1
  939. package/dist/serve/worker/client/rtdb-snapshots.d.ts +7 -0
  940. package/dist/serve/worker/client/rtdb-snapshots.d.ts.map +1 -1
  941. package/dist/serve/worker/client/rtdb-snapshots.js +25 -1
  942. package/dist/serve/worker/client/rtdb-snapshots.js.map +1 -1
  943. package/dist/serve/worker/client/rtdb-value-validation.d.ts +21 -0
  944. package/dist/serve/worker/client/rtdb-value-validation.d.ts.map +1 -0
  945. package/dist/serve/worker/client/rtdb-value-validation.js +183 -0
  946. package/dist/serve/worker/client/rtdb-value-validation.js.map +1 -0
  947. package/dist/serve/worker/client/rtdb-writes.d.ts.map +1 -1
  948. package/dist/serve/worker/client/rtdb-writes.js +7 -0
  949. package/dist/serve/worker/client/rtdb-writes.js.map +1 -1
  950. package/dist/serve/worker/client/snapshots.d.ts +2 -0
  951. package/dist/serve/worker/client/snapshots.d.ts.map +1 -1
  952. package/dist/serve/worker/client/snapshots.js +13 -7
  953. package/dist/serve/worker/client/snapshots.js.map +1 -1
  954. package/dist/serve/worker/client/websocket-connection.d.ts +6 -0
  955. package/dist/serve/worker/client/websocket-connection.d.ts.map +1 -1
  956. package/dist/serve/worker/client/websocket-connection.js +32 -3
  957. package/dist/serve/worker/client/websocket-connection.js.map +1 -1
  958. package/dist/serve/worker/host/auth-credential-sign-in.d.ts +33 -0
  959. package/dist/serve/worker/host/auth-credential-sign-in.d.ts.map +1 -0
  960. package/dist/serve/worker/host/auth-credential-sign-in.js +70 -0
  961. package/dist/serve/worker/host/auth-credential-sign-in.js.map +1 -0
  962. package/dist/serve/worker/host/auth-reauthentication.js +3 -3
  963. package/dist/serve/worker/host/auth-reauthentication.js.map +1 -1
  964. package/dist/serve/worker/host/rules.d.ts +15 -1
  965. package/dist/serve/worker/host/rules.d.ts.map +1 -1
  966. package/dist/serve/worker/host/rules.js +43 -34
  967. package/dist/serve/worker/host/rules.js.map +1 -1
  968. package/dist/serve/worker/host/staged-sign-in-results.d.ts +24 -0
  969. package/dist/serve/worker/host/staged-sign-in-results.d.ts.map +1 -0
  970. package/dist/serve/worker/host/staged-sign-in-results.js +40 -0
  971. package/dist/serve/worker/host/staged-sign-in-results.js.map +1 -0
  972. package/dist/serve/worker/host/storage.d.ts.map +1 -1
  973. package/dist/serve/worker/host/storage.js +20 -12
  974. package/dist/serve/worker/host/storage.js.map +1 -1
  975. package/dist/serve/worker/host/subscriptions.d.ts.map +1 -1
  976. package/dist/serve/worker/host/subscriptions.js +6 -2
  977. package/dist/serve/worker/host/subscriptions.js.map +1 -1
  978. package/dist/serve/worker/host-auth.d.ts +3 -0
  979. package/dist/serve/worker/host-auth.d.ts.map +1 -1
  980. package/dist/serve/worker/host-auth.js +32 -13
  981. package/dist/serve/worker/host-auth.js.map +1 -1
  982. package/dist/serve/worker/inbound-validation/operation-arguments.d.ts.map +1 -1
  983. package/dist/serve/worker/inbound-validation/operation-arguments.js +27 -14
  984. package/dist/serve/worker/inbound-validation/operation-arguments.js.map +1 -1
  985. package/dist/serve/worker/operation-persistence.d.ts +1 -0
  986. package/dist/serve/worker/operation-persistence.d.ts.map +1 -1
  987. package/dist/serve/worker/operation-persistence.js +1 -0
  988. package/dist/serve/worker/operation-persistence.js.map +1 -1
  989. package/dist/serve/worker/protocol.d.ts +9 -1
  990. package/dist/serve/worker/protocol.d.ts.map +1 -1
  991. package/dist/serve/worker/protocol.js.map +1 -1
  992. package/dist/serve/worker/rtdb-value-equality.d.ts.map +1 -1
  993. package/dist/serve/worker/rtdb-value-equality.js +3 -1
  994. package/dist/serve/worker/rtdb-value-equality.js.map +1 -1
  995. package/dist/serve/worker/serve-init.d.ts.map +1 -1
  996. package/dist/serve/worker/serve-init.js +3 -9
  997. package/dist/serve/worker/serve-init.js.map +1 -1
  998. package/dist/serve/worker-build-lock.d.ts +23 -0
  999. package/dist/serve/worker-build-lock.d.ts.map +1 -0
  1000. package/dist/serve/worker-build-lock.js +179 -0
  1001. package/dist/serve/worker-build-lock.js.map +1 -0
  1002. package/dist/serve/worker-bundle-cache.d.ts +17 -0
  1003. package/dist/serve/worker-bundle-cache.d.ts.map +1 -0
  1004. package/dist/serve/worker-bundle-cache.js +89 -0
  1005. package/dist/serve/worker-bundle-cache.js.map +1 -0
  1006. package/dist/verify/cases.js +7 -3
  1007. package/dist/verify/cases.js.map +1 -1
  1008. package/dist/verify/index.d.ts.map +1 -1
  1009. package/dist/verify/index.js +11 -5
  1010. package/dist/verify/index.js.map +1 -1
  1011. package/package.json +10 -4
  1012. package/src/assurance/.generated/conformance-verdicts.ts +107 -40
  1013. package/src/assurance/capabilities.ts +11 -15
  1014. package/src/bounded-request.ts +66 -7
  1015. package/src/bridge/client/bridge-url.ts +5 -1
  1016. package/src/bridge/client/bridge.ts +19 -3
  1017. package/src/bridge/frame-output.ts +45 -0
  1018. package/src/bridge/protocol.ts +13 -0
  1019. package/src/bridge/server/in-process.ts +57 -17
  1020. package/src/bridge/server/peer.ts +11 -0
  1021. package/src/bridge/server/standalone.ts +29 -107
  1022. package/src/bridge/surface/arguments/sandbox.ts +2 -69
  1023. package/src/bridge/surface/arguments/seed.ts +78 -0
  1024. package/src/bridge/surface/context.ts +26 -37
  1025. package/src/bridge/surface/database-instance-catalog.ts +4 -32
  1026. package/src/bridge/surface/database-instance-project.ts +40 -0
  1027. package/src/bridge/surface/database-instance.ts +4 -4
  1028. package/src/bridge/surface/functions-runtime.ts +5 -5
  1029. package/src/bridge/surface/held-identity.ts +4 -4
  1030. package/src/bridge/surface/manifest.sandbox.generated.ts +137 -0
  1031. package/src/bridge/surface/method-types.ts +61 -7
  1032. package/src/bridge/surface/methods/ai_logic/clearScripts.ts +2 -1
  1033. package/src/bridge/surface/methods/ai_logic/script.ts +2 -1
  1034. package/src/bridge/surface/methods/ai_logic/scripts.ts +2 -1
  1035. package/src/bridge/surface/methods/ai_logic/status.ts +1 -0
  1036. package/src/bridge/surface/methods/assurance/attach.ts +1 -0
  1037. package/src/bridge/surface/methods/assurance/canIUse.ts +1 -0
  1038. package/src/bridge/surface/methods/assurance/define.ts +1 -0
  1039. package/src/bridge/surface/methods/assurance/export.ts +1 -0
  1040. package/src/bridge/surface/methods/assurance/inspect.ts +1 -0
  1041. package/src/bridge/surface/methods/assurance/map.ts +1 -0
  1042. package/src/bridge/surface/methods/assurance/minimize.ts +1 -0
  1043. package/src/bridge/surface/methods/assurance/propose.ts +1 -0
  1044. package/src/bridge/surface/methods/assurance/replaySession.ts +1 -0
  1045. package/src/bridge/surface/methods/assurance/run.ts +1 -0
  1046. package/src/bridge/surface/methods/assurance/start.ts +1 -0
  1047. package/src/bridge/surface/methods/assurance/testRulesHosted.ts +1 -0
  1048. package/src/bridge/surface/methods/assurance/verify.ts +1 -0
  1049. package/src/bridge/surface/methods/assurance/verifyCases.ts +1 -0
  1050. package/src/bridge/surface/methods/auth/actAsAdmin.ts +1 -0
  1051. package/src/bridge/surface/methods/auth/actAsAnonymous.ts +1 -0
  1052. package/src/bridge/surface/methods/auth/createCustomToken.ts +1 -0
  1053. package/src/bridge/surface/methods/auth/createUser.ts +2 -1
  1054. package/src/bridge/surface/methods/auth/deleteUser.ts +2 -1
  1055. package/src/bridge/surface/methods/auth/getUser.ts +2 -1
  1056. package/src/bridge/surface/methods/auth/getUserByEmail.ts +2 -1
  1057. package/src/bridge/surface/methods/auth/impersonate.ts +1 -0
  1058. package/src/bridge/surface/methods/auth/importUsers.ts +3 -2
  1059. package/src/bridge/surface/methods/auth/listUsers.ts +2 -1
  1060. package/src/bridge/surface/methods/auth/sessions.ts +1 -0
  1061. package/src/bridge/surface/methods/auth/setCustomUserClaims.ts +2 -1
  1062. package/src/bridge/surface/methods/auth/signInAnonymously.ts +1 -0
  1063. package/src/bridge/surface/methods/auth/signInWithCredential.ts +1 -0
  1064. package/src/bridge/surface/methods/auth/signInWithCustomToken.ts +1 -0
  1065. package/src/bridge/surface/methods/auth/signInWithEmailAndPassword.ts +1 -0
  1066. package/src/bridge/surface/methods/auth/signOut.ts +1 -0
  1067. package/src/bridge/surface/methods/auth/takeAuthMail.ts +1 -0
  1068. package/src/bridge/surface/methods/auth/updateUser.ts +2 -1
  1069. package/src/bridge/surface/methods/auth/useAppSession.ts +1 -0
  1070. package/src/bridge/surface/methods/auth/whoami.ts +1 -0
  1071. package/src/bridge/surface/methods/database/crawl.ts +1 -0
  1072. package/src/bridge/surface/methods/database/get.ts +1 -0
  1073. package/src/bridge/surface/methods/database/push.ts +1 -0
  1074. package/src/bridge/surface/methods/database/query.ts +1 -0
  1075. package/src/bridge/surface/methods/database/remove.ts +1 -0
  1076. package/src/bridge/surface/methods/database/set.ts +1 -0
  1077. package/src/bridge/surface/methods/database/update.ts +1 -0
  1078. package/src/bridge/surface/methods/firestore/addDoc.ts +2 -1
  1079. package/src/bridge/surface/methods/firestore/deleteDoc.ts +2 -1
  1080. package/src/bridge/surface/methods/firestore/discoverPaths.ts +1 -0
  1081. package/src/bridge/surface/methods/firestore/extractIndexes.ts +1 -0
  1082. package/src/bridge/surface/methods/firestore/findCollectionGroup.ts +1 -0
  1083. package/src/bridge/surface/methods/firestore/getAggregateFromServer.ts +1 -0
  1084. package/src/bridge/surface/methods/firestore/getCountFromServer.ts +1 -0
  1085. package/src/bridge/surface/methods/firestore/getDoc.ts +2 -1
  1086. package/src/bridge/surface/methods/firestore/getDocs.ts +2 -1
  1087. package/src/bridge/surface/methods/firestore/setDoc.ts +2 -1
  1088. package/src/bridge/surface/methods/firestore/updateDoc.ts +2 -1
  1089. package/src/bridge/surface/methods/firestore/writeBatch.ts +2 -1
  1090. package/src/bridge/surface/methods/firestore/writeIndexes.ts +1 -0
  1091. package/src/bridge/surface/methods/functions/executions.ts +2 -1
  1092. package/src/bridge/surface/methods/functions/fire.ts +7 -6
  1093. package/src/bridge/surface/methods/functions/listTriggers.ts +1 -0
  1094. package/src/bridge/surface/methods/messaging/deliveries.ts +1 -0
  1095. package/src/bridge/surface/methods/messaging/send.ts +2 -1
  1096. package/src/bridge/surface/methods/messaging/subscribeToTopic.ts +1 -0
  1097. package/src/bridge/surface/methods/messaging/tokens.ts +1 -0
  1098. package/src/bridge/surface/methods/messaging/unsubscribeFromTopic.ts +1 -0
  1099. package/src/bridge/surface/methods/registry.ts +2 -12
  1100. package/src/bridge/surface/methods/rules/explainDenial.ts +1 -0
  1101. package/src/bridge/surface/methods/rules/getStdlib.ts +1 -0
  1102. package/src/bridge/surface/methods/rules/lint.ts +1 -0
  1103. package/src/bridge/surface/methods/rules/listStdlib.ts +1 -0
  1104. package/src/bridge/surface/methods/rules/set.ts +1 -0
  1105. package/src/bridge/surface/methods/rules/simulate.ts +1 -0
  1106. package/src/bridge/surface/methods/sandbox/activity.ts +2 -1
  1107. package/src/bridge/surface/methods/sandbox/advanceClock.ts +1 -0
  1108. package/src/bridge/surface/methods/sandbox/apply.ts +1 -0
  1109. package/src/bridge/surface/methods/sandbox/checkpoint.ts +1 -0
  1110. package/src/bridge/surface/methods/sandbox/deleteCapture.ts +1 -1
  1111. package/src/bridge/surface/methods/sandbox/deleteCheckpoint.ts +1 -0
  1112. package/src/bridge/surface/methods/sandbox/diff.ts +1 -0
  1113. package/src/bridge/surface/methods/sandbox/discard.ts +1 -0
  1114. package/src/bridge/surface/methods/sandbox/events.ts +2 -1
  1115. package/src/bridge/surface/methods/sandbox/exportFixture.ts +1 -0
  1116. package/src/bridge/surface/methods/sandbox/fork.ts +1 -0
  1117. package/src/bridge/surface/methods/sandbox/inspect.ts +2 -1
  1118. package/src/bridge/surface/methods/sandbox/listBranches.ts +1 -0
  1119. package/src/bridge/surface/methods/sandbox/listCaptures.ts +1 -1
  1120. package/src/bridge/surface/methods/sandbox/listCheckpoints.ts +1 -0
  1121. package/src/bridge/surface/methods/sandbox/listeners.ts +1 -0
  1122. package/src/bridge/surface/methods/sandbox/openCapture.ts +1 -1
  1123. package/src/bridge/surface/methods/sandbox/promote.ts +1 -0
  1124. package/src/bridge/surface/methods/sandbox/renameCapture.ts +1 -1
  1125. package/src/bridge/surface/methods/sandbox/reset.ts +3 -2
  1126. package/src/bridge/surface/methods/sandbox/resetClock.ts +1 -0
  1127. package/src/bridge/surface/methods/sandbox/restore.ts +1 -0
  1128. package/src/bridge/surface/methods/sandbox/saveCapture.ts +1 -1
  1129. package/src/bridge/surface/methods/sandbox/seed.ts +3 -2
  1130. package/src/bridge/surface/methods/sandbox/seedFromFixture.ts +1 -0
  1131. package/src/bridge/surface/methods/sandbox/setClock.ts +1 -0
  1132. package/src/bridge/surface/methods/sandbox-registry.ts +24 -0
  1133. package/src/bridge/surface/methods/storage/deleteObject.ts +1 -0
  1134. package/src/bridge/surface/methods/storage/getBytes.ts +1 -0
  1135. package/src/bridge/surface/methods/storage/getDownloadURL.ts +1 -0
  1136. package/src/bridge/surface/methods/storage/getMetadata.ts +1 -0
  1137. package/src/bridge/surface/methods/storage/listAll.ts +1 -0
  1138. package/src/bridge/surface/methods/storage/provision.ts +1 -0
  1139. package/src/bridge/surface/methods/storage/setCrossServiceIam.ts +1 -0
  1140. package/src/bridge/surface/methods/storage/status.ts +1 -0
  1141. package/src/bridge/surface/methods/storage/updateMetadata.ts +1 -0
  1142. package/src/bridge/surface/methods/storage/uploadBytes.ts +1 -0
  1143. package/src/bridge/surface/request-instant.ts +2 -2
  1144. package/src/bridge/surface/rules-engines/database.ts +1 -2
  1145. package/src/bridge/surface/rules-engines/storage-request-resource.ts +275 -0
  1146. package/src/bridge/surface/rules-engines/storage.ts +54 -81
  1147. package/src/bridge/surface/sandbox-context.ts +49 -0
  1148. package/src/bridge/surface/service-handles.ts +13 -9
  1149. package/src/bridge/surface/sign-in.ts +3 -3
  1150. package/src/bridge/surface/storage-rules.ts +2 -14
  1151. package/src/bridge/surface/stored-identity.ts +3 -3
  1152. package/src/bridge/surface/types.ts +30 -8
  1153. package/src/cli/firebase-json.ts +45 -7
  1154. package/src/cli/firestore-indexes.ts +2 -1
  1155. package/src/cli/index.ts +46 -11
  1156. package/src/cli/public-dir-hint.ts +35 -0
  1157. package/src/cli/run.ts +35 -7
  1158. package/src/cli/sandbox-runner.ts +10 -2
  1159. package/src/cli/serve-diagnostics.ts +12 -1
  1160. package/src/cli/serve.ts +27 -26
  1161. package/src/cli/service-commands.test.ts +7 -0
  1162. package/src/cli/snapshot.ts +15 -6
  1163. package/src/cli/surface-method-runner.ts +1 -1
  1164. package/src/cli/verify.ts +11 -1
  1165. package/src/conformance/.generated/can-i-use-browser.ts +22 -3
  1166. package/src/conformance/.generated/can-i-use.ts +1 -1
  1167. package/src/conformance/.generated/conformance-docs.ts +1 -1
  1168. package/src/conformance/.generated/served-availability.ts +1 -1
  1169. package/src/discover/merge.ts +12 -3
  1170. package/src/functions/child-protocol.ts +59 -0
  1171. package/src/functions/child.ts +107 -0
  1172. package/src/{functions-rtdb → functions}/development-runtime.ts +13 -14
  1173. package/src/functions/endpoints.ts +80 -0
  1174. package/src/{functions-rtdb → functions}/project.ts +2 -2
  1175. package/src/functions/rtdb/child-runtime.ts +139 -0
  1176. package/src/{functions-rtdb → functions/rtdb}/discovery.ts +9 -43
  1177. package/src/{functions-rtdb → functions/rtdb}/remote-delivery.ts +1 -1
  1178. package/src/functions/spawn.ts +212 -0
  1179. package/src/functions/unsupported.ts +42 -0
  1180. package/src/google-endpoints.ts +74 -3
  1181. package/src/next/bridge-import-loader.ts +56 -0
  1182. package/src/next/bridge-imports.ts +108 -0
  1183. package/src/next/client-aliases.ts +14 -27
  1184. package/src/next/guard.ts +33 -11
  1185. package/src/next/turbopack-config.ts +26 -0
  1186. package/src/next/webpack-config.ts +26 -0
  1187. package/src/next/with-pyric.ts +26 -0
  1188. package/src/register/activation.ts +26 -0
  1189. package/src/register/app-bridge-admin-app-check.ts +3 -1
  1190. package/src/register/child-process-guard.ts +189 -0
  1191. package/src/register/client/bootstrap.ts +7 -1
  1192. package/src/register/connect-prototypes.ts +12 -0
  1193. package/src/register/hooks.ts +56 -3
  1194. package/src/register/index.ts +92 -20
  1195. package/src/register/mapping.ts +57 -3
  1196. package/src/register/net-guard.ts +149 -39
  1197. package/src/register/package-identity.ts +98 -0
  1198. package/src/register/swap-or-stop.ts +194 -0
  1199. package/src/register/worker-guard.ts +90 -0
  1200. package/src/remote/resolve-host.ts +14 -2
  1201. package/src/serve/ai-proxy.ts +36 -8
  1202. package/src/serve/app-ports.ts +119 -0
  1203. package/src/serve/bridge-mount.ts +36 -8
  1204. package/src/serve/bundler.ts +87 -29
  1205. package/src/serve/discovery.ts +244 -67
  1206. package/src/serve/entries/auth.ts +22 -1
  1207. package/src/serve/entries/firestore-surface.ts +1 -0
  1208. package/src/serve/entries/init-payload.ts +28 -5
  1209. package/src/serve/entries/moved-host.ts +28 -0
  1210. package/src/serve/entries/runtime-origin.ts +6 -0
  1211. package/src/serve/entries/unsupported/firestore.ts +0 -1
  1212. package/src/serve/entries/worker-runtime.ts +19 -6
  1213. package/src/serve/firebase-module-swap.ts +98 -15
  1214. package/src/serve/gemini-proxy.ts +2 -2
  1215. package/src/serve/hosted/runtime.ts +10 -2
  1216. package/src/serve/namespace.ts +41 -29
  1217. package/src/serve/repro/compare.ts +9 -1
  1218. package/src/serve/rules-fixture-check.ts +34 -9
  1219. package/src/serve/rules.ts +104 -20
  1220. package/src/serve/sandbox-session.ts +11 -3
  1221. package/src/serve/server.ts +29 -2
  1222. package/src/serve/vite-ai-config.ts +19 -1
  1223. package/src/serve/vite-functions-development.ts +3 -3
  1224. package/src/serve/vite-generation-bridge.ts +2 -2
  1225. package/src/serve/vite-generation-functions.ts +5 -5
  1226. package/src/serve/vite-generation-middleware.ts +38 -2
  1227. package/src/serve/vite-module-swap.ts +8 -0
  1228. package/src/serve/vite-page-runtime.ts +6 -0
  1229. package/src/serve/vite-rules-source.ts +2 -5
  1230. package/src/serve/vite-sandbox-generation.ts +5 -5
  1231. package/src/serve/worker/__tests__/auth-credential-sign-in.test.ts +343 -0
  1232. package/src/serve/worker/__tests__/auth-m2-parity.test.ts +45 -1
  1233. package/src/serve/worker/__tests__/staged-sign-in-results.test.ts +139 -0
  1234. package/src/serve/worker/client/auth.ts +97 -21
  1235. package/src/serve/worker/client/clock.ts +10 -12
  1236. package/src/serve/worker/client/firestore-reads.ts +70 -21
  1237. package/src/serve/worker/client/firestore-refs.ts +4 -14
  1238. package/src/serve/worker/client/rtdb-connection-lifecycle.ts +5 -0
  1239. package/src/serve/worker/client/rtdb-snapshots.ts +24 -2
  1240. package/src/serve/worker/client/rtdb-value-validation.ts +198 -0
  1241. package/src/serve/worker/client/rtdb-writes.ts +7 -0
  1242. package/src/serve/worker/client/snapshots.ts +15 -6
  1243. package/src/serve/worker/client/websocket-connection.ts +39 -3
  1244. package/src/serve/worker/host/auth-credential-sign-in.ts +97 -0
  1245. package/src/serve/worker/host/auth-reauthentication.ts +3 -3
  1246. package/src/serve/worker/host/rules.ts +53 -34
  1247. package/src/serve/worker/host/staged-sign-in-results.ts +53 -0
  1248. package/src/serve/worker/host/storage.ts +26 -11
  1249. package/src/serve/worker/host/subscriptions.ts +7 -4
  1250. package/src/serve/worker/host-auth.ts +33 -15
  1251. package/src/serve/worker/inbound-validation/operation-arguments.ts +27 -14
  1252. package/src/serve/worker/operation-persistence.ts +1 -0
  1253. package/src/serve/worker/protocol.ts +7 -1
  1254. package/src/serve/worker/rtdb-value-equality.ts +3 -1
  1255. package/src/serve/worker/serve-init.ts +3 -9
  1256. package/src/serve/worker-build-lock.ts +207 -0
  1257. package/src/serve/worker-bundle-cache.ts +90 -0
  1258. package/src/verify/cases.ts +6 -3
  1259. package/src/verify/index.ts +16 -4
  1260. package/dist/functions-rtdb/child.d.ts.map +0 -1
  1261. package/dist/functions-rtdb/child.js +0 -386
  1262. package/dist/functions-rtdb/child.js.map +0 -1
  1263. package/dist/functions-rtdb/delivery.d.ts.map +0 -1
  1264. package/dist/functions-rtdb/delivery.js.map +0 -1
  1265. package/dist/functions-rtdb/development-runtime.d.ts.map +0 -1
  1266. package/dist/functions-rtdb/development-runtime.js.map +0 -1
  1267. package/dist/functions-rtdb/discovery.d.ts.map +0 -1
  1268. package/dist/functions-rtdb/discovery.js.map +0 -1
  1269. package/dist/functions-rtdb/event.d.ts.map +0 -1
  1270. package/dist/functions-rtdb/event.js.map +0 -1
  1271. package/dist/functions-rtdb/events.d.ts.map +0 -1
  1272. package/dist/functions-rtdb/events.js.map +0 -1
  1273. package/dist/functions-rtdb/execution-log.d.ts.map +0 -1
  1274. package/dist/functions-rtdb/execution-log.js.map +0 -1
  1275. package/dist/functions-rtdb/execution.d.ts.map +0 -1
  1276. package/dist/functions-rtdb/execution.js.map +0 -1
  1277. package/dist/functions-rtdb/in-memory-delivery.d.ts.map +0 -1
  1278. package/dist/functions-rtdb/in-memory-delivery.js.map +0 -1
  1279. package/dist/functions-rtdb/module-loader.d.ts.map +0 -1
  1280. package/dist/functions-rtdb/module-loader.js.map +0 -1
  1281. package/dist/functions-rtdb/project.d.ts +0 -7
  1282. package/dist/functions-rtdb/project.d.ts.map +0 -1
  1283. package/dist/functions-rtdb/project.js.map +0 -1
  1284. package/dist/functions-rtdb/projection.d.ts.map +0 -1
  1285. package/dist/functions-rtdb/projection.js.map +0 -1
  1286. package/dist/functions-rtdb/reference-pattern.d.ts.map +0 -1
  1287. package/dist/functions-rtdb/reference-pattern.js.map +0 -1
  1288. package/dist/functions-rtdb/remote-delivery.d.ts.map +0 -1
  1289. package/dist/functions-rtdb/remote-delivery.js.map +0 -1
  1290. package/dist/serve/gemini-error-redaction.d.ts +0 -6
  1291. package/dist/serve/gemini-error-redaction.d.ts.map +0 -1
  1292. package/dist/serve/gemini-error-redaction.js +0 -61
  1293. package/dist/serve/gemini-error-redaction.js.map +0 -1
  1294. package/dist/serve/site-ui/_astro/app.C--T2qDK.js +0 -151
  1295. package/dist/serve/site-ui/_astro/app.DqyhRyrU.js +0 -1
  1296. package/dist/serve/site-ui/_astro/sandbox-controls.Bv6lfpIe.js +0 -1725
  1297. package/dist/serve/site-ui/_astro/writes.Bg0YEEA7.js +0 -1
  1298. package/src/functions-rtdb/child.ts +0 -512
  1299. package/src/serve/gemini-error-redaction.ts +0 -60
  1300. /package/dist/{functions-rtdb → functions}/events.d.ts +0 -0
  1301. /package/dist/{functions-rtdb → functions}/events.js +0 -0
  1302. /package/dist/{functions-rtdb → functions}/execution-log.d.ts +0 -0
  1303. /package/dist/{functions-rtdb → functions}/execution-log.js +0 -0
  1304. /package/dist/{functions-rtdb → functions}/module-loader.d.ts +0 -0
  1305. /package/dist/{functions-rtdb → functions}/module-loader.js +0 -0
  1306. /package/dist/{functions-rtdb → functions/rtdb}/delivery.d.ts +0 -0
  1307. /package/dist/{functions-rtdb → functions/rtdb}/delivery.js +0 -0
  1308. /package/dist/{functions-rtdb → functions/rtdb}/event.d.ts +0 -0
  1309. /package/dist/{functions-rtdb → functions/rtdb}/event.js +0 -0
  1310. /package/dist/{functions-rtdb → functions/rtdb}/execution.d.ts +0 -0
  1311. /package/dist/{functions-rtdb → functions/rtdb}/execution.js +0 -0
  1312. /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.d.ts +0 -0
  1313. /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.js +0 -0
  1314. /package/dist/{functions-rtdb → functions/rtdb}/projection.d.ts +0 -0
  1315. /package/dist/{functions-rtdb → functions/rtdb}/projection.js +0 -0
  1316. /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.d.ts +0 -0
  1317. /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.js +0 -0
  1318. /package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.js +0 -0
  1319. /package/src/{functions-rtdb → functions}/events.ts +0 -0
  1320. /package/src/{functions-rtdb → functions}/execution-log.ts +0 -0
  1321. /package/src/{functions-rtdb → functions}/module-loader.ts +0 -0
  1322. /package/src/{functions-rtdb → functions/rtdb}/delivery.ts +0 -0
  1323. /package/src/{functions-rtdb → functions/rtdb}/event.ts +0 -0
  1324. /package/src/{functions-rtdb → functions/rtdb}/execution.ts +0 -0
  1325. /package/src/{functions-rtdb → functions/rtdb}/in-memory-delivery.ts +0 -0
  1326. /package/src/{functions-rtdb → functions/rtdb}/projection.ts +0 -0
  1327. /package/src/{functions-rtdb → functions/rtdb}/reference-pattern.ts +0 -0
@@ -12,6 +12,7 @@ import { validateUpdatePaths, validateWritablePath } from 'pyric/database/intern
12
12
  import { beginWorkerDatabaseActivity } from './sdk-activity.js';
13
13
  import { sandboxNow } from './clock.js';
14
14
  import { nextId } from './core.js';
15
+ import { validateRtdbPriority, validateRtdbUpdateValues, validateRtdbValue } from './rtdb-value-validation.js';
15
16
  import type { RtdbRefHandle } from './handles.js';
16
17
  import { makeRtdbRef, rtdbRpc } from './rtdb-references.js';
17
18
 
@@ -45,6 +46,7 @@ function generateRtdbPushId(now: number): string {
45
46
 
46
47
  export function rtdbSet(ref: RtdbRefHandle, value: unknown): Promise<void> {
47
48
  validateWritablePath('set', ref.path);
49
+ validateRtdbValue('set', value, ref.path);
48
50
  return runSdkWrite(beginWorkerDatabaseActivity(ref, 'set', 'operation'), async () => {
49
51
  await rtdbRpc(ref, { t: 'op', id: nextId(), method: 'rtdb.set', path: ref.path, value });
50
52
  });
@@ -52,6 +54,7 @@ export function rtdbSet(ref: RtdbRefHandle, value: unknown): Promise<void> {
52
54
 
53
55
  export function rtdbSetPriority(ref: RtdbRefHandle, priority: string | number | null): Promise<void> {
54
56
  validateWritablePath('setPriority', ref.path);
57
+ validateRtdbPriority('setPriority', priority);
55
58
  return runSdkWrite(beginWorkerDatabaseActivity(ref, 'setPriority', 'operation'), async () => {
56
59
  await rtdbRpc(ref, { t: 'op', id: nextId(), method: 'rtdb.setPriority', path: ref.path, priority });
57
60
  });
@@ -63,6 +66,8 @@ export function rtdbSetWithPriority(
63
66
  priority: string | number | null,
64
67
  ): Promise<void> {
65
68
  validateWritablePath('setWithPriority', ref.path);
69
+ validateRtdbValue('setWithPriority', value, ref.path);
70
+ validateRtdbPriority('setWithPriority', priority);
66
71
  return runSdkWrite(beginWorkerDatabaseActivity(ref, 'setWithPriority', 'operation'), async () => {
67
72
  await rtdbRpc(ref, {
68
73
  t: 'op', id: nextId(), method: 'rtdb.setWithPriority', path: ref.path, value, priority,
@@ -71,6 +76,7 @@ export function rtdbSetWithPriority(
71
76
  }
72
77
 
73
78
  export function rtdbUpdate(ref: RtdbRefHandle, values: Record<string, unknown>): Promise<void> {
79
+ validateRtdbUpdateValues('update', values, ref.path);
74
80
  validateUpdatePaths(values);
75
81
  return runSdkWrite(beginWorkerDatabaseActivity(ref, 'update', 'operation'), async () => {
76
82
  await rtdbRpc(ref, { t: 'op', id: nextId(), method: 'rtdb.update', path: ref.path, values });
@@ -89,6 +95,7 @@ export function rtdbPush(
89
95
  value?: unknown,
90
96
  ): RtdbRefHandle & PromiseLike<RtdbRefHandle> {
91
97
  validateWritablePath('push', ref.path);
98
+ validateRtdbValue('push', value, ref.path, true);
92
99
  const key = generateRtdbPushId(sandboxNow());
93
100
  const pushed = makeRtdbRef(ref.port, `${ref.path}/${key}`, ref.instance);
94
101
  const settledRef = makeRtdbRef(ref.port, pushed.path, ref.instance);
@@ -34,6 +34,8 @@ export interface RawDocResult {
34
34
  path?: string;
35
35
  exists: boolean;
36
36
  data?: SerializedDocData;
37
+ /** Query listener frames only: this document's own `metadata.hasPendingWrites`. */
38
+ hasPendingWrites?: boolean;
37
39
  }
38
40
 
39
41
  const SETTLED_METADATA: SnapshotMetadata = Object.freeze({ fromCache: false, hasPendingWrites: false });
@@ -67,14 +69,19 @@ export function makeDocSnapshot<T = DocumentData>(
67
69
  ): ClientDocSnapshot<T> {
68
70
  const isMalformed = !isDocumentResult(raw);
69
71
  if (isMalformed) throw new FirebaseError('invalid-argument', 'The sandbox sent a malformed document result.');
70
- let data: Record<string, unknown> | undefined;
71
72
  const serialized = raw.data;
72
- const hasData = raw.exists && serialized !== undefined;
73
- if (hasData) data = rehydrateDocData(serialized, port);
73
+ // Production builds a new object on every read, so a caller that mutates
74
+ // one result never changes the next (FP-13). The copy kept here is for
75
+ // cursor bounds only and is never handed out.
76
+ const freshData = (): Record<string, unknown> | undefined => {
77
+ const hasData = raw.exists && serialized !== undefined;
78
+ return hasData ? rehydrateDocData(serialized, port) : undefined;
79
+ };
80
+ const data = freshData();
74
81
  const path = raw.path ?? raw.id;
75
82
  const ref = reference ?? createDocumentReference<T>(port, path);
76
83
  const read = (): T | undefined => {
77
- const document = data;
84
+ const document = freshData();
78
85
  const isMissing = document === undefined;
79
86
  if (isMissing) return undefined;
80
87
  const converter = ref.converter;
@@ -101,7 +108,7 @@ export function makeDocSnapshot<T = DocumentData>(
101
108
  metadata,
102
109
  data: read,
103
110
  // Production reads the stored field without the converter, as the in-page snapshot does.
104
- get: (fieldPath) => readField(data, fieldPath),
111
+ get: (fieldPath) => readField(freshData(), fieldPath),
105
112
  };
106
113
  rawCursorSnapshots.set(docSnapshot, { id: raw.id, path, exists: raw.exists, data });
107
114
  return docSnapshot;
@@ -229,11 +236,13 @@ export function makeQuerySnapshot(
229
236
  const isMalformed = !isQueryResult(raw);
230
237
  if (isMalformed) throw new FirebaseError('invalid-argument', 'The sandbox sent a malformed query result.');
231
238
  const metadata = frameMetadata(raw);
239
+ // Each document carries its own pending state: production marks only the
240
+ // documents with a pending write, not every document in the snapshot (FP-5).
232
241
  const snapshotOf = (doc: RawDocResult) => makeDocSnapshot(
233
242
  doc,
234
243
  port,
235
244
  createDocumentReference(port, doc.path ?? doc.id, converter),
236
- metadata,
245
+ frameMetadata(doc),
237
246
  );
238
247
  const docs = raw.docs.map(snapshotOf);
239
248
  const rows = raw.docs.map((doc) => ({ path: doc.path ?? doc.id, doc }));
@@ -65,10 +65,18 @@ export function getHostedFirestore(target: {
65
65
  * passes nothing and presents the boot it was served by (#1153).
66
66
  */
67
67
  currentHostInstanceId?: () => Promise<string | undefined>;
68
+ /**
69
+ * Resolves the socket url again before a reattach. A Node process passes it:
70
+ * a host that stopped may come back on another port, which its
71
+ * `.pyric/serve.json` names. A page passes nothing and redials its own origin.
72
+ */
73
+ currentUrl?: () => Promise<string>;
68
74
  }, existingPort?: ClientPort): ClientDb {
69
75
  const connectionId = `socket-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
76
+ /** The url the next socket dials; a reattach may resolve it again. */
77
+ let socketUrl = target.url;
70
78
  const report = (phase: DiagnosticEvent['phase'], code?: number) => {
71
- recordDiagnostic({ phase, connectionId, endpoint: target.url, code });
79
+ recordDiagnostic({ phase, connectionId, endpoint: socketUrl, code });
72
80
  };
73
81
  const connectionListeners = new Set<(connected: boolean) => void>();
74
82
  let state: HostedConnectionState = 'connecting';
@@ -242,12 +250,25 @@ export function getHostedFirestore(target: {
242
250
  failInFlightStreams(port, lost, subId => held.holdsSubscription({ t: 'unsub', subId }));
243
251
  noteTraffic({});
244
252
  connection.close();
253
+ scheduleReconnect();
254
+ }
255
+
256
+ function scheduleReconnect(): void {
245
257
  const delay = Math.min(5_000, 250 * 2 ** reconnectAttempt);
246
258
  reconnectAttempt += 1;
247
259
  const jitter = Math.random() * Math.min(250, delay / 10);
248
260
  reconnectTimer = armed(setTimeout(connect, Math.min(5_000, delay + jitter)));
249
261
  }
250
262
 
263
+ /** A reattach whose url could not be resolved (no host answers yet) tries again on the same backoff. */
264
+ function retryResolution(): void {
265
+ const isClosed = state === 'closed';
266
+ if (isClosed) return;
267
+ state = 'interrupted';
268
+ notifyConnectionChange();
269
+ scheduleReconnect();
270
+ }
271
+
251
272
  function scheduleHeartbeat(connection: WebSocket): void {
252
273
  const remainingLiveness = HOSTED_CLIENT_LIVENESS_TIMEOUT_MS - (performance.now() - lastReceivedAt);
253
274
  const delay = Math.max(0, Math.min(HOSTED_HEARTBEAT_INTERVAL_MS, remainingLiveness));
@@ -337,8 +358,23 @@ export function getHostedFirestore(target: {
337
358
  const retentionExpired = interruptedAt !== undefined && performance.now() - interruptedAt >= WORKER_SESSION_RETENTION_MS;
338
359
  if (retentionExpired) resumeToken = undefined;
339
360
  const requestsFreshSession = resumeToken === undefined;
361
+ const resolveUrl = target.currentUrl;
362
+ const resolvesAgain = hasEverAttached && resolveUrl !== undefined;
363
+ if (!resolvesAgain) {
364
+ openSocket(requestsFreshSession);
365
+ return;
366
+ }
367
+ void resolveUrl().then(url => {
368
+ const isClosedMeanwhile = state === 'closed';
369
+ if (isClosedMeanwhile) return;
370
+ socketUrl = url;
371
+ openSocket(requestsFreshSession);
372
+ }, retryResolution);
373
+ }
374
+
375
+ function openSocket(requestsFreshSession: boolean): void {
340
376
  let connection: WebSocket;
341
- try { connection = realm ? realm.createSocket(target.url) : new WebSocket(target.url); }
377
+ try { connection = realm ? realm.createSocket(socketUrl) : new WebSocket(socketUrl); }
342
378
  catch (error) { report('socket-error'); throw error; }
343
379
  socket = connection;
344
380
  attachDeadline = armed(setTimeout(() => {
@@ -412,7 +448,7 @@ export function getHostedFirestore(target: {
412
448
  const offersByteRoute = capabilities.includes(STORAGE_BYTE_ROUTE_CAPABILITY);
413
449
  const sessionToken = target.sessionToken;
414
450
  const usesByteRoute = offersByteRoute && sessionToken !== undefined;
415
- if (usesByteRoute) port.byteRoute = { baseUrl: httpOriginOf(target.url), sessionToken };
451
+ if (usesByteRoute) port.byteRoute = { baseUrl: httpOriginOf(socketUrl), sessionToken };
416
452
  else delete port.byteRoute;
417
453
  settleByteRoute();
418
454
  realm?.attached?.(message);
@@ -0,0 +1,97 @@
1
+ import { FirebaseError } from 'pyric/app';
2
+ import { AuthCredential, EmailAuthCredential, sandbox, type Auth, type MintedSession } from 'pyric/auth';
3
+ import { isFederatedProviderId, noMockConfiguredError, resolveEmailLinkIdentity } from 'pyric/auth/internal';
4
+ import { resolveOAuthCredentialUser, type OAuthCredentialPayload } from './auth-session-seeder.js';
5
+ import type { ResolvedIdentity } from '../protocol.js';
6
+
7
+ /** The tenant and page origin a served sign-in mints its session under. */
8
+ export interface CredentialSignInScope {
9
+ readonly tenantId: string | null;
10
+ readonly origin?: string;
11
+ }
12
+
13
+ /** Use up the calling port's staged result for a provider, or `null` when none was staged. */
14
+ export type TakeStagedSignInResult = (providerId: string) => ResolvedIdentity | null;
15
+
16
+ /** A credential as it arrives on the wire: nested, or flat on a native client's op message. */
17
+ export type CredentialPayload = OAuthCredentialPayload & Record<string, unknown>;
18
+
19
+ export interface CredentialSignIn {
20
+ readonly session: MintedSession;
21
+ readonly providerId: string | null;
22
+ readonly isNewUser: boolean;
23
+ }
24
+
25
+ const EMAIL_PROVIDER_ID = 'password';
26
+
27
+ /**
28
+ * Sign a port in with a credential.
29
+ *
30
+ * An email credential carries its own secret, so the engine checks it here
31
+ * exactly as `signInWithEmailAndPassword` and `signInWithEmailLink` do. A
32
+ * provider id that is not federated (a look-alike of `password`, `emailLink`,
33
+ * `phone`, or an id pyric doesn't know), or a payload whose `signInMethod`
34
+ * differs from its provider, is refused with in-page's
35
+ * `auth/no-mock-configured` before the resolver can find or touch an account
36
+ * (#1466). A federated credential signs in only as a result the port staged
37
+ * for its provider, as in-page: the sandbox has no identity provider to
38
+ * redeem a token against, so nothing the payload asserts (`uid`, `email`)
39
+ * picks the account. With nothing staged it is refused the same way.
40
+ */
41
+ export function signInWithCredentialPayload(
42
+ auth: Auth,
43
+ payload: CredentialPayload,
44
+ scope: CredentialSignInScope,
45
+ takeStaged: TakeStagedSignInResult,
46
+ ): CredentialSignIn {
47
+ const isEmailCredential = payload.providerId === EMAIL_PROVIDER_ID;
48
+ if (isEmailCredential) return signInWithEmailCredential(auth, payload, scope);
49
+ // In-page checks enablement before anything else, so a disabled provider is operation-not-allowed.
50
+ sandbox.assertAuthProviderEnabled(auth, payload.providerId);
51
+ const isFederated = isFederatedProviderId(payload.providerId);
52
+ const signInMethod = payload.signInMethod;
53
+ const hasOtherSignInMethod = signInMethod !== undefined && signInMethod !== payload.providerId;
54
+ if (!isFederated || hasOtherSignInMethod) throw noMockConfiguredError(payload.providerId);
55
+ const staged = takeStaged(payload.providerId);
56
+ const hasStagedUser = staged !== null && staged.uid !== '';
57
+ if (!hasStagedUser) throw noMockConfiguredError(payload.providerId);
58
+ return signInAsStaged(auth, staged, scope);
59
+ }
60
+
61
+ /** Sign in as the staged identity: find or create its uid and link the provider, as `auth.acceptIdentity` does. */
62
+ function signInAsStaged(auth: Auth, staged: ResolvedIdentity, scope: CredentialSignInScope): CredentialSignIn {
63
+ const { photoURL, ...identity } = staged;
64
+ const { uid, isNewUser } = resolveOAuthCredentialUser(auth, { ...identity, photoURL: photoURL ?? undefined });
65
+ const session = sandbox.mintSession(auth, { kind: 'provider', uid, providerId: staged.providerId, ...scope });
66
+ return { session, providerId: staged.providerId, isNewUser };
67
+ }
68
+
69
+ /** Rebuild the email credential and let the engine verify its password or link. A missing secret fails closed. */
70
+ function signInWithEmailCredential(
71
+ auth: Auth,
72
+ payload: CredentialPayload,
73
+ scope: CredentialSignInScope,
74
+ ): CredentialSignIn {
75
+ const credential = AuthCredential.fromJSON(payload);
76
+ const isEmail = credential instanceof EmailAuthCredential;
77
+ if (!isEmail) throw invalidCredential();
78
+ const usesPassword = credential.password !== null;
79
+ if (usesPassword) {
80
+ const session = sandbox.mintSession(auth, {
81
+ kind: 'password', email: credential.email, password: credential.password, ...scope,
82
+ });
83
+ return { session, providerId: null, isNewUser: false };
84
+ }
85
+ const link = credential.emailLink;
86
+ const usesLink = link !== null;
87
+ if (!usesLink) throw invalidCredential();
88
+ const { user, isNewUser } = resolveEmailLinkIdentity(auth, credential.email, link);
89
+ const session = sandbox.mintSession(auth, {
90
+ kind: 'provider', uid: user.uid, providerId: EMAIL_PROVIDER_ID, ...scope,
91
+ });
92
+ return { session, providerId: null, isNewUser };
93
+ }
94
+
95
+ function invalidCredential(): FirebaseError {
96
+ return new FirebaseError('auth/invalid-credential', 'signInWithCredential: the email credential is invalid.');
97
+ }
@@ -1,7 +1,7 @@
1
1
  import { FirebaseError } from 'pyric/app';
2
2
  import { AuthCredential, OAuthProvider, reauthenticateWithCredential, reauthenticateWithPopup,
3
3
  type MintedSession, type UserCredential } from 'pyric/auth';
4
- import { withoutJwtClaims } from 'pyric/sandbox/internal';
4
+ import { rulesTokenFromIdToken } from 'pyric/sandbox/internal';
5
5
  import type { OpMessage } from '../protocol.js';
6
6
  import { requireMatchingPortSession } from './auth-session-seeder.js';
7
7
 
@@ -33,7 +33,7 @@ export async function reauthenticateSession(current: MintedSession | null, messa
33
33
  }
34
34
  const user = Object.assign(result.user, { tenantId: original.user.tenantId });
35
35
  const token = await user.getIdTokenResult();
36
- // Rules read the token claim set without the JWT registered claims, as a fresh session does.
37
- const session: MintedSession = { user, state: { ...original.state, token: withoutJwtClaims(token.claims) } };
36
+ // Rules read the full token claim set, JWT registered claims included, as a fresh session does.
37
+ const session: MintedSession = { user, state: { ...original.state, token: rulesTokenFromIdToken(token.claims) } };
38
38
  return { session, providerId: result.providerId };
39
39
  }
@@ -17,9 +17,9 @@ import { LOCKED_DATABASE_RULES, withDatabaseRulesPreservedOnReset } from 'pyric/
17
17
  import { setRules } from 'pyric/sandbox/firestore';
18
18
  import {
19
19
  lintFirestoreRules,
20
- parseToASTOrError,
21
20
  rulesSourceRejection,
22
21
  type CompileLimitViolation,
22
+ type RulesSourceRejection,
23
23
  } from 'pyric/rules/internal';
24
24
  import { rtdbRulesSourceRejection } from 'pyric/rules/internal/rtdb';
25
25
  import { sandbox as rtdbSandbox } from 'pyric/database';
@@ -182,7 +182,46 @@ function compileLimitMessages(violations: readonly CompileLimitViolation[]) {
182
182
  }));
183
183
  }
184
184
 
185
- /** Deploy Firestore rules to the sandbox and update `ctx.activeRules.firestore`, refusing non-`cloud.firestore` services. */
185
+ /** Production's refusal of a Firestore source, as error messages at the line and column it reports. */
186
+ function rejectionMessages(rejection: RulesSourceRejection): ActiveRulesState['messages'] {
187
+ return rejection.kind === 'parse'
188
+ ? [{ severity: 'error', text: `Firestore ${rejection.message}`, line: rejection.line, column: rejection.column }]
189
+ : compileLimitMessages(rejection.violations);
190
+ }
191
+
192
+ /**
193
+ * The status of `source`, the Firestore rules the sandbox now enforces, for a
194
+ * path that installed them without {@link deployFirestoreRulesToHost} (a
195
+ * tool's seed, a promoted branch, a restored checkpoint). A source production
196
+ * would not load is `error` with production's reason, never `active`: the
197
+ * sandbox evaluates no request against it. `previous` is the status it
198
+ * replaces, whose rules stay the last known good ones.
199
+ */
200
+ export function enforcedFirestoreRulesState(
201
+ source: string,
202
+ previous: ActiveRulesState | undefined,
203
+ activeMessages: ActiveRulesState['messages'] = [],
204
+ ): ActiveRulesState {
205
+ const rejection = rulesSourceRejection(source);
206
+ if (rejection === null) {
207
+ return { status: 'active', source, lastKnownGood: source, updatedAt: Date.now(), messages: activeMessages };
208
+ }
209
+ const lastKnownGood = previous?.status === 'active' ? previous.source : previous?.lastKnownGood;
210
+ return {
211
+ status: 'error',
212
+ source,
213
+ updatedAt: Date.now(),
214
+ messages: rejectionMessages(rejection),
215
+ ...(lastKnownGood === undefined ? {} : { lastKnownGood }),
216
+ };
217
+ }
218
+
219
+ /**
220
+ * Deploy Firestore rules to the sandbox and update `ctx.activeRules.firestore`.
221
+ * A source production's load check refuses (it does not parse, names a
222
+ * service other than `cloud.firestore`, or is past a compile limit) is not
223
+ * installed, and is reported with the reason every plane gives.
224
+ */
186
225
  export function deployFirestoreRulesToHost(ctx: HostCtx, source: string): {
187
226
  ok: boolean;
188
227
  warnings: ReturnType<typeof lintFirestoreRules>['warnings'];
@@ -190,27 +229,13 @@ export function deployFirestoreRulesToHost(ctx: HostCtx, source: string): {
190
229
  rejectionMessage: string | null;
191
230
  } {
192
231
  const rejection = rulesSourceRejection(source);
193
- const parsed = rejection === null ? parseToASTOrError(source) : null;
194
- const wrongService = parsed !== null && parsed.ok && parsed.ast.service && parsed.ast.service.name !== 'cloud.firestore'
195
- ? parsed.ast.service
196
- : null;
197
- const refused = rejection !== null || wrongService !== null;
232
+ const refused = rejection !== null;
198
233
  const result = refused ? lintFirestoreRules(source) : setRules(ctx.sandbox, source);
199
- const wrongServiceText = wrongService !== null
200
- ? `Expected 'service cloud.firestore', got 'service ${wrongService.name}'.`
201
- : null;
202
- const messages = wrongService !== null
203
- ? [{
204
- severity: 'error' as const,
205
- text: wrongServiceText!,
206
- ...(wrongService.loc ? { line: wrongService.loc.line } : {}),
207
- }]
208
- : rejection === null
209
- ? firestoreRuleMessages(result)
210
- : rejection.kind === 'parse'
211
- ? [{ severity: 'error' as const, text: `Firestore ${rejection.message}`, line: rejection.line, column: rejection.column }]
212
- : compileLimitMessages(rejection.violations);
213
- const okDeploy = !messages.some((m) => m.severity === 'error');
234
+ const messages = rejection === null ? firestoreRuleMessages(result) : rejectionMessages(rejection);
235
+ // `ok` reports whether the rules took effect. An installed ruleset with an
236
+ // error-severity lint finding (an always-true `match /{document=**}`) is
237
+ // in force, as production deploys it; its findings stay in `messages`.
238
+ const okDeploy = !refused;
214
239
  ctx.activeRules ??= {};
215
240
  const previous = ctx.activeRules.firestore?.status === 'active'
216
241
  ? ctx.activeRules.firestore.source
@@ -224,11 +249,7 @@ export function deployFirestoreRulesToHost(ctx: HostCtx, source: string): {
224
249
  messages,
225
250
  ...(previous ? { lastKnownGood: previous } : {}),
226
251
  };
227
- const rejectionMessage = wrongServiceText !== null
228
- ? `Firestore rules did not compile: ${wrongServiceText}`
229
- : rejection !== null
230
- ? `Firestore ${rejection.message}`
231
- : null;
252
+ const rejectionMessage = rejection !== null ? `Firestore ${rejection.message}` : null;
232
253
  return { ok: okDeploy, warnings: result.warnings, messages, rejectionMessage };
233
254
  }
234
255
 
@@ -236,13 +257,11 @@ export function deployFirestoreRulesToHost(ctx: HostCtx, source: string): {
236
257
  export function syncHostRulesAfterCheckpointRestore(ctx: HostCtx, rules: SandboxRuleSources): void {
237
258
  if (rules.firestore.length > 0) {
238
259
  ctx.activeRules ??= {};
239
- ctx.activeRules.firestore = {
240
- source: rules.firestore,
241
- lastKnownGood: rules.firestore,
242
- updatedAt: Date.now(),
243
- status: 'active',
244
- messages: firestoreRuleMessages(lintFirestoreRules(rules.firestore)),
245
- };
260
+ ctx.activeRules.firestore = enforcedFirestoreRulesState(
261
+ rules.firestore,
262
+ ctx.activeRules.firestore,
263
+ firestoreRuleMessages(lintFirestoreRules(rules.firestore)),
264
+ );
246
265
  } else if (ctx.activeRules) {
247
266
  delete ctx.activeRules.firestore;
248
267
  }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Sign-in results a served test staged with `sandbox.mockSignInResult`
3
+ * (`auth.mockSignInResult`), kept per port (#1466).
4
+ *
5
+ * Each port has one slot per provider id: the last result staged wins, and a
6
+ * sign-in uses it up. That is in-page's rule (`AuthFlowRegistry.setMockResult`
7
+ * and `consumeMockResult`). Keying by port means one tab, or one register
8
+ * process, can't stage a sign-in for another, as in-page where each tab has
9
+ * its own Auth. The host clears a port's slots when it tears the port down,
10
+ * since a torn-down port can be reused (a Node host session resume, an
11
+ * app-config eviction). They are never persisted.
12
+ */
13
+
14
+ import type { PortLike } from '../host-context.js';
15
+ import type { ResolvedIdentity } from '../protocol.js';
16
+
17
+ export interface StagedSignInResults {
18
+ /** Stage `identity` for the port's next sign-in with `identity.providerId`. */
19
+ stage(port: PortLike, identity: ResolvedIdentity): void;
20
+ /** Use up the port's staged result for `providerId`, or `null` when none. */
21
+ take(port: PortLike, providerId: string): ResolvedIdentity | null;
22
+ /** Drop everything the port staged, when the host tears the port down. */
23
+ clear(port: PortLike): void;
24
+ }
25
+
26
+ export function createStagedSignInResults(): StagedSignInResults {
27
+ const slotsByPort = new WeakMap<PortLike, Map<string, ResolvedIdentity>>();
28
+
29
+ function slotsFor(port: PortLike): Map<string, ResolvedIdentity> {
30
+ let slots = slotsByPort.get(port);
31
+ if (slots === undefined) {
32
+ slots = new Map();
33
+ slotsByPort.set(port, slots);
34
+ }
35
+ return slots;
36
+ }
37
+
38
+ return {
39
+ stage(port, identity) {
40
+ slotsFor(port).set(identity.providerId, identity);
41
+ },
42
+ take(port, providerId) {
43
+ const slots = slotsByPort.get(port);
44
+ const staged = slots?.get(providerId);
45
+ if (staged === undefined) return null;
46
+ slots?.delete(providerId);
47
+ return staged;
48
+ },
49
+ clear(port) {
50
+ slotsByPort.delete(port);
51
+ },
52
+ };
53
+ }
@@ -35,6 +35,7 @@ import {
35
35
  copyObject,
36
36
  getAdminStorageSandbox,
37
37
  getStorageService,
38
+ nameStorageBucket,
38
39
  patchObjectMetadata,
39
40
  storageAuth,
40
41
  storageOperationProvenance,
@@ -333,6 +334,20 @@ function lensStorage(ctx: HostCtx, actAs: AuthLens | undefined, port: PortLike,
333
334
  return handle;
334
335
  }
335
336
 
337
+ /**
338
+ * The handle one op runs on: its lens, on the bucket it stores in, under the
339
+ * name the caller knows that bucket by. Rules see that name (ST-H2-4); the
340
+ * store keeps its own key.
341
+ */
342
+ function opStorage(
343
+ ctx: HostCtx,
344
+ msg: StorageBucketWire & { actAs?: AuthLens },
345
+ port: PortLike,
346
+ bucket: string = bucketOfOp(ctx, msg),
347
+ ): FirebaseStorage {
348
+ return nameStorageBucket(lensStorage(ctx, msg.actAs, port, bucket), bucketNameOf(ctx, msg, bucket));
349
+ }
350
+
336
351
  /**
337
352
  * {@link lensStorage} for a bucket other than the default one: the same
338
353
  * lenses, on a handle scoped to `bucket`. Each bucket's objects are its own;
@@ -472,7 +487,7 @@ export async function handleStorageOp(
472
487
  // under the op's lens (admin lens bypasses — see lensStorage).
473
488
  try {
474
489
  const storage = bindStorageOperationContext(
475
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
490
+ opStorage(ctx, msg, port),
476
491
  opProvenance(msg),
477
492
  );
478
493
  const result = await storageListAll(storageRef(storage, msg.path));
@@ -487,7 +502,7 @@ export async function handleStorageOp(
487
502
  case 'storage.getMetadata': {
488
503
  try {
489
504
  const storage = bindStorageOperationContext(
490
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
505
+ opStorage(ctx, msg, port),
491
506
  opProvenance(msg),
492
507
  );
493
508
  // FullMetadata is plain JSON (bucket/fullPath/name/size/contentType/...).
@@ -505,7 +520,7 @@ export async function handleStorageOp(
505
520
  // object's metadata, as production keeps it, and is minted on first use.
506
521
  try {
507
522
  const storage = bindStorageOperationContext(
508
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
523
+ opStorage(ctx, msg, port),
509
524
  opProvenance(msg),
510
525
  );
511
526
  const r = storageRef(storage, msg.path);
@@ -539,7 +554,7 @@ export async function handleStorageOp(
539
554
  if (!adminPlane) {
540
555
  throw new FirebaseError('storage/unauthorized', 'storage.setMetadata is the admin plane (firebase-admin File.setMetadata) and runs only on the admin lens.');
541
556
  }
542
- const storage = bindStorageOperationContext(lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)), opProvenance(msg));
557
+ const storage = bindStorageOperationContext(opStorage(ctx, msg, port), opProvenance(msg));
543
558
  const result = await patchObjectMetadata(storageRef(storage, msg.path), msg.patch);
544
559
  await bestEffortFlush(ctx, msg.method);
545
560
  ok(port, msg.id, namedMetadata(ctx, msg, result));
@@ -554,7 +569,7 @@ export async function handleStorageOp(
554
569
  // callers use `storage.getBytes` (base64) instead.
555
570
  try {
556
571
  const storage = bindStorageOperationContext(
557
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
572
+ opStorage(ctx, msg, port),
558
573
  opProvenance(msg),
559
574
  );
560
575
  ok(
@@ -589,7 +604,7 @@ export async function handleStorageOp(
589
604
  }
590
605
  const bucket = bucketOfOp(ctx, msg);
591
606
  const storage = bindStorageOperationContext(
592
- lensStorage(ctx, msg.actAs, port, bucket),
607
+ opStorage(ctx, msg, port, bucket),
593
608
  opProvenance(msg),
594
609
  );
595
610
  const target = storageRef(storage, msg.path);
@@ -621,7 +636,7 @@ export async function handleStorageOp(
621
636
  }
622
637
  const downloadTokens = uploadDownloadTokens(msg);
623
638
  const storage = bindStorageOperationContext(
624
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
639
+ opStorage(ctx, msg, port),
625
640
  opProvenance(msg),
626
641
  );
627
642
  const r = storageRef(storage, msg.path);
@@ -706,7 +721,7 @@ export async function handleStorageOp(
706
721
  throw new FirebaseError('storage/object-not-found', `Upload '${msg.uploadId}' not found or already completed.`);
707
722
  }
708
723
  const storage = bindStorageOperationContext(
709
- lensStorage(ctx, msg.actAs, port, pending!.bucket),
724
+ nameStorageBucket(lensStorage(ctx, msg.actAs, port, pending!.bucket), pending!.bucketName),
710
725
  opProvenance(msg),
711
726
  );
712
727
  const service = await getStorageService(storage);
@@ -752,7 +767,7 @@ export async function handleStorageOp(
752
767
  // superseding `not-found`, matching pyric/storage).
753
768
  try {
754
769
  const storage = bindStorageOperationContext(
755
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
770
+ opStorage(ctx, msg, port),
756
771
  opProvenance(msg),
757
772
  );
758
773
  const r = storageRef(storage, msg.path);
@@ -815,7 +830,7 @@ export async function handleStorageOp(
815
830
  // explicitly (issue #84 item 3).
816
831
  try {
817
832
  const storage = bindStorageOperationContext(
818
- lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)),
833
+ opStorage(ctx, msg, port),
819
834
  opProvenance(msg),
820
835
  );
821
836
  await storageDeleteObject(storageRef(storage, msg.path));
@@ -854,7 +869,7 @@ export async function handleStorageOp(
854
869
  throw new FirebaseError('storage/unauthorized', 'storage.copyObject is the admin plane (firebase-admin File.copy) and runs only on the admin lens.');
855
870
  }
856
871
  const provenance = opProvenance(msg);
857
- const source = bindStorageOperationContext(lensStorage(ctx, msg.actAs, port, bucketOfOp(ctx, msg)), provenance);
872
+ const source = bindStorageOperationContext(opStorage(ctx, msg, port), provenance);
858
873
  const destinationBucket = storeBucketOf(ctx, msg.destinationBucket);
859
874
  const destination = bindStorageOperationContext(lensStorage(ctx, msg.actAs, port, destinationBucket), provenance);
860
875
  const result = await copyObject(storageRef(source, msg.path), storageRef(destination, msg.destinationPath), msg.patch ?? {}, provenance);
@@ -261,6 +261,7 @@ function registerListener(
261
261
  path?: string;
262
262
  exists: boolean | (() => boolean);
263
263
  data(): Record<string, unknown>;
264
+ metadata?: { hasPendingWrites?: boolean };
264
265
  }>;
265
266
  };
266
267
 
@@ -268,10 +269,12 @@ function registerListener(
268
269
  // offline cache, so `fromCache` is always false and is not sent.
269
270
  const hasPendingWrites = snapAny.metadata?.hasPendingWrites === true;
270
271
  if (Array.isArray(snapAny.docs)) {
271
- // Query snapshot
272
- const docs = snapAny.docs.map((d) =>
273
- serializeDocSnap(d as Parameters<typeof serializeDocSnap>[0]),
274
- );
272
+ // Query snapshot. Each document sends its own pending state, which
273
+ // production reports per document (FP-5, #1358).
274
+ const docs = snapAny.docs.map((d) => ({
275
+ ...serializeDocSnap(d as Parameters<typeof serializeDocSnap>[0]),
276
+ hasPendingWrites: d.metadata?.hasPendingWrites === true,
277
+ }));
275
278
  post(port, { t: 'snap', subId: msg.subId, value: { docs, hasPendingWrites, usage } });
276
279
  } else if (snapAny.id !== undefined) {
277
280
  // Doc snapshot