pyric 0.0.1 → 0.1.0-alpha.10

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 (1204) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +179 -2
  3. package/README.md.orig +54 -0
  4. package/dist/ai/backend.d.ts +35 -0
  5. package/dist/ai/backend.d.ts.map +1 -0
  6. package/dist/ai/backend.js +42 -0
  7. package/dist/ai/backend.js.map +1 -0
  8. package/dist/ai/broker/broker.d.ts +65 -0
  9. package/dist/ai/broker/broker.d.ts.map +1 -0
  10. package/dist/ai/broker/broker.js +184 -0
  11. package/dist/ai/broker/broker.js.map +1 -0
  12. package/dist/ai/broker/index.d.ts +12 -0
  13. package/dist/ai/broker/index.d.ts.map +1 -0
  14. package/dist/ai/broker/index.js +11 -0
  15. package/dist/ai/broker/index.js.map +1 -0
  16. package/dist/ai/broker/openai-engine.d.ts +175 -0
  17. package/dist/ai/broker/openai-engine.d.ts.map +1 -0
  18. package/dist/ai/broker/openai-engine.js +502 -0
  19. package/dist/ai/broker/openai-engine.js.map +1 -0
  20. package/dist/ai/broker/scripted-engine.d.ts +44 -0
  21. package/dist/ai/broker/scripted-engine.d.ts.map +1 -0
  22. package/dist/ai/broker/scripted-engine.js +218 -0
  23. package/dist/ai/broker/scripted-engine.js.map +1 -0
  24. package/dist/ai/broker/synthesizer.d.ts +100 -0
  25. package/dist/ai/broker/synthesizer.d.ts.map +1 -0
  26. package/dist/ai/broker/synthesizer.js +278 -0
  27. package/dist/ai/broker/synthesizer.js.map +1 -0
  28. package/dist/ai/broker/types.d.ts +210 -0
  29. package/dist/ai/broker/types.d.ts.map +1 -0
  30. package/dist/ai/broker/types.js +20 -0
  31. package/dist/ai/broker/types.js.map +1 -0
  32. package/dist/ai/enums.d.ts +174 -0
  33. package/dist/ai/enums.d.ts.map +1 -0
  34. package/dist/ai/enums.js +155 -0
  35. package/dist/ai/enums.js.map +1 -0
  36. package/dist/ai/errors.d.ts +66 -0
  37. package/dist/ai/errors.d.ts.map +1 -0
  38. package/dist/ai/errors.js +100 -0
  39. package/dist/ai/errors.js.map +1 -0
  40. package/dist/ai/index.d.ts +31 -0
  41. package/dist/ai/index.d.ts.map +1 -0
  42. package/dist/ai/index.js +27 -0
  43. package/dist/ai/index.js.map +1 -0
  44. package/dist/ai/instances.d.ts +15 -0
  45. package/dist/ai/instances.d.ts.map +1 -0
  46. package/dist/ai/instances.js +69 -0
  47. package/dist/ai/instances.js.map +1 -0
  48. package/dist/ai/internal.d.ts +13 -0
  49. package/dist/ai/internal.d.ts.map +1 -0
  50. package/dist/ai/internal.js +45 -0
  51. package/dist/ai/internal.js.map +1 -0
  52. package/dist/ai/models.d.ts +116 -0
  53. package/dist/ai/models.d.ts.map +1 -0
  54. package/dist/ai/models.js +213 -0
  55. package/dist/ai/models.js.map +1 -0
  56. package/dist/ai/request-helpers.d.ts +59 -0
  57. package/dist/ai/request-helpers.d.ts.map +1 -0
  58. package/dist/ai/request-helpers.js +157 -0
  59. package/dist/ai/request-helpers.js.map +1 -0
  60. package/dist/ai/response-helpers.d.ts +41 -0
  61. package/dist/ai/response-helpers.d.ts.map +1 -0
  62. package/dist/ai/response-helpers.js +204 -0
  63. package/dist/ai/response-helpers.js.map +1 -0
  64. package/dist/ai/sandbox-plane.d.ts +41 -0
  65. package/dist/ai/sandbox-plane.d.ts.map +1 -0
  66. package/dist/ai/sandbox-plane.js +159 -0
  67. package/dist/ai/sandbox-plane.js.map +1 -0
  68. package/dist/ai/schema.d.ts +105 -0
  69. package/dist/ai/schema.d.ts.map +1 -0
  70. package/dist/ai/schema.js +174 -0
  71. package/dist/ai/schema.js.map +1 -0
  72. package/dist/ai/scripting.d.ts +53 -0
  73. package/dist/ai/scripting.d.ts.map +1 -0
  74. package/dist/ai/scripting.js +73 -0
  75. package/dist/ai/scripting.js.map +1 -0
  76. package/dist/ai/target.d.ts +20 -0
  77. package/dist/ai/target.d.ts.map +1 -0
  78. package/dist/ai/target.js +29 -0
  79. package/dist/ai/target.js.map +1 -0
  80. package/dist/ai/types.d.ts +400 -0
  81. package/dist/ai/types.d.ts.map +1 -0
  82. package/dist/ai/types.js +10 -0
  83. package/dist/ai/types.js.map +1 -0
  84. package/dist/app/diagnostics.d.ts +29 -0
  85. package/dist/app/diagnostics.d.ts.map +1 -0
  86. package/dist/app/diagnostics.js +88 -0
  87. package/dist/app/diagnostics.js.map +1 -0
  88. package/dist/app/index.d.ts +7 -0
  89. package/dist/app/index.d.ts.map +1 -0
  90. package/dist/app/index.js +5 -0
  91. package/dist/app/index.js.map +1 -0
  92. package/dist/app/internal.d.ts +11 -0
  93. package/dist/app/internal.d.ts.map +1 -0
  94. package/dist/app/internal.js +18 -0
  95. package/dist/app/internal.js.map +1 -0
  96. package/dist/app/options.d.ts +3 -0
  97. package/dist/app/options.d.ts.map +1 -0
  98. package/dist/app/options.js +19 -0
  99. package/dist/app/options.js.map +1 -0
  100. package/dist/app/register.d.ts +4 -0
  101. package/dist/app/register.d.ts.map +1 -0
  102. package/dist/app/register.js +35 -0
  103. package/dist/app/register.js.map +1 -0
  104. package/dist/app/registry.d.ts +12 -0
  105. package/dist/app/registry.d.ts.map +1 -0
  106. package/dist/app/registry.js +147 -0
  107. package/dist/app/registry.js.map +1 -0
  108. package/dist/app/runtime.d.ts +18 -0
  109. package/dist/app/runtime.d.ts.map +1 -0
  110. package/dist/app/runtime.js +119 -0
  111. package/dist/app/runtime.js.map +1 -0
  112. package/dist/app/types.d.ts +21 -0
  113. package/dist/app/types.d.ts.map +1 -0
  114. package/dist/app/types.js +2 -0
  115. package/dist/app/types.js.map +1 -0
  116. package/dist/auth/action-code-url.d.ts +70 -0
  117. package/dist/auth/action-code-url.d.ts.map +1 -0
  118. package/dist/auth/action-code-url.js +124 -0
  119. package/dist/auth/action-code-url.js.map +1 -0
  120. package/dist/auth/action-codes.d.ts +201 -0
  121. package/dist/auth/action-codes.d.ts.map +1 -0
  122. package/dist/auth/action-codes.js +355 -0
  123. package/dist/auth/action-codes.js.map +1 -0
  124. package/dist/auth/auth-errors.d.ts +21 -0
  125. package/dist/auth/auth-errors.d.ts.map +1 -0
  126. package/dist/auth/auth-errors.js +23 -0
  127. package/dist/auth/auth-errors.js.map +1 -0
  128. package/dist/auth/config-tokens.d.ts +90 -0
  129. package/dist/auth/config-tokens.d.ts.map +1 -0
  130. package/dist/auth/config-tokens.js +86 -0
  131. package/dist/auth/config-tokens.js.map +1 -0
  132. package/dist/auth/credentials.d.ts +140 -0
  133. package/dist/auth/credentials.d.ts.map +1 -0
  134. package/dist/auth/credentials.js +194 -0
  135. package/dist/auth/credentials.js.map +1 -0
  136. package/dist/auth/email-link.d.ts +91 -0
  137. package/dist/auth/email-link.d.ts.map +1 -0
  138. package/dist/auth/email-link.js +172 -0
  139. package/dist/auth/email-link.js.map +1 -0
  140. package/dist/auth/enums.d.ts +210 -0
  141. package/dist/auth/enums.d.ts.map +1 -0
  142. package/dist/auth/enums.js +206 -0
  143. package/dist/auth/enums.js.map +1 -0
  144. package/dist/auth/index.d.ts +3 -0
  145. package/dist/auth/index.d.ts.map +1 -0
  146. package/dist/auth/index.js +3 -0
  147. package/dist/auth/index.js.map +1 -0
  148. package/dist/auth/instances.d.ts +14 -0
  149. package/dist/auth/instances.d.ts.map +1 -0
  150. package/dist/auth/instances.js +95 -0
  151. package/dist/auth/instances.js.map +1 -0
  152. package/dist/auth/linking.d.ts +93 -0
  153. package/dist/auth/linking.d.ts.map +1 -0
  154. package/dist/auth/linking.js +189 -0
  155. package/dist/auth/linking.js.map +1 -0
  156. package/dist/auth/modular.d.ts +22 -0
  157. package/dist/auth/modular.d.ts.map +1 -0
  158. package/dist/auth/modular.js +18 -0
  159. package/dist/auth/modular.js.map +1 -0
  160. package/dist/auth/password-policy.d.ts +60 -0
  161. package/dist/auth/password-policy.d.ts.map +1 -0
  162. package/dist/auth/password-policy.js +68 -0
  163. package/dist/auth/password-policy.js.map +1 -0
  164. package/dist/auth/providers.d.ts +153 -0
  165. package/dist/auth/providers.d.ts.map +1 -0
  166. package/dist/auth/providers.js +207 -0
  167. package/dist/auth/providers.js.map +1 -0
  168. package/dist/auth/reauth.d.ts +73 -0
  169. package/dist/auth/reauth.d.ts.map +1 -0
  170. package/dist/auth/reauth.js +148 -0
  171. package/dist/auth/reauth.js.map +1 -0
  172. package/dist/auth/sandbox/driver.d.ts +51 -0
  173. package/dist/auth/sandbox/driver.d.ts.map +1 -0
  174. package/dist/auth/sandbox/driver.js +88 -0
  175. package/dist/auth/sandbox/driver.js.map +1 -0
  176. package/dist/auth/sandbox/persistence.d.ts +7 -0
  177. package/dist/auth/sandbox/persistence.d.ts.map +1 -0
  178. package/dist/auth/sandbox/persistence.js +121 -0
  179. package/dist/auth/sandbox/persistence.js.map +1 -0
  180. package/dist/auth/sandbox/project-store.d.ts +15 -0
  181. package/dist/auth/sandbox/project-store.d.ts.map +1 -0
  182. package/dist/auth/sandbox/project-store.js +17 -0
  183. package/dist/auth/sandbox/project-store.js.map +1 -0
  184. package/dist/auth/sandbox-auth-flow.d.ts +173 -0
  185. package/dist/auth/sandbox-auth-flow.d.ts.map +1 -0
  186. package/dist/auth/sandbox-auth-flow.js +165 -0
  187. package/dist/auth/sandbox-auth-flow.js.map +1 -0
  188. package/dist/auth/sandbox-backend-types.d.ts +197 -0
  189. package/dist/auth/sandbox-backend-types.d.ts.map +1 -0
  190. package/dist/auth/sandbox-backend-types.js +18 -0
  191. package/dist/auth/sandbox-backend-types.js.map +1 -0
  192. package/dist/auth/sandbox-backend.d.ts +811 -0
  193. package/dist/auth/sandbox-backend.d.ts.map +1 -0
  194. package/dist/auth/sandbox-backend.js +2007 -0
  195. package/dist/auth/sandbox-backend.js.map +1 -0
  196. package/dist/auth/sandbox-credential-validators.d.ts +30 -0
  197. package/dist/auth/sandbox-credential-validators.d.ts.map +1 -0
  198. package/dist/auth/sandbox-credential-validators.js +47 -0
  199. package/dist/auth/sandbox-credential-validators.js.map +1 -0
  200. package/dist/auth/sandbox-token.d.ts +24 -0
  201. package/dist/auth/sandbox-token.d.ts.map +1 -0
  202. package/dist/auth/sandbox-token.js +32 -0
  203. package/dist/auth/sandbox-token.js.map +1 -0
  204. package/dist/auth/sign-in.d.ts +14 -0
  205. package/dist/auth/sign-in.d.ts.map +1 -0
  206. package/dist/auth/sign-in.js +140 -0
  207. package/dist/auth/sign-in.js.map +1 -0
  208. package/dist/auth/target.d.ts +29 -0
  209. package/dist/auth/target.d.ts.map +1 -0
  210. package/dist/auth/target.js +23 -0
  211. package/dist/auth/target.js.map +1 -0
  212. package/dist/auth/tokens.d.ts +54 -0
  213. package/dist/auth/tokens.d.ts.map +1 -0
  214. package/dist/auth/tokens.js +142 -0
  215. package/dist/auth/tokens.js.map +1 -0
  216. package/dist/auth/types.d.ts +283 -0
  217. package/dist/auth/types.d.ts.map +1 -0
  218. package/dist/auth/types.js +24 -0
  219. package/dist/auth/types.js.map +1 -0
  220. package/dist/auth/user-lifecycle.d.ts +17 -0
  221. package/dist/auth/user-lifecycle.d.ts.map +1 -0
  222. package/dist/auth/user-lifecycle.js +60 -0
  223. package/dist/auth/user-lifecycle.js.map +1 -0
  224. package/dist/database/index.d.ts +9 -0
  225. package/dist/database/index.d.ts.map +1 -0
  226. package/dist/database/index.js +9 -0
  227. package/dist/database/index.js.map +1 -0
  228. package/dist/database/listener-registry.d.ts +16 -0
  229. package/dist/database/listener-registry.d.ts.map +1 -0
  230. package/dist/database/listener-registry.js +68 -0
  231. package/dist/database/listener-registry.js.map +1 -0
  232. package/dist/database/modular.d.ts +632 -0
  233. package/dist/database/modular.d.ts.map +1 -0
  234. package/dist/database/modular.js +1071 -0
  235. package/dist/database/modular.js.map +1 -0
  236. package/dist/database/replay.d.ts +32 -0
  237. package/dist/database/replay.d.ts.map +1 -0
  238. package/dist/database/replay.js +124 -0
  239. package/dist/database/replay.js.map +1 -0
  240. package/dist/database/sandbox/backend-for.d.ts +10 -0
  241. package/dist/database/sandbox/backend-for.d.ts.map +1 -0
  242. package/dist/database/sandbox/backend-for.js +19 -0
  243. package/dist/database/sandbox/backend-for.js.map +1 -0
  244. package/dist/database/sandbox/backend.d.ts +407 -0
  245. package/dist/database/sandbox/backend.d.ts.map +1 -0
  246. package/dist/database/sandbox/backend.js +1495 -0
  247. package/dist/database/sandbox/backend.js.map +1 -0
  248. package/dist/database/sandbox/data-tree.d.ts +123 -0
  249. package/dist/database/sandbox/data-tree.d.ts.map +1 -0
  250. package/dist/database/sandbox/data-tree.js +310 -0
  251. package/dist/database/sandbox/data-tree.js.map +1 -0
  252. package/dist/database/sandbox/normalize.d.ts +77 -0
  253. package/dist/database/sandbox/normalize.d.ts.map +1 -0
  254. package/dist/database/sandbox/normalize.js +165 -0
  255. package/dist/database/sandbox/normalize.js.map +1 -0
  256. package/dist/database/sandbox/push-id.d.ts +32 -0
  257. package/dist/database/sandbox/push-id.d.ts.map +1 -0
  258. package/dist/database/sandbox/push-id.js +82 -0
  259. package/dist/database/sandbox/push-id.js.map +1 -0
  260. package/dist/database/sandbox/query.d.ts +175 -0
  261. package/dist/database/sandbox/query.d.ts.map +1 -0
  262. package/dist/database/sandbox/query.js +269 -0
  263. package/dist/database/sandbox/query.js.map +1 -0
  264. package/dist/database/sandbox/rules-eval.d.ts +87 -0
  265. package/dist/database/sandbox/rules-eval.d.ts.map +1 -0
  266. package/dist/database/sandbox/rules-eval.js +131 -0
  267. package/dist/database/sandbox/rules-eval.js.map +1 -0
  268. package/dist/database/sandbox/sentinels.d.ts +71 -0
  269. package/dist/database/sandbox/sentinels.d.ts.map +1 -0
  270. package/dist/database/sandbox/sentinels.js +92 -0
  271. package/dist/database/sandbox/sentinels.js.map +1 -0
  272. package/dist/database/sandbox-controls.d.ts +15 -0
  273. package/dist/database/sandbox-controls.d.ts.map +1 -0
  274. package/dist/database/sandbox-controls.js +18 -0
  275. package/dist/database/sandbox-controls.js.map +1 -0
  276. package/dist/firestore/aggregates.d.ts +50 -0
  277. package/dist/firestore/aggregates.d.ts.map +1 -0
  278. package/dist/firestore/aggregates.js +40 -0
  279. package/dist/firestore/aggregates.js.map +1 -0
  280. package/dist/firestore/equality.d.ts +5 -0
  281. package/dist/firestore/equality.d.ts.map +1 -0
  282. package/dist/firestore/equality.js +20 -0
  283. package/dist/firestore/equality.js.map +1 -0
  284. package/dist/firestore/field-values.d.ts +61 -0
  285. package/dist/firestore/field-values.d.ts.map +1 -0
  286. package/dist/firestore/field-values.js +167 -0
  287. package/dist/firestore/field-values.js.map +1 -0
  288. package/dist/firestore/index.d.ts +54 -0
  289. package/dist/firestore/index.d.ts.map +1 -0
  290. package/dist/firestore/index.js +54 -0
  291. package/dist/firestore/index.js.map +1 -0
  292. package/dist/firestore/instances.d.ts +123 -0
  293. package/dist/firestore/instances.d.ts.map +1 -0
  294. package/dist/firestore/instances.js +177 -0
  295. package/dist/firestore/instances.js.map +1 -0
  296. package/dist/firestore/internal/index.d.ts +2 -0
  297. package/dist/firestore/internal/index.d.ts.map +1 -0
  298. package/dist/firestore/internal/index.js +2 -0
  299. package/dist/firestore/internal/index.js.map +1 -0
  300. package/dist/firestore/internal/listener-routing.d.ts +4 -0
  301. package/dist/firestore/internal/listener-routing.d.ts.map +1 -0
  302. package/dist/firestore/internal/listener-routing.js +4 -0
  303. package/dist/firestore/internal/listener-routing.js.map +1 -0
  304. package/dist/firestore/listeners.d.ts +12 -0
  305. package/dist/firestore/listeners.d.ts.map +1 -0
  306. package/dist/firestore/listeners.js +200 -0
  307. package/dist/firestore/listeners.js.map +1 -0
  308. package/dist/firestore/persistence.d.ts +227 -0
  309. package/dist/firestore/persistence.d.ts.map +1 -0
  310. package/dist/firestore/persistence.js +245 -0
  311. package/dist/firestore/persistence.js.map +1 -0
  312. package/dist/firestore/query-constraints.d.ts +72 -0
  313. package/dist/firestore/query-constraints.d.ts.map +1 -0
  314. package/dist/firestore/query-constraints.js +168 -0
  315. package/dist/firestore/query-constraints.js.map +1 -0
  316. package/dist/firestore/reads.d.ts +12 -0
  317. package/dist/firestore/reads.d.ts.map +1 -0
  318. package/dist/firestore/reads.js +32 -0
  319. package/dist/firestore/reads.js.map +1 -0
  320. package/dist/firestore/refs.d.ts +27 -0
  321. package/dist/firestore/refs.d.ts.map +1 -0
  322. package/dist/firestore/refs.js +74 -0
  323. package/dist/firestore/refs.js.map +1 -0
  324. package/dist/firestore/sandbox-controls.d.ts +60 -0
  325. package/dist/firestore/sandbox-controls.d.ts.map +1 -0
  326. package/dist/firestore/sandbox-controls.js +77 -0
  327. package/dist/firestore/sandbox-controls.js.map +1 -0
  328. package/dist/firestore/snapshots.d.ts +71 -0
  329. package/dist/firestore/snapshots.d.ts.map +1 -0
  330. package/dist/firestore/snapshots.js +160 -0
  331. package/dist/firestore/snapshots.js.map +1 -0
  332. package/dist/firestore/state.d.ts +168 -0
  333. package/dist/firestore/state.d.ts.map +1 -0
  334. package/dist/firestore/state.js +260 -0
  335. package/dist/firestore/state.js.map +1 -0
  336. package/dist/firestore/tools.d.ts +71 -0
  337. package/dist/firestore/tools.d.ts.map +1 -0
  338. package/dist/firestore/tools.js +320 -0
  339. package/dist/firestore/tools.js.map +1 -0
  340. package/dist/firestore/transactions.d.ts +4 -0
  341. package/dist/firestore/transactions.d.ts.map +1 -0
  342. package/dist/firestore/transactions.js +14 -0
  343. package/dist/firestore/transactions.js.map +1 -0
  344. package/dist/firestore/types.d.ts +82 -0
  345. package/dist/firestore/types.d.ts.map +1 -0
  346. package/dist/firestore/types.js +15 -0
  347. package/dist/firestore/types.js.map +1 -0
  348. package/dist/firestore/writes.d.ts +43 -0
  349. package/dist/firestore/writes.d.ts.map +1 -0
  350. package/dist/firestore/writes.js +40 -0
  351. package/dist/firestore/writes.js.map +1 -0
  352. package/dist/firestore-values/index.d.ts +63 -0
  353. package/dist/firestore-values/index.d.ts.map +1 -0
  354. package/dist/firestore-values/index.js +148 -0
  355. package/dist/firestore-values/index.js.map +1 -0
  356. package/dist/messaging/broker/broker.d.ts +171 -0
  357. package/dist/messaging/broker/broker.d.ts.map +1 -0
  358. package/dist/messaging/broker/broker.js +400 -0
  359. package/dist/messaging/broker/broker.js.map +1 -0
  360. package/dist/messaging/broker/envelopes.d.ts +96 -0
  361. package/dist/messaging/broker/envelopes.d.ts.map +1 -0
  362. package/dist/messaging/broker/envelopes.js +132 -0
  363. package/dist/messaging/broker/envelopes.js.map +1 -0
  364. package/dist/messaging/broker/index.d.ts +27 -0
  365. package/dist/messaging/broker/index.d.ts.map +1 -0
  366. package/dist/messaging/broker/index.js +21 -0
  367. package/dist/messaging/broker/index.js.map +1 -0
  368. package/dist/messaging/broker/tokens.d.ts +22 -0
  369. package/dist/messaging/broker/tokens.d.ts.map +1 -0
  370. package/dist/messaging/broker/tokens.js +37 -0
  371. package/dist/messaging/broker/tokens.js.map +1 -0
  372. package/dist/messaging/broker/types.d.ts +117 -0
  373. package/dist/messaging/broker/types.d.ts.map +1 -0
  374. package/dist/messaging/broker/types.js +12 -0
  375. package/dist/messaging/broker/types.js.map +1 -0
  376. package/dist/messaging/broker/validate.d.ts +58 -0
  377. package/dist/messaging/broker/validate.d.ts.map +1 -0
  378. package/dist/messaging/broker/validate.js +196 -0
  379. package/dist/messaging/broker/validate.js.map +1 -0
  380. package/dist/messaging/client.d.ts +108 -0
  381. package/dist/messaging/client.d.ts.map +1 -0
  382. package/dist/messaging/client.js +65 -0
  383. package/dist/messaging/client.js.map +1 -0
  384. package/dist/messaging/index.d.ts +3 -0
  385. package/dist/messaging/index.d.ts.map +1 -0
  386. package/dist/messaging/index.js +3 -0
  387. package/dist/messaging/index.js.map +1 -0
  388. package/dist/messaging/instance.d.ts +72 -0
  389. package/dist/messaging/instance.d.ts.map +1 -0
  390. package/dist/messaging/instance.js +93 -0
  391. package/dist/messaging/instance.js.map +1 -0
  392. package/dist/messaging/internal.d.ts +12 -0
  393. package/dist/messaging/internal.d.ts.map +1 -0
  394. package/dist/messaging/internal.js +12 -0
  395. package/dist/messaging/internal.js.map +1 -0
  396. package/dist/messaging/sw.d.ts +49 -0
  397. package/dist/messaging/sw.d.ts.map +1 -0
  398. package/dist/messaging/sw.js +49 -0
  399. package/dist/messaging/sw.js.map +1 -0
  400. package/dist/project-scope.d.ts +5 -0
  401. package/dist/project-scope.d.ts.map +1 -0
  402. package/dist/project-scope.js +2 -0
  403. package/dist/project-scope.js.map +1 -0
  404. package/dist/rules/api/assert.d.ts +39 -0
  405. package/dist/rules/api/assert.d.ts.map +1 -0
  406. package/dist/rules/api/assert.js +93 -0
  407. package/dist/rules/api/assert.js.map +1 -0
  408. package/dist/rules/api/case-types.d.ts +141 -0
  409. package/dist/rules/api/case-types.d.ts.map +1 -0
  410. package/dist/rules/api/case-types.js +13 -0
  411. package/dist/rules/api/case-types.js.map +1 -0
  412. package/dist/rules/api/errors.d.ts +38 -0
  413. package/dist/rules/api/errors.d.ts.map +1 -0
  414. package/dist/rules/api/errors.js +47 -0
  415. package/dist/rules/api/errors.js.map +1 -0
  416. package/dist/rules/api/firestore.d.ts +34 -0
  417. package/dist/rules/api/firestore.d.ts.map +1 -0
  418. package/dist/rules/api/firestore.js +137 -0
  419. package/dist/rules/api/firestore.js.map +1 -0
  420. package/dist/rules/api/issue.d.ts +50 -0
  421. package/dist/rules/api/issue.d.ts.map +1 -0
  422. package/dist/rules/api/issue.js +66 -0
  423. package/dist/rules/api/issue.js.map +1 -0
  424. package/dist/rules/api/lint.d.ts +16 -0
  425. package/dist/rules/api/lint.d.ts.map +1 -0
  426. package/dist/rules/api/lint.js +60 -0
  427. package/dist/rules/api/lint.js.map +1 -0
  428. package/dist/rules/api/rtdb.d.ts +33 -0
  429. package/dist/rules/api/rtdb.d.ts.map +1 -0
  430. package/dist/rules/api/rtdb.js +166 -0
  431. package/dist/rules/api/rtdb.js.map +1 -0
  432. package/dist/rules/api/values.d.ts +51 -0
  433. package/dist/rules/api/values.d.ts.map +1 -0
  434. package/dist/rules/api/values.js +66 -0
  435. package/dist/rules/api/values.js.map +1 -0
  436. package/dist/rules/generators/assembler.d.ts +19 -0
  437. package/dist/rules/generators/assembler.d.ts.map +1 -0
  438. package/dist/rules/generators/assembler.js +292 -0
  439. package/dist/rules/generators/assembler.js.map +1 -0
  440. package/dist/rules/generators/expressions.d.ts +52 -0
  441. package/dist/rules/generators/expressions.d.ts.map +1 -0
  442. package/dist/rules/generators/expressions.js +117 -0
  443. package/dist/rules/generators/expressions.js.map +1 -0
  444. package/dist/rules/generators/grid.d.ts +22 -0
  445. package/dist/rules/generators/grid.d.ts.map +1 -0
  446. package/dist/rules/generators/grid.js +52 -0
  447. package/dist/rules/generators/grid.js.map +1 -0
  448. package/dist/rules/grammar/FirestoreAST.d.ts +129 -0
  449. package/dist/rules/grammar/FirestoreAST.d.ts.map +1 -0
  450. package/dist/rules/grammar/FirestoreAST.js +3 -0
  451. package/dist/rules/grammar/FirestoreAST.js.map +1 -0
  452. package/dist/rules/grammar/FirestoreAssembler.d.ts +5 -0
  453. package/dist/rules/grammar/FirestoreAssembler.d.ts.map +1 -0
  454. package/dist/rules/grammar/FirestoreAssembler.js +158 -0
  455. package/dist/rules/grammar/FirestoreAssembler.js.map +1 -0
  456. package/dist/rules/grammar/FirestoreParser.d.ts +46 -0
  457. package/dist/rules/grammar/FirestoreParser.d.ts.map +1 -0
  458. package/dist/rules/grammar/FirestoreParser.js +409 -0
  459. package/dist/rules/grammar/FirestoreParser.js.map +1 -0
  460. package/dist/rules/grammar/FirestoreRules.ohm +229 -0
  461. package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts +2 -0
  462. package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts.map +1 -0
  463. package/dist/rules/grammar/FirestoreRules.ohm.generated.js +234 -0
  464. package/dist/rules/grammar/FirestoreRules.ohm.generated.js.map +1 -0
  465. package/dist/rules/grammar/FirestoreValidator.d.ts +10 -0
  466. package/dist/rules/grammar/FirestoreValidator.d.ts.map +1 -0
  467. package/dist/rules/grammar/FirestoreValidator.js +482 -0
  468. package/dist/rules/grammar/FirestoreValidator.js.map +1 -0
  469. package/dist/rules/index.d.ts +41 -0
  470. package/dist/rules/index.d.ts.map +1 -0
  471. package/dist/rules/index.js +40 -0
  472. package/dist/rules/index.js.map +1 -0
  473. package/dist/rules/indexes/extract/annotation-collect.d.ts +42 -0
  474. package/dist/rules/indexes/extract/annotation-collect.d.ts.map +1 -0
  475. package/dist/rules/indexes/extract/annotation-collect.js +69 -0
  476. package/dist/rules/indexes/extract/annotation-collect.js.map +1 -0
  477. package/dist/rules/indexes/extract/annotations.d.ts +50 -0
  478. package/dist/rules/indexes/extract/annotations.d.ts.map +1 -0
  479. package/dist/rules/indexes/extract/annotations.js +144 -0
  480. package/dist/rules/indexes/extract/annotations.js.map +1 -0
  481. package/dist/rules/indexes/extract/ast.d.ts +54 -0
  482. package/dist/rules/indexes/extract/ast.d.ts.map +1 -0
  483. package/dist/rules/indexes/extract/ast.js +119 -0
  484. package/dist/rules/indexes/extract/ast.js.map +1 -0
  485. package/dist/rules/indexes/extract/classify.d.ts +41 -0
  486. package/dist/rules/indexes/extract/classify.d.ts.map +1 -0
  487. package/dist/rules/indexes/extract/classify.js +138 -0
  488. package/dist/rules/indexes/extract/classify.js.map +1 -0
  489. package/dist/rules/indexes/extract/composite.d.ts +38 -0
  490. package/dist/rules/indexes/extract/composite.d.ts.map +1 -0
  491. package/dist/rules/indexes/extract/composite.js +85 -0
  492. package/dist/rules/indexes/extract/composite.js.map +1 -0
  493. package/dist/rules/indexes/extract/dataflow.d.ts +45 -0
  494. package/dist/rules/indexes/extract/dataflow.d.ts.map +1 -0
  495. package/dist/rules/indexes/extract/dataflow.js +200 -0
  496. package/dist/rules/indexes/extract/dataflow.js.map +1 -0
  497. package/dist/rules/indexes/extract/enumerate.d.ts +41 -0
  498. package/dist/rules/indexes/extract/enumerate.d.ts.map +1 -0
  499. package/dist/rules/indexes/extract/enumerate.js +163 -0
  500. package/dist/rules/indexes/extract/enumerate.js.map +1 -0
  501. package/dist/rules/indexes/extract/extractor.d.ts +3 -0
  502. package/dist/rules/indexes/extract/extractor.d.ts.map +1 -0
  503. package/dist/rules/indexes/extract/extractor.js +274 -0
  504. package/dist/rules/indexes/extract/extractor.js.map +1 -0
  505. package/dist/rules/indexes/extract/types.d.ts +211 -0
  506. package/dist/rules/indexes/extract/types.d.ts.map +1 -0
  507. package/dist/rules/indexes/extract/types.js +14 -0
  508. package/dist/rules/indexes/extract/types.js.map +1 -0
  509. package/dist/rules/indexes/extractHandler.d.ts +16 -0
  510. package/dist/rules/indexes/extractHandler.d.ts.map +1 -0
  511. package/dist/rules/indexes/extractHandler.js +100 -0
  512. package/dist/rules/indexes/extractHandler.js.map +1 -0
  513. package/dist/rules/indexes/extractTool.d.ts +15 -0
  514. package/dist/rules/indexes/extractTool.d.ts.map +1 -0
  515. package/dist/rules/indexes/extractTool.js +55 -0
  516. package/dist/rules/indexes/extractTool.js.map +1 -0
  517. package/dist/rules/indexes/types.d.ts +71 -0
  518. package/dist/rules/indexes/types.d.ts.map +1 -0
  519. package/dist/rules/indexes/types.js +15 -0
  520. package/dist/rules/indexes/types.js.map +1 -0
  521. package/dist/rules/inspect/handler.d.ts +6 -0
  522. package/dist/rules/inspect/handler.d.ts.map +1 -0
  523. package/dist/rules/inspect/handler.js +144 -0
  524. package/dist/rules/inspect/handler.js.map +1 -0
  525. package/dist/rules/inspect/spec.d.ts +37 -0
  526. package/dist/rules/inspect/spec.d.ts.map +1 -0
  527. package/dist/rules/inspect/spec.js +2 -0
  528. package/dist/rules/inspect/spec.js.map +1 -0
  529. package/dist/rules/inspect/tools.d.ts +21 -0
  530. package/dist/rules/inspect/tools.d.ts.map +1 -0
  531. package/dist/rules/inspect/tools.js +21 -0
  532. package/dist/rules/inspect/tools.js.map +1 -0
  533. package/dist/rules/internal/extract.d.ts +28 -0
  534. package/dist/rules/internal/extract.d.ts.map +1 -0
  535. package/dist/rules/internal/extract.js +25 -0
  536. package/dist/rules/internal/extract.js.map +1 -0
  537. package/dist/rules/internal/index.d.ts +82 -0
  538. package/dist/rules/internal/index.d.ts.map +1 -0
  539. package/dist/rules/internal/index.js +103 -0
  540. package/dist/rules/internal/index.js.map +1 -0
  541. package/dist/rules/internal/node.d.ts +18 -0
  542. package/dist/rules/internal/node.d.ts.map +1 -0
  543. package/dist/rules/internal/node.js +27 -0
  544. package/dist/rules/internal/node.js.map +1 -0
  545. package/dist/rules/internal/rtdb.d.ts +20 -0
  546. package/dist/rules/internal/rtdb.d.ts.map +1 -0
  547. package/dist/rules/internal/rtdb.js +15 -0
  548. package/dist/rules/internal/rtdb.js.map +1 -0
  549. package/dist/rules/linter/ast-utils.d.ts +97 -0
  550. package/dist/rules/linter/ast-utils.d.ts.map +1 -0
  551. package/dist/rules/linter/ast-utils.js +491 -0
  552. package/dist/rules/linter/ast-utils.js.map +1 -0
  553. package/dist/rules/linter/hallucinations.d.ts +34 -0
  554. package/dist/rules/linter/hallucinations.d.ts.map +1 -0
  555. package/dist/rules/linter/hallucinations.js +334 -0
  556. package/dist/rules/linter/hallucinations.js.map +1 -0
  557. package/dist/rules/linter/linter.d.ts +84 -0
  558. package/dist/rules/linter/linter.d.ts.map +1 -0
  559. package/dist/rules/linter/linter.js +783 -0
  560. package/dist/rules/linter/linter.js.map +1 -0
  561. package/dist/rules/modules/resolver-browser.d.ts +41 -0
  562. package/dist/rules/modules/resolver-browser.d.ts.map +1 -0
  563. package/dist/rules/modules/resolver-browser.js +63 -0
  564. package/dist/rules/modules/resolver-browser.js.map +1 -0
  565. package/dist/rules/modules/resolver-core.d.ts +51 -0
  566. package/dist/rules/modules/resolver-core.d.ts.map +1 -0
  567. package/dist/rules/modules/resolver-core.js +338 -0
  568. package/dist/rules/modules/resolver-core.js.map +1 -0
  569. package/dist/rules/modules/resolver.d.ts +17 -0
  570. package/dist/rules/modules/resolver.d.ts.map +1 -0
  571. package/dist/rules/modules/resolver.js +49 -0
  572. package/dist/rules/modules/resolver.js.map +1 -0
  573. package/dist/rules/modules/stdlib/atomic.rules +52 -0
  574. package/dist/rules/modules/stdlib/atomic.test.json +152 -0
  575. package/dist/rules/modules/stdlib/auth.rules +7 -0
  576. package/dist/rules/modules/stdlib/auth.test.json +53 -0
  577. package/dist/rules/modules/stdlib/content.rules +50 -0
  578. package/dist/rules/modules/stdlib/content.test.json +238 -0
  579. package/dist/rules/modules/stdlib/counters.rules +41 -0
  580. package/dist/rules/modules/stdlib/counters.test.json +254 -0
  581. package/dist/rules/modules/stdlib/geometry.rules +43 -0
  582. package/dist/rules/modules/stdlib/geometry.test.json +200 -0
  583. package/dist/rules/modules/stdlib/joining.rules +49 -0
  584. package/dist/rules/modules/stdlib/joining.test.json +287 -0
  585. package/dist/rules/modules/stdlib/lifecycle.rules +51 -0
  586. package/dist/rules/modules/stdlib/lifecycle.test.json +288 -0
  587. package/dist/rules/modules/stdlib/lobby.rules +44 -0
  588. package/dist/rules/modules/stdlib/lobby.test.json +32 -0
  589. package/dist/rules/modules/stdlib/membership.rules +40 -0
  590. package/dist/rules/modules/stdlib/membership.test.json +107 -0
  591. package/dist/rules/modules/stdlib/spaces.rules +46 -0
  592. package/dist/rules/modules/stdlib/spaces.test.json +392 -0
  593. package/dist/rules/modules/stdlib/state.rules +28 -0
  594. package/dist/rules/modules/stdlib/state.test.json +55 -0
  595. package/dist/rules/modules/stdlib/timing.rules +20 -0
  596. package/dist/rules/modules/stdlib/timing.test.json +106 -0
  597. package/dist/rules/modules/stdlib/transitions.rules +34 -0
  598. package/dist/rules/modules/stdlib/transitions.test.json +86 -0
  599. package/dist/rules/modules/stdlib/turns.rules +27 -0
  600. package/dist/rules/modules/stdlib/turns.test.json +64 -0
  601. package/dist/rules/modules/stdlib/validation.rules +31 -0
  602. package/dist/rules/modules/stdlib/validation.test.json +184 -0
  603. package/dist/rules/modules/stdlib-content.d.ts +11 -0
  604. package/dist/rules/modules/stdlib-content.d.ts.map +1 -0
  605. package/dist/rules/modules/stdlib-content.js +590 -0
  606. package/dist/rules/modules/stdlib-content.js.map +1 -0
  607. package/dist/rules/rtdb/compiled-rules.d.ts +11 -0
  608. package/dist/rules/rtdb/compiled-rules.d.ts.map +1 -0
  609. package/dist/rules/rtdb/compiled-rules.js +95 -0
  610. package/dist/rules/rtdb/compiled-rules.js.map +1 -0
  611. package/dist/rules/rtdb/constraints/atoms.d.ts +29 -0
  612. package/dist/rules/rtdb/constraints/atoms.d.ts.map +1 -0
  613. package/dist/rules/rtdb/constraints/atoms.js +43 -0
  614. package/dist/rules/rtdb/constraints/atoms.js.map +1 -0
  615. package/dist/rules/rtdb/constraints/compose.d.ts +16 -0
  616. package/dist/rules/rtdb/constraints/compose.d.ts.map +1 -0
  617. package/dist/rules/rtdb/constraints/compose.js +15 -0
  618. package/dist/rules/rtdb/constraints/compose.js.map +1 -0
  619. package/dist/rules/rtdb/constraints/data.d.ts +30 -0
  620. package/dist/rules/rtdb/constraints/data.d.ts.map +1 -0
  621. package/dist/rules/rtdb/constraints/data.js +46 -0
  622. package/dist/rules/rtdb/constraints/data.js.map +1 -0
  623. package/dist/rules/rtdb/constraints/document.d.ts +57 -0
  624. package/dist/rules/rtdb/constraints/document.d.ts.map +1 -0
  625. package/dist/rules/rtdb/constraints/document.js +85 -0
  626. package/dist/rules/rtdb/constraints/document.js.map +1 -0
  627. package/dist/rules/rtdb/constraints/game.d.ts +30 -0
  628. package/dist/rules/rtdb/constraints/game.d.ts.map +1 -0
  629. package/dist/rules/rtdb/constraints/game.js +49 -0
  630. package/dist/rules/rtdb/constraints/game.js.map +1 -0
  631. package/dist/rules/rtdb/constraints/index.d.ts +12 -0
  632. package/dist/rules/rtdb/constraints/index.d.ts.map +1 -0
  633. package/dist/rules/rtdb/constraints/index.js +9 -0
  634. package/dist/rules/rtdb/constraints/index.js.map +1 -0
  635. package/dist/rules/rtdb/constraints/policies.d.ts +16 -0
  636. package/dist/rules/rtdb/constraints/policies.d.ts.map +1 -0
  637. package/dist/rules/rtdb/constraints/policies.js +17 -0
  638. package/dist/rules/rtdb/constraints/policies.js.map +1 -0
  639. package/dist/rules/rtdb/constraints/ruleset.d.ts +5 -0
  640. package/dist/rules/rtdb/constraints/ruleset.d.ts.map +1 -0
  641. package/dist/rules/rtdb/constraints/ruleset.js +132 -0
  642. package/dist/rules/rtdb/constraints/ruleset.js.map +1 -0
  643. package/dist/rules/rtdb/constraints/schema.d.ts +17 -0
  644. package/dist/rules/rtdb/constraints/schema.d.ts.map +1 -0
  645. package/dist/rules/rtdb/constraints/schema.js +74 -0
  646. package/dist/rules/rtdb/constraints/schema.js.map +1 -0
  647. package/dist/rules/rtdb/constraints/types.d.ts +22 -0
  648. package/dist/rules/rtdb/constraints/types.d.ts.map +1 -0
  649. package/dist/rules/rtdb/constraints/types.js +2 -0
  650. package/dist/rules/rtdb/constraints/types.js.map +1 -0
  651. package/dist/rules/rtdb/constraints/write-rules-file.d.ts +24 -0
  652. package/dist/rules/rtdb/constraints/write-rules-file.d.ts.map +1 -0
  653. package/dist/rules/rtdb/constraints/write-rules-file.js +30 -0
  654. package/dist/rules/rtdb/constraints/write-rules-file.js.map +1 -0
  655. package/dist/rules/rtdb/expression-engine.d.ts +8 -0
  656. package/dist/rules/rtdb/expression-engine.d.ts.map +1 -0
  657. package/dist/rules/rtdb/expression-engine.js +20 -0
  658. package/dist/rules/rtdb/expression-engine.js.map +1 -0
  659. package/dist/rules/rtdb/grammar/RtdbExpr.ohm +98 -0
  660. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts +2 -0
  661. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -0
  662. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js +103 -0
  663. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js.map +1 -0
  664. package/dist/rules/rtdb/grammar/RtdbExprParser.d.ts +3 -0
  665. package/dist/rules/rtdb/grammar/RtdbExprParser.d.ts.map +1 -0
  666. package/dist/rules/rtdb/grammar/RtdbExprParser.js +56 -0
  667. package/dist/rules/rtdb/grammar/RtdbExprParser.js.map +1 -0
  668. package/dist/rules/rtdb/grammar/linter.d.ts +3 -0
  669. package/dist/rules/rtdb/grammar/linter.d.ts.map +1 -0
  670. package/dist/rules/rtdb/grammar/linter.js +73 -0
  671. package/dist/rules/rtdb/grammar/linter.js.map +1 -0
  672. package/dist/rules/rtdb/grammar/simulator.d.ts +30 -0
  673. package/dist/rules/rtdb/grammar/simulator.d.ts.map +1 -0
  674. package/dist/rules/rtdb/grammar/simulator.js +282 -0
  675. package/dist/rules/rtdb/grammar/simulator.js.map +1 -0
  676. package/dist/rules/rtdb/grammar/validator.d.ts +3 -0
  677. package/dist/rules/rtdb/grammar/validator.d.ts.map +1 -0
  678. package/dist/rules/rtdb/grammar/validator.js +91 -0
  679. package/dist/rules/rtdb/grammar/validator.js.map +1 -0
  680. package/dist/rules/rtdb/simulation/handler.d.ts +6 -0
  681. package/dist/rules/rtdb/simulation/handler.d.ts.map +1 -0
  682. package/dist/rules/rtdb/simulation/handler.js +325 -0
  683. package/dist/rules/rtdb/simulation/handler.js.map +1 -0
  684. package/dist/rules/rtdb/simulation/spec.d.ts +102 -0
  685. package/dist/rules/rtdb/simulation/spec.d.ts.map +1 -0
  686. package/dist/rules/rtdb/simulation/spec.js +40 -0
  687. package/dist/rules/rtdb/simulation/spec.js.map +1 -0
  688. package/dist/rules/rtdb/types.d.ts +166 -0
  689. package/dist/rules/rtdb/types.d.ts.map +1 -0
  690. package/dist/rules/rtdb/types.js +21 -0
  691. package/dist/rules/rtdb/types.js.map +1 -0
  692. package/dist/rules/simulator/evaluator.d.ts +206 -0
  693. package/dist/rules/simulator/evaluator.d.ts.map +1 -0
  694. package/dist/rules/simulator/evaluator.js +1251 -0
  695. package/dist/rules/simulator/evaluator.js.map +1 -0
  696. package/dist/rules/simulator/expression/eval-errors.d.ts +86 -0
  697. package/dist/rules/simulator/expression/eval-errors.d.ts.map +1 -0
  698. package/dist/rules/simulator/expression/eval-errors.js +68 -0
  699. package/dist/rules/simulator/expression/eval-errors.js.map +1 -0
  700. package/dist/rules/simulator/expression/evaluator.d.ts +43 -0
  701. package/dist/rules/simulator/expression/evaluator.d.ts.map +1 -0
  702. package/dist/rules/simulator/expression/evaluator.js +298 -0
  703. package/dist/rules/simulator/expression/evaluator.js.map +1 -0
  704. package/dist/rules/simulator/expression/lexer.d.ts +36 -0
  705. package/dist/rules/simulator/expression/lexer.d.ts.map +1 -0
  706. package/dist/rules/simulator/expression/lexer.js +318 -0
  707. package/dist/rules/simulator/expression/lexer.js.map +1 -0
  708. package/dist/rules/simulator/expression/parser.d.ts +39 -0
  709. package/dist/rules/simulator/expression/parser.d.ts.map +1 -0
  710. package/dist/rules/simulator/expression/parser.js +329 -0
  711. package/dist/rules/simulator/expression/parser.js.map +1 -0
  712. package/dist/rules/simulator/expression/types.d.ts +137 -0
  713. package/dist/rules/simulator/expression/types.d.ts.map +1 -0
  714. package/dist/rules/simulator/expression/types.js +90 -0
  715. package/dist/rules/simulator/expression/types.js.map +1 -0
  716. package/dist/rules/simulator/expression/walk-data.d.ts +52 -0
  717. package/dist/rules/simulator/expression/walk-data.d.ts.map +1 -0
  718. package/dist/rules/simulator/expression/walk-data.js +167 -0
  719. package/dist/rules/simulator/expression/walk-data.js.map +1 -0
  720. package/dist/rules/simulator/firestore-set.d.ts +25 -0
  721. package/dist/rules/simulator/firestore-set.d.ts.map +1 -0
  722. package/dist/rules/simulator/firestore-set.js +89 -0
  723. package/dist/rules/simulator/firestore-set.js.map +1 -0
  724. package/dist/rules/simulator/handler.d.ts +47 -0
  725. package/dist/rules/simulator/handler.d.ts.map +1 -0
  726. package/dist/rules/simulator/handler.js +644 -0
  727. package/dist/rules/simulator/handler.js.map +1 -0
  728. package/dist/rules/simulator/mapdiff.d.ts +29 -0
  729. package/dist/rules/simulator/mapdiff.d.ts.map +1 -0
  730. package/dist/rules/simulator/mapdiff.js +72 -0
  731. package/dist/rules/simulator/mapdiff.js.map +1 -0
  732. package/dist/rules/simulator/project-after-state.d.ts +33 -0
  733. package/dist/rules/simulator/project-after-state.d.ts.map +1 -0
  734. package/dist/rules/simulator/project-after-state.js +88 -0
  735. package/dist/rules/simulator/project-after-state.js.map +1 -0
  736. package/dist/rules/simulator/query-proof.d.ts +80 -0
  737. package/dist/rules/simulator/query-proof.d.ts.map +1 -0
  738. package/dist/rules/simulator/query-proof.js +142 -0
  739. package/dist/rules/simulator/query-proof.js.map +1 -0
  740. package/dist/rules/simulator/value-equality.d.ts +8 -0
  741. package/dist/rules/simulator/value-equality.d.ts.map +1 -0
  742. package/dist/rules/simulator/value-equality.js +40 -0
  743. package/dist/rules/simulator/value-equality.js.map +1 -0
  744. package/dist/rules/simulator/wrappers/base.d.ts +129 -0
  745. package/dist/rules/simulator/wrappers/base.d.ts.map +1 -0
  746. package/dist/rules/simulator/wrappers/base.js +90 -0
  747. package/dist/rules/simulator/wrappers/base.js.map +1 -0
  748. package/dist/rules/simulator/wrappers/bytes.d.ts +45 -0
  749. package/dist/rules/simulator/wrappers/bytes.d.ts.map +1 -0
  750. package/dist/rules/simulator/wrappers/bytes.js +130 -0
  751. package/dist/rules/simulator/wrappers/bytes.js.map +1 -0
  752. package/dist/rules/simulator/wrappers/duration.d.ts +76 -0
  753. package/dist/rules/simulator/wrappers/duration.d.ts.map +1 -0
  754. package/dist/rules/simulator/wrappers/duration.js +176 -0
  755. package/dist/rules/simulator/wrappers/duration.js.map +1 -0
  756. package/dist/rules/simulator/wrappers/float.d.ts +52 -0
  757. package/dist/rules/simulator/wrappers/float.d.ts.map +1 -0
  758. package/dist/rules/simulator/wrappers/float.js +88 -0
  759. package/dist/rules/simulator/wrappers/float.js.map +1 -0
  760. package/dist/rules/simulator/wrappers/latlng.d.ts +40 -0
  761. package/dist/rules/simulator/wrappers/latlng.d.ts.map +1 -0
  762. package/dist/rules/simulator/wrappers/latlng.js +100 -0
  763. package/dist/rules/simulator/wrappers/latlng.js.map +1 -0
  764. package/dist/rules/simulator/wrappers/path.d.ts +75 -0
  765. package/dist/rules/simulator/wrappers/path.d.ts.map +1 -0
  766. package/dist/rules/simulator/wrappers/path.js +158 -0
  767. package/dist/rules/simulator/wrappers/path.js.map +1 -0
  768. package/dist/rules/simulator/wrappers/reference.d.ts +82 -0
  769. package/dist/rules/simulator/wrappers/reference.d.ts.map +1 -0
  770. package/dist/rules/simulator/wrappers/reference.js +145 -0
  771. package/dist/rules/simulator/wrappers/reference.js.map +1 -0
  772. package/dist/rules/simulator/wrappers/timestamp.d.ts +86 -0
  773. package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -0
  774. package/dist/rules/simulator/wrappers/timestamp.js +207 -0
  775. package/dist/rules/simulator/wrappers/timestamp.js.map +1 -0
  776. package/dist/rules/simulator/wrappers/vector.d.ts +43 -0
  777. package/dist/rules/simulator/wrappers/vector.d.ts.map +1 -0
  778. package/dist/rules/simulator/wrappers/vector.js +80 -0
  779. package/dist/rules/simulator/wrappers/vector.js.map +1 -0
  780. package/dist/rules/simulator-tools-impl.d.ts +64 -0
  781. package/dist/rules/simulator-tools-impl.d.ts.map +1 -0
  782. package/dist/rules/simulator-tools-impl.js +462 -0
  783. package/dist/rules/simulator-tools-impl.js.map +1 -0
  784. package/dist/rules/simulator.d.ts +20 -0
  785. package/dist/rules/simulator.d.ts.map +1 -0
  786. package/dist/rules/simulator.js +24 -0
  787. package/dist/rules/simulator.js.map +1 -0
  788. package/dist/rules/stdlib-modules.d.ts +73 -0
  789. package/dist/rules/stdlib-modules.d.ts.map +1 -0
  790. package/dist/rules/stdlib-modules.js +837 -0
  791. package/dist/rules/stdlib-modules.js.map +1 -0
  792. package/dist/rules/stdlib-tools.d.ts +19 -0
  793. package/dist/rules/stdlib-tools.d.ts.map +1 -0
  794. package/dist/rules/stdlib-tools.js +164 -0
  795. package/dist/rules/stdlib-tools.js.map +1 -0
  796. package/dist/rules/test/handler.d.ts +21 -0
  797. package/dist/rules/test/handler.d.ts.map +1 -0
  798. package/dist/rules/test/handler.js +214 -0
  799. package/dist/rules/test/handler.js.map +1 -0
  800. package/dist/rules/test/spec.d.ts +677 -0
  801. package/dist/rules/test/spec.d.ts.map +1 -0
  802. package/dist/rules/test/spec.js +327 -0
  803. package/dist/rules/test/spec.js.map +1 -0
  804. package/dist/rules/tools.d.ts +41 -0
  805. package/dist/rules/tools.d.ts.map +1 -0
  806. package/dist/rules/tools.js +120 -0
  807. package/dist/rules/tools.js.map +1 -0
  808. package/dist/rules/write/handler.d.ts +6 -0
  809. package/dist/rules/write/handler.d.ts.map +1 -0
  810. package/dist/rules/write/handler.js +126 -0
  811. package/dist/rules/write/handler.js.map +1 -0
  812. package/dist/rules/write/spec.d.ts +28 -0
  813. package/dist/rules/write/spec.d.ts.map +1 -0
  814. package/dist/rules/write/spec.js +2 -0
  815. package/dist/rules/write/spec.js.map +1 -0
  816. package/dist/sandbox/admin-compat.d.ts +20 -0
  817. package/dist/sandbox/admin-compat.d.ts.map +1 -0
  818. package/dist/sandbox/admin-compat.js +19 -0
  819. package/dist/sandbox/admin-compat.js.map +1 -0
  820. package/dist/sandbox/admin-firestore/error-translation.d.ts +90 -0
  821. package/dist/sandbox/admin-firestore/error-translation.d.ts.map +1 -0
  822. package/dist/sandbox/admin-firestore/error-translation.js +214 -0
  823. package/dist/sandbox/admin-firestore/error-translation.js.map +1 -0
  824. package/dist/sandbox/admin-firestore/get-admin-firestore.d.ts +44 -0
  825. package/dist/sandbox/admin-firestore/get-admin-firestore.d.ts.map +1 -0
  826. package/dist/sandbox/admin-firestore/get-admin-firestore.js +62 -0
  827. package/dist/sandbox/admin-firestore/get-admin-firestore.js.map +1 -0
  828. package/dist/sandbox/admin-firestore/get-firestore.d.ts +34 -0
  829. package/dist/sandbox/admin-firestore/get-firestore.d.ts.map +1 -0
  830. package/dist/sandbox/admin-firestore/get-firestore.js +71 -0
  831. package/dist/sandbox/admin-firestore/get-firestore.js.map +1 -0
  832. package/dist/sandbox/admin-firestore/index.d.ts +36 -0
  833. package/dist/sandbox/admin-firestore/index.d.ts.map +1 -0
  834. package/dist/sandbox/admin-firestore/index.js +33 -0
  835. package/dist/sandbox/admin-firestore/index.js.map +1 -0
  836. package/dist/sandbox/admin-firestore/listeners.d.ts +46 -0
  837. package/dist/sandbox/admin-firestore/listeners.d.ts.map +1 -0
  838. package/dist/sandbox/admin-firestore/listeners.js +290 -0
  839. package/dist/sandbox/admin-firestore/listeners.js.map +1 -0
  840. package/dist/sandbox/admin-firestore/local-handle.d.ts +23 -0
  841. package/dist/sandbox/admin-firestore/local-handle.d.ts.map +1 -0
  842. package/dist/sandbox/admin-firestore/local-handle.js +74 -0
  843. package/dist/sandbox/admin-firestore/local-handle.js.map +1 -0
  844. package/dist/sandbox/admin-firestore/remote/batch.d.ts +6 -0
  845. package/dist/sandbox/admin-firestore/remote/batch.d.ts.map +1 -0
  846. package/dist/sandbox/admin-firestore/remote/batch.js +38 -0
  847. package/dist/sandbox/admin-firestore/remote/batch.js.map +1 -0
  848. package/dist/sandbox/admin-firestore/remote/channel.d.ts +22 -0
  849. package/dist/sandbox/admin-firestore/remote/channel.d.ts.map +1 -0
  850. package/dist/sandbox/admin-firestore/remote/channel.js +27 -0
  851. package/dist/sandbox/admin-firestore/remote/channel.js.map +1 -0
  852. package/dist/sandbox/admin-firestore/remote/doc-ref.d.ts +10 -0
  853. package/dist/sandbox/admin-firestore/remote/doc-ref.d.ts.map +1 -0
  854. package/dist/sandbox/admin-firestore/remote/doc-ref.js +88 -0
  855. package/dist/sandbox/admin-firestore/remote/doc-ref.js.map +1 -0
  856. package/dist/sandbox/admin-firestore/remote/errors.d.ts +17 -0
  857. package/dist/sandbox/admin-firestore/remote/errors.d.ts.map +1 -0
  858. package/dist/sandbox/admin-firestore/remote/errors.js +32 -0
  859. package/dist/sandbox/admin-firestore/remote/errors.js.map +1 -0
  860. package/dist/sandbox/admin-firestore/remote/listeners.d.ts +43 -0
  861. package/dist/sandbox/admin-firestore/remote/listeners.d.ts.map +1 -0
  862. package/dist/sandbox/admin-firestore/remote/listeners.js +89 -0
  863. package/dist/sandbox/admin-firestore/remote/listeners.js.map +1 -0
  864. package/dist/sandbox/admin-firestore/remote/query.d.ts +47 -0
  865. package/dist/sandbox/admin-firestore/remote/query.d.ts.map +1 -0
  866. package/dist/sandbox/admin-firestore/remote/query.js +186 -0
  867. package/dist/sandbox/admin-firestore/remote/query.js.map +1 -0
  868. package/dist/sandbox/admin-firestore/remote/remote-firestore.d.ts +55 -0
  869. package/dist/sandbox/admin-firestore/remote/remote-firestore.d.ts.map +1 -0
  870. package/dist/sandbox/admin-firestore/remote/remote-firestore.js +111 -0
  871. package/dist/sandbox/admin-firestore/remote/remote-firestore.js.map +1 -0
  872. package/dist/sandbox/admin-firestore/remote/snapshots.d.ts +10 -0
  873. package/dist/sandbox/admin-firestore/remote/snapshots.d.ts.map +1 -0
  874. package/dist/sandbox/admin-firestore/remote/snapshots.js +37 -0
  875. package/dist/sandbox/admin-firestore/remote/snapshots.js.map +1 -0
  876. package/dist/sandbox/admin-firestore/remote/transaction.d.ts +19 -0
  877. package/dist/sandbox/admin-firestore/remote/transaction.d.ts.map +1 -0
  878. package/dist/sandbox/admin-firestore/remote/transaction.js +105 -0
  879. package/dist/sandbox/admin-firestore/remote/transaction.js.map +1 -0
  880. package/dist/sandbox/admin-firestore/remote/value-codec.d.ts +52 -0
  881. package/dist/sandbox/admin-firestore/remote/value-codec.d.ts.map +1 -0
  882. package/dist/sandbox/admin-firestore/remote/value-codec.js +120 -0
  883. package/dist/sandbox/admin-firestore/remote/value-codec.js.map +1 -0
  884. package/dist/sandbox/admin-firestore/remote/wire-types.d.ts +111 -0
  885. package/dist/sandbox/admin-firestore/remote/wire-types.d.ts.map +1 -0
  886. package/dist/sandbox/admin-firestore/remote/wire-types.js +8 -0
  887. package/dist/sandbox/admin-firestore/remote/wire-types.js.map +1 -0
  888. package/dist/sandbox/admin-firestore/types.d.ts +59 -0
  889. package/dist/sandbox/admin-firestore/types.d.ts.map +1 -0
  890. package/dist/sandbox/admin-firestore/types.js +6 -0
  891. package/dist/sandbox/admin-firestore/types.js.map +1 -0
  892. package/dist/sandbox/branches/index.d.ts +141 -0
  893. package/dist/sandbox/branches/index.d.ts.map +1 -0
  894. package/dist/sandbox/branches/index.js +327 -0
  895. package/dist/sandbox/branches/index.js.map +1 -0
  896. package/dist/sandbox/firestore/admin-compat/batch.d.ts +34 -0
  897. package/dist/sandbox/firestore/admin-compat/batch.d.ts.map +1 -0
  898. package/dist/sandbox/firestore/admin-compat/batch.js +73 -0
  899. package/dist/sandbox/firestore/admin-compat/batch.js.map +1 -0
  900. package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts +38 -0
  901. package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts.map +1 -0
  902. package/dist/sandbox/firestore/admin-compat/doc-ref.js +154 -0
  903. package/dist/sandbox/firestore/admin-compat/doc-ref.js.map +1 -0
  904. package/dist/sandbox/firestore/admin-compat/firestore.d.ts +47 -0
  905. package/dist/sandbox/firestore/admin-compat/firestore.d.ts.map +1 -0
  906. package/dist/sandbox/firestore/admin-compat/firestore.js +117 -0
  907. package/dist/sandbox/firestore/admin-compat/firestore.js.map +1 -0
  908. package/dist/sandbox/firestore/admin-compat/index.d.ts +49 -0
  909. package/dist/sandbox/firestore/admin-compat/index.d.ts.map +1 -0
  910. package/dist/sandbox/firestore/admin-compat/index.js +27 -0
  911. package/dist/sandbox/firestore/admin-compat/index.js.map +1 -0
  912. package/dist/sandbox/firestore/admin-compat/paths.d.ts +37 -0
  913. package/dist/sandbox/firestore/admin-compat/paths.d.ts.map +1 -0
  914. package/dist/sandbox/firestore/admin-compat/paths.js +49 -0
  915. package/dist/sandbox/firestore/admin-compat/paths.js.map +1 -0
  916. package/dist/sandbox/firestore/admin-compat/query.d.ts +261 -0
  917. package/dist/sandbox/firestore/admin-compat/query.d.ts.map +1 -0
  918. package/dist/sandbox/firestore/admin-compat/query.js +758 -0
  919. package/dist/sandbox/firestore/admin-compat/query.js.map +1 -0
  920. package/dist/sandbox/firestore/admin-compat/read-translation.d.ts +8 -0
  921. package/dist/sandbox/firestore/admin-compat/read-translation.d.ts.map +1 -0
  922. package/dist/sandbox/firestore/admin-compat/read-translation.js +59 -0
  923. package/dist/sandbox/firestore/admin-compat/read-translation.js.map +1 -0
  924. package/dist/sandbox/firestore/admin-compat/snapshots.d.ts +39 -0
  925. package/dist/sandbox/firestore/admin-compat/snapshots.d.ts.map +1 -0
  926. package/dist/sandbox/firestore/admin-compat/snapshots.js +50 -0
  927. package/dist/sandbox/firestore/admin-compat/snapshots.js.map +1 -0
  928. package/dist/sandbox/firestore/admin-compat/transaction.d.ts +35 -0
  929. package/dist/sandbox/firestore/admin-compat/transaction.d.ts.map +1 -0
  930. package/dist/sandbox/firestore/admin-compat/transaction.js +88 -0
  931. package/dist/sandbox/firestore/admin-compat/transaction.js.map +1 -0
  932. package/dist/sandbox/firestore/admin-compat/types.d.ts +297 -0
  933. package/dist/sandbox/firestore/admin-compat/types.d.ts.map +1 -0
  934. package/dist/sandbox/firestore/admin-compat/types.js +127 -0
  935. package/dist/sandbox/firestore/admin-compat/types.js.map +1 -0
  936. package/dist/sandbox/firestore/admin-compat/value-order.d.ts +49 -0
  937. package/dist/sandbox/firestore/admin-compat/value-order.d.ts.map +1 -0
  938. package/dist/sandbox/firestore/admin-compat/value-order.js +172 -0
  939. package/dist/sandbox/firestore/admin-compat/value-order.js.map +1 -0
  940. package/dist/sandbox/firestore/auto-id.d.ts +26 -0
  941. package/dist/sandbox/firestore/auto-id.d.ts.map +1 -0
  942. package/dist/sandbox/firestore/auto-id.js +36 -0
  943. package/dist/sandbox/firestore/auto-id.js.map +1 -0
  944. package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts +48 -0
  945. package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts.map +1 -0
  946. package/dist/sandbox/firestore/converters/bytes-geopoint.js +85 -0
  947. package/dist/sandbox/firestore/converters/bytes-geopoint.js.map +1 -0
  948. package/dist/sandbox/firestore/converters/fieldvalue.d.ts +69 -0
  949. package/dist/sandbox/firestore/converters/fieldvalue.d.ts.map +1 -0
  950. package/dist/sandbox/firestore/converters/fieldvalue.js +166 -0
  951. package/dist/sandbox/firestore/converters/fieldvalue.js.map +1 -0
  952. package/dist/sandbox/firestore/converters/reference.d.ts +31 -0
  953. package/dist/sandbox/firestore/converters/reference.d.ts.map +1 -0
  954. package/dist/sandbox/firestore/converters/reference.js +51 -0
  955. package/dist/sandbox/firestore/converters/reference.js.map +1 -0
  956. package/dist/sandbox/firestore/converters/timestamp.d.ts +32 -0
  957. package/dist/sandbox/firestore/converters/timestamp.d.ts.map +1 -0
  958. package/dist/sandbox/firestore/converters/timestamp.js +63 -0
  959. package/dist/sandbox/firestore/converters/timestamp.js.map +1 -0
  960. package/dist/sandbox/firestore/converters/user-timestamp.d.ts +46 -0
  961. package/dist/sandbox/firestore/converters/user-timestamp.d.ts.map +1 -0
  962. package/dist/sandbox/firestore/converters/user-timestamp.js +65 -0
  963. package/dist/sandbox/firestore/converters/user-timestamp.js.map +1 -0
  964. package/dist/sandbox/firestore/converters/vector.d.ts +24 -0
  965. package/dist/sandbox/firestore/converters/vector.d.ts.map +1 -0
  966. package/dist/sandbox/firestore/converters/vector.js +53 -0
  967. package/dist/sandbox/firestore/converters/vector.js.map +1 -0
  968. package/dist/sandbox/firestore/errors.d.ts +82 -0
  969. package/dist/sandbox/firestore/errors.d.ts.map +1 -0
  970. package/dist/sandbox/firestore/errors.js +54 -0
  971. package/dist/sandbox/firestore/errors.js.map +1 -0
  972. package/dist/sandbox/firestore/event-log.d.ts +99 -0
  973. package/dist/sandbox/firestore/event-log.d.ts.map +1 -0
  974. package/dist/sandbox/firestore/event-log.js +67 -0
  975. package/dist/sandbox/firestore/event-log.js.map +1 -0
  976. package/dist/sandbox/firestore/field-merge.d.ts +64 -0
  977. package/dist/sandbox/firestore/field-merge.d.ts.map +1 -0
  978. package/dist/sandbox/firestore/field-merge.js +221 -0
  979. package/dist/sandbox/firestore/field-merge.js.map +1 -0
  980. package/dist/sandbox/firestore/list-query-proof.d.ts +77 -0
  981. package/dist/sandbox/firestore/list-query-proof.d.ts.map +1 -0
  982. package/dist/sandbox/firestore/list-query-proof.js +170 -0
  983. package/dist/sandbox/firestore/list-query-proof.js.map +1 -0
  984. package/dist/sandbox/firestore/local-environment.d.ts +825 -0
  985. package/dist/sandbox/firestore/local-environment.d.ts.map +1 -0
  986. package/dist/sandbox/firestore/local-environment.js +3129 -0
  987. package/dist/sandbox/firestore/local-environment.js.map +1 -0
  988. package/dist/sandbox/firestore/local-state.d.ts +196 -0
  989. package/dist/sandbox/firestore/local-state.d.ts.map +1 -0
  990. package/dist/sandbox/firestore/local-state.js +413 -0
  991. package/dist/sandbox/firestore/local-state.js.map +1 -0
  992. package/dist/sandbox/firestore/overlay-backing.d.ts +44 -0
  993. package/dist/sandbox/firestore/overlay-backing.d.ts.map +1 -0
  994. package/dist/sandbox/firestore/overlay-backing.js +82 -0
  995. package/dist/sandbox/firestore/overlay-backing.js.map +1 -0
  996. package/dist/sandbox/firestore/sentinel-capture.d.ts +30 -0
  997. package/dist/sandbox/firestore/sentinel-capture.d.ts.map +1 -0
  998. package/dist/sandbox/firestore/sentinel-capture.js +61 -0
  999. package/dist/sandbox/firestore/sentinel-capture.js.map +1 -0
  1000. package/dist/sandbox/firestore/snapshot-listeners.d.ts +290 -0
  1001. package/dist/sandbox/firestore/snapshot-listeners.d.ts.map +1 -0
  1002. package/dist/sandbox/firestore/snapshot-listeners.js +194 -0
  1003. package/dist/sandbox/firestore/snapshot-listeners.js.map +1 -0
  1004. package/dist/sandbox/firestore/topk.d.ts +12 -0
  1005. package/dist/sandbox/firestore/topk.d.ts.map +1 -0
  1006. package/dist/sandbox/firestore/topk.js +42 -0
  1007. package/dist/sandbox/firestore/topk.js.map +1 -0
  1008. package/dist/sandbox/firestore/transaction-merge.d.ts +55 -0
  1009. package/dist/sandbox/firestore/transaction-merge.d.ts.map +1 -0
  1010. package/dist/sandbox/firestore/transaction-merge.js +107 -0
  1011. package/dist/sandbox/firestore/transaction-merge.js.map +1 -0
  1012. package/dist/sandbox/firestore/transaction-types.d.ts +155 -0
  1013. package/dist/sandbox/firestore/transaction-types.d.ts.map +1 -0
  1014. package/dist/sandbox/firestore/transaction-types.js +10 -0
  1015. package/dist/sandbox/firestore/transaction-types.js.map +1 -0
  1016. package/dist/sandbox/firestore/transaction.d.ts +79 -0
  1017. package/dist/sandbox/firestore/transaction.d.ts.map +1 -0
  1018. package/dist/sandbox/firestore/transaction.js +95 -0
  1019. package/dist/sandbox/firestore/transaction.js.map +1 -0
  1020. package/dist/sandbox/firestore/value-equality.d.ts +2 -0
  1021. package/dist/sandbox/firestore/value-equality.d.ts.map +1 -0
  1022. package/dist/sandbox/firestore/value-equality.js +35 -0
  1023. package/dist/sandbox/firestore/value-equality.js.map +1 -0
  1024. package/dist/sandbox/firestore/value-resolver.d.ts +172 -0
  1025. package/dist/sandbox/firestore/value-resolver.d.ts.map +1 -0
  1026. package/dist/sandbox/firestore/value-resolver.js +221 -0
  1027. package/dist/sandbox/firestore/value-resolver.js.map +1 -0
  1028. package/dist/sandbox/firestore/wire-encoder.d.ts +14 -0
  1029. package/dist/sandbox/firestore/wire-encoder.d.ts.map +1 -0
  1030. package/dist/sandbox/firestore/wire-encoder.js +130 -0
  1031. package/dist/sandbox/firestore/wire-encoder.js.map +1 -0
  1032. package/dist/sandbox/index.d.ts +53 -0
  1033. package/dist/sandbox/index.d.ts.map +1 -0
  1034. package/dist/sandbox/index.js +65 -0
  1035. package/dist/sandbox/index.js.map +1 -0
  1036. package/dist/sandbox/internal/client-app.d.ts +29 -0
  1037. package/dist/sandbox/internal/client-app.d.ts.map +1 -0
  1038. package/dist/sandbox/internal/client-app.js +18 -0
  1039. package/dist/sandbox/internal/client-app.js.map +1 -0
  1040. package/dist/sandbox/internal/firebase-error.d.ts +14 -0
  1041. package/dist/sandbox/internal/firebase-error.d.ts.map +1 -0
  1042. package/dist/sandbox/internal/firebase-error.js +22 -0
  1043. package/dist/sandbox/internal/firebase-error.js.map +1 -0
  1044. package/dist/sandbox/internal/index.d.ts +39 -0
  1045. package/dist/sandbox/internal/index.d.ts.map +1 -0
  1046. package/dist/sandbox/internal/index.js +75 -0
  1047. package/dist/sandbox/internal/index.js.map +1 -0
  1048. package/dist/sandbox/internal/local-brand.d.ts +3 -0
  1049. package/dist/sandbox/internal/local-brand.d.ts.map +1 -0
  1050. package/dist/sandbox/internal/local-brand.js +3 -0
  1051. package/dist/sandbox/internal/local-brand.js.map +1 -0
  1052. package/dist/sandbox/internal/provenance.d.ts +16 -0
  1053. package/dist/sandbox/internal/provenance.d.ts.map +1 -0
  1054. package/dist/sandbox/internal/provenance.js +139 -0
  1055. package/dist/sandbox/internal/provenance.js.map +1 -0
  1056. package/dist/sandbox/internal/sandbox-impl.d.ts +328 -0
  1057. package/dist/sandbox/internal/sandbox-impl.d.ts.map +1 -0
  1058. package/dist/sandbox/internal/sandbox-impl.js +695 -0
  1059. package/dist/sandbox/internal/sandbox-impl.js.map +1 -0
  1060. package/dist/sandbox/operation-record.d.ts +48 -0
  1061. package/dist/sandbox/operation-record.d.ts.map +1 -0
  1062. package/dist/sandbox/operation-record.js +143 -0
  1063. package/dist/sandbox/operation-record.js.map +1 -0
  1064. package/dist/sandbox/persistence/backends.d.ts +37 -0
  1065. package/dist/sandbox/persistence/backends.d.ts.map +1 -0
  1066. package/dist/sandbox/persistence/backends.js +202 -0
  1067. package/dist/sandbox/persistence/backends.js.map +1 -0
  1068. package/dist/sandbox/persistence/chunk-format.d.ts +58 -0
  1069. package/dist/sandbox/persistence/chunk-format.d.ts.map +1 -0
  1070. package/dist/sandbox/persistence/chunk-format.js +163 -0
  1071. package/dist/sandbox/persistence/chunk-format.js.map +1 -0
  1072. package/dist/sandbox/persistence/controller.d.ts +39 -0
  1073. package/dist/sandbox/persistence/controller.d.ts.map +1 -0
  1074. package/dist/sandbox/persistence/controller.js +505 -0
  1075. package/dist/sandbox/persistence/controller.js.map +1 -0
  1076. package/dist/sandbox/persistence/index.d.ts +13 -0
  1077. package/dist/sandbox/persistence/index.d.ts.map +1 -0
  1078. package/dist/sandbox/persistence/index.js +5 -0
  1079. package/dist/sandbox/persistence/index.js.map +1 -0
  1080. package/dist/sandbox/persistence/serialize.d.ts +53 -0
  1081. package/dist/sandbox/persistence/serialize.d.ts.map +1 -0
  1082. package/dist/sandbox/persistence/serialize.js +98 -0
  1083. package/dist/sandbox/persistence/serialize.js.map +1 -0
  1084. package/dist/sandbox/persistence/types.d.ts +118 -0
  1085. package/dist/sandbox/persistence/types.d.ts.map +1 -0
  1086. package/dist/sandbox/persistence/types.js +15 -0
  1087. package/dist/sandbox/persistence/types.js.map +1 -0
  1088. package/dist/sandbox/remote.d.ts +118 -0
  1089. package/dist/sandbox/remote.d.ts.map +1 -0
  1090. package/dist/sandbox/remote.js +60 -0
  1091. package/dist/sandbox/remote.js.map +1 -0
  1092. package/dist/sandbox/replay/index.d.ts +106 -0
  1093. package/dist/sandbox/replay/index.d.ts.map +1 -0
  1094. package/dist/sandbox/replay/index.js +246 -0
  1095. package/dist/sandbox/replay/index.js.map +1 -0
  1096. package/dist/sandbox/sandbox-context.d.ts +48 -0
  1097. package/dist/sandbox/sandbox-context.d.ts.map +1 -0
  1098. package/dist/sandbox/sandbox-context.js +97 -0
  1099. package/dist/sandbox/sandbox-context.js.map +1 -0
  1100. package/dist/sandbox/tab-sync/index.d.ts +120 -0
  1101. package/dist/sandbox/tab-sync/index.d.ts.map +1 -0
  1102. package/dist/sandbox/tab-sync/index.js +273 -0
  1103. package/dist/sandbox/tab-sync/index.js.map +1 -0
  1104. package/dist/sandbox/types/auth-state.d.ts +23 -0
  1105. package/dist/sandbox/types/auth-state.d.ts.map +1 -0
  1106. package/dist/sandbox/types/auth-state.js +8 -0
  1107. package/dist/sandbox/types/auth-state.js.map +1 -0
  1108. package/dist/sandbox/types/context.d.ts +33 -0
  1109. package/dist/sandbox/types/context.d.ts.map +1 -0
  1110. package/dist/sandbox/types/context.js +5 -0
  1111. package/dist/sandbox/types/context.js.map +1 -0
  1112. package/dist/sandbox/types/errors.d.ts +109 -0
  1113. package/dist/sandbox/types/errors.d.ts.map +1 -0
  1114. package/dist/sandbox/types/errors.js +41 -0
  1115. package/dist/sandbox/types/errors.js.map +1 -0
  1116. package/dist/sandbox/types/events.d.ts +577 -0
  1117. package/dist/sandbox/types/events.d.ts.map +1 -0
  1118. package/dist/sandbox/types/events.js +7 -0
  1119. package/dist/sandbox/types/events.js.map +1 -0
  1120. package/dist/sandbox/types/index.d.ts +24 -0
  1121. package/dist/sandbox/types/index.d.ts.map +1 -0
  1122. package/dist/sandbox/types/index.js +17 -0
  1123. package/dist/sandbox/types/index.js.map +1 -0
  1124. package/dist/sandbox/types/operation.d.ts +60 -0
  1125. package/dist/sandbox/types/operation.d.ts.map +1 -0
  1126. package/dist/sandbox/types/operation.js +3 -0
  1127. package/dist/sandbox/types/operation.js.map +1 -0
  1128. package/dist/sandbox/types/persistence.d.ts +130 -0
  1129. package/dist/sandbox/types/persistence.d.ts.map +1 -0
  1130. package/dist/sandbox/types/persistence.js +7 -0
  1131. package/dist/sandbox/types/persistence.js.map +1 -0
  1132. package/dist/sandbox/types/service.d.ts +357 -0
  1133. package/dist/sandbox/types/service.d.ts.map +1 -0
  1134. package/dist/sandbox/types/service.js +6 -0
  1135. package/dist/sandbox/types/service.js.map +1 -0
  1136. package/dist/storage/admin/api.d.ts +206 -0
  1137. package/dist/storage/admin/api.d.ts.map +1 -0
  1138. package/dist/storage/admin/api.js +349 -0
  1139. package/dist/storage/admin/api.js.map +1 -0
  1140. package/dist/storage/admin/handler.d.ts +28 -0
  1141. package/dist/storage/admin/handler.d.ts.map +1 -0
  1142. package/dist/storage/admin/handler.js +82 -0
  1143. package/dist/storage/admin/handler.js.map +1 -0
  1144. package/dist/storage/admin/spec.d.ts +64 -0
  1145. package/dist/storage/admin/spec.d.ts.map +1 -0
  1146. package/dist/storage/admin/spec.js +8 -0
  1147. package/dist/storage/admin/spec.js.map +1 -0
  1148. package/dist/storage/admin/tools.d.ts +22 -0
  1149. package/dist/storage/admin/tools.d.ts.map +1 -0
  1150. package/dist/storage/admin/tools.js +90 -0
  1151. package/dist/storage/admin/tools.js.map +1 -0
  1152. package/dist/storage/download.d.ts +41 -0
  1153. package/dist/storage/download.d.ts.map +1 -0
  1154. package/dist/storage/download.js +137 -0
  1155. package/dist/storage/download.js.map +1 -0
  1156. package/dist/storage/enforce.d.ts +5 -0
  1157. package/dist/storage/enforce.d.ts.map +1 -0
  1158. package/dist/storage/enforce.js +147 -0
  1159. package/dist/storage/enforce.js.map +1 -0
  1160. package/dist/storage/errors.d.ts +44 -0
  1161. package/dist/storage/errors.d.ts.map +1 -0
  1162. package/dist/storage/errors.js +64 -0
  1163. package/dist/storage/errors.js.map +1 -0
  1164. package/dist/storage/index.d.ts +45 -0
  1165. package/dist/storage/index.d.ts.map +1 -0
  1166. package/dist/storage/index.js +39 -0
  1167. package/dist/storage/index.js.map +1 -0
  1168. package/dist/storage/instances.d.ts +9 -0
  1169. package/dist/storage/instances.d.ts.map +1 -0
  1170. package/dist/storage/instances.js +24 -0
  1171. package/dist/storage/instances.js.map +1 -0
  1172. package/dist/storage/internal.d.ts +18 -0
  1173. package/dist/storage/internal.d.ts.map +1 -0
  1174. package/dist/storage/internal.js +18 -0
  1175. package/dist/storage/internal.js.map +1 -0
  1176. package/dist/storage/list.d.ts +42 -0
  1177. package/dist/storage/list.d.ts.map +1 -0
  1178. package/dist/storage/list.js +83 -0
  1179. package/dist/storage/list.js.map +1 -0
  1180. package/dist/storage/metadata.d.ts +92 -0
  1181. package/dist/storage/metadata.d.ts.map +1 -0
  1182. package/dist/storage/metadata.js +164 -0
  1183. package/dist/storage/metadata.js.map +1 -0
  1184. package/dist/storage/persistence.d.ts +134 -0
  1185. package/dist/storage/persistence.d.ts.map +1 -0
  1186. package/dist/storage/persistence.js +132 -0
  1187. package/dist/storage/persistence.js.map +1 -0
  1188. package/dist/storage/reference.d.ts +57 -0
  1189. package/dist/storage/reference.d.ts.map +1 -0
  1190. package/dist/storage/reference.js +105 -0
  1191. package/dist/storage/reference.js.map +1 -0
  1192. package/dist/storage/rules.d.ts +339 -0
  1193. package/dist/storage/rules.d.ts.map +1 -0
  1194. package/dist/storage/rules.js +1334 -0
  1195. package/dist/storage/rules.js.map +1 -0
  1196. package/dist/storage/service.d.ts +122 -0
  1197. package/dist/storage/service.d.ts.map +1 -0
  1198. package/dist/storage/service.js +247 -0
  1199. package/dist/storage/service.js.map +1 -0
  1200. package/dist/storage/upload.d.ts +50 -0
  1201. package/dist/storage/upload.d.ts.map +1 -0
  1202. package/dist/storage/upload.js +246 -0
  1203. package/dist/storage/upload.js.map +1 -0
  1204. package/package.json +156 -3
