pyric 0.1.0-alpha.21 → 0.1.0-alpha.24

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 (1241) hide show
  1. package/README.md +12 -4
  2. package/dist/ai/activity.d.ts +9 -0
  3. package/dist/ai/activity.d.ts.map +1 -0
  4. package/dist/ai/activity.js +45 -0
  5. package/dist/ai/activity.js.map +1 -0
  6. package/dist/ai/broker/broker.d.ts +25 -0
  7. package/dist/ai/broker/broker.d.ts.map +1 -1
  8. package/dist/ai/broker/broker.js +46 -42
  9. package/dist/ai/broker/broker.js.map +1 -1
  10. package/dist/ai/broker/gemini-engine.d.ts +7 -0
  11. package/dist/ai/broker/gemini-engine.d.ts.map +1 -1
  12. package/dist/ai/broker/gemini-engine.js +15 -0
  13. package/dist/ai/broker/gemini-engine.js.map +1 -1
  14. package/dist/ai/broker/index.d.ts +1 -1
  15. package/dist/ai/broker/index.d.ts.map +1 -1
  16. package/dist/ai/broker/index.js.map +1 -1
  17. package/dist/ai/broker/openai-engine.d.ts.map +1 -1
  18. package/dist/ai/broker/openai-engine.js +7 -3
  19. package/dist/ai/broker/openai-engine.js.map +1 -1
  20. package/dist/ai/broker/scripted-engine.d.ts +9 -1
  21. package/dist/ai/broker/scripted-engine.d.ts.map +1 -1
  22. package/dist/ai/broker/scripted-engine.js +14 -5
  23. package/dist/ai/broker/scripted-engine.js.map +1 -1
  24. package/dist/ai/broker/types.d.ts +6 -2
  25. package/dist/ai/broker/types.d.ts.map +1 -1
  26. package/dist/ai/events.d.ts +12 -0
  27. package/dist/ai/events.d.ts.map +1 -0
  28. package/dist/ai/events.js +17 -0
  29. package/dist/ai/events.js.map +1 -0
  30. package/dist/ai/generation-enums.d.ts +43 -0
  31. package/dist/ai/generation-enums.d.ts.map +1 -0
  32. package/dist/ai/generation-enums.js +37 -0
  33. package/dist/ai/generation-enums.js.map +1 -0
  34. package/dist/ai/index.d.ts +1 -0
  35. package/dist/ai/index.d.ts.map +1 -1
  36. package/dist/ai/index.js +1 -0
  37. package/dist/ai/index.js.map +1 -1
  38. package/dist/ai/instances.d.ts +6 -0
  39. package/dist/ai/instances.d.ts.map +1 -1
  40. package/dist/ai/instances.js +20 -2
  41. package/dist/ai/instances.js.map +1 -1
  42. package/dist/ai/internal.d.ts +3 -0
  43. package/dist/ai/internal.d.ts.map +1 -1
  44. package/dist/ai/internal.js +3 -0
  45. package/dist/ai/internal.js.map +1 -1
  46. package/dist/ai/sandbox-plane.d.ts.map +1 -1
  47. package/dist/ai/sandbox-plane.js +23 -8
  48. package/dist/ai/sandbox-plane.js.map +1 -1
  49. package/dist/ai/scripting.d.ts +20 -2
  50. package/dist/ai/scripting.d.ts.map +1 -1
  51. package/dist/ai/scripting.js +30 -3
  52. package/dist/ai/scripting.js.map +1 -1
  53. package/dist/app/internal.d.ts +1 -0
  54. package/dist/app/internal.d.ts.map +1 -1
  55. package/dist/app/internal.js +1 -0
  56. package/dist/app/internal.js.map +1 -1
  57. package/dist/auth/email-link.d.ts +8 -1
  58. package/dist/auth/email-link.d.ts.map +1 -1
  59. package/dist/auth/email-link.js +29 -20
  60. package/dist/auth/email-link.js.map +1 -1
  61. package/dist/auth/events.d.ts +12 -0
  62. package/dist/auth/events.d.ts.map +1 -0
  63. package/dist/auth/events.js +18 -0
  64. package/dist/auth/events.js.map +1 -0
  65. package/dist/auth/factor-id.d.ts +7 -0
  66. package/dist/auth/factor-id.d.ts.map +1 -0
  67. package/dist/auth/factor-id.js +6 -0
  68. package/dist/auth/factor-id.js.map +1 -0
  69. package/dist/auth/index.d.ts +1 -0
  70. package/dist/auth/index.d.ts.map +1 -1
  71. package/dist/auth/index.js +1 -0
  72. package/dist/auth/index.js.map +1 -1
  73. package/dist/auth/instances.d.ts.map +1 -1
  74. package/dist/auth/instances.js +13 -1
  75. package/dist/auth/instances.js.map +1 -1
  76. package/dist/auth/internal.d.ts +20 -0
  77. package/dist/auth/internal.d.ts.map +1 -0
  78. package/dist/auth/internal.js +19 -0
  79. package/dist/auth/internal.js.map +1 -0
  80. package/dist/auth/modular.d.ts +9 -0
  81. package/dist/auth/modular.d.ts.map +1 -1
  82. package/dist/auth/modular.js +20 -0
  83. package/dist/auth/modular.js.map +1 -1
  84. package/dist/auth/reauth.js +3 -2
  85. package/dist/auth/reauth.js.map +1 -1
  86. package/dist/auth/sandbox/default-avatar.d.ts +64 -0
  87. package/dist/auth/sandbox/default-avatar.d.ts.map +1 -0
  88. package/dist/auth/sandbox/default-avatar.js +118 -0
  89. package/dist/auth/sandbox/default-avatar.js.map +1 -0
  90. package/dist/auth/sandbox/driver.d.ts +36 -0
  91. package/dist/auth/sandbox/driver.d.ts.map +1 -1
  92. package/dist/auth/sandbox/driver.js +47 -0
  93. package/dist/auth/sandbox/driver.js.map +1 -1
  94. package/dist/auth/sandbox/project-store.d.ts +0 -1
  95. package/dist/auth/sandbox/project-store.d.ts.map +1 -1
  96. package/dist/auth/sandbox/project-store.js +0 -1
  97. package/dist/auth/sandbox/project-store.js.map +1 -1
  98. package/dist/auth/sandbox-backend-types.d.ts +34 -20
  99. package/dist/auth/sandbox-backend-types.d.ts.map +1 -1
  100. package/dist/auth/sandbox-backend-types.js +2 -3
  101. package/dist/auth/sandbox-backend-types.js.map +1 -1
  102. package/dist/auth/sandbox-backend.d.ts +98 -20
  103. package/dist/auth/sandbox-backend.d.ts.map +1 -1
  104. package/dist/auth/sandbox-backend.js +403 -96
  105. package/dist/auth/sandbox-backend.js.map +1 -1
  106. package/dist/auth/seed-user.d.ts +38 -0
  107. package/dist/auth/seed-user.d.ts.map +1 -0
  108. package/dist/auth/seed-user.js +2 -0
  109. package/dist/auth/seed-user.js.map +1 -0
  110. package/dist/auth/tokens.d.ts +6 -1
  111. package/dist/auth/tokens.d.ts.map +1 -1
  112. package/dist/auth/tokens.js +19 -17
  113. package/dist/auth/tokens.js.map +1 -1
  114. package/dist/auth/types.d.ts +13 -1
  115. package/dist/auth/types.d.ts.map +1 -1
  116. package/dist/auth/types.js.map +1 -1
  117. package/dist/database/activity-coverage.d.ts +9 -0
  118. package/dist/database/activity-coverage.d.ts.map +1 -0
  119. package/dist/database/activity-coverage.js +11 -0
  120. package/dist/database/activity-coverage.js.map +1 -0
  121. package/dist/database/connection-lifecycle.d.ts +3 -0
  122. package/dist/database/connection-lifecycle.d.ts.map +1 -1
  123. package/dist/database/connection-lifecycle.js +54 -23
  124. package/dist/database/connection-lifecycle.js.map +1 -1
  125. package/dist/database/events.d.ts +12 -0
  126. package/dist/database/events.d.ts.map +1 -0
  127. package/dist/database/events.js +10 -0
  128. package/dist/database/events.js.map +1 -0
  129. package/dist/database/instances.d.ts +7 -7
  130. package/dist/database/instances.d.ts.map +1 -1
  131. package/dist/database/instances.js +35 -13
  132. package/dist/database/instances.js.map +1 -1
  133. package/dist/database/internal/query-projection.d.ts +102 -0
  134. package/dist/database/internal/query-projection.d.ts.map +1 -0
  135. package/dist/database/internal/query-projection.js +293 -0
  136. package/dist/database/internal/query-projection.js.map +1 -0
  137. package/dist/database/internal.d.ts +2 -0
  138. package/dist/database/internal.d.ts.map +1 -1
  139. package/dist/database/internal.js +2 -0
  140. package/dist/database/internal.js.map +1 -1
  141. package/dist/database/listeners.d.ts.map +1 -1
  142. package/dist/database/listeners.js +165 -37
  143. package/dist/database/listeners.js.map +1 -1
  144. package/dist/database/operations.d.ts.map +1 -1
  145. package/dist/database/operations.js +77 -50
  146. package/dist/database/operations.js.map +1 -1
  147. package/dist/database/replay.d.ts.map +1 -1
  148. package/dist/database/replay.js +6 -2
  149. package/dist/database/replay.js.map +1 -1
  150. package/dist/database/routing.d.ts +4 -0
  151. package/dist/database/routing.d.ts.map +1 -1
  152. package/dist/database/routing.js.map +1 -1
  153. package/dist/database/sandbox/backend-for.d.ts +4 -3
  154. package/dist/database/sandbox/backend-for.d.ts.map +1 -1
  155. package/dist/database/sandbox/backend-for.js +130 -24
  156. package/dist/database/sandbox/backend-for.js.map +1 -1
  157. package/dist/database/sandbox/backend-state.d.ts +7 -0
  158. package/dist/database/sandbox/backend-state.d.ts.map +1 -1
  159. package/dist/database/sandbox/backend-state.js +15 -1
  160. package/dist/database/sandbox/backend-state.js.map +1 -1
  161. package/dist/database/sandbox/backend.d.ts +2 -1
  162. package/dist/database/sandbox/backend.d.ts.map +1 -1
  163. package/dist/database/sandbox/backend.js +3 -3
  164. package/dist/database/sandbox/backend.js.map +1 -1
  165. package/dist/database/sandbox/child-listeners.d.ts +5 -0
  166. package/dist/database/sandbox/child-listeners.d.ts.map +1 -1
  167. package/dist/database/sandbox/child-listeners.js +34 -14
  168. package/dist/database/sandbox/child-listeners.js.map +1 -1
  169. package/dist/database/sandbox/listener-types.d.ts +5 -0
  170. package/dist/database/sandbox/listener-types.d.ts.map +1 -1
  171. package/dist/database/sandbox/operation-events.d.ts +5 -0
  172. package/dist/database/sandbox/operation-events.d.ts.map +1 -1
  173. package/dist/database/sandbox/operation-events.js +18 -3
  174. package/dist/database/sandbox/operation-events.js.map +1 -1
  175. package/dist/database/sandbox/persistence-state.d.ts.map +1 -1
  176. package/dist/database/sandbox/persistence-state.js +1 -8
  177. package/dist/database/sandbox/persistence-state.js.map +1 -1
  178. package/dist/database/sandbox/priority-writes.js +2 -2
  179. package/dist/database/sandbox/priority-writes.js.map +1 -1
  180. package/dist/database/sandbox/query.d.ts +2 -101
  181. package/dist/database/sandbox/query.d.ts.map +1 -1
  182. package/dist/database/sandbox/query.js +1 -225
  183. package/dist/database/sandbox/query.js.map +1 -1
  184. package/dist/database/sandbox/rules-eval.d.ts +28 -0
  185. package/dist/database/sandbox/rules-eval.d.ts.map +1 -1
  186. package/dist/database/sandbox/rules-eval.js +136 -9
  187. package/dist/database/sandbox/rules-eval.js.map +1 -1
  188. package/dist/database/sandbox/transactions.d.ts.map +1 -1
  189. package/dist/database/sandbox/transactions.js +17 -38
  190. package/dist/database/sandbox/transactions.js.map +1 -1
  191. package/dist/database/sandbox/value-listeners.d.ts +11 -1
  192. package/dist/database/sandbox/value-listeners.d.ts.map +1 -1
  193. package/dist/database/sandbox/value-listeners.js +65 -27
  194. package/dist/database/sandbox/value-listeners.js.map +1 -1
  195. package/dist/database/sandbox/write-plane.d.ts.map +1 -1
  196. package/dist/database/sandbox/write-plane.js +30 -22
  197. package/dist/database/sandbox/write-plane.js.map +1 -1
  198. package/dist/database/sdk-activity.d.ts +5 -0
  199. package/dist/database/sdk-activity.d.ts.map +1 -0
  200. package/dist/database/sdk-activity.js +20 -0
  201. package/dist/database/sdk-activity.js.map +1 -0
  202. package/dist/database/transactions.d.ts.map +1 -1
  203. package/dist/database/transactions.js +7 -3
  204. package/dist/database/transactions.js.map +1 -1
  205. package/dist/database/types.d.ts +9 -1
  206. package/dist/database/types.d.ts.map +1 -1
  207. package/dist/database/types.js.map +1 -1
  208. package/dist/deferred/entry.d.ts +6 -3
  209. package/dist/deferred/entry.d.ts.map +1 -1
  210. package/dist/deferred/entry.js +13 -10
  211. package/dist/deferred/entry.js.map +1 -1
  212. package/dist/firestore/activity-coverage.d.ts +9 -0
  213. package/dist/firestore/activity-coverage.d.ts.map +1 -0
  214. package/dist/firestore/activity-coverage.js +9 -0
  215. package/dist/firestore/activity-coverage.js.map +1 -0
  216. package/dist/firestore/aggregates.d.ts.map +1 -1
  217. package/dist/firestore/aggregates.js +32 -10
  218. package/dist/firestore/aggregates.js.map +1 -1
  219. package/dist/firestore/bytes.d.ts +13 -0
  220. package/dist/firestore/bytes.d.ts.map +1 -0
  221. package/dist/firestore/bytes.js +51 -0
  222. package/dist/firestore/bytes.js.map +1 -0
  223. package/dist/firestore/converter-method.d.ts +11 -0
  224. package/dist/firestore/converter-method.d.ts.map +1 -0
  225. package/dist/firestore/converter-method.js +39 -0
  226. package/dist/firestore/converter-method.js.map +1 -0
  227. package/dist/firestore/errors.d.ts.map +1 -1
  228. package/dist/firestore/errors.js +4 -0
  229. package/dist/firestore/errors.js.map +1 -1
  230. package/dist/firestore/field-values.d.ts +3 -36
  231. package/dist/firestore/field-values.d.ts.map +1 -1
  232. package/dist/firestore/field-values.js +3 -136
  233. package/dist/firestore/field-values.js.map +1 -1
  234. package/dist/firestore/geo-point.d.ts +15 -0
  235. package/dist/firestore/geo-point.d.ts.map +1 -0
  236. package/dist/firestore/geo-point.js +50 -0
  237. package/dist/firestore/geo-point.js.map +1 -0
  238. package/dist/firestore/index.d.ts +1 -1
  239. package/dist/firestore/index.d.ts.map +1 -1
  240. package/dist/firestore/index.js +1 -1
  241. package/dist/firestore/index.js.map +1 -1
  242. package/dist/firestore/instances.d.ts.map +1 -1
  243. package/dist/firestore/instances.js +23 -2
  244. package/dist/firestore/instances.js.map +1 -1
  245. package/dist/firestore/internal/document-data.d.ts +3 -0
  246. package/dist/firestore/internal/document-data.d.ts.map +1 -0
  247. package/dist/firestore/internal/document-data.js +10 -0
  248. package/dist/firestore/internal/document-data.js.map +1 -0
  249. package/dist/firestore/internal/index.d.ts +3 -0
  250. package/dist/firestore/internal/index.d.ts.map +1 -1
  251. package/dist/firestore/internal/index.js +5 -0
  252. package/dist/firestore/internal/index.js.map +1 -1
  253. package/dist/firestore/internal/value-codec.d.ts +16 -61
  254. package/dist/firestore/internal/value-codec.d.ts.map +1 -1
  255. package/dist/firestore/internal/value-codec.js +137 -82
  256. package/dist/firestore/internal/value-codec.js.map +1 -1
  257. package/dist/firestore/internal/value-depth.d.ts +3 -0
  258. package/dist/firestore/internal/value-depth.d.ts.map +1 -0
  259. package/dist/firestore/internal/value-depth.js +19 -0
  260. package/dist/firestore/internal/value-depth.js.map +1 -0
  261. package/dist/firestore/listeners.d.ts +18 -1
  262. package/dist/firestore/listeners.d.ts.map +1 -1
  263. package/dist/firestore/listeners.js +60 -21
  264. package/dist/firestore/listeners.js.map +1 -1
  265. package/dist/firestore/persistence.d.ts +0 -9
  266. package/dist/firestore/persistence.d.ts.map +1 -1
  267. package/dist/firestore/persistence.js +23 -9
  268. package/dist/firestore/persistence.js.map +1 -1
  269. package/dist/firestore/plain-object.d.ts +3 -0
  270. package/dist/firestore/plain-object.d.ts.map +1 -0
  271. package/dist/firestore/plain-object.js +9 -0
  272. package/dist/firestore/plain-object.js.map +1 -0
  273. package/dist/firestore/query-constraints.d.ts.map +1 -1
  274. package/dist/firestore/query-constraints.js +4 -3
  275. package/dist/firestore/query-constraints.js.map +1 -1
  276. package/dist/firestore/reads.d.ts +9 -7
  277. package/dist/firestore/reads.d.ts.map +1 -1
  278. package/dist/firestore/reads.js +74 -36
  279. package/dist/firestore/reads.js.map +1 -1
  280. package/dist/firestore/refs.d.ts +2 -1
  281. package/dist/firestore/refs.d.ts.map +1 -1
  282. package/dist/firestore/refs.js +37 -24
  283. package/dist/firestore/refs.js.map +1 -1
  284. package/dist/firestore/sandbox/activity-query-display.d.ts +67 -0
  285. package/dist/firestore/sandbox/activity-query-display.d.ts.map +1 -0
  286. package/dist/firestore/sandbox/activity-query-display.js +119 -0
  287. package/dist/firestore/sandbox/activity-query-display.js.map +1 -0
  288. package/dist/firestore/sandbox/admin-compat/batch.d.ts +4 -8
  289. package/dist/firestore/sandbox/admin-compat/batch.d.ts.map +1 -1
  290. package/dist/firestore/sandbox/admin-compat/batch.js +27 -19
  291. package/dist/firestore/sandbox/admin-compat/batch.js.map +1 -1
  292. package/dist/firestore/sandbox/admin-compat/query-comparison.d.ts.map +1 -1
  293. package/dist/firestore/sandbox/admin-compat/query-comparison.js +8 -3
  294. package/dist/firestore/sandbox/admin-compat/query-comparison.js.map +1 -1
  295. package/dist/firestore/sandbox/admin-compat/query.d.ts +8 -0
  296. package/dist/firestore/sandbox/admin-compat/query.d.ts.map +1 -1
  297. package/dist/firestore/sandbox/admin-compat/query.js +44 -5
  298. package/dist/firestore/sandbox/admin-compat/query.js.map +1 -1
  299. package/dist/firestore/sandbox/admin-compat/read-translation.d.ts.map +1 -1
  300. package/dist/firestore/sandbox/admin-compat/read-translation.js +18 -9
  301. package/dist/firestore/sandbox/admin-compat/read-translation.js.map +1 -1
  302. package/dist/firestore/sandbox/admin-compat/transaction.d.ts +2 -2
  303. package/dist/firestore/sandbox/admin-compat/transaction.d.ts.map +1 -1
  304. package/dist/firestore/sandbox/admin-compat/transaction.js +13 -4
  305. package/dist/firestore/sandbox/admin-compat/transaction.js.map +1 -1
  306. package/dist/firestore/sandbox/admin-compat/types.d.ts +6 -33
  307. package/dist/firestore/sandbox/admin-compat/types.d.ts.map +1 -1
  308. package/dist/firestore/sandbox/admin-compat/types.js +1 -76
  309. package/dist/firestore/sandbox/admin-compat/types.js.map +1 -1
  310. package/dist/firestore/sandbox/atomic-state.d.ts +4 -0
  311. package/dist/firestore/sandbox/atomic-state.d.ts.map +1 -0
  312. package/dist/firestore/sandbox/atomic-state.js +105 -0
  313. package/dist/firestore/sandbox/atomic-state.js.map +1 -0
  314. package/dist/firestore/sandbox/atomic-write-pipeline.d.ts +3 -2
  315. package/dist/firestore/sandbox/atomic-write-pipeline.d.ts.map +1 -1
  316. package/dist/firestore/sandbox/atomic-write-pipeline.js +128 -58
  317. package/dist/firestore/sandbox/atomic-write-pipeline.js.map +1 -1
  318. package/dist/firestore/sandbox/batch-write-executor.d.ts.map +1 -1
  319. package/dist/firestore/sandbox/batch-write-executor.js +54 -28
  320. package/dist/firestore/sandbox/batch-write-executor.js.map +1 -1
  321. package/dist/firestore/sandbox/converters/user-timestamp.d.ts +6 -40
  322. package/dist/firestore/sandbox/converters/user-timestamp.d.ts.map +1 -1
  323. package/dist/firestore/sandbox/converters/user-timestamp.js +20 -43
  324. package/dist/firestore/sandbox/converters/user-timestamp.js.map +1 -1
  325. package/dist/firestore/sandbox/document-copy.d.ts +4 -0
  326. package/dist/firestore/sandbox/document-copy.d.ts.map +1 -0
  327. package/dist/firestore/sandbox/document-copy.js +28 -0
  328. package/dist/firestore/sandbox/document-copy.js.map +1 -0
  329. package/dist/firestore/sandbox/document-store.d.ts +99 -0
  330. package/dist/firestore/sandbox/document-store.d.ts.map +1 -0
  331. package/dist/firestore/sandbox/document-store.js +2 -0
  332. package/dist/firestore/sandbox/document-store.js.map +1 -0
  333. package/dist/firestore/sandbox/errors.d.ts +4 -1
  334. package/dist/firestore/sandbox/errors.d.ts.map +1 -1
  335. package/dist/firestore/sandbox/errors.js +2 -25
  336. package/dist/firestore/sandbox/errors.js.map +1 -1
  337. package/dist/firestore/sandbox/event-log.d.ts +22 -4
  338. package/dist/firestore/sandbox/event-log.d.ts.map +1 -1
  339. package/dist/firestore/sandbox/event-log.js +66 -6
  340. package/dist/firestore/sandbox/event-log.js.map +1 -1
  341. package/dist/firestore/sandbox/field-merge.d.ts.map +1 -1
  342. package/dist/firestore/sandbox/field-merge.js +10 -20
  343. package/dist/firestore/sandbox/field-merge.js.map +1 -1
  344. package/dist/firestore/sandbox/history-controls.d.ts +1 -1
  345. package/dist/firestore/sandbox/history-controls.d.ts.map +1 -1
  346. package/dist/firestore/sandbox/history-controls.js +1 -1
  347. package/dist/firestore/sandbox/history-controls.js.map +1 -1
  348. package/dist/firestore/sandbox/list-query-proof.d.ts +4 -1
  349. package/dist/firestore/sandbox/list-query-proof.d.ts.map +1 -1
  350. package/dist/firestore/sandbox/list-query-proof.js +32 -96
  351. package/dist/firestore/sandbox/list-query-proof.js.map +1 -1
  352. package/dist/firestore/sandbox/listener-dispatch.d.ts +26 -1
  353. package/dist/firestore/sandbox/listener-dispatch.d.ts.map +1 -1
  354. package/dist/firestore/sandbox/listener-dispatch.js +58 -5
  355. package/dist/firestore/sandbox/listener-dispatch.js.map +1 -1
  356. package/dist/firestore/sandbox/local-environment.d.ts +16 -2
  357. package/dist/firestore/sandbox/local-environment.d.ts.map +1 -1
  358. package/dist/firestore/sandbox/local-environment.js +33 -9
  359. package/dist/firestore/sandbox/local-environment.js.map +1 -1
  360. package/dist/firestore/sandbox/local-state.d.ts +5 -99
  361. package/dist/firestore/sandbox/local-state.d.ts.map +1 -1
  362. package/dist/firestore/sandbox/local-state.js +64 -117
  363. package/dist/firestore/sandbox/local-state.js.map +1 -1
  364. package/dist/firestore/sandbox/query-execution.d.ts +4 -1
  365. package/dist/firestore/sandbox/query-execution.d.ts.map +1 -1
  366. package/dist/firestore/sandbox/query-execution.js +51 -26
  367. package/dist/firestore/sandbox/query-execution.js.map +1 -1
  368. package/dist/firestore/sandbox/query-operand-equality.d.ts.map +1 -1
  369. package/dist/firestore/sandbox/query-operand-equality.js +50 -14
  370. package/dist/firestore/sandbox/query-operand-equality.js.map +1 -1
  371. package/dist/firestore/sandbox/query-operators.d.ts +4 -0
  372. package/dist/firestore/sandbox/query-operators.d.ts.map +1 -0
  373. package/dist/firestore/sandbox/query-operators.js +17 -0
  374. package/dist/firestore/sandbox/query-operators.js.map +1 -0
  375. package/dist/firestore/sandbox/query-value-registry.d.ts +1 -1
  376. package/dist/firestore/sandbox/query-value-registry.d.ts.map +1 -1
  377. package/dist/firestore/sandbox/query-value-registry.js +3 -1
  378. package/dist/firestore/sandbox/query-value-registry.js.map +1 -1
  379. package/dist/firestore/sandbox/request-events.d.ts +3 -0
  380. package/dist/firestore/sandbox/request-events.d.ts.map +1 -1
  381. package/dist/firestore/sandbox/request-events.js +4 -0
  382. package/dist/firestore/sandbox/request-events.js.map +1 -1
  383. package/dist/firestore/sandbox/rules-evidence.d.ts +7 -0
  384. package/dist/firestore/sandbox/rules-evidence.d.ts.map +1 -0
  385. package/dist/firestore/sandbox/rules-evidence.js +87 -0
  386. package/dist/firestore/sandbox/rules-evidence.js.map +1 -0
  387. package/dist/firestore/sandbox/rules-list-authorizer.d.ts +13 -1
  388. package/dist/firestore/sandbox/rules-list-authorizer.d.ts.map +1 -1
  389. package/dist/firestore/sandbox/rules-list-authorizer.js +53 -74
  390. package/dist/firestore/sandbox/rules-list-authorizer.js.map +1 -1
  391. package/dist/firestore/sandbox/rules-operation-reader.d.ts +8 -1
  392. package/dist/firestore/sandbox/rules-operation-reader.d.ts.map +1 -1
  393. package/dist/firestore/sandbox/rules-operation-reader.js +13 -5
  394. package/dist/firestore/sandbox/rules-operation-reader.js.map +1 -1
  395. package/dist/firestore/sandbox/rules-read-engine.d.ts +8 -1
  396. package/dist/firestore/sandbox/rules-read-engine.d.ts.map +1 -1
  397. package/dist/firestore/sandbox/rules-read-engine.js +21 -10
  398. package/dist/firestore/sandbox/rules-read-engine.js.map +1 -1
  399. package/dist/firestore/sandbox/rules-state.d.ts +5 -0
  400. package/dist/firestore/sandbox/rules-state.d.ts.map +1 -1
  401. package/dist/firestore/sandbox/rules-state.js +16 -0
  402. package/dist/firestore/sandbox/rules-state.js.map +1 -1
  403. package/dist/firestore/sandbox/snapshot-listeners.d.ts +9 -1
  404. package/dist/firestore/sandbox/snapshot-listeners.d.ts.map +1 -1
  405. package/dist/firestore/sandbox/snapshot-listeners.js.map +1 -1
  406. package/dist/firestore/sandbox/transaction-merge.d.ts +2 -33
  407. package/dist/firestore/sandbox/transaction-merge.d.ts.map +1 -1
  408. package/dist/firestore/sandbox/transaction-merge.js +19 -7
  409. package/dist/firestore/sandbox/transaction-merge.js.map +1 -1
  410. package/dist/firestore/sandbox/transaction-types.d.ts +11 -21
  411. package/dist/firestore/sandbox/transaction-types.d.ts.map +1 -1
  412. package/dist/firestore/sandbox/transaction-types.js.map +1 -1
  413. package/dist/firestore/sandbox/transaction-write-executor.d.ts +2 -1
  414. package/dist/firestore/sandbox/transaction-write-executor.d.ts.map +1 -1
  415. package/dist/firestore/sandbox/transaction-write-executor.js +110 -69
  416. package/dist/firestore/sandbox/transaction-write-executor.js.map +1 -1
  417. package/dist/firestore/sandbox/transaction.d.ts +3 -2
  418. package/dist/firestore/sandbox/transaction.d.ts.map +1 -1
  419. package/dist/firestore/sandbox/transaction.js +23 -6
  420. package/dist/firestore/sandbox/transaction.js.map +1 -1
  421. package/dist/firestore/sandbox/value-resolver.d.ts +1 -8
  422. package/dist/firestore/sandbox/value-resolver.d.ts.map +1 -1
  423. package/dist/firestore/sandbox/value-resolver.js +2 -13
  424. package/dist/firestore/sandbox/value-resolver.js.map +1 -1
  425. package/dist/firestore/sandbox/write-engine.d.ts +5 -1
  426. package/dist/firestore/sandbox/write-engine.d.ts.map +1 -1
  427. package/dist/firestore/sandbox/write-engine.js +14 -7
  428. package/dist/firestore/sandbox/write-engine.js.map +1 -1
  429. package/dist/firestore/sandbox/write-runtime.d.ts +12 -4
  430. package/dist/firestore/sandbox/write-runtime.d.ts.map +1 -1
  431. package/dist/firestore/sandbox/write-runtime.js +72 -38
  432. package/dist/firestore/sandbox/write-runtime.js.map +1 -1
  433. package/dist/firestore/sandbox/writes.d.ts +3 -1
  434. package/dist/firestore/sandbox/writes.d.ts.map +1 -1
  435. package/dist/firestore/sdk-activity.d.ts +8 -0
  436. package/dist/firestore/sdk-activity.d.ts.map +1 -0
  437. package/dist/firestore/sdk-activity.js +23 -0
  438. package/dist/firestore/sdk-activity.js.map +1 -0
  439. package/dist/firestore/snapshots.d.ts +18 -2
  440. package/dist/firestore/snapshots.d.ts.map +1 -1
  441. package/dist/firestore/snapshots.js +69 -16
  442. package/dist/firestore/snapshots.js.map +1 -1
  443. package/dist/firestore/state.d.ts +8 -3
  444. package/dist/firestore/state.d.ts.map +1 -1
  445. package/dist/firestore/state.js +30 -13
  446. package/dist/firestore/state.js.map +1 -1
  447. package/dist/firestore/timestamp.d.ts +28 -0
  448. package/dist/firestore/timestamp.d.ts.map +1 -0
  449. package/dist/firestore/timestamp.js +80 -0
  450. package/dist/firestore/timestamp.js.map +1 -0
  451. package/dist/firestore/tools.d.ts.map +1 -1
  452. package/dist/firestore/tools.js +2 -4
  453. package/dist/firestore/tools.js.map +1 -1
  454. package/dist/firestore/transactions.d.ts.map +1 -1
  455. package/dist/firestore/transactions.js +76 -3
  456. package/dist/firestore/transactions.js.map +1 -1
  457. package/dist/firestore/types.d.ts +26 -5
  458. package/dist/firestore/types.d.ts.map +1 -1
  459. package/dist/firestore/types.js.map +1 -1
  460. package/dist/firestore/vector-value.d.ts +11 -0
  461. package/dist/firestore/vector-value.d.ts.map +1 -0
  462. package/dist/firestore/vector-value.js +51 -0
  463. package/dist/firestore/vector-value.js.map +1 -0
  464. package/dist/firestore/writes.d.ts +0 -7
  465. package/dist/firestore/writes.d.ts.map +1 -1
  466. package/dist/firestore/writes.js +42 -25
  467. package/dist/firestore/writes.js.map +1 -1
  468. package/dist/functions/events.d.ts +12 -0
  469. package/dist/functions/events.d.ts.map +1 -0
  470. package/dist/functions/events.js +10 -0
  471. package/dist/functions/events.js.map +1 -0
  472. package/dist/messaging/broker/broker.d.ts +43 -30
  473. package/dist/messaging/broker/broker.d.ts.map +1 -1
  474. package/dist/messaging/broker/broker.js +148 -43
  475. package/dist/messaging/broker/broker.js.map +1 -1
  476. package/dist/messaging/broker/delivery-history.d.ts +5 -0
  477. package/dist/messaging/broker/delivery-history.d.ts.map +1 -0
  478. package/dist/messaging/broker/delivery-history.js +46 -0
  479. package/dist/messaging/broker/delivery-history.js.map +1 -0
  480. package/dist/messaging/broker/index.d.ts +2 -1
  481. package/dist/messaging/broker/index.d.ts.map +1 -1
  482. package/dist/messaging/broker/index.js +7 -0
  483. package/dist/messaging/broker/index.js.map +1 -1
  484. package/dist/messaging/broker/persistence.d.ts +12 -0
  485. package/dist/messaging/broker/persistence.d.ts.map +1 -0
  486. package/dist/messaging/broker/persistence.js +42 -0
  487. package/dist/messaging/broker/persistence.js.map +1 -0
  488. package/dist/messaging/broker/types.d.ts +44 -0
  489. package/dist/messaging/broker/types.d.ts.map +1 -1
  490. package/dist/messaging/broker/types.js +10 -1
  491. package/dist/messaging/broker/types.js.map +1 -1
  492. package/dist/messaging/events.d.ts +12 -0
  493. package/dist/messaging/events.d.ts.map +1 -0
  494. package/dist/messaging/events.js +19 -0
  495. package/dist/messaging/events.js.map +1 -0
  496. package/dist/rules/api/case-types.d.ts +7 -0
  497. package/dist/rules/api/case-types.d.ts.map +1 -1
  498. package/dist/rules/api/rtdb.d.ts.map +1 -1
  499. package/dist/rules/api/rtdb.js +20 -7
  500. package/dist/rules/api/rtdb.js.map +1 -1
  501. package/dist/rules/grammar/parse-error-wording.d.ts +31 -0
  502. package/dist/rules/grammar/parse-error-wording.d.ts.map +1 -0
  503. package/dist/rules/grammar/parse-error-wording.js +86 -0
  504. package/dist/rules/grammar/parse-error-wording.js.map +1 -0
  505. package/dist/rules/indexes/query-analysis.d.ts +33 -0
  506. package/dist/rules/indexes/query-analysis.d.ts.map +1 -0
  507. package/dist/rules/indexes/query-analysis.js +153 -0
  508. package/dist/rules/indexes/query-analysis.js.map +1 -0
  509. package/dist/rules/indexes/service-query.d.ts +48 -0
  510. package/dist/rules/indexes/service-query.d.ts.map +1 -0
  511. package/dist/rules/indexes/service-query.js +60 -0
  512. package/dist/rules/indexes/service-query.js.map +1 -0
  513. package/dist/rules/internal/index.d.ts +4 -0
  514. package/dist/rules/internal/index.d.ts.map +1 -1
  515. package/dist/rules/internal/index.js +10 -0
  516. package/dist/rules/internal/index.js.map +1 -1
  517. package/dist/rules/modules/rules-capabilities.generated.d.ts +1 -1
  518. package/dist/rules/modules/rules-capabilities.generated.js +1 -1
  519. package/dist/rules/modules/rules-capabilities.generated.js.map +1 -1
  520. package/dist/rules/rtdb/constraints/atoms.d.ts.map +1 -1
  521. package/dist/rules/rtdb/constraints/atoms.js +7 -7
  522. package/dist/rules/rtdb/constraints/atoms.js.map +1 -1
  523. package/dist/rules/rtdb/constraints/data.d.ts +2 -2
  524. package/dist/rules/rtdb/constraints/data.d.ts.map +1 -1
  525. package/dist/rules/rtdb/constraints/data.js +4 -4
  526. package/dist/rules/rtdb/constraints/data.js.map +1 -1
  527. package/dist/rules/rtdb/constraints/document.d.ts.map +1 -1
  528. package/dist/rules/rtdb/constraints/document.js +6 -2
  529. package/dist/rules/rtdb/constraints/document.js.map +1 -1
  530. package/dist/rules/rtdb/constraints/policies.d.ts +2 -2
  531. package/dist/rules/rtdb/constraints/policies.d.ts.map +1 -1
  532. package/dist/rules/rtdb/constraints/policies.js +3 -3
  533. package/dist/rules/rtdb/constraints/policies.js.map +1 -1
  534. package/dist/rules/rtdb/constraints/schema.js +3 -3
  535. package/dist/rules/rtdb/constraints/schema.js.map +1 -1
  536. package/dist/rules/rtdb/grammar/RtdbExpr.ohm +1 -3
  537. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts +1 -1
  538. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -1
  539. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js +1 -3
  540. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js.map +1 -1
  541. package/dist/rules/rtdb/grammar/linter.d.ts.map +1 -1
  542. package/dist/rules/rtdb/grammar/linter.js +28 -30
  543. package/dist/rules/rtdb/grammar/linter.js.map +1 -1
  544. package/dist/rules/rtdb/grammar/simulator.d.ts +15 -1
  545. package/dist/rules/rtdb/grammar/simulator.d.ts.map +1 -1
  546. package/dist/rules/rtdb/grammar/simulator.js +93 -65
  547. package/dist/rules/rtdb/grammar/simulator.js.map +1 -1
  548. package/dist/rules/rtdb/grammar/validator.d.ts.map +1 -1
  549. package/dist/rules/rtdb/grammar/validator.js +25 -26
  550. package/dist/rules/rtdb/grammar/validator.js.map +1 -1
  551. package/dist/rules/rtdb/simulation/handler.d.ts.map +1 -1
  552. package/dist/rules/rtdb/simulation/handler.js +136 -32
  553. package/dist/rules/rtdb/simulation/handler.js.map +1 -1
  554. package/dist/rules/rtdb/simulation/spec.d.ts +95 -5
  555. package/dist/rules/rtdb/simulation/spec.d.ts.map +1 -1
  556. package/dist/rules/rtdb/simulation/spec.js +22 -1
  557. package/dist/rules/rtdb/simulation/spec.js.map +1 -1
  558. package/dist/rules/rtdb/types.d.ts +18 -18
  559. package/dist/rules/simulator/evaluator.js +35 -69
  560. package/dist/rules/simulator/evaluator.js.map +1 -1
  561. package/dist/rules/simulator/handler.d.ts.map +1 -1
  562. package/dist/rules/simulator/handler.js +12 -3
  563. package/dist/rules/simulator/handler.js.map +1 -1
  564. package/dist/rules/simulator/mapdiff.d.ts +2 -0
  565. package/dist/rules/simulator/mapdiff.d.ts.map +1 -1
  566. package/dist/rules/simulator/mapdiff.js +7 -5
  567. package/dist/rules/simulator/mapdiff.js.map +1 -1
  568. package/dist/rules/simulator/query-proof-residual.d.ts +11 -0
  569. package/dist/rules/simulator/query-proof-residual.d.ts.map +1 -0
  570. package/dist/rules/simulator/query-proof-residual.js +177 -0
  571. package/dist/rules/simulator/query-proof-residual.js.map +1 -0
  572. package/dist/rules/simulator/query-proof.d.ts +21 -47
  573. package/dist/rules/simulator/query-proof.d.ts.map +1 -1
  574. package/dist/rules/simulator/query-proof.js +78 -13
  575. package/dist/rules/simulator/query-proof.js.map +1 -1
  576. package/dist/rules/simulator/request-path.d.ts +26 -0
  577. package/dist/rules/simulator/request-path.d.ts.map +1 -0
  578. package/dist/rules/simulator/request-path.js +36 -0
  579. package/dist/rules/simulator/request-path.js.map +1 -0
  580. package/dist/rules/simulator/trace-recorder.d.ts +1 -0
  581. package/dist/rules/simulator/trace-recorder.d.ts.map +1 -1
  582. package/dist/rules/simulator/trace-recorder.js +4 -0
  583. package/dist/rules/simulator/trace-recorder.js.map +1 -1
  584. package/dist/rules/simulator/wrappers/timestamp.d.ts +6 -0
  585. package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -1
  586. package/dist/rules/simulator/wrappers/timestamp.js +8 -1
  587. package/dist/rules/simulator/wrappers/timestamp.js.map +1 -1
  588. package/dist/rules/simulator-tools-impl.d.ts.map +1 -1
  589. package/dist/rules/simulator-tools-impl.js +6 -3
  590. package/dist/rules/simulator-tools-impl.js.map +1 -1
  591. package/dist/rules/stdlib-tools.js +4 -4
  592. package/dist/rules/stdlib-tools.js.map +1 -1
  593. package/dist/rules/test/spec.d.ts +4 -4
  594. package/dist/sandbox/active-listeners.d.ts +69 -0
  595. package/dist/sandbox/active-listeners.d.ts.map +1 -0
  596. package/dist/sandbox/active-listeners.js +159 -0
  597. package/dist/sandbox/active-listeners.js.map +1 -0
  598. package/dist/sandbox/admin-firestore/error-translation.d.ts.map +1 -1
  599. package/dist/sandbox/admin-firestore/error-translation.js +15 -2
  600. package/dist/sandbox/admin-firestore/error-translation.js.map +1 -1
  601. package/dist/sandbox/admin-firestore/listeners.d.ts +0 -25
  602. package/dist/sandbox/admin-firestore/listeners.d.ts.map +1 -1
  603. package/dist/sandbox/admin-firestore/listeners.js +26 -2
  604. package/dist/sandbox/admin-firestore/listeners.js.map +1 -1
  605. package/dist/sandbox/admin-firestore/remote/listeners.d.ts.map +1 -1
  606. package/dist/sandbox/admin-firestore/remote/listeners.js +50 -29
  607. package/dist/sandbox/admin-firestore/remote/listeners.js.map +1 -1
  608. package/dist/sandbox/admin-firestore/remote/value-codec.d.ts +5 -12
  609. package/dist/sandbox/admin-firestore/remote/value-codec.d.ts.map +1 -1
  610. package/dist/sandbox/admin-firestore/remote/value-codec.js +7 -14
  611. package/dist/sandbox/admin-firestore/remote/value-codec.js.map +1 -1
  612. package/dist/sandbox/admin-firestore/remote/wire-types.d.ts +2 -0
  613. package/dist/sandbox/admin-firestore/remote/wire-types.d.ts.map +1 -1
  614. package/dist/sandbox/attribution/attribution-mode.d.ts +36 -0
  615. package/dist/sandbox/attribution/attribution-mode.d.ts.map +1 -0
  616. package/dist/sandbox/attribution/attribution-mode.js +68 -0
  617. package/dist/sandbox/attribution/attribution-mode.js.map +1 -0
  618. package/dist/sandbox/attribution/effect-regions.d.ts +37 -0
  619. package/dist/sandbox/attribution/effect-regions.d.ts.map +1 -0
  620. package/dist/sandbox/attribution/effect-regions.js +114 -0
  621. package/dist/sandbox/attribution/effect-regions.js.map +1 -0
  622. package/dist/sandbox/attribution/element-selector.d.ts +42 -0
  623. package/dist/sandbox/attribution/element-selector.d.ts.map +1 -0
  624. package/dist/sandbox/attribution/element-selector.js +109 -0
  625. package/dist/sandbox/attribution/element-selector.js.map +1 -0
  626. package/dist/sandbox/attribution/listener-owners.d.ts +111 -0
  627. package/dist/sandbox/attribution/listener-owners.d.ts.map +1 -0
  628. package/dist/sandbox/attribution/listener-owners.js +215 -0
  629. package/dist/sandbox/attribution/listener-owners.js.map +1 -0
  630. package/dist/sandbox/branches/engine.d.ts +129 -0
  631. package/dist/sandbox/branches/engine.d.ts.map +1 -0
  632. package/dist/sandbox/branches/engine.js +280 -0
  633. package/dist/sandbox/branches/engine.js.map +1 -0
  634. package/dist/sandbox/branches/index.d.ts +12 -139
  635. package/dist/sandbox/branches/index.d.ts.map +1 -1
  636. package/dist/sandbox/branches/index.js +8 -390
  637. package/dist/sandbox/branches/index.js.map +1 -1
  638. package/dist/sandbox/branches/promotion.d.ts +27 -0
  639. package/dist/sandbox/branches/promotion.d.ts.map +1 -0
  640. package/dist/sandbox/branches/promotion.js +160 -0
  641. package/dist/sandbox/branches/promotion.js.map +1 -0
  642. package/dist/sandbox/branches/state-diff.d.ts +66 -0
  643. package/dist/sandbox/branches/state-diff.d.ts.map +1 -0
  644. package/dist/sandbox/branches/state-diff.js +270 -0
  645. package/dist/sandbox/branches/state-diff.js.map +1 -0
  646. package/dist/sandbox/branches/store.d.ts +64 -0
  647. package/dist/sandbox/branches/store.d.ts.map +1 -0
  648. package/dist/sandbox/branches/store.js +264 -0
  649. package/dist/sandbox/branches/store.js.map +1 -0
  650. package/dist/sandbox/checkpoints/capture.d.ts +39 -0
  651. package/dist/sandbox/checkpoints/capture.d.ts.map +1 -0
  652. package/dist/sandbox/checkpoints/capture.js +69 -0
  653. package/dist/sandbox/checkpoints/capture.js.map +1 -0
  654. package/dist/sandbox/checkpoints/directory-backend.d.ts +30 -0
  655. package/dist/sandbox/checkpoints/directory-backend.d.ts.map +1 -0
  656. package/dist/sandbox/checkpoints/directory-backend.js +98 -0
  657. package/dist/sandbox/checkpoints/directory-backend.js.map +1 -0
  658. package/dist/sandbox/checkpoints/index.d.ts +15 -0
  659. package/dist/sandbox/checkpoints/index.d.ts.map +1 -0
  660. package/dist/sandbox/checkpoints/index.js +13 -0
  661. package/dist/sandbox/checkpoints/index.js.map +1 -0
  662. package/dist/sandbox/checkpoints/record-backend.d.ts +25 -0
  663. package/dist/sandbox/checkpoints/record-backend.d.ts.map +1 -0
  664. package/dist/sandbox/checkpoints/record-backend.js +81 -0
  665. package/dist/sandbox/checkpoints/record-backend.js.map +1 -0
  666. package/dist/sandbox/checkpoints/saved-states.d.ts +35 -0
  667. package/dist/sandbox/checkpoints/saved-states.d.ts.map +1 -0
  668. package/dist/sandbox/checkpoints/saved-states.js +47 -0
  669. package/dist/sandbox/checkpoints/saved-states.js.map +1 -0
  670. package/dist/sandbox/checkpoints/types.d.ts +84 -0
  671. package/dist/sandbox/checkpoints/types.d.ts.map +1 -0
  672. package/dist/sandbox/checkpoints/types.js +51 -0
  673. package/dist/sandbox/checkpoints/types.js.map +1 -0
  674. package/dist/sandbox/checkpoints/validation.d.ts +3 -0
  675. package/dist/sandbox/checkpoints/validation.d.ts.map +1 -0
  676. package/dist/sandbox/checkpoints/validation.js +99 -0
  677. package/dist/sandbox/checkpoints/validation.js.map +1 -0
  678. package/dist/sandbox/clock.d.ts +121 -0
  679. package/dist/sandbox/clock.d.ts.map +1 -0
  680. package/dist/sandbox/clock.js +167 -0
  681. package/dist/sandbox/clock.js.map +1 -0
  682. package/dist/sandbox/full-state.d.ts +160 -0
  683. package/dist/sandbox/full-state.d.ts.map +1 -0
  684. package/dist/sandbox/full-state.js +267 -0
  685. package/dist/sandbox/full-state.js.map +1 -0
  686. package/dist/sandbox/index.d.ts +13 -6
  687. package/dist/sandbox/index.d.ts.map +1 -1
  688. package/dist/sandbox/index.js +23 -9
  689. package/dist/sandbox/index.js.map +1 -1
  690. package/dist/sandbox/internal/ai-evidence.d.ts +27 -0
  691. package/dist/sandbox/internal/ai-evidence.d.ts.map +1 -0
  692. package/dist/sandbox/internal/ai-evidence.js +29 -0
  693. package/dist/sandbox/internal/ai-evidence.js.map +1 -0
  694. package/dist/sandbox/internal/event-history.d.ts +32 -0
  695. package/dist/sandbox/internal/event-history.d.ts.map +1 -0
  696. package/dist/sandbox/internal/event-history.js +199 -0
  697. package/dist/sandbox/internal/event-history.js.map +1 -0
  698. package/dist/sandbox/internal/history-integrity.d.ts +3 -0
  699. package/dist/sandbox/internal/history-integrity.d.ts.map +1 -0
  700. package/dist/sandbox/internal/history-integrity.js +12 -0
  701. package/dist/sandbox/internal/history-integrity.js.map +1 -0
  702. package/dist/sandbox/internal/history-retention.d.ts +6 -0
  703. package/dist/sandbox/internal/history-retention.d.ts.map +1 -0
  704. package/dist/sandbox/internal/history-retention.js +12 -0
  705. package/dist/sandbox/internal/history-retention.js.map +1 -0
  706. package/dist/sandbox/internal/index.d.ts +27 -0
  707. package/dist/sandbox/internal/index.d.ts.map +1 -1
  708. package/dist/sandbox/internal/index.js +26 -0
  709. package/dist/sandbox/internal/index.js.map +1 -1
  710. package/dist/sandbox/internal/observation-history.d.ts +6 -0
  711. package/dist/sandbox/internal/observation-history.d.ts.map +1 -0
  712. package/dist/sandbox/internal/observation-history.js +6 -0
  713. package/dist/sandbox/internal/observation-history.js.map +1 -0
  714. package/dist/sandbox/internal/observation-payload.d.ts +6 -0
  715. package/dist/sandbox/internal/observation-payload.d.ts.map +1 -0
  716. package/dist/sandbox/internal/observation-payload.js +24 -0
  717. package/dist/sandbox/internal/observation-payload.js.map +1 -0
  718. package/dist/sandbox/internal/provenance.d.ts +0 -1
  719. package/dist/sandbox/internal/provenance.d.ts.map +1 -1
  720. package/dist/sandbox/internal/provenance.js +6 -0
  721. package/dist/sandbox/internal/provenance.js.map +1 -1
  722. package/dist/sandbox/internal/root.d.ts +2 -1
  723. package/dist/sandbox/internal/root.d.ts.map +1 -1
  724. package/dist/sandbox/internal/root.js +2 -2
  725. package/dist/sandbox/internal/root.js.map +1 -1
  726. package/dist/sandbox/internal/rules-evidence-retention.d.ts +11 -0
  727. package/dist/sandbox/internal/rules-evidence-retention.d.ts.map +1 -0
  728. package/dist/sandbox/internal/rules-evidence-retention.js +27 -0
  729. package/dist/sandbox/internal/rules-evidence-retention.js.map +1 -0
  730. package/dist/sandbox/internal/sandbox-impl.d.ts +40 -33
  731. package/dist/sandbox/internal/sandbox-impl.d.ts.map +1 -1
  732. package/dist/sandbox/internal/sandbox-impl.js +83 -40
  733. package/dist/sandbox/internal/sandbox-impl.js.map +1 -1
  734. package/dist/sandbox/internal/sdk-activity.d.ts +112 -0
  735. package/dist/sandbox/internal/sdk-activity.d.ts.map +1 -0
  736. package/dist/sandbox/internal/sdk-activity.js +240 -0
  737. package/dist/sandbox/internal/sdk-activity.js.map +1 -0
  738. package/dist/sandbox/internal/sdk-coverage.d.ts +10 -0
  739. package/dist/sandbox/internal/sdk-coverage.d.ts.map +1 -0
  740. package/dist/sandbox/internal/sdk-coverage.js +21 -0
  741. package/dist/sandbox/internal/sdk-coverage.js.map +1 -0
  742. package/dist/sandbox/internal/sdk-observation.d.ts +32 -0
  743. package/dist/sandbox/internal/sdk-observation.d.ts.map +1 -0
  744. package/dist/sandbox/internal/sdk-observation.js +29 -0
  745. package/dist/sandbox/internal/sdk-observation.js.map +1 -0
  746. package/dist/sandbox/internal/sdk-rates.d.ts +97 -0
  747. package/dist/sandbox/internal/sdk-rates.d.ts.map +1 -0
  748. package/dist/sandbox/internal/sdk-rates.js +187 -0
  749. package/dist/sandbox/internal/sdk-rates.js.map +1 -0
  750. package/dist/sandbox/internal/sdk-write-activity.d.ts +5 -0
  751. package/dist/sandbox/internal/sdk-write-activity.d.ts.map +1 -0
  752. package/dist/sandbox/internal/sdk-write-activity.js +13 -0
  753. package/dist/sandbox/internal/sdk-write-activity.js.map +1 -0
  754. package/dist/sandbox/internal/state-schemas.d.ts +120 -0
  755. package/dist/sandbox/internal/state-schemas.d.ts.map +1 -0
  756. package/dist/sandbox/internal/state-schemas.js +42 -0
  757. package/dist/sandbox/internal/state-schemas.js.map +1 -0
  758. package/dist/sandbox/internal/state-values.d.ts +6 -0
  759. package/dist/sandbox/internal/state-values.d.ts.map +1 -0
  760. package/dist/sandbox/internal/state-values.js +15 -0
  761. package/dist/sandbox/internal/state-values.js.map +1 -0
  762. package/dist/sandbox/internal/storage-activity.d.ts +13 -0
  763. package/dist/sandbox/internal/storage-activity.d.ts.map +1 -0
  764. package/dist/sandbox/internal/storage-activity.js +48 -0
  765. package/dist/sandbox/internal/storage-activity.js.map +1 -0
  766. package/dist/sandbox/internal/usage-evidence.d.ts +24 -0
  767. package/dist/sandbox/internal/usage-evidence.d.ts.map +1 -0
  768. package/dist/sandbox/internal/usage-evidence.js +56 -0
  769. package/dist/sandbox/internal/usage-evidence.js.map +1 -0
  770. package/dist/sandbox/operation-record.d.ts +20 -1
  771. package/dist/sandbox/operation-record.d.ts.map +1 -1
  772. package/dist/sandbox/operation-record.js +100 -4
  773. package/dist/sandbox/operation-record.js.map +1 -1
  774. package/dist/sandbox/persistence/changed-buckets.d.ts +19 -0
  775. package/dist/sandbox/persistence/changed-buckets.d.ts.map +1 -0
  776. package/dist/sandbox/persistence/changed-buckets.js +72 -0
  777. package/dist/sandbox/persistence/changed-buckets.js.map +1 -0
  778. package/dist/sandbox/persistence/chunk-format.d.ts +27 -1
  779. package/dist/sandbox/persistence/chunk-format.d.ts.map +1 -1
  780. package/dist/sandbox/persistence/chunk-format.js +37 -25
  781. package/dist/sandbox/persistence/chunk-format.js.map +1 -1
  782. package/dist/sandbox/persistence/controller.d.ts.map +1 -1
  783. package/dist/sandbox/persistence/controller.js +91 -36
  784. package/dist/sandbox/persistence/controller.js.map +1 -1
  785. package/dist/sandbox/persistence/import-bundle.d.ts +8 -0
  786. package/dist/sandbox/persistence/import-bundle.d.ts.map +1 -0
  787. package/dist/sandbox/persistence/import-bundle.js +66 -0
  788. package/dist/sandbox/persistence/import-bundle.js.map +1 -0
  789. package/dist/sandbox/persistence/serialize.d.ts +1 -1
  790. package/dist/sandbox/persistence/serialize.d.ts.map +1 -1
  791. package/dist/sandbox/persistence/serialize.js +16 -11
  792. package/dist/sandbox/persistence/serialize.js.map +1 -1
  793. package/dist/sandbox/persistence/types.d.ts +4 -0
  794. package/dist/sandbox/persistence/types.d.ts.map +1 -1
  795. package/dist/sandbox/persistence/validate-services.d.ts +7 -0
  796. package/dist/sandbox/persistence/validate-services.d.ts.map +1 -0
  797. package/dist/sandbox/persistence/validate-services.js +73 -0
  798. package/dist/sandbox/persistence/validate-services.js.map +1 -0
  799. package/dist/sandbox/remote.d.ts +6 -0
  800. package/dist/sandbox/remote.d.ts.map +1 -1
  801. package/dist/sandbox/remote.js.map +1 -1
  802. package/dist/sandbox/replay/index.d.ts +1 -1
  803. package/dist/sandbox/replay/index.d.ts.map +1 -1
  804. package/dist/sandbox/replay/index.js +18 -8
  805. package/dist/sandbox/replay/index.js.map +1 -1
  806. package/dist/sandbox/types/errors.d.ts +3 -1
  807. package/dist/sandbox/types/errors.d.ts.map +1 -1
  808. package/dist/sandbox/types/errors.js +0 -4
  809. package/dist/sandbox/types/errors.js.map +1 -1
  810. package/dist/sandbox/types/events.d.ts +105 -76
  811. package/dist/sandbox/types/events.d.ts.map +1 -1
  812. package/dist/sandbox/types/events.js +0 -5
  813. package/dist/sandbox/types/events.js.map +1 -1
  814. package/dist/sandbox/types/index.d.ts +2 -1
  815. package/dist/sandbox/types/index.d.ts.map +1 -1
  816. package/dist/sandbox/types/index.js +1 -0
  817. package/dist/sandbox/types/index.js.map +1 -1
  818. package/dist/sandbox/types/operation.d.ts +13 -4
  819. package/dist/sandbox/types/operation.d.ts.map +1 -1
  820. package/dist/sandbox/types/persistence.d.ts +2 -2
  821. package/dist/sandbox/types/query-proof.d.ts +25 -0
  822. package/dist/sandbox/types/query-proof.d.ts.map +1 -0
  823. package/dist/sandbox/types/query-proof.js +2 -0
  824. package/dist/sandbox/types/query-proof.js.map +1 -0
  825. package/dist/sandbox/types/request-observation.d.ts +19 -0
  826. package/dist/sandbox/types/request-observation.d.ts.map +1 -0
  827. package/dist/sandbox/types/request-observation.js +13 -0
  828. package/dist/sandbox/types/request-observation.js.map +1 -0
  829. package/dist/sandbox/types/rules-evidence.d.ts +48 -0
  830. package/dist/sandbox/types/rules-evidence.d.ts.map +1 -0
  831. package/dist/sandbox/types/rules-evidence.js +2 -0
  832. package/dist/sandbox/types/rules-evidence.js.map +1 -0
  833. package/dist/sandbox/types/service-event-record.d.ts +30 -0
  834. package/dist/sandbox/types/service-event-record.d.ts.map +1 -0
  835. package/dist/sandbox/types/service-event-record.js +13 -0
  836. package/dist/sandbox/types/service-event-record.js.map +1 -0
  837. package/dist/sandbox/types/service-event-records.d.ts +64 -0
  838. package/dist/sandbox/types/service-event-records.d.ts.map +1 -0
  839. package/dist/sandbox/types/service-event-records.js +31 -0
  840. package/dist/sandbox/types/service-event-records.js.map +1 -0
  841. package/dist/sandbox/types/service-mutation-event.d.ts +88 -0
  842. package/dist/sandbox/types/service-mutation-event.d.ts.map +1 -0
  843. package/dist/sandbox/types/service-mutation-event.js +2 -0
  844. package/dist/sandbox/types/service-mutation-event.js.map +1 -0
  845. package/dist/storage/activity-coverage.d.ts +9 -0
  846. package/dist/storage/activity-coverage.d.ts.map +1 -0
  847. package/dist/storage/activity-coverage.js +9 -0
  848. package/dist/storage/activity-coverage.js.map +1 -0
  849. package/dist/storage/base64.d.ts +14 -0
  850. package/dist/storage/base64.d.ts.map +1 -0
  851. package/dist/storage/base64.js +34 -0
  852. package/dist/storage/base64.js.map +1 -0
  853. package/dist/storage/download.d.ts +12 -4
  854. package/dist/storage/download.d.ts.map +1 -1
  855. package/dist/storage/download.js +19 -6
  856. package/dist/storage/download.js.map +1 -1
  857. package/dist/storage/enforce.d.ts +13 -2
  858. package/dist/storage/enforce.d.ts.map +1 -1
  859. package/dist/storage/enforce.js +21 -3
  860. package/dist/storage/enforce.js.map +1 -1
  861. package/dist/storage/errors.d.ts +29 -5
  862. package/dist/storage/errors.d.ts.map +1 -1
  863. package/dist/storage/errors.js +28 -0
  864. package/dist/storage/errors.js.map +1 -1
  865. package/dist/storage/events.d.ts +12 -0
  866. package/dist/storage/events.d.ts.map +1 -0
  867. package/dist/storage/events.js +10 -0
  868. package/dist/storage/events.js.map +1 -0
  869. package/dist/storage/index.d.ts +7 -7
  870. package/dist/storage/index.d.ts.map +1 -1
  871. package/dist/storage/index.js +7 -5
  872. package/dist/storage/index.js.map +1 -1
  873. package/dist/storage/internal.d.ts +10 -1
  874. package/dist/storage/internal.d.ts.map +1 -1
  875. package/dist/storage/internal.js +9 -1
  876. package/dist/storage/internal.js.map +1 -1
  877. package/dist/storage/metadata.d.ts +19 -0
  878. package/dist/storage/metadata.d.ts.map +1 -1
  879. package/dist/storage/metadata.js +50 -19
  880. package/dist/storage/metadata.js.map +1 -1
  881. package/dist/storage/observed.d.ts +16 -0
  882. package/dist/storage/observed.d.ts.map +1 -0
  883. package/dist/storage/observed.js +17 -0
  884. package/dist/storage/observed.js.map +1 -0
  885. package/dist/storage/persistence.d.ts +157 -20
  886. package/dist/storage/persistence.d.ts.map +1 -1
  887. package/dist/storage/persistence.js +423 -53
  888. package/dist/storage/persistence.js.map +1 -1
  889. package/dist/storage/reference.d.ts +3 -1
  890. package/dist/storage/reference.d.ts.map +1 -1
  891. package/dist/storage/reference.js +3 -2
  892. package/dist/storage/reference.js.map +1 -1
  893. package/dist/storage/remote-bytes.d.ts +44 -0
  894. package/dist/storage/remote-bytes.d.ts.map +1 -0
  895. package/dist/storage/remote-bytes.js +97 -0
  896. package/dist/storage/remote-bytes.js.map +1 -0
  897. package/dist/storage/resumable.d.ts.map +1 -1
  898. package/dist/storage/resumable.js +16 -0
  899. package/dist/storage/resumable.js.map +1 -1
  900. package/dist/storage/rules-resolution.d.ts +13 -1
  901. package/dist/storage/rules-resolution.d.ts.map +1 -1
  902. package/dist/storage/rules-resolution.js +28 -0
  903. package/dist/storage/rules-resolution.js.map +1 -1
  904. package/dist/storage/sandbox/persistence-state.d.ts +25 -0
  905. package/dist/storage/sandbox/persistence-state.d.ts.map +1 -0
  906. package/dist/storage/sandbox/persistence-state.js +53 -0
  907. package/dist/storage/sandbox/persistence-state.js.map +1 -0
  908. package/dist/storage/sandbox/rules-bindings.d.ts +15 -0
  909. package/dist/storage/sandbox/rules-bindings.d.ts.map +1 -0
  910. package/dist/storage/sandbox/rules-bindings.js +69 -0
  911. package/dist/storage/sandbox/rules-bindings.js.map +1 -0
  912. package/dist/storage/sandbox/rules-collection-methods.d.ts +3 -0
  913. package/dist/storage/sandbox/rules-collection-methods.d.ts.map +1 -0
  914. package/dist/storage/sandbox/rules-collection-methods.js +149 -0
  915. package/dist/storage/sandbox/rules-collection-methods.js.map +1 -0
  916. package/dist/storage/sandbox/rules-evaluator.d.ts +2 -2
  917. package/dist/storage/sandbox/rules-evaluator.d.ts.map +1 -1
  918. package/dist/storage/sandbox/rules-evaluator.js +51 -129
  919. package/dist/storage/sandbox/rules-evaluator.js.map +1 -1
  920. package/dist/storage/sandbox/rules-firestore-lookup.d.ts +25 -0
  921. package/dist/storage/sandbox/rules-firestore-lookup.d.ts.map +1 -0
  922. package/dist/storage/sandbox/rules-firestore-lookup.js +94 -0
  923. package/dist/storage/sandbox/rules-firestore-lookup.js.map +1 -0
  924. package/dist/storage/sandbox/rules-hashing-methods.d.ts +16 -0
  925. package/dist/storage/sandbox/rules-hashing-methods.d.ts.map +1 -0
  926. package/dist/storage/sandbox/rules-hashing-methods.js +41 -0
  927. package/dist/storage/sandbox/rules-hashing-methods.js.map +1 -0
  928. package/dist/storage/sandbox/rules-method-calls.d.ts +40 -0
  929. package/dist/storage/sandbox/rules-method-calls.d.ts.map +1 -0
  930. package/dist/storage/sandbox/rules-method-calls.js +47 -0
  931. package/dist/storage/sandbox/rules-method-calls.js.map +1 -0
  932. package/dist/storage/sandbox/rules-methods.d.ts +11 -12
  933. package/dist/storage/sandbox/rules-methods.d.ts.map +1 -1
  934. package/dist/storage/sandbox/rules-methods.js +62 -359
  935. package/dist/storage/sandbox/rules-methods.js.map +1 -1
  936. package/dist/storage/sandbox/rules-operators.d.ts +32 -0
  937. package/dist/storage/sandbox/rules-operators.d.ts.map +1 -0
  938. package/dist/storage/sandbox/rules-operators.js +85 -0
  939. package/dist/storage/sandbox/rules-operators.js.map +1 -0
  940. package/dist/storage/sandbox/rules-string-methods.d.ts +3 -0
  941. package/dist/storage/sandbox/rules-string-methods.d.ts.map +1 -0
  942. package/dist/storage/sandbox/rules-string-methods.js +199 -0
  943. package/dist/storage/sandbox/rules-string-methods.js.map +1 -0
  944. package/dist/storage/sandbox/rules-time-methods.d.ts +25 -0
  945. package/dist/storage/sandbox/rules-time-methods.d.ts.map +1 -0
  946. package/dist/storage/sandbox/rules-time-methods.js +89 -0
  947. package/dist/storage/sandbox/rules-time-methods.js.map +1 -0
  948. package/dist/storage/sandbox/rules-values.d.ts +6 -0
  949. package/dist/storage/sandbox/rules-values.d.ts.map +1 -1
  950. package/dist/storage/sandbox/rules-values.js +29 -2
  951. package/dist/storage/sandbox/rules-values.js.map +1 -1
  952. package/dist/storage/sandbox/rules.d.ts +25 -13
  953. package/dist/storage/sandbox/rules.d.ts.map +1 -1
  954. package/dist/storage/sandbox/rules.js +19 -10
  955. package/dist/storage/sandbox/rules.js.map +1 -1
  956. package/dist/storage/sandbox/running-service.d.ts +65 -0
  957. package/dist/storage/sandbox/running-service.d.ts.map +1 -0
  958. package/dist/storage/sandbox/running-service.js +30 -0
  959. package/dist/storage/sandbox/running-service.js.map +1 -0
  960. package/dist/storage/service.d.ts +46 -28
  961. package/dist/storage/service.d.ts.map +1 -1
  962. package/dist/storage/service.js +169 -57
  963. package/dist/storage/service.js.map +1 -1
  964. package/dist/storage/string-format.d.ts +9 -0
  965. package/dist/storage/string-format.d.ts.map +1 -0
  966. package/dist/storage/string-format.js +8 -0
  967. package/dist/storage/string-format.js.map +1 -0
  968. package/dist/storage/upload.d.ts +2 -1
  969. package/dist/storage/upload.d.ts.map +1 -1
  970. package/dist/storage/upload.js +6 -2
  971. package/dist/storage/upload.js.map +1 -1
  972. package/dist/storage/url.d.ts +18 -0
  973. package/dist/storage/url.d.ts.map +1 -0
  974. package/dist/storage/url.js +84 -0
  975. package/dist/storage/url.js.map +1 -0
  976. package/package.json +17 -1
  977. package/src/ai/activity.ts +43 -0
  978. package/src/ai/broker/broker.ts +59 -6
  979. package/src/ai/broker/gemini-engine.ts +16 -0
  980. package/src/ai/broker/index.ts +1 -1
  981. package/src/ai/broker/openai-engine.ts +6 -3
  982. package/src/ai/broker/scripted-engine.ts +16 -5
  983. package/src/ai/broker/types.ts +6 -2
  984. package/src/ai/events.ts +29 -0
  985. package/src/ai/generation-enums.ts +48 -0
  986. package/src/ai/index.ts +9 -0
  987. package/src/ai/instances.ts +22 -2
  988. package/src/ai/internal.ts +5 -0
  989. package/src/ai/sandbox-plane.ts +23 -8
  990. package/src/ai/scripting.ts +42 -7
  991. package/src/app/internal.ts +1 -0
  992. package/src/auth/email-link.ts +32 -21
  993. package/src/auth/events.ts +29 -0
  994. package/src/auth/factor-id.ts +7 -0
  995. package/src/auth/index.ts +2 -0
  996. package/src/auth/instances.ts +13 -1
  997. package/src/auth/internal.ts +24 -0
  998. package/src/auth/modular.ts +27 -0
  999. package/src/auth/reauth.ts +3 -2
  1000. package/src/auth/sandbox/default-avatar.ts +177 -0
  1001. package/src/auth/sandbox/driver.ts +54 -0
  1002. package/src/auth/sandbox/project-store.ts +0 -2
  1003. package/src/auth/sandbox-backend-types.ts +31 -20
  1004. package/src/auth/sandbox-backend.ts +400 -94
  1005. package/src/auth/seed-user.ts +38 -0
  1006. package/src/auth/tokens.ts +21 -18
  1007. package/src/auth/types.ts +13 -1
  1008. package/src/database/activity-coverage.ts +10 -0
  1009. package/src/database/connection-lifecycle.ts +53 -24
  1010. package/src/database/events.ts +20 -0
  1011. package/src/database/instances.ts +52 -21
  1012. package/src/database/internal/query-projection.ts +333 -0
  1013. package/src/database/internal.ts +2 -0
  1014. package/src/database/listeners.ts +162 -44
  1015. package/src/database/operations.ts +73 -50
  1016. package/src/database/replay.ts +6 -2
  1017. package/src/database/routing.ts +4 -0
  1018. package/src/database/sandbox/backend-for.ts +145 -25
  1019. package/src/database/sandbox/backend-state.ts +15 -1
  1020. package/src/database/sandbox/backend.ts +4 -2
  1021. package/src/database/sandbox/child-listeners.ts +32 -13
  1022. package/src/database/sandbox/listener-types.ts +5 -0
  1023. package/src/database/sandbox/operation-events.ts +23 -9
  1024. package/src/database/sandbox/persistence-state.ts +4 -11
  1025. package/src/database/sandbox/priority-writes.ts +2 -2
  1026. package/src/database/sandbox/query.ts +13 -268
  1027. package/src/database/sandbox/rules-eval.ts +144 -10
  1028. package/src/database/sandbox/transactions.ts +17 -39
  1029. package/src/database/sandbox/value-listeners.ts +66 -23
  1030. package/src/database/sandbox/write-plane.ts +29 -22
  1031. package/src/database/sdk-activity.ts +26 -0
  1032. package/src/database/transactions.ts +15 -11
  1033. package/src/database/types.ts +12 -1
  1034. package/src/deferred/entry.ts +16 -10
  1035. package/src/firestore/activity-coverage.ts +8 -0
  1036. package/src/firestore/aggregates.ts +17 -9
  1037. package/src/firestore/bytes.ts +56 -0
  1038. package/src/firestore/converter-method.ts +49 -0
  1039. package/src/firestore/errors.ts +8 -0
  1040. package/src/firestore/field-values.ts +3 -158
  1041. package/src/firestore/geo-point.ts +56 -0
  1042. package/src/firestore/index.ts +1 -1
  1043. package/src/firestore/instances.ts +23 -2
  1044. package/src/firestore/internal/document-data.ts +9 -0
  1045. package/src/firestore/internal/index.ts +7 -0
  1046. package/src/firestore/internal/value-codec.ts +150 -83
  1047. package/src/firestore/internal/value-depth.ts +19 -0
  1048. package/src/firestore/listeners.ts +60 -18
  1049. package/src/firestore/persistence.ts +14 -9
  1050. package/src/firestore/plain-object.ts +7 -0
  1051. package/src/firestore/query-constraints.ts +4 -8
  1052. package/src/firestore/reads.ts +81 -48
  1053. package/src/firestore/refs.ts +56 -41
  1054. package/src/firestore/sandbox/activity-query-display.ts +138 -0
  1055. package/src/firestore/sandbox/admin-compat/batch.ts +26 -19
  1056. package/src/firestore/sandbox/admin-compat/query-comparison.ts +9 -8
  1057. package/src/firestore/sandbox/admin-compat/query.ts +46 -12
  1058. package/src/firestore/sandbox/admin-compat/read-translation.ts +18 -6
  1059. package/src/firestore/sandbox/admin-compat/transaction.ts +14 -4
  1060. package/src/firestore/sandbox/admin-compat/types.ts +6 -88
  1061. package/src/firestore/sandbox/atomic-state.ts +112 -0
  1062. package/src/firestore/sandbox/atomic-write-pipeline.ts +129 -77
  1063. package/src/firestore/sandbox/batch-write-executor.ts +51 -29
  1064. package/src/firestore/sandbox/converters/user-timestamp.ts +19 -42
  1065. package/src/firestore/sandbox/document-copy.ts +27 -0
  1066. package/src/firestore/sandbox/document-store.ts +108 -0
  1067. package/src/firestore/sandbox/errors.ts +5 -1
  1068. package/src/firestore/sandbox/event-log.ts +72 -7
  1069. package/src/firestore/sandbox/field-merge.ts +10 -19
  1070. package/src/firestore/sandbox/history-controls.ts +1 -1
  1071. package/src/firestore/sandbox/list-query-proof.ts +43 -72
  1072. package/src/firestore/sandbox/listener-dispatch.ts +59 -4
  1073. package/src/firestore/sandbox/local-environment.ts +35 -7
  1074. package/src/firestore/sandbox/local-state.ts +72 -232
  1075. package/src/firestore/sandbox/query-execution.ts +56 -34
  1076. package/src/firestore/sandbox/query-operand-equality.ts +57 -14
  1077. package/src/firestore/sandbox/query-operators.ts +20 -0
  1078. package/src/firestore/sandbox/query-value-registry.ts +3 -2
  1079. package/src/firestore/sandbox/request-events.ts +5 -0
  1080. package/src/firestore/sandbox/rules-evidence.ts +94 -0
  1081. package/src/firestore/sandbox/rules-list-authorizer.ts +62 -107
  1082. package/src/firestore/sandbox/rules-operation-reader.ts +11 -4
  1083. package/src/firestore/sandbox/rules-read-engine.ts +19 -8
  1084. package/src/firestore/sandbox/rules-state.ts +21 -0
  1085. package/src/firestore/sandbox/snapshot-listeners.ts +12 -1
  1086. package/src/firestore/sandbox/transaction-merge.ts +33 -20
  1087. package/src/firestore/sandbox/transaction-types.ts +11 -21
  1088. package/src/firestore/sandbox/transaction-write-executor.ts +103 -69
  1089. package/src/firestore/sandbox/transaction.ts +24 -7
  1090. package/src/firestore/sandbox/value-resolver.ts +2 -13
  1091. package/src/firestore/sandbox/write-engine.ts +13 -5
  1092. package/src/firestore/sandbox/write-runtime.ts +68 -40
  1093. package/src/firestore/sandbox/writes.ts +3 -1
  1094. package/src/firestore/sdk-activity.ts +31 -0
  1095. package/src/firestore/snapshots.ts +84 -18
  1096. package/src/firestore/state.ts +34 -14
  1097. package/src/firestore/timestamp.ts +86 -0
  1098. package/src/firestore/tools.ts +3 -3
  1099. package/src/firestore/transactions.ts +88 -8
  1100. package/src/firestore/types.ts +26 -5
  1101. package/src/firestore/vector-value.ts +54 -0
  1102. package/src/firestore/writes.ts +53 -43
  1103. package/src/functions/events.ts +27 -0
  1104. package/src/messaging/broker/broker.test.ts +114 -0
  1105. package/src/messaging/broker/broker.ts +152 -65
  1106. package/src/messaging/broker/delivery-history.ts +49 -0
  1107. package/src/messaging/broker/index.ts +11 -0
  1108. package/src/messaging/broker/persistence.ts +54 -0
  1109. package/src/messaging/broker/types.ts +50 -0
  1110. package/src/messaging/events.ts +29 -0
  1111. package/src/rules/api/case-types.ts +7 -0
  1112. package/src/rules/api/rtdb.ts +15 -7
  1113. package/src/rules/grammar/parse-error-wording.ts +98 -0
  1114. package/src/rules/indexes/query-analysis.ts +136 -0
  1115. package/src/rules/indexes/service-query.ts +69 -0
  1116. package/src/rules/internal/index.ts +16 -0
  1117. package/src/rules/modules/rules-capabilities.generated.ts +1 -1
  1118. package/src/rules/rtdb/constraints/atoms.spec.ts +7 -7
  1119. package/src/rules/rtdb/constraints/atoms.ts +7 -7
  1120. package/src/rules/rtdb/constraints/data.ts +4 -4
  1121. package/src/rules/rtdb/constraints/document.ts +4 -2
  1122. package/src/rules/rtdb/constraints/game.spec.ts +4 -4
  1123. package/src/rules/rtdb/constraints/policies.spec.ts +5 -5
  1124. package/src/rules/rtdb/constraints/policies.ts +4 -4
  1125. package/src/rules/rtdb/constraints/schema.ts +3 -3
  1126. package/src/rules/rtdb/grammar/RtdbExpr.ohm +1 -3
  1127. package/src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts +1 -3
  1128. package/src/rules/rtdb/grammar/linter.ts +34 -30
  1129. package/src/rules/rtdb/grammar/simulator.ts +112 -74
  1130. package/src/rules/rtdb/grammar/validator.ts +30 -26
  1131. package/src/rules/rtdb/simulation/handler.ts +139 -36
  1132. package/src/rules/rtdb/simulation/spec.ts +24 -1
  1133. package/src/rules/simulator/evaluator.ts +34 -41
  1134. package/src/rules/simulator/handler.ts +12 -3
  1135. package/src/rules/simulator/mapdiff.ts +7 -5
  1136. package/src/rules/simulator/query-proof-residual.ts +209 -0
  1137. package/src/rules/simulator/query-proof.ts +53 -27
  1138. package/src/rules/simulator/request-path.ts +39 -0
  1139. package/src/rules/simulator/trace-recorder.ts +3 -0
  1140. package/src/rules/simulator/wrappers/timestamp.ts +8 -1
  1141. package/src/rules/simulator-tools-impl.ts +6 -3
  1142. package/src/rules/stdlib-tools.ts +4 -4
  1143. package/src/sandbox/active-listeners.ts +245 -0
  1144. package/src/sandbox/admin-firestore/error-translation.ts +16 -2
  1145. package/src/sandbox/admin-firestore/listeners.ts +26 -1
  1146. package/src/sandbox/admin-firestore/remote/listeners.ts +50 -32
  1147. package/src/sandbox/admin-firestore/remote/value-codec.ts +7 -14
  1148. package/src/sandbox/admin-firestore/remote/wire-types.ts +3 -0
  1149. package/src/sandbox/attribution/attribution-mode.ts +74 -0
  1150. package/src/sandbox/attribution/effect-regions.ts +130 -0
  1151. package/src/sandbox/attribution/element-selector.ts +118 -0
  1152. package/src/sandbox/attribution/listener-owners.ts +277 -0
  1153. package/src/sandbox/branches/engine.ts +362 -0
  1154. package/src/sandbox/branches/index.ts +12 -448
  1155. package/src/sandbox/branches/promotion.ts +207 -0
  1156. package/src/sandbox/branches/state-diff.ts +333 -0
  1157. package/src/sandbox/branches/store.ts +317 -0
  1158. package/src/sandbox/checkpoints/capture.ts +77 -0
  1159. package/src/sandbox/checkpoints/directory-backend.ts +110 -0
  1160. package/src/sandbox/checkpoints/index.ts +32 -0
  1161. package/src/sandbox/checkpoints/record-backend.ts +109 -0
  1162. package/src/sandbox/checkpoints/saved-states.ts +72 -0
  1163. package/src/sandbox/checkpoints/types.ts +115 -0
  1164. package/src/sandbox/checkpoints/validation.ts +102 -0
  1165. package/src/sandbox/clock.ts +205 -0
  1166. package/src/sandbox/full-state.ts +403 -0
  1167. package/src/sandbox/index.ts +53 -10
  1168. package/src/sandbox/internal/ai-evidence.ts +38 -0
  1169. package/src/sandbox/internal/event-history.ts +193 -0
  1170. package/src/sandbox/internal/history-integrity.ts +12 -0
  1171. package/src/sandbox/internal/history-retention.ts +16 -0
  1172. package/src/sandbox/internal/index.ts +65 -0
  1173. package/src/sandbox/internal/observation-history.ts +5 -0
  1174. package/src/sandbox/internal/observation-payload.ts +18 -0
  1175. package/src/sandbox/internal/provenance.ts +5 -0
  1176. package/src/sandbox/internal/root.ts +3 -2
  1177. package/src/sandbox/internal/rules-evidence-retention.ts +28 -0
  1178. package/src/sandbox/internal/sandbox-impl.ts +91 -45
  1179. package/src/sandbox/internal/sdk-activity.ts +291 -0
  1180. package/src/sandbox/internal/sdk-coverage.ts +28 -0
  1181. package/src/sandbox/internal/sdk-observation.ts +62 -0
  1182. package/src/sandbox/internal/sdk-rates.ts +240 -0
  1183. package/src/sandbox/internal/sdk-write-activity.ts +14 -0
  1184. package/src/sandbox/internal/state-schemas.ts +47 -0
  1185. package/src/sandbox/internal/state-values.ts +20 -0
  1186. package/src/sandbox/internal/storage-activity.ts +43 -0
  1187. package/src/sandbox/internal/usage-evidence.ts +77 -0
  1188. package/src/sandbox/operation-record.ts +107 -4
  1189. package/src/sandbox/persistence/changed-buckets.ts +61 -0
  1190. package/src/sandbox/persistence/chunk-format.ts +39 -27
  1191. package/src/sandbox/persistence/controller.ts +85 -33
  1192. package/src/sandbox/persistence/import-bundle.ts +64 -0
  1193. package/src/sandbox/persistence/serialize.ts +16 -10
  1194. package/src/sandbox/persistence/types.ts +4 -0
  1195. package/src/sandbox/persistence/validate-services.ts +70 -0
  1196. package/src/sandbox/remote.ts +7 -0
  1197. package/src/sandbox/replay/index.ts +15 -8
  1198. package/src/sandbox/types/errors.ts +3 -1
  1199. package/src/sandbox/types/events.ts +118 -75
  1200. package/src/sandbox/types/index.ts +12 -0
  1201. package/src/sandbox/types/operation.ts +14 -4
  1202. package/src/sandbox/types/persistence.ts +2 -2
  1203. package/src/sandbox/types/query-proof.ts +26 -0
  1204. package/src/sandbox/types/request-observation.ts +25 -0
  1205. package/src/sandbox/types/rules-evidence.ts +37 -0
  1206. package/src/sandbox/types/service-event-record.ts +34 -0
  1207. package/src/sandbox/types/service-event-records.ts +42 -0
  1208. package/src/sandbox/types/service-mutation-event.ts +93 -0
  1209. package/src/storage/activity-coverage.ts +8 -0
  1210. package/src/storage/base64.ts +35 -0
  1211. package/src/storage/download.ts +19 -6
  1212. package/src/storage/enforce.ts +26 -4
  1213. package/src/storage/errors.ts +29 -14
  1214. package/src/storage/events.ts +21 -0
  1215. package/src/storage/index.ts +7 -7
  1216. package/src/storage/internal.ts +21 -0
  1217. package/src/storage/metadata.ts +68 -19
  1218. package/src/storage/observed.ts +16 -0
  1219. package/src/storage/persistence.ts +574 -66
  1220. package/src/storage/reference.ts +6 -3
  1221. package/src/storage/remote-bytes.ts +122 -0
  1222. package/src/storage/resumable.ts +16 -3
  1223. package/src/storage/rules-resolution.ts +43 -1
  1224. package/src/storage/sandbox/persistence-state.ts +71 -0
  1225. package/src/storage/sandbox/rules-bindings.ts +69 -0
  1226. package/src/storage/sandbox/rules-collection-methods.ts +161 -0
  1227. package/src/storage/sandbox/rules-evaluator.ts +65 -142
  1228. package/src/storage/sandbox/rules-firestore-lookup.ts +112 -0
  1229. package/src/storage/sandbox/rules-hashing-methods.ts +50 -0
  1230. package/src/storage/sandbox/rules-method-calls.ts +67 -0
  1231. package/src/storage/sandbox/rules-methods.ts +63 -404
  1232. package/src/storage/sandbox/rules-operators.ts +93 -0
  1233. package/src/storage/sandbox/rules-string-methods.ts +214 -0
  1234. package/src/storage/sandbox/rules-time-methods.ts +98 -0
  1235. package/src/storage/sandbox/rules-values.ts +20 -1
  1236. package/src/storage/sandbox/rules.ts +27 -14
  1237. package/src/storage/sandbox/running-service.ts +52 -0
  1238. package/src/storage/service.ts +196 -85
  1239. package/src/storage/string-format.ts +8 -0
  1240. package/src/storage/upload.ts +8 -3
  1241. package/src/storage/url.ts +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-payload.js","sourceRoot":"","sources":["../../../src/sandbox/internal/observation-payload.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,WAAW,GAAG,oEAAoE,CAAC;AACzF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI;SACR,OAAO,CAAC,oCAAoC,EAAE,mBAAmB,CAAC;SAClE,OAAO,CAAC,wDAAwD,EAAE,kBAAkB,CAAC;SACrF,OAAO,CAAC,uGAAuG,EAAE,cAAc,CAAC,CAAC;AACtI,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,KAAK,GAAG,KAAK;IAC9D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/C,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,YAAY,CAAC;YAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;AACrB,CAAC"}
