pyric 0.0.1 → 0.1.0-alpha.7

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 (786) hide show
  1. package/README.md +52 -1
  2. package/dist/app/index.d.ts +81 -0
  3. package/dist/app/index.d.ts.map +1 -0
  4. package/dist/app/index.js +78 -0
  5. package/dist/app/index.js.map +1 -0
  6. package/dist/auth/index.d.ts +346 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +701 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/prod-backend.d.ts +39 -0
  11. package/dist/auth/prod-backend.d.ts.map +1 -0
  12. package/dist/auth/prod-backend.js +179 -0
  13. package/dist/auth/prod-backend.js.map +1 -0
  14. package/dist/auth/providers.d.ts +107 -0
  15. package/dist/auth/providers.d.ts.map +1 -0
  16. package/dist/auth/providers.js +138 -0
  17. package/dist/auth/providers.js.map +1 -0
  18. package/dist/auth/sandbox-backend.d.ts +769 -0
  19. package/dist/auth/sandbox-backend.d.ts.map +1 -0
  20. package/dist/auth/sandbox-backend.js +1598 -0
  21. package/dist/auth/sandbox-backend.js.map +1 -0
  22. package/dist/auth/target.d.ts +40 -0
  23. package/dist/auth/target.d.ts.map +1 -0
  24. package/dist/auth/target.js +28 -0
  25. package/dist/auth/target.js.map +1 -0
  26. package/dist/auth/types.d.ts +252 -0
  27. package/dist/auth/types.d.ts.map +1 -0
  28. package/dist/auth/types.js +26 -0
  29. package/dist/auth/types.js.map +1 -0
  30. package/dist/database/constraints/atoms.d.ts +29 -0
  31. package/dist/database/constraints/atoms.d.ts.map +1 -0
  32. package/dist/database/constraints/atoms.js +43 -0
  33. package/dist/database/constraints/atoms.js.map +1 -0
  34. package/dist/database/constraints/compose.d.ts +16 -0
  35. package/dist/database/constraints/compose.d.ts.map +1 -0
  36. package/dist/database/constraints/compose.js +15 -0
  37. package/dist/database/constraints/compose.js.map +1 -0
  38. package/dist/database/constraints/data.d.ts +30 -0
  39. package/dist/database/constraints/data.d.ts.map +1 -0
  40. package/dist/database/constraints/data.js +46 -0
  41. package/dist/database/constraints/data.js.map +1 -0
  42. package/dist/database/constraints/document.d.ts +42 -0
  43. package/dist/database/constraints/document.d.ts.map +1 -0
  44. package/dist/database/constraints/document.js +86 -0
  45. package/dist/database/constraints/document.js.map +1 -0
  46. package/dist/database/constraints/game.d.ts +30 -0
  47. package/dist/database/constraints/game.d.ts.map +1 -0
  48. package/dist/database/constraints/game.js +49 -0
  49. package/dist/database/constraints/game.js.map +1 -0
  50. package/dist/database/constraints/index.d.ts +12 -0
  51. package/dist/database/constraints/index.d.ts.map +1 -0
  52. package/dist/database/constraints/index.js +9 -0
  53. package/dist/database/constraints/index.js.map +1 -0
  54. package/dist/database/constraints/policies.d.ts +16 -0
  55. package/dist/database/constraints/policies.d.ts.map +1 -0
  56. package/dist/database/constraints/policies.js +17 -0
  57. package/dist/database/constraints/policies.js.map +1 -0
  58. package/dist/database/constraints/ruleset.d.ts +5 -0
  59. package/dist/database/constraints/ruleset.d.ts.map +1 -0
  60. package/dist/database/constraints/ruleset.js +132 -0
  61. package/dist/database/constraints/ruleset.js.map +1 -0
  62. package/dist/database/constraints/schema.d.ts +17 -0
  63. package/dist/database/constraints/schema.d.ts.map +1 -0
  64. package/dist/database/constraints/schema.js +74 -0
  65. package/dist/database/constraints/schema.js.map +1 -0
  66. package/dist/database/constraints/types.d.ts +22 -0
  67. package/dist/database/constraints/types.d.ts.map +1 -0
  68. package/dist/database/constraints/types.js +2 -0
  69. package/dist/database/constraints/types.js.map +1 -0
  70. package/dist/database/crawl/handler.d.ts +7 -0
  71. package/dist/database/crawl/handler.d.ts.map +1 -0
  72. package/dist/database/crawl/handler.js +91 -0
  73. package/dist/database/crawl/handler.js.map +1 -0
  74. package/dist/database/crawl/semaphore.d.ts +9 -0
  75. package/dist/database/crawl/semaphore.d.ts.map +1 -0
  76. package/dist/database/crawl/semaphore.js +27 -0
  77. package/dist/database/crawl/semaphore.js.map +1 -0
  78. package/dist/database/crawl/spec.d.ts +33 -0
  79. package/dist/database/crawl/spec.d.ts.map +1 -0
  80. package/dist/database/crawl/spec.js +12 -0
  81. package/dist/database/crawl/spec.js.map +1 -0
  82. package/dist/database/data/handler.d.ts +9 -0
  83. package/dist/database/data/handler.d.ts.map +1 -0
  84. package/dist/database/data/handler.js +96 -0
  85. package/dist/database/data/handler.js.map +1 -0
  86. package/dist/database/data/spec.d.ts +77 -0
  87. package/dist/database/data/spec.d.ts.map +1 -0
  88. package/dist/database/data/spec.js +17 -0
  89. package/dist/database/data/spec.js.map +1 -0
  90. package/dist/database/data/validated.d.ts +8 -0
  91. package/dist/database/data/validated.d.ts.map +1 -0
  92. package/dist/database/data/validated.js +99 -0
  93. package/dist/database/data/validated.js.map +1 -0
  94. package/dist/database/grammar/RtdbExpr.ohm +98 -0
  95. package/dist/database/grammar/RtdbExpr.ohm.generated.d.ts +2 -0
  96. package/dist/database/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -0
  97. package/dist/database/grammar/RtdbExpr.ohm.generated.js +103 -0
  98. package/dist/database/grammar/RtdbExpr.ohm.generated.js.map +1 -0
  99. package/dist/database/grammar/RtdbExprParser.d.ts +5 -0
  100. package/dist/database/grammar/RtdbExprParser.d.ts.map +1 -0
  101. package/dist/database/grammar/RtdbExprParser.js +53 -0
  102. package/dist/database/grammar/RtdbExprParser.js.map +1 -0
  103. package/dist/database/grammar/linter.d.ts +3 -0
  104. package/dist/database/grammar/linter.d.ts.map +1 -0
  105. package/dist/database/grammar/linter.js +66 -0
  106. package/dist/database/grammar/linter.js.map +1 -0
  107. package/dist/database/grammar/simulator.d.ts +31 -0
  108. package/dist/database/grammar/simulator.d.ts.map +1 -0
  109. package/dist/database/grammar/simulator.js +255 -0
  110. package/dist/database/grammar/simulator.js.map +1 -0
  111. package/dist/database/grammar/validator.d.ts +3 -0
  112. package/dist/database/grammar/validator.d.ts.map +1 -0
  113. package/dist/database/grammar/validator.js +84 -0
  114. package/dist/database/grammar/validator.js.map +1 -0
  115. package/dist/database/host.d.ts +50 -0
  116. package/dist/database/host.d.ts.map +1 -0
  117. package/dist/database/host.js +41 -0
  118. package/dist/database/host.js.map +1 -0
  119. package/dist/database/index.d.ts +40 -0
  120. package/dist/database/index.d.ts.map +1 -0
  121. package/dist/database/index.js +47 -0
  122. package/dist/database/index.js.map +1 -0
  123. package/dist/database/initialize-from-app.d.ts +28 -0
  124. package/dist/database/initialize-from-app.d.ts.map +1 -0
  125. package/dist/database/initialize-from-app.js +23 -0
  126. package/dist/database/initialize-from-app.js.map +1 -0
  127. package/dist/database/ir/handler.d.ts +6 -0
  128. package/dist/database/ir/handler.d.ts.map +1 -0
  129. package/dist/database/ir/handler.js +52 -0
  130. package/dist/database/ir/handler.js.map +1 -0
  131. package/dist/database/ir/spec.d.ts +25 -0
  132. package/dist/database/ir/spec.d.ts.map +1 -0
  133. package/dist/database/ir/spec.js +11 -0
  134. package/dist/database/ir/spec.js.map +1 -0
  135. package/dist/database/mapper.d.ts +9 -0
  136. package/dist/database/mapper.d.ts.map +1 -0
  137. package/dist/database/mapper.js +115 -0
  138. package/dist/database/mapper.js.map +1 -0
  139. package/dist/database/modular.d.ts +604 -0
  140. package/dist/database/modular.d.ts.map +1 -0
  141. package/dist/database/modular.js +1226 -0
  142. package/dist/database/modular.js.map +1 -0
  143. package/dist/database/replay.d.ts +33 -0
  144. package/dist/database/replay.d.ts.map +1 -0
  145. package/dist/database/replay.js +124 -0
  146. package/dist/database/replay.js.map +1 -0
  147. package/dist/database/resolver.d.ts +4 -0
  148. package/dist/database/resolver.d.ts.map +1 -0
  149. package/dist/database/resolver.js +66 -0
  150. package/dist/database/resolver.js.map +1 -0
  151. package/dist/database/sandbox/backend.d.ts +403 -0
  152. package/dist/database/sandbox/backend.d.ts.map +1 -0
  153. package/dist/database/sandbox/backend.js +1467 -0
  154. package/dist/database/sandbox/backend.js.map +1 -0
  155. package/dist/database/sandbox/data-tree.d.ts +123 -0
  156. package/dist/database/sandbox/data-tree.d.ts.map +1 -0
  157. package/dist/database/sandbox/data-tree.js +310 -0
  158. package/dist/database/sandbox/data-tree.js.map +1 -0
  159. package/dist/database/sandbox/normalize.d.ts +77 -0
  160. package/dist/database/sandbox/normalize.d.ts.map +1 -0
  161. package/dist/database/sandbox/normalize.js +165 -0
  162. package/dist/database/sandbox/normalize.js.map +1 -0
  163. package/dist/database/sandbox/push-id.d.ts +32 -0
  164. package/dist/database/sandbox/push-id.d.ts.map +1 -0
  165. package/dist/database/sandbox/push-id.js +82 -0
  166. package/dist/database/sandbox/push-id.js.map +1 -0
  167. package/dist/database/sandbox/query.d.ts +175 -0
  168. package/dist/database/sandbox/query.d.ts.map +1 -0
  169. package/dist/database/sandbox/query.js +269 -0
  170. package/dist/database/sandbox/query.js.map +1 -0
  171. package/dist/database/sandbox/rules-eval.d.ts +69 -0
  172. package/dist/database/sandbox/rules-eval.d.ts.map +1 -0
  173. package/dist/database/sandbox/rules-eval.js +124 -0
  174. package/dist/database/sandbox/rules-eval.js.map +1 -0
  175. package/dist/database/sandbox/sentinels.d.ts +71 -0
  176. package/dist/database/sandbox/sentinels.d.ts.map +1 -0
  177. package/dist/database/sandbox/sentinels.js +92 -0
  178. package/dist/database/sandbox/sentinels.js.map +1 -0
  179. package/dist/database/simulation/handler.d.ts +6 -0
  180. package/dist/database/simulation/handler.d.ts.map +1 -0
  181. package/dist/database/simulation/handler.js +236 -0
  182. package/dist/database/simulation/handler.js.map +1 -0
  183. package/dist/database/simulation/spec.d.ts +69 -0
  184. package/dist/database/simulation/spec.d.ts.map +1 -0
  185. package/dist/database/simulation/spec.js +25 -0
  186. package/dist/database/simulation/spec.js.map +1 -0
  187. package/dist/database/tools.d.ts +22 -0
  188. package/dist/database/tools.d.ts.map +1 -0
  189. package/dist/database/tools.js +272 -0
  190. package/dist/database/tools.js.map +1 -0
  191. package/dist/database/types.d.ts +210 -0
  192. package/dist/database/types.d.ts.map +1 -0
  193. package/dist/database/types.js +26 -0
  194. package/dist/database/types.js.map +1 -0
  195. package/dist/database/write/handler.d.ts +7 -0
  196. package/dist/database/write/handler.d.ts.map +1 -0
  197. package/dist/database/write/handler.js +42 -0
  198. package/dist/database/write/handler.js.map +1 -0
  199. package/dist/database/write/spec.d.ts +18 -0
  200. package/dist/database/write/spec.d.ts.map +1 -0
  201. package/dist/database/write/spec.js +7 -0
  202. package/dist/database/write/spec.js.map +1 -0
  203. package/dist/firestore/index.d.ts +533 -0
  204. package/dist/firestore/index.d.ts.map +1 -0
  205. package/dist/firestore/index.js +1536 -0
  206. package/dist/firestore/index.js.map +1 -0
  207. package/dist/firestore/tools.d.ts +67 -0
  208. package/dist/firestore/tools.d.ts.map +1 -0
  209. package/dist/firestore/tools.js +318 -0
  210. package/dist/firestore/tools.js.map +1 -0
  211. package/dist/firestore-values/index.d.ts +63 -0
  212. package/dist/firestore-values/index.d.ts.map +1 -0
  213. package/dist/firestore-values/index.js +148 -0
  214. package/dist/firestore-values/index.js.map +1 -0
  215. package/dist/project-scope.d.ts +5 -0
  216. package/dist/project-scope.d.ts.map +1 -0
  217. package/dist/project-scope.js +2 -0
  218. package/dist/project-scope.js.map +1 -0
  219. package/dist/rules/extract.d.ts +28 -0
  220. package/dist/rules/extract.d.ts.map +1 -0
  221. package/dist/rules/extract.js +25 -0
  222. package/dist/rules/extract.js.map +1 -0
  223. package/dist/rules/generators/assembler.d.ts +19 -0
  224. package/dist/rules/generators/assembler.d.ts.map +1 -0
  225. package/dist/rules/generators/assembler.js +292 -0
  226. package/dist/rules/generators/assembler.js.map +1 -0
  227. package/dist/rules/generators/expressions.d.ts +52 -0
  228. package/dist/rules/generators/expressions.d.ts.map +1 -0
  229. package/dist/rules/generators/expressions.js +117 -0
  230. package/dist/rules/generators/expressions.js.map +1 -0
  231. package/dist/rules/generators/grid.d.ts +22 -0
  232. package/dist/rules/generators/grid.d.ts.map +1 -0
  233. package/dist/rules/generators/grid.js +52 -0
  234. package/dist/rules/generators/grid.js.map +1 -0
  235. package/dist/rules/grammar/FirestoreAST.d.ts +129 -0
  236. package/dist/rules/grammar/FirestoreAST.d.ts.map +1 -0
  237. package/dist/rules/grammar/FirestoreAST.js +3 -0
  238. package/dist/rules/grammar/FirestoreAST.js.map +1 -0
  239. package/dist/rules/grammar/FirestoreAssembler.d.ts +5 -0
  240. package/dist/rules/grammar/FirestoreAssembler.d.ts.map +1 -0
  241. package/dist/rules/grammar/FirestoreAssembler.js +158 -0
  242. package/dist/rules/grammar/FirestoreAssembler.js.map +1 -0
  243. package/dist/rules/grammar/FirestoreParser.d.ts +46 -0
  244. package/dist/rules/grammar/FirestoreParser.d.ts.map +1 -0
  245. package/dist/rules/grammar/FirestoreParser.js +409 -0
  246. package/dist/rules/grammar/FirestoreParser.js.map +1 -0
  247. package/dist/rules/grammar/FirestoreRules.ohm +229 -0
  248. package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts +2 -0
  249. package/dist/rules/grammar/FirestoreRules.ohm.generated.d.ts.map +1 -0
  250. package/dist/rules/grammar/FirestoreRules.ohm.generated.js +234 -0
  251. package/dist/rules/grammar/FirestoreRules.ohm.generated.js.map +1 -0
  252. package/dist/rules/grammar/FirestoreValidator.d.ts +10 -0
  253. package/dist/rules/grammar/FirestoreValidator.d.ts.map +1 -0
  254. package/dist/rules/grammar/FirestoreValidator.js +482 -0
  255. package/dist/rules/grammar/FirestoreValidator.js.map +1 -0
  256. package/dist/rules/index.d.ts +67 -0
  257. package/dist/rules/index.d.ts.map +1 -0
  258. package/dist/rules/index.js +80 -0
  259. package/dist/rules/index.js.map +1 -0
  260. package/dist/rules/indexes/extract/annotation-collect.d.ts +42 -0
  261. package/dist/rules/indexes/extract/annotation-collect.d.ts.map +1 -0
  262. package/dist/rules/indexes/extract/annotation-collect.js +69 -0
  263. package/dist/rules/indexes/extract/annotation-collect.js.map +1 -0
  264. package/dist/rules/indexes/extract/annotations.d.ts +50 -0
  265. package/dist/rules/indexes/extract/annotations.d.ts.map +1 -0
  266. package/dist/rules/indexes/extract/annotations.js +144 -0
  267. package/dist/rules/indexes/extract/annotations.js.map +1 -0
  268. package/dist/rules/indexes/extract/ast.d.ts +54 -0
  269. package/dist/rules/indexes/extract/ast.d.ts.map +1 -0
  270. package/dist/rules/indexes/extract/ast.js +119 -0
  271. package/dist/rules/indexes/extract/ast.js.map +1 -0
  272. package/dist/rules/indexes/extract/classify.d.ts +41 -0
  273. package/dist/rules/indexes/extract/classify.d.ts.map +1 -0
  274. package/dist/rules/indexes/extract/classify.js +138 -0
  275. package/dist/rules/indexes/extract/classify.js.map +1 -0
  276. package/dist/rules/indexes/extract/composite.d.ts +38 -0
  277. package/dist/rules/indexes/extract/composite.d.ts.map +1 -0
  278. package/dist/rules/indexes/extract/composite.js +85 -0
  279. package/dist/rules/indexes/extract/composite.js.map +1 -0
  280. package/dist/rules/indexes/extract/dataflow.d.ts +45 -0
  281. package/dist/rules/indexes/extract/dataflow.d.ts.map +1 -0
  282. package/dist/rules/indexes/extract/dataflow.js +200 -0
  283. package/dist/rules/indexes/extract/dataflow.js.map +1 -0
  284. package/dist/rules/indexes/extract/enumerate.d.ts +41 -0
  285. package/dist/rules/indexes/extract/enumerate.d.ts.map +1 -0
  286. package/dist/rules/indexes/extract/enumerate.js +163 -0
  287. package/dist/rules/indexes/extract/enumerate.js.map +1 -0
  288. package/dist/rules/indexes/extract/extractor.d.ts +3 -0
  289. package/dist/rules/indexes/extract/extractor.d.ts.map +1 -0
  290. package/dist/rules/indexes/extract/extractor.js +274 -0
  291. package/dist/rules/indexes/extract/extractor.js.map +1 -0
  292. package/dist/rules/indexes/extract/types.d.ts +211 -0
  293. package/dist/rules/indexes/extract/types.d.ts.map +1 -0
  294. package/dist/rules/indexes/extract/types.js +14 -0
  295. package/dist/rules/indexes/extract/types.js.map +1 -0
  296. package/dist/rules/indexes/extractHandler.d.ts +16 -0
  297. package/dist/rules/indexes/extractHandler.d.ts.map +1 -0
  298. package/dist/rules/indexes/extractHandler.js +100 -0
  299. package/dist/rules/indexes/extractHandler.js.map +1 -0
  300. package/dist/rules/indexes/extractTool.d.ts +15 -0
  301. package/dist/rules/indexes/extractTool.d.ts.map +1 -0
  302. package/dist/rules/indexes/extractTool.js +55 -0
  303. package/dist/rules/indexes/extractTool.js.map +1 -0
  304. package/dist/rules/indexes/types.d.ts +71 -0
  305. package/dist/rules/indexes/types.d.ts.map +1 -0
  306. package/dist/rules/indexes/types.js +15 -0
  307. package/dist/rules/indexes/types.js.map +1 -0
  308. package/dist/rules/inspect/handler.d.ts +6 -0
  309. package/dist/rules/inspect/handler.d.ts.map +1 -0
  310. package/dist/rules/inspect/handler.js +144 -0
  311. package/dist/rules/inspect/handler.js.map +1 -0
  312. package/dist/rules/inspect/spec.d.ts +37 -0
  313. package/dist/rules/inspect/spec.d.ts.map +1 -0
  314. package/dist/rules/inspect/spec.js +2 -0
  315. package/dist/rules/inspect/spec.js.map +1 -0
  316. package/dist/rules/inspect/tools.d.ts +21 -0
  317. package/dist/rules/inspect/tools.d.ts.map +1 -0
  318. package/dist/rules/inspect/tools.js +21 -0
  319. package/dist/rules/inspect/tools.js.map +1 -0
  320. package/dist/rules/linter/ast-utils.d.ts +97 -0
  321. package/dist/rules/linter/ast-utils.d.ts.map +1 -0
  322. package/dist/rules/linter/ast-utils.js +491 -0
  323. package/dist/rules/linter/ast-utils.js.map +1 -0
  324. package/dist/rules/linter/hallucinations.d.ts +34 -0
  325. package/dist/rules/linter/hallucinations.d.ts.map +1 -0
  326. package/dist/rules/linter/hallucinations.js +334 -0
  327. package/dist/rules/linter/hallucinations.js.map +1 -0
  328. package/dist/rules/linter/linter.d.ts +84 -0
  329. package/dist/rules/linter/linter.d.ts.map +1 -0
  330. package/dist/rules/linter/linter.js +784 -0
  331. package/dist/rules/linter/linter.js.map +1 -0
  332. package/dist/rules/modules/resolver-browser.d.ts +41 -0
  333. package/dist/rules/modules/resolver-browser.d.ts.map +1 -0
  334. package/dist/rules/modules/resolver-browser.js +63 -0
  335. package/dist/rules/modules/resolver-browser.js.map +1 -0
  336. package/dist/rules/modules/resolver-core.d.ts +51 -0
  337. package/dist/rules/modules/resolver-core.d.ts.map +1 -0
  338. package/dist/rules/modules/resolver-core.js +338 -0
  339. package/dist/rules/modules/resolver-core.js.map +1 -0
  340. package/dist/rules/modules/resolver.d.ts +17 -0
  341. package/dist/rules/modules/resolver.d.ts.map +1 -0
  342. package/dist/rules/modules/resolver.js +49 -0
  343. package/dist/rules/modules/resolver.js.map +1 -0
  344. package/dist/rules/modules/stdlib/atomic.rules +52 -0
  345. package/dist/rules/modules/stdlib/atomic.test.json +152 -0
  346. package/dist/rules/modules/stdlib/auth.rules +7 -0
  347. package/dist/rules/modules/stdlib/auth.test.json +53 -0
  348. package/dist/rules/modules/stdlib/content.rules +50 -0
  349. package/dist/rules/modules/stdlib/content.test.json +238 -0
  350. package/dist/rules/modules/stdlib/counters.rules +41 -0
  351. package/dist/rules/modules/stdlib/counters.test.json +254 -0
  352. package/dist/rules/modules/stdlib/geometry.rules +43 -0
  353. package/dist/rules/modules/stdlib/geometry.test.json +200 -0
  354. package/dist/rules/modules/stdlib/joining.rules +49 -0
  355. package/dist/rules/modules/stdlib/joining.test.json +287 -0
  356. package/dist/rules/modules/stdlib/lifecycle.rules +51 -0
  357. package/dist/rules/modules/stdlib/lifecycle.test.json +288 -0
  358. package/dist/rules/modules/stdlib/lobby.rules +44 -0
  359. package/dist/rules/modules/stdlib/lobby.test.json +32 -0
  360. package/dist/rules/modules/stdlib/membership.rules +40 -0
  361. package/dist/rules/modules/stdlib/membership.test.json +107 -0
  362. package/dist/rules/modules/stdlib/spaces.rules +46 -0
  363. package/dist/rules/modules/stdlib/spaces.test.json +392 -0
  364. package/dist/rules/modules/stdlib/state.rules +28 -0
  365. package/dist/rules/modules/stdlib/state.test.json +55 -0
  366. package/dist/rules/modules/stdlib/timing.rules +20 -0
  367. package/dist/rules/modules/stdlib/timing.test.json +106 -0
  368. package/dist/rules/modules/stdlib/transitions.rules +34 -0
  369. package/dist/rules/modules/stdlib/transitions.test.json +86 -0
  370. package/dist/rules/modules/stdlib/turns.rules +27 -0
  371. package/dist/rules/modules/stdlib/turns.test.json +64 -0
  372. package/dist/rules/modules/stdlib/validation.rules +31 -0
  373. package/dist/rules/modules/stdlib/validation.test.json +184 -0
  374. package/dist/rules/modules/stdlib-content.d.ts +11 -0
  375. package/dist/rules/modules/stdlib-content.d.ts.map +1 -0
  376. package/dist/rules/modules/stdlib-content.js +590 -0
  377. package/dist/rules/modules/stdlib-content.js.map +1 -0
  378. package/dist/rules/node.d.ts +17 -0
  379. package/dist/rules/node.d.ts.map +1 -0
  380. package/dist/rules/node.js +21 -0
  381. package/dist/rules/node.js.map +1 -0
  382. package/dist/rules/rtdb.d.ts +28 -0
  383. package/dist/rules/rtdb.d.ts.map +1 -0
  384. package/dist/rules/rtdb.js +15 -0
  385. package/dist/rules/rtdb.js.map +1 -0
  386. package/dist/rules/simulator/evaluator.d.ts +179 -0
  387. package/dist/rules/simulator/evaluator.d.ts.map +1 -0
  388. package/dist/rules/simulator/evaluator.js +1221 -0
  389. package/dist/rules/simulator/evaluator.js.map +1 -0
  390. package/dist/rules/simulator/expression/eval-errors.d.ts +86 -0
  391. package/dist/rules/simulator/expression/eval-errors.d.ts.map +1 -0
  392. package/dist/rules/simulator/expression/eval-errors.js +68 -0
  393. package/dist/rules/simulator/expression/eval-errors.js.map +1 -0
  394. package/dist/rules/simulator/expression/evaluator.d.ts +43 -0
  395. package/dist/rules/simulator/expression/evaluator.d.ts.map +1 -0
  396. package/dist/rules/simulator/expression/evaluator.js +298 -0
  397. package/dist/rules/simulator/expression/evaluator.js.map +1 -0
  398. package/dist/rules/simulator/expression/lexer.d.ts +36 -0
  399. package/dist/rules/simulator/expression/lexer.d.ts.map +1 -0
  400. package/dist/rules/simulator/expression/lexer.js +318 -0
  401. package/dist/rules/simulator/expression/lexer.js.map +1 -0
  402. package/dist/rules/simulator/expression/parser.d.ts +39 -0
  403. package/dist/rules/simulator/expression/parser.d.ts.map +1 -0
  404. package/dist/rules/simulator/expression/parser.js +329 -0
  405. package/dist/rules/simulator/expression/parser.js.map +1 -0
  406. package/dist/rules/simulator/expression/types.d.ts +137 -0
  407. package/dist/rules/simulator/expression/types.d.ts.map +1 -0
  408. package/dist/rules/simulator/expression/types.js +90 -0
  409. package/dist/rules/simulator/expression/types.js.map +1 -0
  410. package/dist/rules/simulator/expression/walk-data.d.ts +52 -0
  411. package/dist/rules/simulator/expression/walk-data.d.ts.map +1 -0
  412. package/dist/rules/simulator/expression/walk-data.js +167 -0
  413. package/dist/rules/simulator/expression/walk-data.js.map +1 -0
  414. package/dist/rules/simulator/firestore-set.d.ts +25 -0
  415. package/dist/rules/simulator/firestore-set.d.ts.map +1 -0
  416. package/dist/rules/simulator/firestore-set.js +89 -0
  417. package/dist/rules/simulator/firestore-set.js.map +1 -0
  418. package/dist/rules/simulator/handler.d.ts +36 -0
  419. package/dist/rules/simulator/handler.d.ts.map +1 -0
  420. package/dist/rules/simulator/handler.js +583 -0
  421. package/dist/rules/simulator/handler.js.map +1 -0
  422. package/dist/rules/simulator/mapdiff.d.ts +29 -0
  423. package/dist/rules/simulator/mapdiff.d.ts.map +1 -0
  424. package/dist/rules/simulator/mapdiff.js +72 -0
  425. package/dist/rules/simulator/mapdiff.js.map +1 -0
  426. package/dist/rules/simulator/project-after-state.d.ts +33 -0
  427. package/dist/rules/simulator/project-after-state.d.ts.map +1 -0
  428. package/dist/rules/simulator/project-after-state.js +88 -0
  429. package/dist/rules/simulator/project-after-state.js.map +1 -0
  430. package/dist/rules/simulator/query-proof.d.ts +80 -0
  431. package/dist/rules/simulator/query-proof.d.ts.map +1 -0
  432. package/dist/rules/simulator/query-proof.js +142 -0
  433. package/dist/rules/simulator/query-proof.js.map +1 -0
  434. package/dist/rules/simulator/value-equality.d.ts +8 -0
  435. package/dist/rules/simulator/value-equality.d.ts.map +1 -0
  436. package/dist/rules/simulator/value-equality.js +40 -0
  437. package/dist/rules/simulator/value-equality.js.map +1 -0
  438. package/dist/rules/simulator/wrappers/base.d.ts +129 -0
  439. package/dist/rules/simulator/wrappers/base.d.ts.map +1 -0
  440. package/dist/rules/simulator/wrappers/base.js +90 -0
  441. package/dist/rules/simulator/wrappers/base.js.map +1 -0
  442. package/dist/rules/simulator/wrappers/bytes.d.ts +45 -0
  443. package/dist/rules/simulator/wrappers/bytes.d.ts.map +1 -0
  444. package/dist/rules/simulator/wrappers/bytes.js +130 -0
  445. package/dist/rules/simulator/wrappers/bytes.js.map +1 -0
  446. package/dist/rules/simulator/wrappers/duration.d.ts +76 -0
  447. package/dist/rules/simulator/wrappers/duration.d.ts.map +1 -0
  448. package/dist/rules/simulator/wrappers/duration.js +176 -0
  449. package/dist/rules/simulator/wrappers/duration.js.map +1 -0
  450. package/dist/rules/simulator/wrappers/float.d.ts +52 -0
  451. package/dist/rules/simulator/wrappers/float.d.ts.map +1 -0
  452. package/dist/rules/simulator/wrappers/float.js +88 -0
  453. package/dist/rules/simulator/wrappers/float.js.map +1 -0
  454. package/dist/rules/simulator/wrappers/latlng.d.ts +40 -0
  455. package/dist/rules/simulator/wrappers/latlng.d.ts.map +1 -0
  456. package/dist/rules/simulator/wrappers/latlng.js +100 -0
  457. package/dist/rules/simulator/wrappers/latlng.js.map +1 -0
  458. package/dist/rules/simulator/wrappers/path.d.ts +75 -0
  459. package/dist/rules/simulator/wrappers/path.d.ts.map +1 -0
  460. package/dist/rules/simulator/wrappers/path.js +158 -0
  461. package/dist/rules/simulator/wrappers/path.js.map +1 -0
  462. package/dist/rules/simulator/wrappers/reference.d.ts +82 -0
  463. package/dist/rules/simulator/wrappers/reference.d.ts.map +1 -0
  464. package/dist/rules/simulator/wrappers/reference.js +145 -0
  465. package/dist/rules/simulator/wrappers/reference.js.map +1 -0
  466. package/dist/rules/simulator/wrappers/timestamp.d.ts +86 -0
  467. package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -0
  468. package/dist/rules/simulator/wrappers/timestamp.js +207 -0
  469. package/dist/rules/simulator/wrappers/timestamp.js.map +1 -0
  470. package/dist/rules/simulator/wrappers/vector.d.ts +43 -0
  471. package/dist/rules/simulator/wrappers/vector.d.ts.map +1 -0
  472. package/dist/rules/simulator/wrappers/vector.js +80 -0
  473. package/dist/rules/simulator/wrappers/vector.js.map +1 -0
  474. package/dist/rules/simulator-tools-impl.d.ts +64 -0
  475. package/dist/rules/simulator-tools-impl.d.ts.map +1 -0
  476. package/dist/rules/simulator-tools-impl.js +462 -0
  477. package/dist/rules/simulator-tools-impl.js.map +1 -0
  478. package/dist/rules/simulator.d.ts +20 -0
  479. package/dist/rules/simulator.d.ts.map +1 -0
  480. package/dist/rules/simulator.js +24 -0
  481. package/dist/rules/simulator.js.map +1 -0
  482. package/dist/rules/stdlib-modules.d.ts +73 -0
  483. package/dist/rules/stdlib-modules.d.ts.map +1 -0
  484. package/dist/rules/stdlib-modules.js +849 -0
  485. package/dist/rules/stdlib-modules.js.map +1 -0
  486. package/dist/rules/stdlib-tools.d.ts +19 -0
  487. package/dist/rules/stdlib-tools.d.ts.map +1 -0
  488. package/dist/rules/stdlib-tools.js +164 -0
  489. package/dist/rules/stdlib-tools.js.map +1 -0
  490. package/dist/rules/test/handler.d.ts +9 -0
  491. package/dist/rules/test/handler.d.ts.map +1 -0
  492. package/dist/rules/test/handler.js +124 -0
  493. package/dist/rules/test/handler.js.map +1 -0
  494. package/dist/rules/test/spec.d.ts +517 -0
  495. package/dist/rules/test/spec.d.ts.map +1 -0
  496. package/dist/rules/test/spec.js +227 -0
  497. package/dist/rules/test/spec.js.map +1 -0
  498. package/dist/rules/tools.d.ts +41 -0
  499. package/dist/rules/tools.d.ts.map +1 -0
  500. package/dist/rules/tools.js +124 -0
  501. package/dist/rules/tools.js.map +1 -0
  502. package/dist/rules/write/handler.d.ts +6 -0
  503. package/dist/rules/write/handler.d.ts.map +1 -0
  504. package/dist/rules/write/handler.js +126 -0
  505. package/dist/rules/write/handler.js.map +1 -0
  506. package/dist/rules/write/spec.d.ts +28 -0
  507. package/dist/rules/write/spec.d.ts.map +1 -0
  508. package/dist/rules/write/spec.js +2 -0
  509. package/dist/rules/write/spec.js.map +1 -0
  510. package/dist/sandbox/admin-compat.d.ts +20 -0
  511. package/dist/sandbox/admin-compat.d.ts.map +1 -0
  512. package/dist/sandbox/admin-compat.js +19 -0
  513. package/dist/sandbox/admin-compat.js.map +1 -0
  514. package/dist/sandbox/admin-firestore/error-translation.d.ts +86 -0
  515. package/dist/sandbox/admin-firestore/error-translation.d.ts.map +1 -0
  516. package/dist/sandbox/admin-firestore/error-translation.js +204 -0
  517. package/dist/sandbox/admin-firestore/error-translation.js.map +1 -0
  518. package/dist/sandbox/admin-firestore/index.d.ts +169 -0
  519. package/dist/sandbox/admin-firestore/index.d.ts.map +1 -0
  520. package/dist/sandbox/admin-firestore/index.js +456 -0
  521. package/dist/sandbox/admin-firestore/index.js.map +1 -0
  522. package/dist/sandbox/admin-firestore/remote.d.ts +97 -0
  523. package/dist/sandbox/admin-firestore/remote.d.ts.map +1 -0
  524. package/dist/sandbox/admin-firestore/remote.js +735 -0
  525. package/dist/sandbox/admin-firestore/remote.js.map +1 -0
  526. package/dist/sandbox/branches/index.d.ts +141 -0
  527. package/dist/sandbox/branches/index.d.ts.map +1 -0
  528. package/dist/sandbox/branches/index.js +327 -0
  529. package/dist/sandbox/branches/index.js.map +1 -0
  530. package/dist/sandbox/firestore/admin-compat/batch.d.ts +34 -0
  531. package/dist/sandbox/firestore/admin-compat/batch.d.ts.map +1 -0
  532. package/dist/sandbox/firestore/admin-compat/batch.js +73 -0
  533. package/dist/sandbox/firestore/admin-compat/batch.js.map +1 -0
  534. package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts +38 -0
  535. package/dist/sandbox/firestore/admin-compat/doc-ref.d.ts.map +1 -0
  536. package/dist/sandbox/firestore/admin-compat/doc-ref.js +154 -0
  537. package/dist/sandbox/firestore/admin-compat/doc-ref.js.map +1 -0
  538. package/dist/sandbox/firestore/admin-compat/firestore.d.ts +45 -0
  539. package/dist/sandbox/firestore/admin-compat/firestore.d.ts.map +1 -0
  540. package/dist/sandbox/firestore/admin-compat/firestore.js +114 -0
  541. package/dist/sandbox/firestore/admin-compat/firestore.js.map +1 -0
  542. package/dist/sandbox/firestore/admin-compat/index.d.ts +45 -0
  543. package/dist/sandbox/firestore/admin-compat/index.d.ts.map +1 -0
  544. package/dist/sandbox/firestore/admin-compat/index.js +27 -0
  545. package/dist/sandbox/firestore/admin-compat/index.js.map +1 -0
  546. package/dist/sandbox/firestore/admin-compat/paths.d.ts +37 -0
  547. package/dist/sandbox/firestore/admin-compat/paths.d.ts.map +1 -0
  548. package/dist/sandbox/firestore/admin-compat/paths.js +49 -0
  549. package/dist/sandbox/firestore/admin-compat/paths.js.map +1 -0
  550. package/dist/sandbox/firestore/admin-compat/query.d.ts +261 -0
  551. package/dist/sandbox/firestore/admin-compat/query.d.ts.map +1 -0
  552. package/dist/sandbox/firestore/admin-compat/query.js +704 -0
  553. package/dist/sandbox/firestore/admin-compat/query.js.map +1 -0
  554. package/dist/sandbox/firestore/admin-compat/read-translation.d.ts +8 -0
  555. package/dist/sandbox/firestore/admin-compat/read-translation.d.ts.map +1 -0
  556. package/dist/sandbox/firestore/admin-compat/read-translation.js +59 -0
  557. package/dist/sandbox/firestore/admin-compat/read-translation.js.map +1 -0
  558. package/dist/sandbox/firestore/admin-compat/snapshots.d.ts +39 -0
  559. package/dist/sandbox/firestore/admin-compat/snapshots.d.ts.map +1 -0
  560. package/dist/sandbox/firestore/admin-compat/snapshots.js +50 -0
  561. package/dist/sandbox/firestore/admin-compat/snapshots.js.map +1 -0
  562. package/dist/sandbox/firestore/admin-compat/transaction.d.ts +35 -0
  563. package/dist/sandbox/firestore/admin-compat/transaction.d.ts.map +1 -0
  564. package/dist/sandbox/firestore/admin-compat/transaction.js +88 -0
  565. package/dist/sandbox/firestore/admin-compat/transaction.js.map +1 -0
  566. package/dist/sandbox/firestore/admin-compat/types.d.ts +297 -0
  567. package/dist/sandbox/firestore/admin-compat/types.d.ts.map +1 -0
  568. package/dist/sandbox/firestore/admin-compat/types.js +127 -0
  569. package/dist/sandbox/firestore/admin-compat/types.js.map +1 -0
  570. package/dist/sandbox/firestore/admin-compat/value-order.d.ts +49 -0
  571. package/dist/sandbox/firestore/admin-compat/value-order.d.ts.map +1 -0
  572. package/dist/sandbox/firestore/admin-compat/value-order.js +172 -0
  573. package/dist/sandbox/firestore/admin-compat/value-order.js.map +1 -0
  574. package/dist/sandbox/firestore/auto-id.d.ts +26 -0
  575. package/dist/sandbox/firestore/auto-id.d.ts.map +1 -0
  576. package/dist/sandbox/firestore/auto-id.js +36 -0
  577. package/dist/sandbox/firestore/auto-id.js.map +1 -0
  578. package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts +48 -0
  579. package/dist/sandbox/firestore/converters/bytes-geopoint.d.ts.map +1 -0
  580. package/dist/sandbox/firestore/converters/bytes-geopoint.js +85 -0
  581. package/dist/sandbox/firestore/converters/bytes-geopoint.js.map +1 -0
  582. package/dist/sandbox/firestore/converters/fieldvalue.d.ts +69 -0
  583. package/dist/sandbox/firestore/converters/fieldvalue.d.ts.map +1 -0
  584. package/dist/sandbox/firestore/converters/fieldvalue.js +166 -0
  585. package/dist/sandbox/firestore/converters/fieldvalue.js.map +1 -0
  586. package/dist/sandbox/firestore/converters/reference.d.ts +31 -0
  587. package/dist/sandbox/firestore/converters/reference.d.ts.map +1 -0
  588. package/dist/sandbox/firestore/converters/reference.js +51 -0
  589. package/dist/sandbox/firestore/converters/reference.js.map +1 -0
  590. package/dist/sandbox/firestore/converters/timestamp.d.ts +32 -0
  591. package/dist/sandbox/firestore/converters/timestamp.d.ts.map +1 -0
  592. package/dist/sandbox/firestore/converters/timestamp.js +63 -0
  593. package/dist/sandbox/firestore/converters/timestamp.js.map +1 -0
  594. package/dist/sandbox/firestore/converters/user-timestamp.d.ts +46 -0
  595. package/dist/sandbox/firestore/converters/user-timestamp.d.ts.map +1 -0
  596. package/dist/sandbox/firestore/converters/user-timestamp.js +65 -0
  597. package/dist/sandbox/firestore/converters/user-timestamp.js.map +1 -0
  598. package/dist/sandbox/firestore/converters/vector.d.ts +24 -0
  599. package/dist/sandbox/firestore/converters/vector.d.ts.map +1 -0
  600. package/dist/sandbox/firestore/converters/vector.js +53 -0
  601. package/dist/sandbox/firestore/converters/vector.js.map +1 -0
  602. package/dist/sandbox/firestore/errors.d.ts +82 -0
  603. package/dist/sandbox/firestore/errors.d.ts.map +1 -0
  604. package/dist/sandbox/firestore/errors.js +54 -0
  605. package/dist/sandbox/firestore/errors.js.map +1 -0
  606. package/dist/sandbox/firestore/event-log.d.ts +99 -0
  607. package/dist/sandbox/firestore/event-log.d.ts.map +1 -0
  608. package/dist/sandbox/firestore/event-log.js +67 -0
  609. package/dist/sandbox/firestore/event-log.js.map +1 -0
  610. package/dist/sandbox/firestore/field-merge.d.ts +64 -0
  611. package/dist/sandbox/firestore/field-merge.d.ts.map +1 -0
  612. package/dist/sandbox/firestore/field-merge.js +221 -0
  613. package/dist/sandbox/firestore/field-merge.js.map +1 -0
  614. package/dist/sandbox/firestore/list-query-proof.d.ts +77 -0
  615. package/dist/sandbox/firestore/list-query-proof.d.ts.map +1 -0
  616. package/dist/sandbox/firestore/list-query-proof.js +170 -0
  617. package/dist/sandbox/firestore/list-query-proof.js.map +1 -0
  618. package/dist/sandbox/firestore/local-environment.d.ts +806 -0
  619. package/dist/sandbox/firestore/local-environment.d.ts.map +1 -0
  620. package/dist/sandbox/firestore/local-environment.js +3028 -0
  621. package/dist/sandbox/firestore/local-environment.js.map +1 -0
  622. package/dist/sandbox/firestore/local-state.d.ts +196 -0
  623. package/dist/sandbox/firestore/local-state.d.ts.map +1 -0
  624. package/dist/sandbox/firestore/local-state.js +413 -0
  625. package/dist/sandbox/firestore/local-state.js.map +1 -0
  626. package/dist/sandbox/firestore/overlay-backing.d.ts +44 -0
  627. package/dist/sandbox/firestore/overlay-backing.d.ts.map +1 -0
  628. package/dist/sandbox/firestore/overlay-backing.js +82 -0
  629. package/dist/sandbox/firestore/overlay-backing.js.map +1 -0
  630. package/dist/sandbox/firestore/sentinel-capture.d.ts +30 -0
  631. package/dist/sandbox/firestore/sentinel-capture.d.ts.map +1 -0
  632. package/dist/sandbox/firestore/sentinel-capture.js +61 -0
  633. package/dist/sandbox/firestore/sentinel-capture.js.map +1 -0
  634. package/dist/sandbox/firestore/snapshot-listeners.d.ts +284 -0
  635. package/dist/sandbox/firestore/snapshot-listeners.d.ts.map +1 -0
  636. package/dist/sandbox/firestore/snapshot-listeners.js +194 -0
  637. package/dist/sandbox/firestore/snapshot-listeners.js.map +1 -0
  638. package/dist/sandbox/firestore/topk.d.ts +12 -0
  639. package/dist/sandbox/firestore/topk.d.ts.map +1 -0
  640. package/dist/sandbox/firestore/topk.js +42 -0
  641. package/dist/sandbox/firestore/topk.js.map +1 -0
  642. package/dist/sandbox/firestore/transaction-merge.d.ts +55 -0
  643. package/dist/sandbox/firestore/transaction-merge.d.ts.map +1 -0
  644. package/dist/sandbox/firestore/transaction-merge.js +107 -0
  645. package/dist/sandbox/firestore/transaction-merge.js.map +1 -0
  646. package/dist/sandbox/firestore/transaction-types.d.ts +152 -0
  647. package/dist/sandbox/firestore/transaction-types.d.ts.map +1 -0
  648. package/dist/sandbox/firestore/transaction-types.js +10 -0
  649. package/dist/sandbox/firestore/transaction-types.js.map +1 -0
  650. package/dist/sandbox/firestore/transaction.d.ts +79 -0
  651. package/dist/sandbox/firestore/transaction.d.ts.map +1 -0
  652. package/dist/sandbox/firestore/transaction.js +95 -0
  653. package/dist/sandbox/firestore/transaction.js.map +1 -0
  654. package/dist/sandbox/firestore/value-equality.d.ts +2 -0
  655. package/dist/sandbox/firestore/value-equality.d.ts.map +1 -0
  656. package/dist/sandbox/firestore/value-equality.js +35 -0
  657. package/dist/sandbox/firestore/value-equality.js.map +1 -0
  658. package/dist/sandbox/firestore/value-resolver.d.ts +172 -0
  659. package/dist/sandbox/firestore/value-resolver.d.ts.map +1 -0
  660. package/dist/sandbox/firestore/value-resolver.js +221 -0
  661. package/dist/sandbox/firestore/value-resolver.js.map +1 -0
  662. package/dist/sandbox/firestore/wire-encoder.d.ts +14 -0
  663. package/dist/sandbox/firestore/wire-encoder.d.ts.map +1 -0
  664. package/dist/sandbox/firestore/wire-encoder.js +130 -0
  665. package/dist/sandbox/firestore/wire-encoder.js.map +1 -0
  666. package/dist/sandbox/index.d.ts +50 -0
  667. package/dist/sandbox/index.d.ts.map +1 -0
  668. package/dist/sandbox/index.js +63 -0
  669. package/dist/sandbox/index.js.map +1 -0
  670. package/dist/sandbox/internal/index.d.ts +36 -0
  671. package/dist/sandbox/internal/index.d.ts.map +1 -0
  672. package/dist/sandbox/internal/index.js +72 -0
  673. package/dist/sandbox/internal/index.js.map +1 -0
  674. package/dist/sandbox/internal/sandbox-impl.d.ts +343 -0
  675. package/dist/sandbox/internal/sandbox-impl.d.ts.map +1 -0
  676. package/dist/sandbox/internal/sandbox-impl.js +718 -0
  677. package/dist/sandbox/internal/sandbox-impl.js.map +1 -0
  678. package/dist/sandbox/persistence/backends.d.ts +37 -0
  679. package/dist/sandbox/persistence/backends.d.ts.map +1 -0
  680. package/dist/sandbox/persistence/backends.js +202 -0
  681. package/dist/sandbox/persistence/backends.js.map +1 -0
  682. package/dist/sandbox/persistence/chunk-format.d.ts +58 -0
  683. package/dist/sandbox/persistence/chunk-format.d.ts.map +1 -0
  684. package/dist/sandbox/persistence/chunk-format.js +163 -0
  685. package/dist/sandbox/persistence/chunk-format.js.map +1 -0
  686. package/dist/sandbox/persistence/controller.d.ts +39 -0
  687. package/dist/sandbox/persistence/controller.d.ts.map +1 -0
  688. package/dist/sandbox/persistence/controller.js +605 -0
  689. package/dist/sandbox/persistence/controller.js.map +1 -0
  690. package/dist/sandbox/persistence/index.d.ts +13 -0
  691. package/dist/sandbox/persistence/index.d.ts.map +1 -0
  692. package/dist/sandbox/persistence/index.js +5 -0
  693. package/dist/sandbox/persistence/index.js.map +1 -0
  694. package/dist/sandbox/persistence/serialize.d.ts +53 -0
  695. package/dist/sandbox/persistence/serialize.d.ts.map +1 -0
  696. package/dist/sandbox/persistence/serialize.js +98 -0
  697. package/dist/sandbox/persistence/serialize.js.map +1 -0
  698. package/dist/sandbox/persistence/types.d.ts +118 -0
  699. package/dist/sandbox/persistence/types.d.ts.map +1 -0
  700. package/dist/sandbox/persistence/types.js +15 -0
  701. package/dist/sandbox/persistence/types.js.map +1 -0
  702. package/dist/sandbox/remote.d.ts +118 -0
  703. package/dist/sandbox/remote.d.ts.map +1 -0
  704. package/dist/sandbox/remote.js +60 -0
  705. package/dist/sandbox/remote.js.map +1 -0
  706. package/dist/sandbox/replay/index.d.ts +106 -0
  707. package/dist/sandbox/replay/index.d.ts.map +1 -0
  708. package/dist/sandbox/replay/index.js +246 -0
  709. package/dist/sandbox/replay/index.js.map +1 -0
  710. package/dist/sandbox/sandbox-context.d.ts +40 -0
  711. package/dist/sandbox/sandbox-context.d.ts.map +1 -0
  712. package/dist/sandbox/sandbox-context.js +72 -0
  713. package/dist/sandbox/sandbox-context.js.map +1 -0
  714. package/dist/sandbox/tab-sync/index.d.ts +120 -0
  715. package/dist/sandbox/tab-sync/index.d.ts.map +1 -0
  716. package/dist/sandbox/tab-sync/index.js +272 -0
  717. package/dist/sandbox/tab-sync/index.js.map +1 -0
  718. package/dist/sandbox/types.d.ts +1235 -0
  719. package/dist/sandbox/types.d.ts.map +1 -0
  720. package/dist/sandbox/types.js +46 -0
  721. package/dist/sandbox/types.js.map +1 -0
  722. package/dist/storage/admin/api.d.ts +206 -0
  723. package/dist/storage/admin/api.d.ts.map +1 -0
  724. package/dist/storage/admin/api.js +349 -0
  725. package/dist/storage/admin/api.js.map +1 -0
  726. package/dist/storage/admin/handler.d.ts +29 -0
  727. package/dist/storage/admin/handler.d.ts.map +1 -0
  728. package/dist/storage/admin/handler.js +82 -0
  729. package/dist/storage/admin/handler.js.map +1 -0
  730. package/dist/storage/admin/spec.d.ts +64 -0
  731. package/dist/storage/admin/spec.d.ts.map +1 -0
  732. package/dist/storage/admin/spec.js +8 -0
  733. package/dist/storage/admin/spec.js.map +1 -0
  734. package/dist/storage/admin/tools.d.ts +23 -0
  735. package/dist/storage/admin/tools.d.ts.map +1 -0
  736. package/dist/storage/admin/tools.js +90 -0
  737. package/dist/storage/admin/tools.js.map +1 -0
  738. package/dist/storage/download.d.ts +27 -0
  739. package/dist/storage/download.d.ts.map +1 -0
  740. package/dist/storage/download.js +136 -0
  741. package/dist/storage/download.js.map +1 -0
  742. package/dist/storage/enforce.d.ts +26 -0
  743. package/dist/storage/enforce.d.ts.map +1 -0
  744. package/dist/storage/enforce.js +16 -0
  745. package/dist/storage/enforce.js.map +1 -0
  746. package/dist/storage/errors.d.ts +46 -0
  747. package/dist/storage/errors.d.ts.map +1 -0
  748. package/dist/storage/errors.js +62 -0
  749. package/dist/storage/errors.js.map +1 -0
  750. package/dist/storage/index.d.ts +49 -0
  751. package/dist/storage/index.d.ts.map +1 -0
  752. package/dist/storage/index.js +60 -0
  753. package/dist/storage/index.js.map +1 -0
  754. package/dist/storage/internal.d.ts +18 -0
  755. package/dist/storage/internal.d.ts.map +1 -0
  756. package/dist/storage/internal.js +18 -0
  757. package/dist/storage/internal.js.map +1 -0
  758. package/dist/storage/list.d.ts +17 -0
  759. package/dist/storage/list.d.ts.map +1 -0
  760. package/dist/storage/list.js +91 -0
  761. package/dist/storage/list.js.map +1 -0
  762. package/dist/storage/metadata.d.ts +86 -0
  763. package/dist/storage/metadata.d.ts.map +1 -0
  764. package/dist/storage/metadata.js +167 -0
  765. package/dist/storage/metadata.js.map +1 -0
  766. package/dist/storage/persistence.d.ts +134 -0
  767. package/dist/storage/persistence.d.ts.map +1 -0
  768. package/dist/storage/persistence.js +132 -0
  769. package/dist/storage/persistence.js.map +1 -0
  770. package/dist/storage/reference.d.ts +63 -0
  771. package/dist/storage/reference.d.ts.map +1 -0
  772. package/dist/storage/reference.js +156 -0
  773. package/dist/storage/reference.js.map +1 -0
  774. package/dist/storage/rules.d.ts +176 -0
  775. package/dist/storage/rules.d.ts.map +1 -0
  776. package/dist/storage/rules.js +621 -0
  777. package/dist/storage/rules.js.map +1 -0
  778. package/dist/storage/service.d.ts +139 -0
  779. package/dist/storage/service.d.ts.map +1 -0
  780. package/dist/storage/service.js +241 -0
  781. package/dist/storage/service.js.map +1 -0
  782. package/dist/storage/upload.d.ts +43 -0
  783. package/dist/storage/upload.d.ts.map +1 -0
  784. package/dist/storage/upload.js +235 -0
  785. package/dist/storage/upload.js.map +1 -0
  786. package/package.json +109 -3