@@ -0,0 +1,160 @@
1
+ /**
2
+ * `pyric/firestore` — shared sandbox snapshot rehydration.
3
+ *
4
+ * The read-path snapshot helpers used by BOTH `reads` (`getDoc` /
5
+ * `getDocs`) and `listeners` (`onSnapshot`): value finalization wrappers,
6
+ * ref tagging, and the `.exists` property→method normalization that makes
7
+ * sandbox snapshots match Firebase's modular-SDK shape.
8
+ *
9
+ * Package-internal — the barrel re-exports none of these; the public
10
+ * snapshot TYPES live in `types.ts`.
11
+ */
12
+ import { tag, sandboxDb, sandboxLiveRebuild, refToUnderlying, finalizeSandboxData, } from './state.js';
13
+ /**
14
+ * Wrap a raw sandbox `DocumentSnapshot` so `.data()` runs the final
15
+ * value translation (rules wrappers → `firebase/firestore` types).
16
+ * Other surface (id / ref / exists) passes through unchanged so
17
+ * `tagSnapshotRefs` still operates on the original snap object.
18
+ */
19
+ export function wrapSandboxDocSnap(snap) {
20
+ const s = snap;
21
+ const original = s.data.bind(snap);
22
+ Object.defineProperty(s, 'data', {
23
+ value: () => finalizeSandboxData(original()),
24
+ configurable: true,
25
+ writable: true,
26
+ });
27
+ return snap;
28
+ }
29
+ /**
30
+ * Wrap a plain sandbox `DocumentSnapshot` so `.data()` runs the
31
+ * converter's `fromFirestore`. Identity / `exists` pass through.
32
+ */
33
+ export function applyConverterToDocSnap(snap, conv) {
34
+ return {
35
+ id: snap.id,
36
+ exists: snap.exists,
37
+ data: () => {
38
+ // Sandbox snaps expose `exists` as a property (Admin shape).
39
+ const exists = typeof snap.exists === 'function'
40
+ ? snap.exists()
41
+ : snap.exists;
42
+ if (!exists)
43
+ return undefined;
44
+ const raw = finalizeSandboxData(snap.data());
45
+ // fromFirestore receives a QueryDocumentSnapshot-narrowed view —
46
+ // doc is known to exist at this branch, so `data()` returns the
47
+ // raw value (never undefined).
48
+ const queryDocSnap = {
49
+ id: snap.id,
50
+ exists: true,
51
+ data: () => raw,
52
+ };
53
+ return conv.fromFirestore(queryDocSnap);
54
+ },
55
+ };
56
+ }
57
+ /**
58
+ * Walk a snapshot and tag every ref-shaped field in `refToTarget`,
59
+ * AND normalize `.exists` to method form so consumer code targeting
60
+ * Firebase's modular SDK (`if (snap.exists())`) works uniformly.
61
+ *
62
+ * The chainable adapter exposes `exists` as a property (Admin SDK
63
+ * shape — `if (snap.exists)`). Firebase's modular SDK exposes it as
64
+ * a method (`if (snap.exists())`). Without this normalization, user
65
+ * code written against the documented Firebase API crashes against
66
+ * the sandbox with "snap.exists is not a function" — a parity bug
67
+ * agents and developers all rediscover by hand.
68
+ *
69
+ * Both forms remain readable on the returned object — the function
70
+ * branch in any "did the existing FirestoreTab handle both shapes"
71
+ * code still works.
72
+ *
73
+ * Idempotent — tagging an already-tagged object is a no-op, and the
74
+ * `exists` getter we install is a no-op when one already exists.
75
+ */
76
+ export function tagSnapshotRefs(snap, target) {
77
+ if (!snap || typeof snap !== 'object')
78
+ return snap;
79
+ const s = snap;
80
+ if (s.ref) {
81
+ tag(s.ref, target);
82
+ wireSnapshotRefToUnderlying(s.ref, target);
83
+ }
84
+ normalizeExists(s);
85
+ if (Array.isArray(s.docs)) {
86
+ for (const doc of s.docs) {
87
+ if (doc?.ref) {
88
+ tag(doc.ref, target);
89
+ wireSnapshotRefToUnderlying(doc.ref, target);
90
+ }
91
+ if (doc)
92
+ normalizeExists(doc);
93
+ }
94
+ }
95
+ return snap;
96
+ }
97
+ /**
98
+ * Snapshot `.ref` objects from the sandbox carry only `{ id, path }`
99
+ * — no `.onSnapshot`, `.get`, `.set`, etc. — so a follow-up
100
+ * `onSnapshot(snap.ref)` would crash with "ref.onSnapshot is not a
101
+ * function." Bind the snapshot ref to a full chainable doc ref via
102
+ * `refToUnderlying`; `underlyingOf(snap.ref)` then returns the real
103
+ * ref the chainable adapter exposes its op methods on. No-op for refs that
104
+ * already have a registered underlying.
105
+ */
106
+ export function wireSnapshotRefToUnderlying(snapRef, target) {
107
+ if (typeof snapRef.path !== 'string' || snapRef.path.length === 0)
108
+ return;
109
+ if (refToUnderlying.has(snapRef))
110
+ return;
111
+ const path = snapRef.path;
112
+ try {
113
+ // Build a concrete chainable doc to back the snap-ref via
114
+ // `refToUnderlying`. For sandbox-live, also record a rebuild
115
+ // closure so subsequent ops on the snap ref re-resolve against
116
+ // the *current* `sandbox.currentUser` (rather than re-using the
117
+ // listener-time auth that was frozen into the chainable).
118
+ const full = sandboxDb(target).doc(path);
119
+ refToUnderlying.set(snapRef, full);
120
+ if (target.kind === 'sandbox-live') {
121
+ sandboxLiveRebuild.set(full, (fresh) => fresh.doc(path));
122
+ }
123
+ }
124
+ catch {
125
+ // path → doc resolution can throw if the path is malformed
126
+ // (odd segment count, etc.). Best-effort — leave the snap ref
127
+ // pointing at itself; the next op call will surface a clear
128
+ // "ref.onSnapshot is not a function" instead of mangling state.
129
+ }
130
+ }
131
+ /**
132
+ * If `obj.exists` is a boolean property, replace it with a function
133
+ * that returns that value — so consumer code can do `snap.exists()`
134
+ * uniformly across the sandbox + Firebase backends. Idempotent: if
135
+ * `exists` is already a function, leave it alone.
136
+ *
137
+ * `configurable: true` so a later normalize (over a re-yielded
138
+ * snapshot from the same listener) can re-install cleanly.
139
+ */
140
+ export function normalizeExists(obj) {
141
+ const current = obj.exists;
142
+ if (typeof current === 'function')
143
+ return;
144
+ const value = current === true;
145
+ try {
146
+ Object.defineProperty(obj, 'exists', {
147
+ value: () => value,
148
+ writable: true,
149
+ configurable: true,
150
+ enumerable: true,
151
+ });
152
+ }
153
+ catch {
154
+ // Some snapshot impls might freeze the object. Best-effort —
155
+ // a frozen snap already provides the property reading the user
156
+ // can do `if (snap.exists)` against; the call-site failure is
157
+ // surfaced via the error boundary.
158
+ }
159
+ }
160
+ //# sourceMappingURL=snapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/firestore/snapshots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * `pyric/firestore` — shared routing + branding state.
3
+ *
4
+ * The sandbox routing machinery every family module depends on: the
5
+ * {@link TARGET_SYMBOL} brand, the ref→target / converter / underlying
6
+ * WeakMaps, the tag / resolve helpers, and the sandbox read-path value
7
+ * finalizers. Hoisted out of the former single-file entry first (see the
8
+ * barrel `index.ts`) so the per-family moves that follow are clean.
9
+ *
10
+ * Only {@link TARGET_SYMBOL} is part of the published `pyric/firestore`
11
+ * surface (re-exported by the barrel). Every other export here is
12
+ * package-internal: it is imported by the family modules but never
13
+ * re-exported by the barrel, so it stays off the public subpath.
14
+ */
15
+ import { type SandboxFirestore, type DocumentReference as ChainDocRef, type CollectionReference as ChainCollRef, type Query as ChainQuery, type DocumentData } from 'pyric/sandbox/admin-firestore';
16
+ import type { Sandbox } from 'pyric/sandbox';
17
+ import type { FirestoreDataConverter } from './types.js';
18
+ /**
19
+ * Hidden property on every {@link Firestore} handle. Discriminates
20
+ * the sandbox backend so free functions can recover their owner.
21
+ */
22
+ export declare const TARGET_SYMBOL: unique symbol;
23
+ export type SandboxTarget = {
24
+ kind: 'sandbox';
25
+ db: SandboxFirestore;
26
+ sandbox: Sandbox;
27
+ };
28
+ /**
29
+ * Live-identity sandbox target — built by `getFirestore(sandbox)`.
30
+ *
31
+ * Unlike {@link SandboxTarget} (a frozen `SandboxContext` chosen at
32
+ * `getFirestore(ctx)` time), this variant reads `sandbox.currentUser`
33
+ * per operation via {@link getDb}. Every op constructs a fresh
34
+ * `SandboxContext` from the sandbox's *current* `currentUser` and
35
+ * obtains a chainable handle bound to that ctx.
36
+ *
37
+ * Wired into the modular surface so app code that uses both
38
+ * `pyric/auth` and `pyric/firestore` against the same `Sandbox` sees
39
+ * live auth-state changes: a `signInAnonymously` / `setUser` call on
40
+ * the auth side mutates `sandbox.currentUser`, and the next Firestore
41
+ * op evaluates rules under the new identity.
42
+ *
43
+ * `withAuth(null)` is anonymous; `withAuth(state)` is signed-in.
44
+ */
45
+ export type SandboxLiveTarget = {
46
+ kind: 'sandbox-live';
47
+ sandbox: Sandbox;
48
+ getDb: () => SandboxFirestore;
49
+ authScope?: object;
50
+ own?: (cleanup: () => void) => () => void;
51
+ assertUsable?: () => void;
52
+ };
53
+ export type Target = SandboxTarget | SandboxLiveTarget;
54
+ /**
55
+ * Resolve a sandbox-flavored target to its chainable Firestore handle.
56
+ *
57
+ * `sandbox` targets carry a frozen handle from `getFirestore(ctx)` time;
58
+ * `sandbox-live` targets build a fresh handle bound to the sandbox's
59
+ * current `currentUser` at every call. Callers that issue multiple ops
60
+ * in a row should cache the result into a local — every `getDb()` call
61
+ * rebuilds the chainable, which is correct but wasteful when the auth
62
+ * state hasn't moved between adjacent ops.
63
+ */
64
+ export declare function sandboxDb(target: SandboxTarget | SandboxLiveTarget): SandboxFirestore;
65
+ /**
66
+ * Map from refs / queries to their owning target. Populated by every
67
+ * factory + chaining operation; consulted by every free function.
68
+ *
69
+ * WeakMap keys let entries GC alongside the refs that produced them.
70
+ */
71
+ export declare const refToTarget: WeakMap<object, Target>;
72
+ export declare function tag<T extends object>(obj: T, target: Target): T;
73
+ /**
74
+ * For `sandbox-live` refs/queries, record a closure that rebuilds the
75
+ * chainable ref against a fresh `SandboxFirestore` handle. Used by
76
+ * every dispatch site to re-resolve the ref under the sandbox's
77
+ * *current* `currentUser` rather than the auth that was active when
78
+ * the ref was first built.
79
+ *
80
+ * Necessary because `pyric-admin`'s chainable refs capture auth at
81
+ * construction time — calling `chainRef.get()` on a held ref runs
82
+ * under the auth from when the ref was built, not from when the op
83
+ * fires. For sandbox-live, every op must construct a fresh chainable
84
+ * ref bound to the current ctx before issuing the op.
85
+ *
86
+ * The closure form supports the full chain: `doc(coll, id)` rebuilds
87
+ * via `rebuild(coll)(db).doc(id)`; `query(coll, where(...))` rebuilds
88
+ * via `apply(constraints)` over the rebuilt source. Stored only for
89
+ * sandbox-live refs; frozen `sandbox` refs keep held-ref semantics.
90
+ */
91
+ export declare const sandboxLiveRebuild: WeakMap<object, (db: SandboxFirestore) => object>;
92
+ export declare function tagLive<T extends object>(obj: T, target: SandboxLiveTarget, rebuild: (db: SandboxFirestore) => object): T;
93
+ /** Resolve the chainable doc ref to use for an op against `ref`. For
94
+ * `sandbox`, returns the held chainable; for `sandbox-live`, runs
95
+ * the recorded rebuild closure against a fresh handle. */
96
+ export declare function chainDocFor(target: SandboxTarget | SandboxLiveTarget, ref: object): ChainDocRef;
97
+ /** Same as {@link chainDocFor} but typed for collection refs. */
98
+ export declare function chainCollFor(target: SandboxTarget | SandboxLiveTarget, ref: object): ChainCollRef;
99
+ /** Same as {@link chainDocFor} but typed for queries. */
100
+ export declare function chainQueryFor(target: SandboxTarget | SandboxLiveTarget, q: object): ChainQuery;
101
+ /**
102
+ * Tag a sandbox-flavored ref + (optionally) record its rebuild
103
+ * closure. Routes to {@link tag} for frozen-ctx targets and
104
+ * {@link tagLive} for live targets. Centralizes the per-factory
105
+ * "record rebuild on live, plain tag on frozen" decision.
106
+ */
107
+ export declare function tagSandboxRef<T extends object>(obj: T, target: SandboxTarget | SandboxLiveTarget, rebuild: (db: SandboxFirestore) => object): T;
108
+ /** Resolve a sandbox-flavored parent's rebuild closure. For
109
+ * sandbox-live, the parent must have been tagged via
110
+ * {@link tagSandboxRef}; for sandbox, returns a no-op stand-in
111
+ * since the held chainable is the only ref the dispatch sites use.
112
+ *
113
+ * Used by chaining factories (`doc(coll, …)`, `collection(doc, …)`,
114
+ * `query(coll, …)`) to derive a rebuild that reads the parent's
115
+ * rebuild and applies one more step. */
116
+ export declare function parentRebuild(parent: object): (db: SandboxFirestore) => object;
117
+ export declare function targetOf(refOrDb: object): Target;
118
+ export declare const refToConverter: WeakMap<object, FirestoreDataConverter<unknown, DocumentData> | null>;
119
+ export declare const refToUnderlying: WeakMap<object, object>;
120
+ export declare function converterOf(obj: object): FirestoreDataConverter<unknown> | null | undefined;
121
+ /** Resolve to the plain chain / fb ref. `withConverter` shells point
122
+ * at the underlying; everything else is its own underlying. */
123
+ export declare function underlyingOf<T extends object>(obj: T): object;
124
+ /** Build a new sandbox shell that points at `underlying` and carries
125
+ * `converter`. Inherits routing + identity (id/path) from underlying.
126
+ *
127
+ * Accepts both `SandboxTarget` and `SandboxLiveTarget`: the shell
128
+ * exists at the modular layer (above the chainable), so it only
129
+ * needs to record routing for `targetOf` and the underlying pointer
130
+ * for `underlyingOf`. The chain re-resolution (under current auth)
131
+ * happens at op time via {@link chainDocFor} / {@link chainCollFor}
132
+ * / {@link chainQueryFor} on the underlying. */
133
+ export declare function buildSandboxShell(underlying: {
134
+ id?: string;
135
+ path?: string;
136
+ }, target: SandboxTarget | SandboxLiveTarget, converter: FirestoreDataConverter<unknown>): object;
137
+ export declare function asChainDoc(r: object): ChainDocRef;
138
+ export declare function asChainColl(r: object): ChainCollRef;
139
+ export declare function asChainQuery(r: object): ChainQuery;
140
+ export declare function isNumberArray(a: unknown): a is number[];
141
+ /**
142
+ * A vector read from the sandbox may arrive as a live `Vector` wrapper, a
143
+ * prototype-stripped plain object (`{typeName:'vector', value}`), or the wire
144
+ * sentinel (`{__type__:'__vector__', value}`). Duck-type all three; `instanceof`
145
+ * alone misses the stripped form the read path hands back. Returns the
146
+ * components, or null if `value` isn't a vector.
147
+ */
148
+ export declare function vectorValuesOf(value: unknown): number[] | null;
149
+ /**
150
+ * Final read-path translation for sandbox-target snapshots.
151
+ *
152
+ * The admin-compat read-path walker (in `pyric/sandbox`'s admin-compat
153
+ * `snapshots.ts`) leaves `pyric/rules` wrappers (`Bytes`,
154
+ * `LatLng`) as identity. The modular mirror owns the final conversion to
155
+ * its public scalar classes.
156
+ *
157
+ * Walk the value tree and convert recognized rules wrappers into the
158
+ * corresponding local modular value class so `instanceof` survives a
159
+ * sandbox round trip.
160
+ *
161
+ * Closes firestore COMPAT rows #109 (`Bytes`) and #110 (`GeoPoint`).
162
+ * Vectors (#111, `VectorValue` / `vector()`) round-trip the same way as of
163
+ * Phase 0-F; the formal COMPAT ✓ + oracle observation land with the
164
+ * conformance phase (Phase 5b). Vector SEARCH (`findNearest`) is separate.
165
+ */
166
+ export declare function finalizeSandboxValue(value: unknown): unknown;
167
+ export declare function finalizeSandboxData(data: DocumentData | undefined): DocumentData | undefined;
168
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/firestore/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * `pyric/firestore` — shared routing + branding state.
3
+ *
4
+ * The sandbox routing machinery every family module depends on: the
5
+ * {@link TARGET_SYMBOL} brand, the ref→target / converter / underlying
6
+ * WeakMaps, the tag / resolve helpers, and the sandbox read-path value
7
+ * finalizers. Hoisted out of the former single-file entry first (see the
8
+ * barrel `index.ts`) so the per-family moves that follow are clean.
9
+ *
10
+ * Only {@link TARGET_SYMBOL} is part of the published `pyric/firestore`
11
+ * surface (re-exported by the barrel). Every other export here is
12
+ * package-internal: it is imported by the family modules but never
13
+ * re-exported by the barrel, so it stays off the public subpath.
14
+ */
15
+ import { Bytes as RulesBytes, LatLng as RulesLatLng, Vector as RulesVector, } from 'pyric/rules/internal';
16
+ import { Bytes, GeoPoint, vector } from './field-values.js';
17
+ // ─── Branding + routing ───────────────────────────────────────────────
18
+ /**
19
+ * Hidden property on every {@link Firestore} handle. Discriminates
20
+ * the sandbox backend so free functions can recover their owner.
21
+ */
22
+ export const TARGET_SYMBOL = Symbol('pyric/firestore/target');
23
+ /**
24
+ * Resolve a sandbox-flavored target to its chainable Firestore handle.
25
+ *
26
+ * `sandbox` targets carry a frozen handle from `getFirestore(ctx)` time;
27
+ * `sandbox-live` targets build a fresh handle bound to the sandbox's
28
+ * current `currentUser` at every call. Callers that issue multiple ops
29
+ * in a row should cache the result into a local — every `getDb()` call
30
+ * rebuilds the chainable, which is correct but wasteful when the auth
31
+ * state hasn't moved between adjacent ops.
32
+ */
33
+ export function sandboxDb(target) {
34
+ return target.kind === 'sandbox' ? target.db : target.getDb();
35
+ }
36
+ /**
37
+ * Map from refs / queries to their owning target. Populated by every
38
+ * factory + chaining operation; consulted by every free function.
39
+ *
40
+ * WeakMap keys let entries GC alongside the refs that produced them.
41
+ */
42
+ export const refToTarget = new WeakMap();
43
+ export function tag(obj, target) {
44
+ refToTarget.set(obj, target);
45
+ return obj;
46
+ }
47
+ /**
48
+ * For `sandbox-live` refs/queries, record a closure that rebuilds the
49
+ * chainable ref against a fresh `SandboxFirestore` handle. Used by
50
+ * every dispatch site to re-resolve the ref under the sandbox's
51
+ * *current* `currentUser` rather than the auth that was active when
52
+ * the ref was first built.
53
+ *
54
+ * Necessary because `pyric-admin`'s chainable refs capture auth at
55
+ * construction time — calling `chainRef.get()` on a held ref runs
56
+ * under the auth from when the ref was built, not from when the op
57
+ * fires. For sandbox-live, every op must construct a fresh chainable
58
+ * ref bound to the current ctx before issuing the op.
59
+ *
60
+ * The closure form supports the full chain: `doc(coll, id)` rebuilds
61
+ * via `rebuild(coll)(db).doc(id)`; `query(coll, where(...))` rebuilds
62
+ * via `apply(constraints)` over the rebuilt source. Stored only for
63
+ * sandbox-live refs; frozen `sandbox` refs keep held-ref semantics.
64
+ */
65
+ export const sandboxLiveRebuild = new WeakMap();
66
+ export function tagLive(obj, target, rebuild) {
67
+ refToTarget.set(obj, target);
68
+ sandboxLiveRebuild.set(obj, rebuild);
69
+ return obj;
70
+ }
71
+ /** Resolve the chainable doc ref to use for an op against `ref`. For
72
+ * `sandbox`, returns the held chainable; for `sandbox-live`, runs
73
+ * the recorded rebuild closure against a fresh handle. */
74
+ export function chainDocFor(target, ref) {
75
+ const underlying = underlyingOf(ref);
76
+ if (target.kind === 'sandbox')
77
+ return underlying;
78
+ const rebuild = sandboxLiveRebuild.get(underlying);
79
+ if (!rebuild) {
80
+ throw new TypeError('pyric/firestore: live ref missing rebuild closure — was it produced by a factory in this package?');
81
+ }
82
+ return rebuild(sandboxDb(target));
83
+ }
84
+ /** Same as {@link chainDocFor} but typed for collection refs. */
85
+ export function chainCollFor(target, ref) {
86
+ const underlying = underlyingOf(ref);
87
+ if (target.kind === 'sandbox')
88
+ return underlying;
89
+ const rebuild = sandboxLiveRebuild.get(underlying);
90
+ if (!rebuild) {
91
+ throw new TypeError('pyric/firestore: live collection ref missing rebuild closure.');
92
+ }
93
+ return rebuild(sandboxDb(target));
94
+ }
95
+ /** Same as {@link chainDocFor} but typed for queries. */
96
+ export function chainQueryFor(target, q) {
97
+ const underlying = underlyingOf(q);
98
+ if (target.kind === 'sandbox')
99
+ return underlying;
100
+ const rebuild = sandboxLiveRebuild.get(underlying);
101
+ if (!rebuild) {
102
+ throw new TypeError('pyric/firestore: live query missing rebuild closure.');
103
+ }
104
+ return rebuild(sandboxDb(target));
105
+ }
106
+ /**
107
+ * Tag a sandbox-flavored ref + (optionally) record its rebuild
108
+ * closure. Routes to {@link tag} for frozen-ctx targets and
109
+ * {@link tagLive} for live targets. Centralizes the per-factory
110
+ * "record rebuild on live, plain tag on frozen" decision.
111
+ */
112
+ export function tagSandboxRef(obj, target, rebuild) {
113
+ if (target.kind === 'sandbox-live') {
114
+ return tagLive(obj, target, rebuild);
115
+ }
116
+ return tag(obj, target);
117
+ }
118
+ /** Resolve a sandbox-flavored parent's rebuild closure. For
119
+ * sandbox-live, the parent must have been tagged via
120
+ * {@link tagSandboxRef}; for sandbox, returns a no-op stand-in
121
+ * since the held chainable is the only ref the dispatch sites use.
122
+ *
123
+ * Used by chaining factories (`doc(coll, …)`, `collection(doc, …)`,
124
+ * `query(coll, …)`) to derive a rebuild that reads the parent's
125
+ * rebuild and applies one more step. */
126
+ export function parentRebuild(parent) {
127
+ const underlying = underlyingOf(parent);
128
+ const fn = sandboxLiveRebuild.get(underlying);
129
+ if (fn)
130
+ return fn;
131
+ // Frozen-ctx target. The chainable parent ref is bound to the same
132
+ // ctx for life; returning it as-is is correct because frozen-ctx
133
+ // chaining is what `pyric-admin`'s adapter already supports.
134
+ return () => underlying;
135
+ }
136
+ export function targetOf(refOrDb) {
137
+ let target;
138
+ if (TARGET_SYMBOL in refOrDb) {
139
+ target = refOrDb[TARGET_SYMBOL];
140
+ }
141
+ else {
142
+ target = refToTarget.get(refOrDb);
143
+ }
144
+ if (!target) {
145
+ throw new TypeError('pyric/firestore: unrecognized reference — was it produced by a factory in this package?');
146
+ }
147
+ if (target.kind === 'sandbox-live')
148
+ target.assertUsable?.();
149
+ return target;
150
+ }
151
+ export const refToConverter = new WeakMap();
152
+ export const refToUnderlying = new WeakMap();
153
+ export function converterOf(obj) {
154
+ return refToConverter.get(obj);
155
+ }
156
+ /** Resolve to the plain chain / fb ref. `withConverter` shells point
157
+ * at the underlying; everything else is its own underlying. */
158
+ export function underlyingOf(obj) {
159
+ return refToUnderlying.get(obj) ?? obj;
160
+ }
161
+ /** Build a new sandbox shell that points at `underlying` and carries
162
+ * `converter`. Inherits routing + identity (id/path) from underlying.
163
+ *
164
+ * Accepts both `SandboxTarget` and `SandboxLiveTarget`: the shell
165
+ * exists at the modular layer (above the chainable), so it only
166
+ * needs to record routing for `targetOf` and the underlying pointer
167
+ * for `underlyingOf`. The chain re-resolution (under current auth)
168
+ * happens at op time via {@link chainDocFor} / {@link chainCollFor}
169
+ * / {@link chainQueryFor} on the underlying. */
170
+ export function buildSandboxShell(underlying, target, converter) {
171
+ const shell = {
172
+ id: underlying.id ?? '',
173
+ path: underlying.path ?? '',
174
+ };
175
+ refToConverter.set(shell, converter);
176
+ refToUnderlying.set(shell, underlying);
177
+ refToTarget.set(shell, target);
178
+ return shell;
179
+ }
180
+ // Shorthand: cast helpers used inside route arms. The runtime objects
181
+ // match these shapes precisely; the casts let the routing keep its
182
+ // single-typed public surface.
183
+ export function asChainDoc(r) { return r; }
184
+ export function asChainColl(r) { return r; }
185
+ export function asChainQuery(r) { return r; }
186
+ export function isNumberArray(a) {
187
+ return Array.isArray(a) && a.every((n) => typeof n === 'number');
188
+ }
189
+ /**
190
+ * A vector read from the sandbox may arrive as a live `Vector` wrapper, a
191
+ * prototype-stripped plain object (`{typeName:'vector', value}`), or the wire
192
+ * sentinel (`{__type__:'__vector__', value}`). Duck-type all three; `instanceof`
193
+ * alone misses the stripped form the read path hands back. Returns the
194
+ * components, or null if `value` isn't a vector.
195
+ */
196
+ export function vectorValuesOf(value) {
197
+ if (value instanceof RulesVector)
198
+ return Array.from(value.value);
199
+ if (value === null || typeof value !== 'object')
200
+ return null;
201
+ const o = value;
202
+ if (o.typeName === 'vector' && isNumberArray(o.value))
203
+ return o.value;
204
+ if (o.__type__ === '__vector__' && isNumberArray(o.value))
205
+ return o.value;
206
+ return null;
207
+ }
208
+ /**
209
+ * Final read-path translation for sandbox-target snapshots.
210
+ *
211
+ * The admin-compat read-path walker (in `pyric/sandbox`'s admin-compat
212
+ * `snapshots.ts`) leaves `pyric/rules` wrappers (`Bytes`,
213
+ * `LatLng`) as identity. The modular mirror owns the final conversion to
214
+ * its public scalar classes.
215
+ *
216
+ * Walk the value tree and convert recognized rules wrappers into the
217
+ * corresponding local modular value class so `instanceof` survives a
218
+ * sandbox round trip.
219
+ *
220
+ * Closes firestore COMPAT rows #109 (`Bytes`) and #110 (`GeoPoint`).
221
+ * Vectors (#111, `VectorValue` / `vector()`) round-trip the same way as of
222
+ * Phase 0-F; the formal COMPAT ✓ + oracle observation land with the
223
+ * conformance phase (Phase 5b). Vector SEARCH (`findNearest`) is separate.
224
+ */
225
+ export function finalizeSandboxValue(value) {
226
+ if (value instanceof RulesBytes) {
227
+ return Bytes.fromUint8Array(value.data);
228
+ }
229
+ if (value instanceof RulesLatLng) {
230
+ return new GeoPoint(value.lat, value.lng);
231
+ }
232
+ const vectorValues = vectorValuesOf(value);
233
+ if (vectorValues) {
234
+ return vector(vectorValues);
235
+ }
236
+ if (Array.isArray(value)) {
237
+ return value.map(finalizeSandboxValue);
238
+ }
239
+ // Only walk plain objects (`{...}` literals + `Object.create(null)`).
240
+ // Class instances we don't recognize pass through as identity so we
241
+ // don't accidentally destructure their private state (the same gap
242
+ // that motivated #109/#110 in the first place).
243
+ if (value !== null && typeof value === 'object') {
244
+ const proto = Object.getPrototypeOf(value);
245
+ if (proto === Object.prototype || proto === null) {
246
+ const out = {};
247
+ for (const [k, v] of Object.entries(value)) {
248
+ out[k] = finalizeSandboxValue(v);
249
+ }
250
+ return out;
251
+ }
252
+ }
253
+ return value;
254
+ }
255
+ export function finalizeSandboxData(data) {
256
+ if (data === undefined)
257
+ return undefined;
258
+ return finalizeSandboxValue(data);
259
+ }
260
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/firestore/state.ts"],"names":[],"mappings":"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"}