@@ -1,4 +1,3 @@
1
- /** Canonical provenance stamping and nested-window composition. */
2
1
  import type { EventProvenance, SandboxEvent } from '../types/events.js';
3
2
  /** Stamp canonical context and Rules disposition at the unified event seam. */
4
3
  export declare function stampProvenance<E extends SandboxEvent>(event: E, overrides?: EventProvenance): E;
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/provenance.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EACb,MAAM,oBAAoB,CAAC;AAQ5B,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,YAAY,EACpD,KAAK,EAAE,CAAC,EACR,SAAS,CAAC,EAAE,eAAe,GAC1B,CAAC,CA+BH;AAkCD;;gEAEgE;AAChE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,eAAe,GAAG,SAAS,CAmD7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,eAAe,GAAG,SAAS,CAwB7B"}
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/provenance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EACb,MAAM,oBAAoB,CAAC;AAQ5B,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,YAAY,EACpD,KAAK,EAAE,CAAC,EACR,SAAS,CAAC,EAAE,eAAe,GAC1B,CAAC,CAmCH;AAkCD;;gEAEgE;AAChE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,eAAe,GAAG,SAAS,CAmD7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,eAAe,GAAG,SAAS,CAwB7B"}
@@ -1,8 +1,14 @@
1
1
  /** Canonical provenance stamping and nested-window composition. */