@@ -0,0 +1,533 @@
1
+ /**
2
+ * `pyric/firestore` — modular Web-SDK Firestore adapter for the
3
+ * Pyric sandbox.
4
+ *
5
+ * Mirrors `firebase/firestore`'s tree-shakable free-function shape:
6
+ * `getDoc`, `setDoc`, `addDoc`, `query`, `where`, `orderBy`, `limit`,
7
+ * `onSnapshot`, `runTransaction`, etc. All operations route to one of
8
+ * two backends, picked at init time:
9
+ *
10
+ * - **Sandbox target** — wraps `pyric-admin`'s chainable adapter,
11
+ * which sits on `pyric/sandbox`'s `LocalEnvironment`. No
12
+ * network. Identity comes from a `SandboxContext`.
13
+ * - **Prod target** — wraps `firebase/firestore` against a real
14
+ * Firebase project. Identity comes from `firebase/auth`'s
15
+ * current user.
16
+ *
17
+ * Same call surface across both. Agent code that writes against the
18
+ * sandbox during iteration runs unmodified against prod at deploy.
19
+ *
20
+ * The dual-target machinery lives in two pieces:
21
+ * - {@link TARGET_SYMBOL} — hidden brand on every {@link Firestore}
22
+ * handle that names the active backend.
23
+ * - {@link refToTarget} — WeakMap from refs/queries back to their
24
+ * owning target, so chained calls (`query(coll, where(...))`,
25
+ * `getDocs(q)`) recover routing without re-tagging at every step.
26
+ *
27
+ * Every public function has a `target.kind` switch with explicit
28
+ * branches — the structure is parallel and grep-friendly.
29
+ */
30
+ import { Timestamp as ChainTimestamp, FieldValue as ChainFieldValue, SandboxError, type SandboxFirestore, type Query as ChainQuery, type Filter as ChainFilter, type DocumentData, type FieldValueSentinel, type LintResult, type OrderDirection, type Transaction as ChainTransaction, type WhereFilterOp, type WriteBatch as ChainWriteBatch } from 'pyric/sandbox/admin-firestore';
31
+ import type { AuthState, Sandbox, SandboxContext } from 'pyric/sandbox';
32
+ import type { FirebaseApp } from 'firebase/app';
33
+ import * as fb from 'firebase/firestore';
34
+ import { type PyricApp } from 'pyric/app';
35
+ /**
36
+ * Hidden property on every {@link Firestore} handle. Discriminates
37
+ * between sandbox and prod backends so free functions can route
38
+ * without consumer-visible API differences.
39
+ */
40
+ export declare const TARGET_SYMBOL: unique symbol;
41
+ type SandboxTarget = {
42
+ kind: 'sandbox';
43
+ db: SandboxFirestore;
44
+ sandbox: Sandbox;
45
+ };
46
+ /**
47
+ * Live-identity sandbox target — built by `getFirestore(sandbox)`.
48
+ *
49
+ * Unlike {@link SandboxTarget} (a frozen `SandboxContext` chosen at
50
+ * `getFirestore(ctx)` time), this variant reads `sandbox.currentUser`
51
+ * per operation via {@link getDb}. Every op constructs a fresh
52
+ * `SandboxContext` from the sandbox's *current* `currentUser` and
53
+ * obtains a chainable handle bound to that ctx.
54
+ *
55
+ * Wired into the modular surface so app code that uses both
56
+ * `pyric/auth` and `pyric/firestore` against the same `Sandbox` sees
57
+ * live auth-state changes: a `signInAnonymously` / `setUser` call on
58
+ * the auth side mutates `sandbox.currentUser`, and the next Firestore
59
+ * op evaluates rules under the new identity.
60
+ *
61
+ * `withAuth(null)` is anonymous; `withAuth(state)` is signed-in.
62
+ */
63
+ type SandboxLiveTarget = {
64
+ kind: 'sandbox-live';
65
+ sandbox: Sandbox;
66
+ getDb: () => SandboxFirestore;
67
+ };
68
+ type ProdTarget = {
69
+ kind: 'prod';
70
+ db: fb.Firestore;
71
+ };
72
+ type Target = SandboxTarget | SandboxLiveTarget | ProdTarget;
73
+ /**
74
+ * Pair of translators between the consumer's app model and the
75
+ * underlying Firestore representation. Mirrors `firebase/firestore`'s
76
+ * `FirestoreDataConverter` shape.
77
+ *
78
+ * - `toFirestore(model)` runs on every write (`setDoc`, `addDoc`)
79
+ * through a converted ref. Returns the `DocumentData` to send.
80
+ * - `fromFirestore(snapshot)` runs on every read (`getDoc`,
81
+ * `getDocs`, snapshot listener callback) through a converted ref.
82
+ * Receives the raw snapshot, returns the typed model.
83
+ */
84
+ export interface FirestoreDataConverter<AppModelType, DbModelType extends DocumentData = DocumentData> {
85
+ toFirestore(modelObject: AppModelType): DbModelType;
86
+ fromFirestore(snapshot: QueryDocumentSnapshot<DbModelType>): AppModelType;
87
+ }
88
+ /**
89
+ * Opaque handle returned by {@link getFirestoreSandbox} or
90
+ * {@link getFirestoreProd}. Carries the target via {@link TARGET_SYMBOL};
91
+ * never inspected by consumer code.
92
+ */
93
+ export interface Firestore {
94
+ readonly [TARGET_SYMBOL]: Target;
95
+ }
96
+ /**
97
+ * Construct a Firestore handle. Three overloads dispatch by the
98
+ * input's shape:
99
+ *
100
+ * - `SandboxContext` → sandbox-backed Firestore with a frozen
101
+ * identity (the ctx's `auth` chosen at `getFirestore` time). Best
102
+ * for runner/test code that names identity explicitly per
103
+ * scenario.
104
+ * - `Sandbox` → sandbox-backed Firestore that reads
105
+ * `sandbox.currentUser` per-call. Best for app code that drives
106
+ * identity through `pyric/auth` — every Firestore op evaluates
107
+ * rules under whatever user is currently signed in.
108
+ * - `FirebaseApp` → prod-backed Firestore (delegates to
109
+ * `firebase/firestore`'s `getFirestore(app)`).
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * // Sandbox, frozen identity (runner / explicit tests).
114
+ * import { initializeSandbox } from 'pyric/sandbox';
115
+ * import { getFirestore, doc, setDoc } from 'pyric/firestore';
116
+ * const sandbox = initializeSandbox();
117
+ * const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
118
+ *
119
+ * // Sandbox, live identity (app code paired with pyric/auth).
120
+ * import { initializeSandbox } from 'pyric/sandbox';
121
+ * import { getAuth, signInAnonymously } from 'pyric/auth';
122
+ * const sandbox = initializeSandbox();
123
+ * const auth = getAuth(sandbox);
124
+ * const db = getFirestore(sandbox); // reads sandbox.currentUser per op
125
+ * await signInAnonymously(auth); // subsequent db ops use the new identity
126
+ *
127
+ * // Prod.
128
+ * import { initializeApp } from 'firebase/app';
129
+ * import { getFirestore } from 'pyric/firestore';
130
+ * const app = initializeApp(userProjectConfig);
131
+ * const db = getFirestore(app);
132
+ * ```
133
+ */
134
+ export declare function getFirestore(ctx: SandboxContext): Firestore;
135
+ export declare function getFirestore(sandbox: Sandbox): Firestore;
136
+ export declare function getFirestore(app: FirebaseApp): Firestore;
137
+ export declare function getFirestore(app: PyricApp): Firestore;
138
+ /**
139
+ * A Firestore handle scoped to a specific identity, for multi-user testing.
140
+ *
141
+ * `actingAs(sandbox, { uid })` returns a `Firestore` whose ops evaluate security
142
+ * rules as that user (`request.auth.uid === uid`; custom claims via `token`);
143
+ * `actingAs(sandbox, null)` is the anonymous (signed-out) path. Multiple
144
+ * identities over ONE sandbox share the same store, so a write by one is
145
+ * delivered to another's `onSnapshot`: the basis for multi-user sync testing.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * import { initializeSandbox } from 'pyric/sandbox';
150
+ * import { actingAs, doc, setDoc, onSnapshot } from 'pyric/firestore';
151
+ * const sandbox = initializeSandbox();
152
+ * const alice = actingAs(sandbox, { uid: 'alice' });
153
+ * const bob = actingAs(sandbox, { uid: 'bob', token: { role: 'member' } });
154
+ * onSnapshot(doc(bob, 'rooms/r1'), () => {
155
+ * // fires when alice writes (same store; rules evaluated as bob)
156
+ * });
157
+ * await setDoc(doc(alice, 'rooms/r1'), { owner: 'alice' });
158
+ * ```
159
+ *
160
+ * Thin sugar over `getFirestore(sandbox.withAuth(identity))`; the value is a
161
+ * named, discoverable seam for multi-user scenarios. See
162
+ * the design rationale.
163
+ */
164
+ export declare function actingAs(sandbox: Sandbox, identity: AuthState): Firestore;
165
+ /**
166
+ * Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
167
+ * Studio admin lens (Gap #2). Every modular op issued against the returned
168
+ * handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
169
+ * `count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
170
+ * is treated as ALLOW, while still going through the same store + emitting
171
+ * the same events + waking the same listeners. This is the modular sibling
172
+ * of the path-string `sandbox.admin.*` bypass; it reuses the underlying
173
+ * `LocalEnvironment` bypass execution path (the `bypassRules` op flag),
174
+ * not a parallel reimplementation.
175
+ *
176
+ * Sandbox-only. There is no prod analog (you cannot bypass deployed
177
+ * security rules from a client), so this overload set accepts only a
178
+ * `Sandbox` / `SandboxContext` / sandbox-backed `PyricApp` — never a
179
+ * `FirebaseApp`. Admin ops are identity-agnostic (rules are off), so the
180
+ * handle is a FROZEN `sandbox` target: it does not track
181
+ * `sandbox.currentUser`.
182
+ *
183
+ * Intended for Studio's "edit anything as admin" surfaces (F2) and the
184
+ * serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
185
+ * impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
186
+ * uid }))` instead.
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * import { initializeSandbox } from 'pyric/sandbox';
191
+ * import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
192
+ * const sandbox = initializeSandbox();
193
+ * const adminDb = getAdminFirestore(sandbox);
194
+ * await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
195
+ * ```
196
+ */
197
+ export declare function getAdminFirestore(sandbox: Sandbox): Firestore;
198
+ export declare function getAdminFirestore(ctx: SandboxContext): Firestore;
199
+ export declare function getAdminFirestore(app: PyricApp): Firestore;
200
+ /** A reference to a Firestore document. Backend-opaque. */
201
+ export interface DocumentReference<_T = DocumentData> {
202
+ readonly id: string;
203
+ readonly path: string;
204
+ }
205
+ /** A reference to a Firestore collection. Backend-opaque. */
206
+ export interface CollectionReference<_T = DocumentData> {
207
+ readonly id: string;
208
+ readonly path: string;
209
+ }
210
+ /** A Firestore query (a collection ref or one with where/orderBy/limit applied). */
211
+ export interface Query<_T = DocumentData> {
212
+ readonly _isQuery?: true;
213
+ }
214
+ /** A point-in-time view of one document. */
215
+ export interface DocumentSnapshot<T = DocumentData> {
216
+ readonly id: string;
217
+ readonly exists: boolean | (() => boolean);
218
+ data(): T | undefined;
219
+ }
220
+ /**
221
+ * `QueryDocumentSnapshot` is a `DocumentSnapshot` known to exist —
222
+ * `.data()` always returns the typed model, never `undefined`. Yielded
223
+ * by `QuerySnapshot.docs` and passed to converter `fromFirestore`
224
+ * callbacks. Mirrors the JS SDK's narrowing.
225
+ */
226
+ export interface QueryDocumentSnapshot<T = DocumentData> extends DocumentSnapshot<T> {
227
+ data(): T;
228
+ }
229
+ /** A point-in-time view of a query result. */
230
+ export interface QuerySnapshot<T = DocumentData> {
231
+ readonly size: number;
232
+ readonly empty: boolean;
233
+ readonly docs: ReadonlyArray<QueryDocumentSnapshot<T>>;
234
+ }
235
+ export type WriteBatch = ChainWriteBatch | fb.WriteBatch;
236
+ export type Transaction = ChainTransaction | fb.Transaction;
237
+ export type Unsubscribe = () => void;
238
+ export type { AuthState, Sandbox, SandboxContext, DocumentData, FieldValueSentinel, LintResult, OrderDirection, WhereFilterOp, FirebaseApp, };
239
+ export { SandboxError };
240
+ export { Bytes, GeoPoint, documentId, FieldPath, vector, VectorValue, } from 'firebase/firestore';
241
+ /** True when two `DocumentReference`s point at the same path under
242
+ * the same target. */
243
+ export declare function refEqual(a: DocumentReference, b: DocumentReference): boolean;
244
+ /** True when two `Query`s are structurally identical (same source +
245
+ * same constraint chain). */
246
+ export declare function queryEqual(a: Query, b: Query): boolean;
247
+ /** True when two `DocumentSnapshot` / `QuerySnapshot` pairs describe
248
+ * the same underlying data + path. */
249
+ export declare function snapshotEqual(a: DocumentSnapshot | QuerySnapshot, b: DocumentSnapshot | QuerySnapshot): boolean;
250
+ /**
251
+ * Point the prod-target Firestore handle at the Firestore emulator.
252
+ * Must be called BEFORE any operation runs against `db`. No-op on
253
+ * sandbox-target handles (the sandbox IS a local emulator).
254
+ *
255
+ * `options` mirrors `firebase/firestore`'s shape — pass
256
+ * `{ mockUserToken: '…' }` to bypass auth checks under the emulator,
257
+ * matching how the JS SDK lets tests skip Firebase Auth.
258
+ */
259
+ export declare function connectFirestoreEmulator(db: Firestore, host: string, port: number, options?: {
260
+ mockUserToken?: string | fb.EmulatorMockTokenOptions;
261
+ }): void;
262
+ export declare function doc<T = DocumentData>(parent: Firestore | CollectionReference<T>, ...pathSegments: string[]): DocumentReference<T>;
263
+ /**
264
+ * Cross-collection query — scans every document under every
265
+ * collection whose final segment matches `collectionId`. Mirrors
266
+ * `firebase/firestore`'s `collectionGroup(db, id)` shape.
267
+ *
268
+ * Returned `Query` accepts the same `where` / `orderBy` / `limit`
269
+ * constraints as any other query.
270
+ */
271
+ export declare function collectionGroup(db: Firestore, collectionId: string): Query;
272
+ export declare function collection(parent: Firestore | DocumentReference, ...pathSegments: string[]): CollectionReference;
273
+ export declare function getDoc<T = DocumentData>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
274
+ export declare function getDocs<T = DocumentData>(query: Query<T>): Promise<QuerySnapshot<T>>;
275
+ /**
276
+ * Modular Web-SDK-shaped `SetOptions`. Either flag controls how `data`
277
+ * combines with the existing document; passing nothing replaces the
278
+ * existing doc entirely (Firestore default).
279
+ *
280
+ * - `{ merge: true }` — shallow-merge every top-level field in
281
+ * `data` into the existing document, preserving fields not in
282
+ * `data`. Equivalent to `firebase/firestore`'s `setDoc(ref, data,
283
+ * { merge: true })`.
284
+ * - `{ mergeFields: [...] }` — project `data` to just the listed
285
+ * top-level fields, then merge. Other fields in `data` are
286
+ * ignored; other fields in the existing doc are preserved.
287
+ *
288
+ * `merge` and `mergeFields` are mutually exclusive; passing both is
289
+ * a programming error (`mergeFields` wins on the sandbox path,
290
+ * matching the JS SDK's effective behavior).
291
+ */
292
+ export interface SetOptions {
293
+ merge?: boolean;
294
+ mergeFields?: readonly string[];
295
+ }
296
+ export declare function setDoc<T = DocumentData>(ref: DocumentReference<T>, data: T, options?: SetOptions): Promise<void>;
297
+ /**
298
+ * `updateDoc` does NOT run the converter. Matches `firebase/firestore`'s
299
+ * Web SDK shape — partial updates can target any subset of fields, so
300
+ * a translator built around a full `AppModelType` would be a type-shape
301
+ * mismatch. Use the underlying `DocumentData` view (`withConverter(ref,
302
+ * null)`) for typed-and-untyped mixed access if you need both styles
303
+ * against the same path.
304
+ */
305
+ export declare function updateDoc(ref: DocumentReference, data: DocumentData): Promise<void>;
306
+ export declare function deleteDoc(ref: DocumentReference): Promise<void>;
307
+ export declare function addDoc<T = DocumentData>(coll: CollectionReference<T>, data: T): Promise<DocumentReference<T>>;
308
+ export declare function withConverter<AppModel, DbModel extends DocumentData = DocumentData>(ref: DocumentReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): DocumentReference<AppModel>;
309
+ export declare function withConverter(ref: DocumentReference<unknown>, converter: null): DocumentReference<DocumentData>;
310
+ export declare function withConverter<AppModel, DbModel extends DocumentData = DocumentData>(ref: CollectionReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): CollectionReference<AppModel>;
311
+ export declare function withConverter(ref: CollectionReference<unknown>, converter: null): CollectionReference<DocumentData>;
312
+ export declare function withConverter<AppModel, DbModel extends DocumentData = DocumentData>(q: Query<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): Query<AppModel>;
313
+ export declare function withConverter(q: Query<unknown>, converter: null): Query<DocumentData>;
314
+ export interface QueryConstraint {
315
+ applySandbox(q: ChainQuery): ChainQuery;
316
+ applyProd(q: fb.Query): fb.Query;
317
+ /**
318
+ * Internal — the filter representation for composite-filter
319
+ * composition. `where()` populates it as a leaf; `or()` / `and()`
320
+ * combine sub-constraints' filters into a composite tree. Non-filter
321
+ * constraints (`orderBy`, `limit`) leave it undefined; passing one
322
+ * to `or()` / `and()` throws.
323
+ */
324
+ _sandboxFilter?: ChainFilter;
325
+ _fbFilter?: fb.QueryFilterConstraint;
326
+ }
327
+ export declare function query<T = DocumentData>(source: CollectionReference<T> | Query<T>, ...constraints: QueryConstraint[]): Query<T>;
328
+ export declare function where(field: string, op: WhereFilterOp, value: unknown): QueryConstraint;
329
+ /**
330
+ * OR composite — at least one of the inner constraints must match.
331
+ * Each argument must itself be a filter constraint (`where()`, or
332
+ * nested `or()` / `and()`); passing `orderBy()` or `limit()` here is
333
+ * a type error at runtime.
334
+ *
335
+ * Mirrors `firebase/firestore`'s `or(...filters)` shape.
336
+ */
337
+ export declare function or(...filters: QueryConstraint[]): QueryConstraint;
338
+ /**
339
+ * AND composite. Same shape as `or()` but every inner constraint
340
+ * must match. Useful inside an `or()` to combine constraints that
341
+ * would otherwise be at the top level.
342
+ */
343
+ export declare function and(...filters: QueryConstraint[]): QueryConstraint;
344
+ export declare function orderBy(field: string, direction?: OrderDirection): QueryConstraint;
345
+ export declare function limit(n: number): QueryConstraint;
346
+ /**
347
+ * Limit the query to the LAST `n` documents in the ordered result.
348
+ * Requires at least one `orderBy` on the query (production-aligned —
349
+ * the simulator throws at execute time without one).
350
+ */
351
+ export declare function limitToLast(n: number): QueryConstraint;
352
+ /**
353
+ * Start the query at the document whose ordered field values match
354
+ * the cursor. Inclusive — the document at the cursor IS included in
355
+ * the result. Two overloads:
356
+ *
357
+ * `startAt(snapshot)` — values come from `snapshot.data()` indexed
358
+ * by the query's orderBy fields.
359
+ * `startAt(...values)` — explicit positional values (one per
360
+ * orderBy clause).
361
+ */
362
+ export declare function startAt(snapshot: DocumentSnapshot): QueryConstraint;
363
+ export declare function startAt(...values: unknown[]): QueryConstraint;
364
+ /** Same as `startAt`, but EXCLUDES the document at the cursor — the
365
+ * result starts at the next ordered position. */
366
+ export declare function startAfter(snapshot: DocumentSnapshot): QueryConstraint;
367
+ export declare function startAfter(...values: unknown[]): QueryConstraint;
368
+ /** End the query at the document whose ordered field values match
369
+ * the cursor. Inclusive — the document at the cursor IS included. */
370
+ export declare function endAt(snapshot: DocumentSnapshot): QueryConstraint;
371
+ export declare function endAt(...values: unknown[]): QueryConstraint;
372
+ /** Same as `endAt`, but EXCLUDES the document at the cursor — the
373
+ * result ends at the prior ordered position. */
374
+ export declare function endBefore(snapshot: DocumentSnapshot): QueryConstraint;
375
+ export declare function endBefore(...values: unknown[]): QueryConstraint;
376
+ /**
377
+ * Aggregate-field descriptor returned by `count()` / `sum(field)` /
378
+ * `average(field)`. Pyric-native; both targets accept it.
379
+ */
380
+ export type AggregateField = {
381
+ readonly kind: 'count';
382
+ } | {
383
+ readonly kind: 'sum';
384
+ readonly field: string;
385
+ } | {
386
+ readonly kind: 'average';
387
+ readonly field: string;
388
+ };
389
+ /** Spec passed to `getAggregateFromServer(query, spec)`. */
390
+ export type AggregateSpec = Record<string, AggregateField>;
391
+ /**
392
+ * Snapshot returned by `getCountFromServer` /
393
+ * `getAggregateFromServer`. `.data()` returns the computed numbers
394
+ * keyed by the spec's aliases (or `{ count: number }` for the
395
+ * count-only entry point).
396
+ */
397
+ export interface AggregateQuerySnapshot<T extends Record<string, number | null> = Record<string, number | null>> {
398
+ data(): T;
399
+ }
400
+ /** Factory: count() aggregate. */
401
+ export declare function count(): AggregateField;
402
+ /** Factory: sum-of-`field` aggregate. */
403
+ export declare function sum(field: string): AggregateField;
404
+ /** Factory: average-of-`field` aggregate. */
405
+ export declare function average(field: string): AggregateField;
406
+ /**
407
+ * Count documents matching the query. Returns a snapshot whose
408
+ * `.data()` yields `{ count: N }` — same shape `firebase/firestore`'s
409
+ * `getCountFromServer` produces.
410
+ */
411
+ export declare function getCountFromServer(source: Query | CollectionReference): Promise<AggregateQuerySnapshot<{
412
+ count: number;
413
+ }>>;
414
+ /**
415
+ * Run a multi-field aggregate against the query. Spec entries are
416
+ * keyed by caller-chosen aliases; the returned snapshot's `.data()`
417
+ * uses the same keys.
418
+ *
419
+ * Sandbox target dispatches straight into the chainable adapter.
420
+ * Prod target translates pyric's `AggregateField` shapes into
421
+ * `firebase/firestore` AggregateField instances (`fb.count()`,
422
+ * `fb.sum(...)`, `fb.average(...)`) before delegating.
423
+ */
424
+ export declare function getAggregateFromServer<S extends AggregateSpec>(source: Query | CollectionReference, spec: S): Promise<AggregateQuerySnapshot<{
425
+ [K in keyof S]: number | null;
426
+ }>>;
427
+ export interface SnapshotListenOptions {
428
+ includeMetadataChanges?: boolean;
429
+ }
430
+ export interface SnapshotObserver<T> {
431
+ next?: (snapshot: T) => void;
432
+ error?: (error: unknown) => void;
433
+ complete?: () => void;
434
+ }
435
+ export declare function onSnapshot<T extends DocumentReference | Query>(ref: T, observerOrNext: SnapshotObserver<unknown> | ((snap: unknown) => void), errorOrNothing?: ((error: unknown) => void)): Unsubscribe;
436
+ export declare function onSnapshot<T extends DocumentReference | Query>(ref: T, options: SnapshotListenOptions, observerOrNext: SnapshotObserver<unknown> | ((snap: unknown) => void), errorOrNothing?: ((error: unknown) => void)): Unsubscribe;
437
+ export declare function runTransaction<R>(db: Firestore, fn: (tx: Transaction) => Promise<R> | R): Promise<R>;
438
+ export declare function writeBatch(db: Firestore): WriteBatch;
439
+ /**
440
+ * Sandbox lifecycle operations. Only meaningful against a
441
+ * sandbox-target `Firestore` (built via `getFirestore(ctx)` with a
442
+ * `SandboxContext`). Each function throws `SandboxError` when
443
+ * handed a prod-target handle.
444
+ *
445
+ * **Naming note**: the `sandbox` export name conflicts with the
446
+ * common local variable from `initializeSandbox()` (which also
447
+ * returns a `Sandbox` typically held as `const sandbox = …`).
448
+ * When both are in scope, alias the import:
449
+ *
450
+ * ```ts
451
+ * import { sandbox as sandboxOps } from 'pyric/firestore';
452
+ * import { initializeSandbox } from 'pyric/sandbox';
453
+ *
454
+ * const sandbox = initializeSandbox(); // local var
455
+ * const db = getFirestore(sandbox.withAuth(…));
456
+ * sandboxOps.setRules(db, RULES); // SDK ops
457
+ * ```
458
+ *
459
+ * The `sandbox` name was kept because it accurately describes the
460
+ * surface (sandbox-only lifecycle). The renaming alternatives —
461
+ * `sbx`, `firestoreSandbox`, `localOps` — all read worse than the
462
+ * import-time alias.
463
+ */
464
+ export declare const sandbox: {
465
+ /** Load a rules source into the underlying `LocalEnvironment`. */
466
+ setRules(db: Firestore, rules: string): LintResult;
467
+ /** Bulk-load documents bypassing rules. */
468
+ seedDocuments(db: Firestore, documents: Record<string, DocumentData>): LintResult;
469
+ /** Dump every document the underlying `LocalEnvironment` has stored. */
470
+ snapshotState(db: Firestore): Record<string, DocumentData>;
471
+ /**
472
+ * Single-call diagnostic an agent uses to answer "what state is the
473
+ * sandbox in?" without grepping internal modules. Born out of
474
+ * CLAUDE_DEBUG_SESSION.md: a real agent took 51 tool calls + 72k
475
+ * tokens to figure out that the scaffold's rules weren't loaded.
476
+ *
477
+ * Returns: current rules source, lint summary, doc count by
478
+ * collection, recent denials, recent requests. Stable JSON shape —
479
+ * marshalled over MCP by `sandbox_inspect`.
480
+ */
481
+ inspect(db: Firestore, opts?: {
482
+ recentEventLimit?: number;
483
+ }): SandboxInspect;
484
+ };
485
+ /**
486
+ * Shape returned by {@link sandbox.inspect}. Stable JSON-serializable
487
+ * surface — agents marshal this over MCP.
488
+ */
489
+ export interface SandboxInspect {
490
+ rules: {
491
+ source: string;
492
+ sizeBytes: number;
493
+ isEmpty: boolean;
494
+ lint: {
495
+ errors: number;
496
+ warnings: number;
497
+ info: number;
498
+ findings: Array<{
499
+ rule: string;
500
+ severity: string;
501
+ message: string;
502
+ }>;
503
+ };
504
+ };
505
+ documents: {
506
+ totalCount: number;
507
+ byCollection: Record<string, number>;
508
+ };
509
+ events: {
510
+ totalCount: number;
511
+ recentDenials: Array<{
512
+ path: string;
513
+ method: string;
514
+ auth: unknown;
515
+ debugMessage?: string;
516
+ }>;
517
+ recentRequests: Array<{
518
+ path: string;
519
+ method: string;
520
+ result: string;
521
+ auth: unknown;
522
+ }>;
523
+ };
524
+ }
525
+ export { ChainFieldValue as FieldValue, ChainTimestamp as Timestamp };
526
+ export declare function serverTimestamp(): FieldValueSentinel;
527
+ export declare function increment(n: number): FieldValueSentinel;
528
+ export declare function arrayUnion(...values: unknown[]): FieldValueSentinel;
529
+ export declare function arrayRemove(...values: unknown[]): FieldValueSentinel;
530
+ export declare function deleteField(): FieldValueSentinel;
531
+ export { createFirestoreDataTools, createFirestoreInspectTools } from './tools.js';
532
+ export type { FirestoreDataToolDeps, UserAuth, As } from './tools.js';
533
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"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"}