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
package/README.md CHANGED
@@ -1,3 +1,54 @@
1
1
  # pyric
2
2
 
3
- Reserved.
3
+ Firebase-shaped client SDK adapters with a swappable in-process sandbox
4
+ backend, plus Pyric's rules tooling and sandbox runtime.
5
+
6
+ > **Alpha.** This package is an early alpha. The Firebase-mirrored subpaths
7
+ > (`pyric/app`, `pyric/firestore`, `pyric/auth`, `pyric/database`,
8
+ > `pyric/storage`) are best-effort mirror contracts of the modular Web SDK —
9
+ > not guaranteed parity. Non-mirrored exports (e.g. `pyric/sandbox/internal`,
10
+ > the rules tooling subpaths) are experimental public-alpha surfaces that may
11
+ > change without notice.
12
+
13
+ `pyric` mirrors Firebase's modular Web SDK subpaths:
14
+
15
+ | Subpath | Surface |
16
+ |---|---|
17
+ | `pyric/app` | `initializeApp`, `PyricApp`, sandbox/prod app tags |
18
+ | `pyric/firestore` | Firestore modular SDK mirror plus data/inspect tool factories |
19
+ | `pyric/auth` | Auth modular SDK mirror plus sandbox auth helpers |
20
+ | `pyric/database` | Realtime Database modular SDK mirror plus admin tools |
21
+ | `pyric/storage` | Storage modular SDK mirror plus storage admin tools |
22
+ | `pyric/rules` | Firestore rules parser, linter, validator, simulator, stdlib tooling |
23
+ | `pyric/rules/node` | Node-only rules module resolution helpers |
24
+ | `pyric/rules/rtdb` | Realtime Database rules facade: mapper, parser/linter, simulator, deploy/read rule tool factory |
25
+ | `pyric/rules/rtdb-constraints` | Realtime Database rules constraint helpers |
26
+ | `pyric/sandbox` | In-process Firebase sandbox runtime |
27
+ | `pyric/sandbox/internal` | Adapter-only internal protocol surface |
28
+ | `pyric/sandbox/admin-compat` | Chainable admin-compat Firestore wrapper over the sandbox |
29
+
30
+ ## Example
31
+
32
+ ```ts
33
+ import { initializeApp } from 'pyric/app';
34
+ import { initializeSandbox } from 'pyric/sandbox';
35
+ import { getFirestore, collection, getDocs } from 'pyric/firestore';
36
+
37
+ const app = initializeApp({ sandbox: initializeSandbox() });
38
+ const db = getFirestore(app);
39
+
40
+ const snap = await getDocs(collection(db, 'posts'));
41
+ ```
42
+
43
+ To target production Firebase instead, pass normal Firebase app options to
44
+ `initializeApp`. Downstream Firestore/Auth/Database/Storage calls keep the same
45
+ shape.
46
+
47
+ ## Docs
48
+
49
+ - [Firestore](docs/firestore/)
50
+ - [Auth](docs/auth/)
51
+ - [Realtime Database](docs/database/)
52
+ - [Storage](docs/storage/)
53
+ - [Rules](docs/rules/)
54
+ - [Sandbox](docs/sandbox/)
@@ -0,0 +1,81 @@
1
+ /**
2
+ * `pyric/app` — Phase 3 initializeApp surface (ADR-001 D5).
3
+ *
4
+ * Mirror shape: at cutover this becomes `pyric/app` and is the single
5
+ * entry point where the sandbox-vs-prod choice is made. Every other
6
+ * subpath (`getFirestore(app)`, `getAuth(app)`, `getDatabase(app)`,
7
+ * `getStorage(app)`) is backend-agnostic — they inspect the `PyricApp`
8
+ * handle for the brand and route accordingly.
9
+ *
10
+ * Current shadow scope:
11
+ * - `initializeApp({ sandbox })` — sandbox-backed app handle (live).
12
+ * - `initializeApp(firebaseConfig)` — prod-backed app handle (live).
13
+ * - Adapter dispatch (the `getFirestore(app)` etc. wrappers) is
14
+ * **deferred to cutover**: the adapter subpaths still re-export
15
+ * from `pyric/firestore` / `pyric/auth` / etc., which take their
16
+ * own per-backend handles. Implementing the wrap requires hiding
17
+ * the existing `getFirestore` overloads behind the unified
18
+ * handle, which lands cleanly when source folds into
19
+ * `packages/pyric/src/*` and the existing entry points go away.
20
+ *
21
+ * The handle shape is finalized here so consumers can begin coding
22
+ * against it (and stubs throw on the deferred call).
23
+ */
24
+ import type { Sandbox } from 'pyric/sandbox';
25
+ import { type FirebaseApp, type FirebaseOptions } from 'firebase/app';
26
+ /**
27
+ * Brand symbol on every PyricApp. Adapter dispatch reads this to
28
+ * route between sandbox and prod backends. Mirrors the
29
+ * `TARGET_SYMBOL` pattern that `pyric/firestore` uses internally.
30
+ */
31
+ export declare const APP_TARGET: unique symbol;
32
+ export type PyricAppTarget = 'sandbox' | 'prod';
33
+ export interface SandboxApp {
34
+ readonly [APP_TARGET]: 'sandbox';
35
+ readonly sandbox: Sandbox;
36
+ }
37
+ export interface ProdApp {
38
+ readonly [APP_TARGET]: 'prod';
39
+ readonly firebaseApp: FirebaseApp;
40
+ }
41
+ /**
42
+ * The unified app handle. Carries the backend selection so every
43
+ * adapter can dispatch from a single argument.
44
+ */
45
+ export type PyricApp = SandboxApp | ProdApp;
46
+ /**
47
+ * The two accepted config shapes. The discriminator is the presence
48
+ * of a `sandbox` field — sandbox handles always carry one, Firebase
49
+ * options never do.
50
+ */
51
+ export type InitializeAppConfig = {
52
+ sandbox: Sandbox;
53
+ } | FirebaseOptions;
54
+ /**
55
+ * Initialize a Pyric app.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * // Sandbox-backed (tests, agent loops, playground)
60
+ * import { initializeApp } from 'pyric/app';
61
+ * import { initializeSandbox } from 'pyric/sandbox';
62
+ * const app = initializeApp({ sandbox: initializeSandbox() });
63
+ *
64
+ * // Prod-backed (drop-in for existing Firebase code)
65
+ * const app = initializeApp({
66
+ * apiKey: '...', projectId: '...', // ...standard FirebaseOptions
67
+ * });
68
+ * ```
69
+ */
70
+ export declare function initializeApp(config: InitializeAppConfig): PyricApp;
71
+ /**
72
+ * Type guard for the sandbox app handle. Adapter dispatch sites use
73
+ * this to route to the sandbox-backed `@pyric/*` implementation.
74
+ */
75
+ export declare function isSandboxApp(app: PyricApp): app is SandboxApp;
76
+ /**
77
+ * Type guard for the prod app handle. Adapter dispatch sites use
78
+ * this to route to the `firebase/*` modular SDK.
79
+ */
80
+ export declare function isProdApp(app: PyricApp): app is ProdApp;
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAA0C,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9G;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAAiC,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,QAAQ,CAanE;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,IAAI,UAAU,CAE7D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,IAAI,OAAO,CAEvD"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * `pyric/app` — Phase 3 initializeApp surface (ADR-001 D5).
3
+ *
4
+ * Mirror shape: at cutover this becomes `pyric/app` and is the single
5
+ * entry point where the sandbox-vs-prod choice is made. Every other
6
+ * subpath (`getFirestore(app)`, `getAuth(app)`, `getDatabase(app)`,
7
+ * `getStorage(app)`) is backend-agnostic — they inspect the `PyricApp`
8
+ * handle for the brand and route accordingly.
9
+ *
10
+ * Current shadow scope:
11
+ * - `initializeApp({ sandbox })` — sandbox-backed app handle (live).
12
+ * - `initializeApp(firebaseConfig)` — prod-backed app handle (live).
13
+ * - Adapter dispatch (the `getFirestore(app)` etc. wrappers) is
14
+ * **deferred to cutover**: the adapter subpaths still re-export
15
+ * from `pyric/firestore` / `pyric/auth` / etc., which take their
16
+ * own per-backend handles. Implementing the wrap requires hiding
17
+ * the existing `getFirestore` overloads behind the unified
18
+ * handle, which lands cleanly when source folds into
19
+ * `packages/pyric/src/*` and the existing entry points go away.
20
+ *
21
+ * The handle shape is finalized here so consumers can begin coding
22
+ * against it (and stubs throw on the deferred call).
23
+ */
24
+ import { initializeApp as initializeFirebaseApp } from 'firebase/app';
25
+ /**
26
+ * Brand symbol on every PyricApp. Adapter dispatch reads this to
27
+ * route between sandbox and prod backends. Mirrors the
28
+ * `TARGET_SYMBOL` pattern that `pyric/firestore` uses internally.
29
+ */
30
+ export const APP_TARGET = Symbol.for('pyric.app.target');
31
+ /**
32
+ * Initialize a Pyric app.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * // Sandbox-backed (tests, agent loops, playground)
37
+ * import { initializeApp } from 'pyric/app';
38
+ * import { initializeSandbox } from 'pyric/sandbox';
39
+ * const app = initializeApp({ sandbox: initializeSandbox() });
40
+ *
41
+ * // Prod-backed (drop-in for existing Firebase code)
42
+ * const app = initializeApp({
43
+ * apiKey: '...', projectId: '...', // ...standard FirebaseOptions
44
+ * });
45
+ * ```
46
+ */
47
+ export function initializeApp(config) {
48
+ if (isSandboxConfig(config)) {
49
+ return {
50
+ [APP_TARGET]: 'sandbox',
51
+ sandbox: config.sandbox,
52
+ };
53
+ }
54
+ // Prod path: delegate to firebase/app initializeApp.
55
+ const firebaseApp = initializeFirebaseApp(config);
56
+ return {
57
+ [APP_TARGET]: 'prod',
58
+ firebaseApp,
59
+ };
60
+ }
61
+ function isSandboxConfig(config) {
62
+ return typeof config === 'object' && config !== null && 'sandbox' in config;
63
+ }
64
+ /**
65
+ * Type guard for the sandbox app handle. Adapter dispatch sites use
66
+ * this to route to the sandbox-backed `@pyric/*` implementation.
67
+ */
68
+ export function isSandboxApp(app) {
69
+ return app[APP_TARGET] === 'sandbox';
70
+ }
71
+ /**
72
+ * Type guard for the prod app handle. Adapter dispatch sites use
73
+ * this to route to the `firebase/*` modular SDK.
74
+ */
75
+ export function isProdApp(app) {
76
+ return app[APP_TARGET] === 'prod';
77
+ }
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAA0C,MAAM,cAAc,CAAC;AAE9G;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA2BzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,CAAC,UAAU,CAAC,EAAE,SAAS;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IACD,qDAAqD;IACrD,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO;QACL,CAAC,UAAU,CAAC,EAAE,MAAM;QACpB,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAA2B;IAClD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,CAAC;AAC9E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAa;IACxC,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;AACpC,CAAC"}
@@ -0,0 +1,346 @@
1
+ /**
2
+ * `pyric/auth` — modular Web-SDK Auth adapter for the Pyric
3
+ * sandbox.
4
+ *
5
+ * Mirrors `firebase/auth`'s tree-shakable free-function surface
6
+ * (`getAuth`, `signInAnonymously`, `signInWithEmailAndPassword`,
7
+ * `onAuthStateChanged`, `signInWithPopup`, `GoogleAuthProvider`, …)
8
+ * with two backends picked at init:
9
+ *
10
+ * - **Sandbox target** — in-memory user DB + listener registry,
11
+ * drives `sandbox.currentUser` so service factories (a future
12
+ * `getFirestore(sandbox)` overload, follow-up PR) see identity
13
+ * changes without re-binding.
14
+ * - **Prod target** — delegates straight to `firebase/auth`.
15
+ *
16
+ * Same call surface across both. Agent code that writes against the
17
+ * sandbox during iteration runs unmodified against prod at deploy.
18
+ *
19
+ * Dual-target dispatch follows the same pattern as `pyric/firestore`:
20
+ * - {@link TARGET_SYMBOL} brands every {@link Auth} handle.
21
+ * - {@link targetOf} (internal) reads it and switches on
22
+ * `target.kind`.
23
+ *
24
+ * Sandbox-only test driver lives under {@link sandbox}, mirroring
25
+ * `pyric/firestore`'s `sandbox.setRules` etc. — each method throws
26
+ * `failed-precondition` if called against a prod-backed handle.
27
+ *
28
+ * v0 scope is deliberately minimal. The deny-list is documented in
29
+ * `docs/reference/feature-matrix.md`; agent `appSource` that imports
30
+ * any of those will fail to bundle once the playground's
31
+ * `firebase/auth` → `pyric/auth` alias swap lands.
32
+ */
33
+ import { type Sandbox } from 'pyric/sandbox';
34
+ import type { FirebaseApp } from 'firebase/app';
35
+ import { type PyricApp } from 'pyric/app';
36
+ import { type AuthUserRecord, type CreateUserRequest, type MintSessionRequest, type MintedSession, type SeedUser, type SignInIdentitySpec, type UpdateUserRequest } from './sandbox-backend.js';
37
+ import { type Auth, type AuthFlowRequest, type AuthFlowResolver, type AuthObserver, type IdTokenResult, type Persistence, type Unsubscribe, type User, type UserCredential, type UserInfo, type AuthCredential } from './types.js';
38
+ import type { AuthProvider } from './providers.js';
39
+ export type { Auth, AuthCredential, AuthFlowRequest, AuthFlowResolver, AuthObserver, IdTokenResult, Persistence, Unsubscribe, User, UserCredential, UserInfo, };
40
+ export type { AuthProvider } from './providers.js';
41
+ export type { AuthUserRecord, CreateUserRequest, MintSessionRequest, MintedSession, ProviderUserInfo, SeedUser, SignInIdentitySpec, UpdateUserRequest, } from './sandbox-backend.js';
42
+ export { TARGET_SYMBOL } from './types.js';
43
+ export { EmailAuthProvider, FacebookAuthProvider, GithubAuthProvider, GoogleAuthProvider, OAuthProvider, FEDERATED_PROVIDER_IDS, type FederatedProviderId, } from './providers.js';
44
+ export declare const inMemoryPersistence: Persistence;
45
+ export declare const browserSessionPersistence: Persistence;
46
+ export declare const browserLocalPersistence: Persistence;
47
+ /**
48
+ * Construct an {@link Auth} handle. Two overloads:
49
+ * - `getAuth(sandbox)` — sandbox-backed.
50
+ * - `getAuth(app)` — prod-backed; delegates to
51
+ * `firebase/auth.getAuth(app)`.
52
+ *
53
+ * Idempotent on both targets — calling twice for the same input
54
+ * returns the same handle.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * // Sandbox.
59
+ * import { initializeSandbox } from 'pyric/sandbox';
60
+ * import { getAuth, signInAnonymously } from 'pyric/auth';
61
+ * const sandbox = initializeSandbox();
62
+ * const auth = getAuth(sandbox);
63
+ * await signInAnonymously(auth);
64
+ *
65
+ * // Prod.
66
+ * import { initializeApp } from 'firebase/app';
67
+ * import { getAuth } from 'pyric/auth';
68
+ * const app = initializeApp(userProjectConfig);
69
+ * const auth = getAuth(app);
70
+ * ```
71
+ */
72
+ export declare function getAuth(sandbox: Sandbox): Auth;
73
+ export declare function getAuth(app: FirebaseApp): Auth;
74
+ export declare function getAuth(app: PyricApp): Auth;
75
+ /**
76
+ * `connectAuthEmulator(auth, url, options?)` — on sandbox handles
77
+ * this is a no-op (the sandbox IS the emulator); on prod it
78
+ * delegates straight to `firebase/auth.connectAuthEmulator`.
79
+ *
80
+ * Same signature as upstream so consumer code that calls this at
81
+ * init time works against both backends unchanged.
82
+ */
83
+ export declare function connectAuthEmulator(auth: Auth, url: string, options?: {
84
+ disableWarnings?: boolean;
85
+ }): void;
86
+ export declare function signInAnonymously(auth: Auth): Promise<UserCredential>;
87
+ export declare function signInWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
88
+ export declare function createUserWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
89
+ export declare function signOut(auth: Auth): Promise<void>;
90
+ export declare function setPersistence(auth: Auth, persistence: Persistence): Promise<void>;
91
+ /**
92
+ * The `resolver` argument is sandbox-only: on a prod-backed handle the
93
+ * call delegates to `firebase/auth`, which uses its own platform default
94
+ * (browser) resolver, and this argument is ignored.
95
+ */
96
+ export declare function signInWithPopup(auth: Auth, provider: AuthProvider, resolver?: AuthFlowResolver): Promise<UserCredential>;
97
+ /**
98
+ * The `resolver` argument is sandbox-only — see {@link signInWithPopup}.
99
+ */
100
+ export declare function signInWithRedirect(auth: Auth, provider: AuthProvider, resolver?: AuthFlowResolver): Promise<void>;
101
+ export declare function getRedirectResult(auth: Auth, _resolver?: AuthFlowResolver): Promise<UserCredential | null>;
102
+ export declare function signInWithCredential(auth: Auth, credential: AuthCredential): Promise<UserCredential>;
103
+ export declare function onAuthStateChanged(auth: Auth, observer: AuthObserver): Unsubscribe;
104
+ export declare function onIdTokenChanged(auth: Auth, observer: AuthObserver): Unsubscribe;
105
+ /**
106
+ * Top-level mirror of `firebase/auth`'s `getIdToken(user)`. Delegates
107
+ * to the method on the user handle, so it works on both backends.
108
+ *
109
+ * Parity provenance: W1.5 grid (2026-06-10) — generated apps import
110
+ * the modular free function, and its absence failed every render of
111
+ * the claims-driven fixtures.
112
+ */
113
+ export declare function getIdToken(user: User, forceRefresh?: boolean): Promise<string>;
114
+ /** Top-level mirror of `firebase/auth`'s `getIdTokenResult(user)`. */
115
+ export declare function getIdTokenResult(user: User, forceRefresh?: boolean): Promise<IdTokenResult>;
116
+ /**
117
+ * Top-level mirror of `firebase/auth`'s `updateProfile(user, profile)`.
118
+ * Updates the signed-in user's `displayName` / `photoURL` — pass `null` to
119
+ * clear a field, omit it to leave it untouched. Mutates the user object in
120
+ * place (held references, including `auth.currentUser`, reflect the change).
121
+ *
122
+ * Dispatches through the hidden {@link USER_INTERNAL} hook the backend stamps
123
+ * on every `User`, so it routes correctly WITHOUT an `auth` handle — matching
124
+ * upstream's user-only signature. Works on both sandbox and prod targets.
125
+ *
126
+ * Per `firebase/auth`, this does NOT fire `onAuthStateChanged` /
127
+ * `onIdTokenChanged`.
128
+ */
129
+ export declare function updateProfile(user: User, profile: {
130
+ displayName?: string | null;
131
+ photoURL?: string | null;
132
+ }): Promise<void>;
133
+ /**
134
+ * Sandbox-only lifecycle / test-driver surface. Throws
135
+ * `failed-precondition` on prod-backed handles — mirrors the
136
+ * `pyric/firestore` `sandbox.*` pattern.
137
+ *
138
+ * **Naming note:** the `sandbox` export name collides with the
139
+ * common `const sandbox = initializeSandbox()` local. Alias on
140
+ * import if both are in scope:
141
+ *
142
+ * ```ts
143
+ * import { sandbox as authSandbox } from 'pyric/auth';
144
+ * import { initializeSandbox } from 'pyric/sandbox';
145
+ * const sandbox = initializeSandbox();
146
+ * const auth = getAuth(sandbox);
147
+ * authSandbox.seedUsers(auth, […]);
148
+ * ```
149
+ */
150
+ export declare const sandbox: {
151
+ /**
152
+ * Force the current user (and emit to listeners). Pass `null` to
153
+ * sign out. Bypasses the email/password lookup — useful for
154
+ * driving auth state directly in tests without seeding.
155
+ */
156
+ setUser(auth: Auth, user: User | null): void;
157
+ /**
158
+ * Install the popup/redirect resolver — the analog of browser
159
+ * `getAuth` wiring `browserPopupRedirectResolver`. The host
160
+ * (playground) sets this once; `signInWithPopup` / `signInWithRedirect`
161
+ * then delegate the experience to it. Pass `null` to clear.
162
+ *
163
+ * Precedence at sign-in time: a per-call resolver arg wins, then this
164
+ * injected one, then a one-shot `mockSignInResult`, else
165
+ * `auth/argument-error`.
166
+ */
167
+ setAuthFlowResolver(auth: Auth, resolver: AuthFlowResolver | null): void;
168
+ /**
169
+ * Snapshot every known identity (seeded + created), for a host
170
+ * account-picker UI. Sandbox-only — no `firebase/auth` equivalent.
171
+ */
172
+ listIdentities(auth: Auth): {
173
+ uid: string;
174
+ email: string | null;
175
+ displayName: string | null;
176
+ providerId: string;
177
+ providerUserInfo: import("./sandbox-backend.js").ProviderUserInfo[];
178
+ isAnonymous: boolean;
179
+ customClaims: Record<string, unknown>;
180
+ }[];
181
+ /**
182
+ * Mint a sign-in credential for a host-driven flow — the account
183
+ * picker's "pick existing" (`{providerId, uid}`) and "add account"
184
+ * (`{providerId, spec}`) actions. Token + claims synthesis is
185
+ * backend-owned (routed through the same token cache as every
186
+ * other sign-in), replacing host-synthesized token strings.
187
+ *
188
+ * The credential does NOT sign anyone in — resolve the pending
189
+ * `AuthFlowResolver` promise with it and the in-flight
190
+ * `signInWithPopup` / `signInWithRedirect` completes the sign-in.
191
+ */
192
+ createSignInCredential(auth: Auth, request: {
193
+ providerId: string;
194
+ uid: string;
195
+ } | {
196
+ providerId: string;
197
+ spec: SignInIdentitySpec;
198
+ }): UserCredential;
199
+ /**
200
+ * Pre-stage the result that the next `signInWithPopup` /
201
+ * `signInWithCredential` call for the matching `providerId`
202
+ * returns. The one-shot tier of the resolver precedence (used when no
203
+ * resolver is injected) — consumed by the next sign-in call; stage
204
+ * again for repeat tests.
205
+ */
206
+ mockSignInResult(auth: Auth, result: UserCredential): void;
207
+ /**
208
+ * Bulk-load test users for email/password lookup. Idempotent for
209
+ * a given uid+email — re-seeding the same uid overwrites.
210
+ */
211
+ seedUsers(auth: Auth, users: ReadonlyArray<SeedUser>): void;
212
+ /**
213
+ * Export the user DB in the exact shape {@link sandbox.seedUsers}
214
+ * accepts — `exportUsers` → `seedUsers` round-trips losslessly (the
215
+ * persistence substrate, the design rationale section 3c).
216
+ * Provider-flow identities without a password export with a documented
217
+ * sentinel; anonymous users are not exported (ephemeral by design).
218
+ */
219
+ exportUsers(auth: Auth): SeedUser[];
220
+ /**
221
+ * Re-establish a signed-in session for an EXISTING identity — the
222
+ * substrate behind web-storage session persistence at the host layer.
223
+ * Fires auth-state listeners like a real restored session. Throws
224
+ * `auth/user-not-found` for unknown uids, `auth/user-disabled` for
225
+ * disabled accounts (a restore is a sign-in).
226
+ */
227
+ restoreSession(auth: Auth, uid: string): User;
228
+ /**
229
+ * Mint a session identity WITHOUT signing it in globally — the
230
+ * substrate for **per-connection identity** at the serve layer
231
+ * (issue #754): one shared sandbox, N connections (tabs / clients),
232
+ * each with its own authenticated session. Performs a real sign-in's
233
+ * bookkeeping (provider record, `lastLoginAt`, a fresh token, the
234
+ * `sign_in` activity event) but leaves `auth.currentUser`, the
235
+ * auth-state listeners, and session persistence untouched.
236
+ *
237
+ * Returns the `User` plus the `AuthState` its data contexts should
238
+ * carry — `getFirestore(sandbox.withAuth(session.state))` evaluates
239
+ * rules exactly as a real sign-in would (`request.auth.uid` +
240
+ * custom claims on `request.auth.token`).
241
+ *
242
+ * This is an AUTHENTIC session (credentials are validated / an
243
+ * identity is really minted) — distinct from the rules-debugging
244
+ * impersonation lens, which asserts a uid without authenticating.
245
+ */
246
+ mintSession(auth: Auth, request: MintSessionRequest): MintedSession;
247
+ /**
248
+ * Every user in the sandbox user DB (seeded, created,
249
+ * signed-in-via-provider, anonymous) as {@link AuthUserRecord}s.
250
+ * Snapshot — subscribe to changes via {@link sandbox.subscribeUsers}.
251
+ */
252
+ listUsers(auth: Auth): AuthUserRecord[];
253
+ /**
254
+ * Create a user without signing them in (admin semantics — the
255
+ * client-mirror `createUserWithEmailAndPassword` is the
256
+ * signs-you-in variant). Throws `auth/uid-already-exists`,
257
+ * `auth/email-already-in-use`, `auth/invalid-email`,
258
+ * `auth/weak-password` on bad input.
259
+ */
260
+ createUser(auth: Auth, request: CreateUserRequest): AuthUserRecord;
261
+ /**
262
+ * Update a user. `undefined` fields untouched; `customClaims`
263
+ * replaces the whole map; setting `disabled: true` blocks future
264
+ * sign-ins with `auth/user-disabled` (active sessions continue —
265
+ * same as prod until token revocation).
266
+ */
267
+ updateUser(auth: Auth, uid: string, update: UpdateUserRequest): AuthUserRecord;
268
+ /**
269
+ * Update a user's PROFILE (`displayName` / `photoURL`) by uid — the
270
+ * backend behind the served worker path's `updateProfile`. `undefined`
271
+ * fields untouched; `null` clears. Returns the refreshed record; throws
272
+ * `auth/user-not-found` for an unknown uid. (The client-facing
273
+ * `updateProfile(user, …)` free function is the app-code surface; this is
274
+ * the by-uid op the SharedWorker host calls.)
275
+ */
276
+ updateProfile(auth: Auth, uid: string, profile: {
277
+ displayName?: string | null;
278
+ photoURL?: string | null;
279
+ }): AuthUserRecord;
280
+ /** Delete a user record. Throws `auth/user-not-found` for unknown
281
+ * uids. Active sessions are not terminated (prod parity). */
282
+ deleteUser(auth: Auth, uid: string): void;
283
+ /** Drop every user record — the emulator's "delete all accounts". */
284
+ clearUsers(auth: Auth): void;
285
+ /**
286
+ * Subscribe to user-DB mutations (seed / create / update / delete /
287
+ * clear / provider links / lastLoginAt bumps). Coarse contract: no
288
+ * payload, no initial fire — re-list via {@link sandbox.listUsers}
289
+ * in the callback.
290
+ */
291
+ subscribeUsers(auth: Auth, callback: () => void): Unsubscribe;
292
+ /**
293
+ * Every provider this sandbox has an explicit enablement for —
294
+ * seeded defaults (`password`, `anonymous` — both `true`) plus
295
+ * anything toggled via {@link sandbox.setAuthProviderConfig}. Every
296
+ * OTHER providerId (`google.com`, a custom OAuth id, …) is disabled
297
+ * until explicitly enabled.
298
+ */
299
+ getAuthProviderConfig(auth: Auth): Array<{
300
+ providerId: string;
301
+ enabled: boolean;
302
+ }>;
303
+ /**
304
+ * Enable/disable a sign-in provider. Gated at every provider entry
305
+ * point of the ENFORCING backend (`signInWithPopup`/`signInWithRedirect`,
306
+ * `signInWithCredential`, `createUserWithEmailAndPassword`/
307
+ * `signInWithEmailAndPassword` for `'password'`, `signInAnonymously`
308
+ * for `'anonymous'`) — disabling a provider makes the matching sign-in
309
+ * call throw real Firebase's `auth/operation-not-allowed`, exactly
310
+ * like flipping the toggle off in the real console. Survives
311
+ * `enablePersistence` round-trips (rides the `auth` service's
312
+ * snapshot alongside the user DB). A backend whose enforcement is
313
+ * delegated ({@link sandbox.delegateProviderEnforcement}) does NOT
314
+ * gate locally — the remote authority it fronts does.
315
+ */
316
+ setAuthProviderConfig(auth: Auth, providerId: string, enabled: boolean): void;
317
+ /**
318
+ * Assert a provider is enabled — throws `auth/operation-not-allowed`
319
+ * (the exact gate every provider entry point uses) when it is off.
320
+ * For hosts that ARE the enforcement authority for identities
321
+ * resolved elsewhere: the served SharedWorker calls this before
322
+ * accepting a page-resolved popup/redirect identity
323
+ * (`auth.acceptIdentity`), so Studio's provider toggles gate served
324
+ * OAuth sign-in at the shared backend, not at each page's UI shim.
325
+ */
326
+ assertAuthProviderEnabled(auth: Auth, providerId: string): void;
327
+ /**
328
+ * Delegate (or reclaim) THIS handle's provider-enablement gate to a
329
+ * remote authority. Serve-layer wiring: in SharedWorker mode the
330
+ * page-local sandbox is only the UI vehicle for popup/redirect
331
+ * resolution — the worker's `auth.acceptIdentity` gate (against the
332
+ * worker's own, undelegated config) is the real toggle enforcement —
333
+ * so the served `firebase/auth` entry sets `true` on the in-page
334
+ * handle to let the picker open regardless of local defaults. Do NOT
335
+ * set this on a backend that is itself the authority.
336
+ */
337
+ delegateProviderEnforcement(auth: Auth, delegated: boolean): void;
338
+ /**
339
+ * Subscribe to provider-config mutations. Coarse contract: no
340
+ * payload, no initial fire — re-read via
341
+ * {@link sandbox.getAuthProviderConfig} in the callback (same shape
342
+ * as {@link sandbox.subscribeUsers}).
343
+ */
344
+ subscribeAuthProviderConfig(auth: Auth, callback: () => void): Unsubscribe;
345
+ };
346
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}