2
+ import { sdkActivity } from './sdk-activity.js';
2
3
  import { immutableOperationContext, isOperationEvent, resolveOperationContext, rulesDispositionFor, } from '../operation-record.js';
3
4
  /** Stamp canonical context and Rules disposition at the unified event seam. */
4
5
  export function stampProvenance(event, overrides) {
5
6
  const out = { ...event };
7
+ if (event.kind === 'listener_attach' || (event.kind === 'listener' && event.phase === 'attach')) {
8
+ const listenerId = sdkActivity.registrationId();
9
+ if (listenerId)
10
+ out.activity = { ...out.activity, listenerId };
11
+ }
6
12
  out.service = event.service ?? overrides?.service ?? 'firestore';
7
13
  // Pre-context admin events used `detail.admin` as their only execution-lens
8
14
  // marker. Normalize that one legacy shape here; new producers bind context.
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../src/sandbox/internal/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../src/sandbox/internal/provenance.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
+ import type { EventHistoryLimits } from './event-history.js';
1
2
  import type { LocalSandbox } from '../types/service.js';
2
3
  /** Create one isolated in-memory sandbox for any browser host. */
3
- export declare function createSandboxRoot(): LocalSandbox;
4
+ export declare function createSandboxRoot(historyLimits?: EventHistoryLimits): LocalSandbox;
4
5
  //# sourceMappingURL=root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,kEAAkE;AAClE,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAElF"}
@@ -1,6 +1,6 @@
1
1
  import { SandboxImpl } from './sandbox-impl.js';
2
2
  /** Create one isolated in-memory sandbox for any browser host. */
3
- export function createSandboxRoot() {
4
- return SandboxImpl.createRoot();
3
+ export function createSandboxRoot(historyLimits) {
4
+ return SandboxImpl.createRoot(historyLimits);
5
5
  }
6
6
  //# sourceMappingURL=root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/sandbox/internal/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,kEAAkE;AAClE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/sandbox/internal/root.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,kEAAkE;AAClE,MAAM,UAAU,iBAAiB,CAAC,aAAkC;IAClE,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SandboxEvent } from '../types/events.js';
2
+ /** Track retained entries by identity so history eviction cannot shift the owner. */
3
+ export declare class RulesEvidenceRetention<Entry extends {
4
+ event: SandboxEvent;
5
+ }> {
6
+ private readonly entries;
7
+ record(entry: Entry): Entry | undefined;
8
+ forget(entry: Entry): void;
9
+ clear(): void;
10
+ }
11
+ //# sourceMappingURL=rules-evidence-retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-evidence-retention.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/rules-evidence-retention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qFAAqF;AACrF,qBAAa,sBAAsB,CAAC,KAAK,SAAS;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;IAcvC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI1B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,27 @@
1
+ /** Track retained entries by identity so history eviction cannot shift the owner. */
2
+ export class RulesEvidenceRetention {
3
+ entries = new Set();
4
+ record(entry) {
5
+ const event = entry.event;
6
+ const hasEvidence = event.kind === 'request' && event.rulesEvidence !== undefined;
7
+ const hasNoEvidence = !hasEvidence;
8
+ if (hasNoEvidence)
9
+ return;
10
+ this.entries.add(entry);
11
+ const withinLimit = this.entries.size <= 64;
12
+ if (withinLimit)
13
+ return;
14
+ const oldest = this.entries.values().next().value;
15
+ const hasOldest = oldest !== undefined;
16
+ if (hasOldest)
17
+ this.entries.delete(oldest);
18
+ return oldest;
19
+ }
20
+ forget(entry) {
21
+ this.entries.delete(entry);
22
+ }
23
+ clear() {
24
+ this.entries.clear();
25
+ }
26
+ }
27
+ //# sourceMappingURL=rules-evidence-retention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-evidence-retention.js","sourceRoot":"","sources":["../../../src/sandbox/internal/rules-evidence-retention.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,OAAO,sBAAsB;IAChB,OAAO,GAAG,IAAI,GAAG,EAAS,CAAC;IAE5C,MAAM,CAAC,KAAY;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC;QAClF,MAAM,aAAa,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,aAAa;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,IAAI,WAAW;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;QACvC,IAAI,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ import { type EventHistoryLimits } from './event-history.js';
1
2
  /**
2
3
  * Internal `Sandbox` implementation — backs the public interface from
3
4
  * `/app` and exposes the hook (`getEnv`) that other in-package modules
@@ -18,9 +19,10 @@
18
19
  * to {@link SandboxContext}, derived via `withAuth`.
19
20
  */
20
21
  import { LocalEnvironment } from '../../firestore/sandbox/local-environment.js';
22
+ import { SandboxClock, SANDBOX_CLOCK } from '../clock.js';
21
23
  import type { AuthState } from '../types/auth-state.js';
22
24
  import type { SandboxContext } from '../types/context.js';
23
- import type { EventProvenance, SandboxCommitEvent, SandboxEvent, SandboxListenerEvent, SandboxOperationEvent, SandboxRuntimeErrorEvent, ServiceMutationEvent } from '../types/events.js';
25
+ import type { EventProvenance, SandboxCommitEvent, SandboxEvent, SandboxListenerEvent, SandboxOperationEvent, SandboxRuntimeErrorEvent, ServiceMutationEvent, ServiceMutationEventFields } from '../types/events.js';
24
26
  import type { PersistableService, SandboxSnapshot } from '../types/persistence.js';
25
27
  import type { LocalSandbox, Sandbox, SandboxAdmin } from '../types/service.js';
26
28
  import { LOCAL_SANDBOX } from './local-brand.js';
@@ -55,8 +57,8 @@ export declare class SandboxImpl implements LocalSandbox {
55
57
  /** Append-only history of every SandboxEvent emitted on this sandbox.
56
58
  * Cleared on `reset()` AFTER the session_boundary event is appended,
57
59
  * so the boundary is the last entry of the old session's history.
58
- * v1 doesn't cap; consumers persist the snapshot they need. */
59
- private eventHistory;
60
+ * Hosted adapters may bound observation retention; direct SDK roots retain full history. */
61
+ private readonly eventHistory;
60
62
  /** Ambient provenance for the current {@link runWithProvenance} window
61
63
  * (undefined outside any window). Purely synchronous — set on entry,
62
64
  * restored in `finally` — so deferred work (microtask listener drains)
@@ -72,6 +74,10 @@ export declare class SandboxImpl implements LocalSandbox {
72
74
  /** Subscribers to currentUser changes. Stable across reset() and
73
75
  * dispose() the same way `eventSubs` is — dispose clears them. */
74
76
  private currentUserSubs;
77
+ private readonly documentChanges;
78
+ /** Persistence tracks mutations independently of retained events and SDK transport. */
79
+ onDocumentChange(callback: (path: string | null) => void): () => void;
80
+ private readonly documentChanged;
75
81
  /** Persistence controller. Null until `enablePersistence` is called.
76
82
  * Survives `reset()` so the next write re-flushes the empty state;
77
83
  * cleared by `dispose()` so the sandbox releases its event listeners. */
@@ -104,9 +110,18 @@ export declare class SandboxImpl implements LocalSandbox {
104
110
  */
105
111
  private _onServiceRegistered;
106
112
  private _onServiceUnregistered;
113
+ /**
114
+ * The sandbox's one source of time. Handed to every service on this sandbox
115
+ * so a `serverTimestamp()`, a `request.time`, and a token's `iat` minted in
116
+ * the same operation agree. Survives `reset()`: a pinned instant belongs to
117
+ * the session, not to the data. Reached from outside through `getClock`.
118
+ */
119
+ readonly clock: SandboxClock;
120
+ /** The cross-module-instance key `getClock` reads. See `sandbox/clock.ts`. */
121
+ readonly [SANDBOX_CLOCK]: SandboxClock;
107
122
  private constructor();
108
123
  /** Factory used by `initializeSandbox`. */
109
- static createRoot(): SandboxImpl;
124
+ static createRoot(historyLimits?: EventHistoryLimits): SandboxImpl;
110
125
  /**
111
126
  * Resolve the live `LocalEnvironment`. Stable across resets — the
112
127
  * sandbox holds whatever env is current, and consumers of `getEnv`
@@ -287,45 +302,37 @@ export declare function primeEventHistory(sandbox: Sandbox, events: readonly San
287
302
  * their activity lands on the same stream — e.g.
288
303
  * `emitSandboxEvent(sandbox, userCreatedEvent, { service: 'auth' })`.
289
304
  *
290
- * STATUS (Wave 1.5, Gap #1): Auth / Storage / RTDB now emit here. They share
291
- * one additive union variant — {@link ServiceMutationEvent} (`kind:
292
- * 'service_mutation'`) — built via {@link makeServiceMutationEvent}, rather
293
- * than bending into Firestore's rule-eval-shaped `request`/`write` kinds.
294
- * Wired emit sites:
295
- * - auth: user create/update/delete, users-clear, sign-in, sign-out
296
- * (`SandboxBackend` in `pyric/auth`).
297
- * - storage: object put / delete / metadata-update (`pyric/storage`).
298
- * - rtdb: set / update / remove / transaction-commit
299
- * (`RtdbBackend` in `pyric/database`, via the modular surface).
300
- * Firestore still rides the env→sandbox fan-out and is unchanged. See
301
- * the design rationale.
305
+ * Every non-Firestore service emits here, sharing one additive union variant,
306
+ * {@link ServiceMutationEvent} (`kind: 'service_mutation'`), built via
307
+ * {@link makeServiceMutationEvent}, rather than bending into Firestore's
308
+ * rule-eval-shaped `request`/`write` kinds. Which services those are, and
309
+ * which operations each of them emits, is declared once per service in
310
+ * `<surface>/events.ts` and derived into this variant's types by
311
+ * `sandbox/types/service-event-records.ts`. Firestore still rides the
312
+ * env→sandbox fan-out and is unchanged.
302
313
  *
303
314
  * Throws if `sandbox` wasn't produced by `initializeSandbox()` (same guard
304
315
  * as {@link getInternalEnv}).
305
316
  */
306
317
  export declare function emitSandboxEvent(sandbox: Sandbox, event: SandboxEvent, provenance?: EventProvenance): void;
307
318
  /**
308
- * Build a {@link ServiceMutationEvent} with a fresh `id` + `at` minted from
309
- * the same monotonic counter Firestore events use — so a non-Firestore
310
- * service (auth/storage/rtdb) doesn't have to re-implement id minting or
311
- * worry about colliding with the Firestore stream's ids.
319
+ * Build a {@link ServiceMutationEvent} with a fresh `id` minted from the same
320
+ * monotonic counter Firestore events use, so a non-Firestore service
321
+ * (auth/storage/rtdb) doesn't have to re-implement id minting or worry about
322
+ * colliding with the Firestore stream's ids.
323
+ *
324
+ * `at` is the caller's, and it is required: the instant an event carries is the
325
+ * sandbox clock's, which only the calling service can resolve, and a default
326
+ * here would silently stamp the wall clock onto a sandbox running virtual time.
312
327
  *
313
328
  * The returned event is NOT yet dispatched; hand it to
314
329
  * {@link emitSandboxEvent} (which stamps provenance and lands it on the
315
330
  * unified stream). The convenience seam for the keystone: a service emit
316
331
  * site is `emitSandboxEvent(sandbox, makeServiceMutationEvent({ ... }), { service })`.
317
332
  */
318
- export declare function makeServiceMutationEvent(fields: Omit<ServiceMutationEvent, 'kind' | 'id' | 'at'>): ServiceMutationEvent;
319
- export declare function makeSandboxOperationEvent(fields: Omit<SandboxOperationEvent, 'kind' | 'id' | 'at'> & {
320
- at?: number;
321
- }): SandboxOperationEvent;
322
- export declare function makeSandboxCommitEvent(fields: Omit<SandboxCommitEvent, 'kind' | 'id' | 'at'> & {
323
- at?: number;
324
- }): SandboxCommitEvent;
325
- export declare function makeSandboxListenerEvent(fields: Omit<SandboxListenerEvent, 'kind' | 'id' | 'at'> & {
326
- at?: number;
327
- }): SandboxListenerEvent;
328
- export declare function makeSandboxRuntimeErrorEvent(fields: Omit<SandboxRuntimeErrorEvent, 'kind' | 'id' | 'at'> & {
329
- at?: number;
330
- }): SandboxRuntimeErrorEvent;
333
+ export declare function makeServiceMutationEvent(fields: ServiceMutationEventFields): ServiceMutationEvent;
334
+ export declare function makeSandboxOperationEvent(fields: Omit<SandboxOperationEvent, 'kind' | 'id'>): SandboxOperationEvent;
335
+ export declare function makeSandboxCommitEvent(fields: Omit<SandboxCommitEvent, 'kind' | 'id'>): SandboxCommitEvent;
336
+ export declare function makeSandboxListenerEvent(fields: Omit<SandboxListenerEvent, 'kind' | 'id'>): SandboxListenerEvent;
337
+ export declare function makeSandboxRuntimeErrorEvent(fields: Omit<SandboxRuntimeErrorEvent, 'kind' | 'id'>): SandboxRuntimeErrorEvent;
331
338
  //# sourceMappingURL=sandbox-impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-impl.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/sandbox-impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-impl.d.ts","sourceRoot":"","sources":["../../../src/sandbox/internal/sandbox-impl.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { EventHistory } from './event-history.js';
1
2
  /**
2
3
  * Internal `Sandbox` implementation — backs the public interface from
3
4
  * `/app` and exposes the hook (`getEnv`) that other in-package modules
@@ -18,6 +19,7 @@
18
19
  * to {@link SandboxContext}, derived via `withAuth`.
19
20
  */
20
21
  import { LocalEnvironment } from '../../firestore/sandbox/local-environment.js';
22
+ import { SandboxClock, SANDBOX_CLOCK } from '../clock.js';
21
23
  import { SandboxError } from '../types/errors.js';
22
24
  import { SandboxContextImpl, validateAuthState } from '../sandbox-context.js';
23
25
  import { attachPersistence, } from '../persistence/controller.js';
@@ -59,8 +61,8 @@ export class SandboxImpl {
59
61
  /** Append-only history of every SandboxEvent emitted on this sandbox.
60
62
  * Cleared on `reset()` AFTER the session_boundary event is appended,
61
63
  * so the boundary is the last entry of the old session's history.
62
- * v1 doesn't cap; consumers persist the snapshot they need. */
63
- eventHistory = [];
64
+ * Hosted adapters may bound observation retention; direct SDK roots retain full history. */
65
+ eventHistory;
64
66
  /** Ambient provenance for the current {@link runWithProvenance} window
65
67
  * (undefined outside any window). Purely synchronous — set on entry,
66
68
  * restored in `finally` — so deferred work (microtask listener drains)
@@ -76,6 +78,16 @@ export class SandboxImpl {
76
78
  /** Subscribers to currentUser changes. Stable across reset() and
77
79
  * dispose() the same way `eventSubs` is — dispose clears them. */
78
80
  currentUserSubs = new Set();
81
+ documentChanges = new Set();
82
+ /** Persistence tracks mutations independently of retained events and SDK transport. */
83
+ onDocumentChange(callback) {
84
+ this.documentChanges.add(callback);
85
+ return () => { this.documentChanges.delete(callback); };
86
+ }
87
+ documentChanged = (path) => {
88
+ for (const callback of this.documentChanges)
89
+ callback(path);
90
+ };
79
91
  /** Persistence controller. Null until `enablePersistence` is called.
80
92
  * Survives `reset()` so the next write re-flushes the empty state;
81
93
  * cleared by `dispose()` so the sandbox releases its event listeners. */
@@ -108,13 +120,24 @@ export class SandboxImpl {
108
120
  */
109
121
  _onServiceRegistered = null;
110
122
  _onServiceUnregistered = null;
111
- constructor(env) {
123
+ /**
124
+ * The sandbox's one source of time. Handed to every service on this sandbox
125
+ * so a `serverTimestamp()`, a `request.time`, and a token's `iat` minted in
126
+ * the same operation agree. Survives `reset()`: a pinned instant belongs to
127
+ * the session, not to the data. Reached from outside through `getClock`.
128
+ */
129
+ clock;
130
+ constructor(env, clock, historyLimits) {
131
+ this.eventHistory = new EventHistory(historyLimits);
112
132
  this._env = env;
133
+ this.clock = clock;
134
+ Object.defineProperty(this, SANDBOX_CLOCK, { value: clock, enumerable: false });
113
135
  this.attachToEnv();
114
136
  }
115
137
  /** Factory used by `initializeSandbox`. */
116
- static createRoot() {
117
- return new SandboxImpl(new LocalEnvironment());
138
+ static createRoot(historyLimits) {
139
+ const clock = new SandboxClock();
140
+ return new SandboxImpl(new LocalEnvironment(clock), clock, historyLimits);
118
141
  }
119
142
  /**
120
143
  * Resolve the live `LocalEnvironment`. Stable across resets — the
@@ -134,6 +157,7 @@ export class SandboxImpl {
134
157
  * through {@link emit}. Refreshed on `reset()` after the env swap.
135
158
  */
136
159
  attachToEnv() {
160
+ this.envUnsubs.push(this._env.onStateChange(this.documentChanged));
137
161
  this.envUnsubs.push(this._env.onRequest((event) => {
138
162
  // RequestEvent already carries `kind: 'request'` from buildRequestEvent.
139
163
  this.emitEvent(event);
@@ -153,7 +177,7 @@ export class SandboxImpl {
153
177
  const ev = {
154
178
  kind: 'listener_errored',
155
179
  id: makeSandboxEventId(),
156
- at: Date.now(),
180
+ at: this.clock.now(),
157
181
  listenerId,
158
182
  target: target.kind === 'doc'
159
183
  ? { kind: 'doc', path: target.path }
@@ -212,17 +236,20 @@ export class SandboxImpl {
212
236
  * the raw fan-out + history append it wraps.
213
237
  */
214
238
  dispatch(event) {
239
+ event = { ...event, observedAt: Date.now() };
215
240
  // Append to history unconditionally — consumers that call
216
241
  // sandbox.history() expect every event the sandbox saw, regardless
217
242
  // of whether onEvent subscribers were attached at emit time.
218
- this.eventHistory.push(event);
243
+ this.eventHistory.append(event);
219
244
  this.dispatchedCount++;
220
- if (this.eventSubs.size === 0)
245
+ const hasNoSubscribers = this.eventSubs.size === 0;
246
+ if (hasNoSubscribers)
221
247
  return;
222
248
  for (const cb of this.eventSubs) {
223
249
  try {
224
250
  const result = cb(event);
225
- if (result && typeof result.then === 'function') {
251
+ const isAsyncResult = result !== null && result !== undefined && typeof result.then === 'function';
252
+ if (isAsyncResult) {
226
253
  result.catch(() => { });
227
254
  }
228
255
  }
@@ -260,7 +287,7 @@ export class SandboxImpl {
260
287
  * `dispose()` leaves the boundary as the final entry.
261
288
  */
262
289
  history() {
263
- return [...this.eventHistory];
290
+ return this.eventHistory.snapshot();
264
291
  }
265
292
  /**
266
293
  * Prime the event-history log with events from a PRIOR session of the
@@ -283,11 +310,23 @@ export class SandboxImpl {
283
310
  * interleave after live ones. Returns the number of events primed.
284
311
  */
285
312
  primeEventHistory(events) {
286
- if (this.eventHistory.length > 0)
313
+ const hasHistory = this.eventHistory.length > 0;
314
+ const isEmpty = events.length === 0;
315
+ if (hasHistory)
287
316
  return 0;
288
- if (events.length === 0)
317
+ if (isEmpty)
289
318
  return 0;
290
- this.eventHistory.push(...events);
319
+ for (const event of events) {
320
+ const unfinished = event.kind === 'operation' && event.observation?.status === 'pending';
321
+ if (unfinished) {
322
+ const observation = {
323
+ ...event.observation, status: 'interrupted', error: { code: 'host-restarted' },
324
+ };
325
+ this.eventHistory.append({ ...event, observation });
326
+ }
327
+ else
328
+ this.eventHistory.append(event);
329
+ }
291
330
  return events.length;
292
331
  }
293
332
  /**
@@ -309,7 +348,7 @@ export class SandboxImpl {
309
348
  const boundary = {
310
349
  kind: 'session_boundary',
311
350
  id: makeSandboxEventId(),
312
- at: Date.now(),
351
+ at: this.clock.now(),
313
352
  phase: 'reset',
314
353
  priorOpCount: this.dispatchedCount,
315
354
  };
@@ -317,11 +356,12 @@ export class SandboxImpl {
317
356
  // The boundary is now the last entry in eventHistory; clear the
318
357
  // history AFTER emit so consumers that took a snapshot before
319
358
  // reset() retain the boundary in their copy.
320
- this.eventHistory = [];
359
+ this.eventHistory.clear();
321
360
  // Clear currentUser to null and notify — a reset wipes everything
322
361
  // including signed-in identity. Subscribers see the sign-out so
323
362
  // their UI / Firestore handles reflect the post-reset state.
324
- if (this._currentUser !== null) {
363
+ const hadCurrentUser = this._currentUser !== null;
364
+ if (hadCurrentUser) {
325
365
  this._currentUser = null;
326
366
  this.notifyCurrentUserSubs(null);
327
367
  }
@@ -332,8 +372,9 @@ export class SandboxImpl {
332
372
  unsub();
333
373
  this.envUnsubs = [];
334
374
  this._env.dispose();
335
- this._env = new LocalEnvironment();
375
+ this._env = new LocalEnvironment(this.clock);
336
376
  this.attachToEnv();
377
+ this.documentChanged(null);
337
378
  }
338
379
  async resetAll() {
339
380
  // Firestore env + signed-in session first (emits the session_boundary),
@@ -367,7 +408,7 @@ export class SandboxImpl {
367
408
  const boundary = {
368
409
  kind: 'session_boundary',
369
410
  id: makeSandboxEventId(),
370
- at: Date.now(),
411
+ at: this.clock.now(),
371
412
  phase: 'dispose',
372
413
  priorOpCount: this.dispatchedCount,
373
414
  };
@@ -394,6 +435,7 @@ export class SandboxImpl {
394
435
  // subscriptions on it would leak.
395
436
  this.eventSubs.clear();
396
437
  this.currentUserSubs.clear();
438
+ this.documentChanges.clear();
397
439
  }
398
440
  snapshot() {
399
441
  // Collect each registered service's snapshot under its name. The
@@ -641,18 +683,14 @@ export function primeEventHistory(sandbox, events) {
641
683
  * their activity lands on the same stream — e.g.
642
684
  * `emitSandboxEvent(sandbox, userCreatedEvent, { service: 'auth' })`.
643
685
  *
644
- * STATUS (Wave 1.5, Gap #1): Auth / Storage / RTDB now emit here. They share
645
- * one additive union variant — {@link ServiceMutationEvent} (`kind:
646
- * 'service_mutation'`) — built via {@link makeServiceMutationEvent}, rather
647
- * than bending into Firestore's rule-eval-shaped `request`/`write` kinds.
648
- * Wired emit sites:
649
- * - auth: user create/update/delete, users-clear, sign-in, sign-out
650
- * (`SandboxBackend` in `pyric/auth`).
651
- * - storage: object put / delete / metadata-update (`pyric/storage`).
652
- * - rtdb: set / update / remove / transaction-commit
653
- * (`RtdbBackend` in `pyric/database`, via the modular surface).
654
- * Firestore still rides the env→sandbox fan-out and is unchanged. See
655
- * the design rationale.
686
+ * Every non-Firestore service emits here, sharing one additive union variant,
687
+ * {@link ServiceMutationEvent} (`kind: 'service_mutation'`), built via
688
+ * {@link makeServiceMutationEvent}, rather than bending into Firestore's
689
+ * rule-eval-shaped `request`/`write` kinds. Which services those are, and
690
+ * which operations each of them emits, is declared once per service in
691
+ * `<surface>/events.ts` and derived into this variant's types by
692
+ * `sandbox/types/service-event-records.ts`. Firestore still rides the
693
+ * env→sandbox fan-out and is unchanged.
656
694
  *
657
695
  * Throws if `sandbox` wasn't produced by `initializeSandbox()` (same guard
658
696
  * as {@link getInternalEnv}).
@@ -664,10 +702,14 @@ export function emitSandboxEvent(sandbox, event, provenance) {
664
702
  sandbox.emitInternal(event, provenance);
665
703
  }
666
704
  /**
667
- * Build a {@link ServiceMutationEvent} with a fresh `id` + `at` minted from
668
- * the same monotonic counter Firestore events use — so a non-Firestore
669
- * service (auth/storage/rtdb) doesn't have to re-implement id minting or
670
- * worry about colliding with the Firestore stream's ids.
705
+ * Build a {@link ServiceMutationEvent} with a fresh `id` minted from the same
706
+ * monotonic counter Firestore events use, so a non-Firestore service
707
+ * (auth/storage/rtdb) doesn't have to re-implement id minting or worry about
708
+ * colliding with the Firestore stream's ids.
709
+ *
710
+ * `at` is the caller's, and it is required: the instant an event carries is the
711
+ * sandbox clock's, which only the calling service can resolve, and a default
712
+ * here would silently stamp the wall clock onto a sandbox running virtual time.
671
713
  *
672
714
  * The returned event is NOT yet dispatched; hand it to
673
715
  * {@link emitSandboxEvent} (which stamps provenance and lands it on the
@@ -675,11 +717,12 @@ export function emitSandboxEvent(sandbox, event, provenance) {
675
717
  * site is `emitSandboxEvent(sandbox, makeServiceMutationEvent({ ... }), { service })`.
676
718
  */
677
719
  export function makeServiceMutationEvent(fields) {
720
+ const { at, ...rest } = fields;
678
721
  return {
679
722
  kind: 'service_mutation',
680
723
  id: makeSandboxEventId(),
681
- at: Date.now(),
682
- ...fields,
724
+ at,
725
+ ...rest,
683
726
  };
684
727
  }
685
728
  export function makeSandboxOperationEvent(fields) {
@@ -687,7 +730,7 @@ export function makeSandboxOperationEvent(fields) {
687
730
  return {
688
731
  kind: 'operation',
689
732
  id: makeSandboxEventId(),
690
- at: at ?? Date.now(),
733
+ at,
691
734
  ...rest,
692
735
  };
693
736
  }
@@ -696,7 +739,7 @@ export function makeSandboxCommitEvent(fields) {
696
739
  return {
697
740
  kind: 'commit',
698
741
  id: makeSandboxEventId(),
699
- at: at ?? Date.now(),
742
+ at,
700
743
  ...rest,
701
744
  };
702
745
  }
@@ -705,7 +748,7 @@ export function makeSandboxListenerEvent(fields) {
705
748
  return {
706
749
  kind: 'listener',
707
750
  id: makeSandboxEventId(),
708
- at: at ?? Date.now(),
751
+ at,
709
752
  ...rest,
710
753
  };
711
754
  }
@@ -714,7 +757,7 @@ export function makeSandboxRuntimeErrorEvent(fields) {
714
757
  return {
715
758
  kind: 'runtime_error',
716
759
  id: makeSandboxEventId(),
717
- at: at ?? Date.now(),
760
+ at,
718
761
  ...rest,
719
762
  };
720
763
  }