@pyric/cli 0.1.0-alpha.9

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 (1169) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +156 -0
  3. package/README.md.orig +138 -0
  4. package/dist/assurance/attachment.d.ts +24 -0
  5. package/dist/assurance/attachment.d.ts.map +1 -0
  6. package/dist/assurance/attachment.js +138 -0
  7. package/dist/assurance/attachment.js.map +1 -0
  8. package/dist/assurance/browser.d.ts +7 -0
  9. package/dist/assurance/browser.d.ts.map +1 -0
  10. package/dist/assurance/browser.js +68 -0
  11. package/dist/assurance/browser.js.map +1 -0
  12. package/dist/assurance/campaign.d.ts +41 -0
  13. package/dist/assurance/campaign.d.ts.map +1 -0
  14. package/dist/assurance/campaign.js +364 -0
  15. package/dist/assurance/campaign.js.map +1 -0
  16. package/dist/assurance/capabilities.d.ts +7 -0
  17. package/dist/assurance/capabilities.d.ts.map +1 -0
  18. package/dist/assurance/capabilities.js +295 -0
  19. package/dist/assurance/capabilities.js.map +1 -0
  20. package/dist/assurance/cases.d.ts +14 -0
  21. package/dist/assurance/cases.d.ts.map +1 -0
  22. package/dist/assurance/cases.js +27 -0
  23. package/dist/assurance/cases.js.map +1 -0
  24. package/dist/assurance/generated-capabilities.d.ts +52 -0
  25. package/dist/assurance/generated-capabilities.d.ts.map +1 -0
  26. package/dist/assurance/generated-capabilities.js +329 -0
  27. package/dist/assurance/generated-capabilities.js.map +1 -0
  28. package/dist/assurance/index.d.ts +11 -0
  29. package/dist/assurance/index.d.ts.map +1 -0
  30. package/dist/assurance/index.js +9 -0
  31. package/dist/assurance/index.js.map +1 -0
  32. package/dist/assurance/runner.d.ts +3 -0
  33. package/dist/assurance/runner.d.ts.map +1 -0
  34. package/dist/assurance/runner.js +633 -0
  35. package/dist/assurance/runner.js.map +1 -0
  36. package/dist/assurance/tool-names.d.ts +4 -0
  37. package/dist/assurance/tool-names.d.ts.map +1 -0
  38. package/dist/assurance/tool-names.js +14 -0
  39. package/dist/assurance/tool-names.js.map +1 -0
  40. package/dist/assurance/tools.d.ts +19 -0
  41. package/dist/assurance/tools.d.ts.map +1 -0
  42. package/dist/assurance/tools.js +740 -0
  43. package/dist/assurance/tools.js.map +1 -0
  44. package/dist/assurance/types.d.ts +348 -0
  45. package/dist/assurance/types.d.ts.map +1 -0
  46. package/dist/assurance/types.js +7 -0
  47. package/dist/assurance/types.js.map +1 -0
  48. package/dist/assurance/validation.d.ts +8 -0
  49. package/dist/assurance/validation.d.ts.map +1 -0
  50. package/dist/assurance/validation.js +269 -0
  51. package/dist/assurance/validation.js.map +1 -0
  52. package/dist/bridge/client/bridge.d.ts +133 -0
  53. package/dist/bridge/client/bridge.d.ts.map +1 -0
  54. package/dist/bridge/client/bridge.js +429 -0
  55. package/dist/bridge/client/bridge.js.map +1 -0
  56. package/dist/bridge/client/dispatch.d.ts +41 -0
  57. package/dist/bridge/client/dispatch.d.ts.map +1 -0
  58. package/dist/bridge/client/dispatch.js +111 -0
  59. package/dist/bridge/client/dispatch.js.map +1 -0
  60. package/dist/bridge/client.d.ts +24 -0
  61. package/dist/bridge/client.d.ts.map +1 -0
  62. package/dist/bridge/client.js +26 -0
  63. package/dist/bridge/client.js.map +1 -0
  64. package/dist/bridge/protocol.d.ts +227 -0
  65. package/dist/bridge/protocol.d.ts.map +1 -0
  66. package/dist/bridge/protocol.js +131 -0
  67. package/dist/bridge/protocol.js.map +1 -0
  68. package/dist/bridge/server/audit.d.ts +19 -0
  69. package/dist/bridge/server/audit.d.ts.map +1 -0
  70. package/dist/bridge/server/audit.js +46 -0
  71. package/dist/bridge/server/audit.js.map +1 -0
  72. package/dist/bridge/server/bridge.d.ts +126 -0
  73. package/dist/bridge/server/bridge.d.ts.map +1 -0
  74. package/dist/bridge/server/bridge.js +383 -0
  75. package/dist/bridge/server/bridge.js.map +1 -0
  76. package/dist/bridge/server/headless.d.ts +36 -0
  77. package/dist/bridge/server/headless.d.ts.map +1 -0
  78. package/dist/bridge/server/headless.js +142 -0
  79. package/dist/bridge/server/headless.js.map +1 -0
  80. package/dist/bridge/server/json-schema-to-zod.d.ts +37 -0
  81. package/dist/bridge/server/json-schema-to-zod.d.ts.map +1 -0
  82. package/dist/bridge/server/json-schema-to-zod.js +93 -0
  83. package/dist/bridge/server/json-schema-to-zod.js.map +1 -0
  84. package/dist/bridge/server/local-bridge.d.ts +33 -0
  85. package/dist/bridge/server/local-bridge.d.ts.map +1 -0
  86. package/dist/bridge/server/local-bridge.js +41 -0
  87. package/dist/bridge/server/local-bridge.js.map +1 -0
  88. package/dist/bridge/server/logger.d.ts +28 -0
  89. package/dist/bridge/server/logger.d.ts.map +1 -0
  90. package/dist/bridge/server/logger.js +42 -0
  91. package/dist/bridge/server/logger.js.map +1 -0
  92. package/dist/bridge/server/mcp-contract.d.ts +21 -0
  93. package/dist/bridge/server/mcp-contract.d.ts.map +1 -0
  94. package/dist/bridge/server/mcp-contract.js +62 -0
  95. package/dist/bridge/server/mcp-contract.js.map +1 -0
  96. package/dist/bridge/server/mcp.d.ts +26 -0
  97. package/dist/bridge/server/mcp.d.ts.map +1 -0
  98. package/dist/bridge/server/mcp.js +102 -0
  99. package/dist/bridge/server/mcp.js.map +1 -0
  100. package/dist/bridge/server/peer.d.ts +39 -0
  101. package/dist/bridge/server/peer.d.ts.map +1 -0
  102. package/dist/bridge/server/peer.js +189 -0
  103. package/dist/bridge/server/peer.js.map +1 -0
  104. package/dist/bridge/server/standalone.d.ts +49 -0
  105. package/dist/bridge/server/standalone.d.ts.map +1 -0
  106. package/dist/bridge/server/standalone.js +267 -0
  107. package/dist/bridge/server/standalone.js.map +1 -0
  108. package/dist/bridge/server/tool-metadata.d.ts +38 -0
  109. package/dist/bridge/server/tool-metadata.d.ts.map +1 -0
  110. package/dist/bridge/server/tool-metadata.js +81 -0
  111. package/dist/bridge/server/tool-metadata.js.map +1 -0
  112. package/dist/bridge/server.d.ts +21 -0
  113. package/dist/bridge/server.d.ts.map +1 -0
  114. package/dist/bridge/server.js +18 -0
  115. package/dist/bridge/server.js.map +1 -0
  116. package/dist/cli/database-rules.d.ts +43 -0
  117. package/dist/cli/database-rules.d.ts.map +1 -0
  118. package/dist/cli/database-rules.js +261 -0
  119. package/dist/cli/database-rules.js.map +1 -0
  120. package/dist/cli/dev-runner.d.ts +112 -0
  121. package/dist/cli/dev-runner.d.ts.map +1 -0
  122. package/dist/cli/dev-runner.js +239 -0
  123. package/dist/cli/dev-runner.js.map +1 -0
  124. package/dist/cli/firebase-json.d.ts +66 -0
  125. package/dist/cli/firebase-json.d.ts.map +1 -0
  126. package/dist/cli/firebase-json.js +60 -0
  127. package/dist/cli/firebase-json.js.map +1 -0
  128. package/dist/cli/firestore-indexes.d.ts +21 -0
  129. package/dist/cli/firestore-indexes.d.ts.map +1 -0
  130. package/dist/cli/firestore-indexes.js +39 -0
  131. package/dist/cli/firestore-indexes.js.map +1 -0
  132. package/dist/cli/index.d.ts +56 -0
  133. package/dist/cli/index.d.ts.map +1 -0
  134. package/dist/cli/index.js +379 -0
  135. package/dist/cli/index.js.map +1 -0
  136. package/dist/cli/init.d.ts +50 -0
  137. package/dist/cli/init.d.ts.map +1 -0
  138. package/dist/cli/init.js +182 -0
  139. package/dist/cli/init.js.map +1 -0
  140. package/dist/cli/mcp-proxy.d.ts +10 -0
  141. package/dist/cli/mcp-proxy.d.ts.map +1 -0
  142. package/dist/cli/mcp-proxy.js +129 -0
  143. package/dist/cli/mcp-proxy.js.map +1 -0
  144. package/dist/cli/parse-args.d.ts +20 -0
  145. package/dist/cli/parse-args.d.ts.map +1 -0
  146. package/dist/cli/parse-args.js +69 -0
  147. package/dist/cli/parse-args.js.map +1 -0
  148. package/dist/cli/rules.d.ts +55 -0
  149. package/dist/cli/rules.d.ts.map +1 -0
  150. package/dist/cli/rules.js +199 -0
  151. package/dist/cli/rules.js.map +1 -0
  152. package/dist/cli/scope.d.ts +12 -0
  153. package/dist/cli/scope.d.ts.map +1 -0
  154. package/dist/cli/scope.js +44 -0
  155. package/dist/cli/scope.js.map +1 -0
  156. package/dist/cli/serve.d.ts +122 -0
  157. package/dist/cli/serve.d.ts.map +1 -0
  158. package/dist/cli/serve.js +844 -0
  159. package/dist/cli/serve.js.map +1 -0
  160. package/dist/cli/service-commands.d.ts +8 -0
  161. package/dist/cli/service-commands.d.ts.map +1 -0
  162. package/dist/cli/service-commands.js +58 -0
  163. package/dist/cli/service-commands.js.map +1 -0
  164. package/dist/cli/snapshot.d.ts +22 -0
  165. package/dist/cli/snapshot.d.ts.map +1 -0
  166. package/dist/cli/snapshot.js +139 -0
  167. package/dist/cli/snapshot.js.map +1 -0
  168. package/dist/cli/storage-rules.d.ts +21 -0
  169. package/dist/cli/storage-rules.d.ts.map +1 -0
  170. package/dist/cli/storage-rules.js +121 -0
  171. package/dist/cli/storage-rules.js.map +1 -0
  172. package/dist/cli/verify.d.ts +23 -0
  173. package/dist/cli/verify.d.ts.map +1 -0
  174. package/dist/cli/verify.js +349 -0
  175. package/dist/cli/verify.js.map +1 -0
  176. package/dist/credentials/core/memoize-ttl.d.ts +58 -0
  177. package/dist/credentials/core/memoize-ttl.d.ts.map +1 -0
  178. package/dist/credentials/core/memoize-ttl.js +88 -0
  179. package/dist/credentials/core/memoize-ttl.js.map +1 -0
  180. package/dist/credentials/core/types.d.ts +11 -0
  181. package/dist/credentials/core/types.d.ts.map +1 -0
  182. package/dist/credentials/core/types.js +2 -0
  183. package/dist/credentials/core/types.js.map +1 -0
  184. package/dist/credentials/node/from-adc.d.ts +10 -0
  185. package/dist/credentials/node/from-adc.d.ts.map +1 -0
  186. package/dist/credentials/node/from-adc.js +76 -0
  187. package/dist/credentials/node/from-adc.js.map +1 -0
  188. package/dist/credentials/node/from-service-account.d.ts +24 -0
  189. package/dist/credentials/node/from-service-account.d.ts.map +1 -0
  190. package/dist/credentials/node/from-service-account.js +108 -0
  191. package/dist/credentials/node/from-service-account.js.map +1 -0
  192. package/dist/credentials/node/index.d.ts +7 -0
  193. package/dist/credentials/node/index.d.ts.map +1 -0
  194. package/dist/credentials/node/index.js +7 -0
  195. package/dist/credentials/node/index.js.map +1 -0
  196. package/dist/discover/concurrency.d.ts +42 -0
  197. package/dist/discover/concurrency.d.ts.map +1 -0
  198. package/dist/discover/concurrency.js +113 -0
  199. package/dist/discover/concurrency.js.map +1 -0
  200. package/dist/discover/crawler-adapter.d.ts +48 -0
  201. package/dist/discover/crawler-adapter.d.ts.map +1 -0
  202. package/dist/discover/crawler-adapter.js +92 -0
  203. package/dist/discover/crawler-adapter.js.map +1 -0
  204. package/dist/discover/crawler.d.ts +294 -0
  205. package/dist/discover/crawler.d.ts.map +1 -0
  206. package/dist/discover/crawler.js +764 -0
  207. package/dist/discover/crawler.js.map +1 -0
  208. package/dist/discover/credential-free.d.ts +19 -0
  209. package/dist/discover/credential-free.d.ts.map +1 -0
  210. package/dist/discover/credential-free.js +18 -0
  211. package/dist/discover/credential-free.js.map +1 -0
  212. package/dist/discover/findCollectionGroup.d.ts +44 -0
  213. package/dist/discover/findCollectionGroup.d.ts.map +1 -0
  214. package/dist/discover/findCollectionGroup.js +81 -0
  215. package/dist/discover/findCollectionGroup.js.map +1 -0
  216. package/dist/discover/firestore-source.d.ts +60 -0
  217. package/dist/discover/firestore-source.d.ts.map +1 -0
  218. package/dist/discover/firestore-source.js +11 -0
  219. package/dist/discover/firestore-source.js.map +1 -0
  220. package/dist/discover/index.d.ts +3 -0
  221. package/dist/discover/index.d.ts.map +1 -0
  222. package/dist/discover/index.js +5 -0
  223. package/dist/discover/index.js.map +1 -0
  224. package/dist/discover/merge.d.ts +108 -0
  225. package/dist/discover/merge.d.ts.map +1 -0
  226. package/dist/discover/merge.js +394 -0
  227. package/dist/discover/merge.js.map +1 -0
  228. package/dist/discover/session.d.ts +116 -0
  229. package/dist/discover/session.d.ts.map +1 -0
  230. package/dist/discover/session.js +331 -0
  231. package/dist/discover/session.js.map +1 -0
  232. package/dist/discover/tools.d.ts +58 -0
  233. package/dist/discover/tools.d.ts.map +1 -0
  234. package/dist/discover/tools.js +115 -0
  235. package/dist/discover/tools.js.map +1 -0
  236. package/dist/discover/types.d.ts +190 -0
  237. package/dist/discover/types.d.ts.map +1 -0
  238. package/dist/discover/types.js +12 -0
  239. package/dist/discover/types.js.map +1 -0
  240. package/dist/discover/wire.d.ts +70 -0
  241. package/dist/discover/wire.d.ts.map +1 -0
  242. package/dist/discover/wire.js +309 -0
  243. package/dist/discover/wire.js.map +1 -0
  244. package/dist/functions-rtdb/child.d.ts +52 -0
  245. package/dist/functions-rtdb/child.d.ts.map +1 -0
  246. package/dist/functions-rtdb/child.js +283 -0
  247. package/dist/functions-rtdb/child.js.map +1 -0
  248. package/dist/functions-rtdb/delivery.d.ts +4 -0
  249. package/dist/functions-rtdb/delivery.d.ts.map +1 -0
  250. package/dist/functions-rtdb/delivery.js +2 -0
  251. package/dist/functions-rtdb/delivery.js.map +1 -0
  252. package/dist/functions-rtdb/discovery.d.ts +41 -0
  253. package/dist/functions-rtdb/discovery.d.ts.map +1 -0
  254. package/dist/functions-rtdb/discovery.js +86 -0
  255. package/dist/functions-rtdb/discovery.js.map +1 -0
  256. package/dist/functions-rtdb/event.d.ts +20 -0
  257. package/dist/functions-rtdb/event.d.ts.map +1 -0
  258. package/dist/functions-rtdb/event.js +45 -0
  259. package/dist/functions-rtdb/event.js.map +1 -0
  260. package/dist/functions-rtdb/execution.d.ts +20 -0
  261. package/dist/functions-rtdb/execution.d.ts.map +1 -0
  262. package/dist/functions-rtdb/execution.js +70 -0
  263. package/dist/functions-rtdb/execution.js.map +1 -0
  264. package/dist/functions-rtdb/in-memory-delivery.d.ts +9 -0
  265. package/dist/functions-rtdb/in-memory-delivery.d.ts.map +1 -0
  266. package/dist/functions-rtdb/in-memory-delivery.js +36 -0
  267. package/dist/functions-rtdb/in-memory-delivery.js.map +1 -0
  268. package/dist/functions-rtdb/project.d.ts +7 -0
  269. package/dist/functions-rtdb/project.d.ts.map +1 -0
  270. package/dist/functions-rtdb/project.js +54 -0
  271. package/dist/functions-rtdb/project.js.map +1 -0
  272. package/dist/functions-rtdb/projection.d.ts +14 -0
  273. package/dist/functions-rtdb/projection.d.ts.map +1 -0
  274. package/dist/functions-rtdb/projection.js +65 -0
  275. package/dist/functions-rtdb/projection.js.map +1 -0
  276. package/dist/functions-rtdb/reference-pattern.d.ts +5 -0
  277. package/dist/functions-rtdb/reference-pattern.d.ts.map +1 -0
  278. package/dist/functions-rtdb/reference-pattern.js +14 -0
  279. package/dist/functions-rtdb/reference-pattern.js.map +1 -0
  280. package/dist/functions-rtdb/remote-delivery.d.ts +9 -0
  281. package/dist/functions-rtdb/remote-delivery.d.ts.map +1 -0
  282. package/dist/functions-rtdb/remote-delivery.js +11 -0
  283. package/dist/functions-rtdb/remote-delivery.js.map +1 -0
  284. package/dist/pkg-version.d.ts +2 -0
  285. package/dist/pkg-version.d.ts.map +1 -0
  286. package/dist/pkg-version.js +47 -0
  287. package/dist/pkg-version.js.map +1 -0
  288. package/dist/register/esm-exports.d.ts +26 -0
  289. package/dist/register/esm-exports.d.ts.map +1 -0
  290. package/dist/register/esm-exports.js +61 -0
  291. package/dist/register/esm-exports.js.map +1 -0
  292. package/dist/register/hooks.d.ts +13 -0
  293. package/dist/register/hooks.d.ts.map +1 -0
  294. package/dist/register/hooks.js +15 -0
  295. package/dist/register/hooks.js.map +1 -0
  296. package/dist/register/index.d.ts +5 -0
  297. package/dist/register/index.d.ts.map +1 -0
  298. package/dist/register/index.js +124 -0
  299. package/dist/register/index.js.map +1 -0
  300. package/dist/register/mapping.d.ts +19 -0
  301. package/dist/register/mapping.d.ts.map +1 -0
  302. package/dist/register/mapping.js +35 -0
  303. package/dist/register/mapping.js.map +1 -0
  304. package/dist/remote/index.d.ts +232 -0
  305. package/dist/remote/index.d.ts.map +1 -0
  306. package/dist/remote/index.js +720 -0
  307. package/dist/remote/index.js.map +1 -0
  308. package/dist/rtdb/crawl-snapshot.d.ts +17 -0
  309. package/dist/rtdb/crawl-snapshot.d.ts.map +1 -0
  310. package/dist/rtdb/crawl-snapshot.js +72 -0
  311. package/dist/rtdb/crawl-snapshot.js.map +1 -0
  312. package/dist/rtdb/inspection.d.ts +8 -0
  313. package/dist/rtdb/inspection.d.ts.map +1 -0
  314. package/dist/rtdb/inspection.js +111 -0
  315. package/dist/rtdb/inspection.js.map +1 -0
  316. package/dist/rtdb/load-rules-document.d.ts +25 -0
  317. package/dist/rtdb/load-rules-document.d.ts.map +1 -0
  318. package/dist/rtdb/load-rules-document.js +38 -0
  319. package/dist/rtdb/load-rules-document.js.map +1 -0
  320. package/dist/rtdb/rules-generation-tool.d.ts +4 -0
  321. package/dist/rtdb/rules-generation-tool.d.ts.map +1 -0
  322. package/dist/rtdb/rules-generation-tool.js +35 -0
  323. package/dist/rtdb/rules-generation-tool.js.map +1 -0
  324. package/dist/rtdb/rules-json.d.ts +8 -0
  325. package/dist/rtdb/rules-json.d.ts.map +1 -0
  326. package/dist/rtdb/rules-json.js +17 -0
  327. package/dist/rtdb/rules-json.js.map +1 -0
  328. package/dist/serve/bridge-mount.d.ts +36 -0
  329. package/dist/serve/bridge-mount.d.ts.map +1 -0
  330. package/dist/serve/bridge-mount.js +162 -0
  331. package/dist/serve/bridge-mount.js.map +1 -0
  332. package/dist/serve/bundler.d.ts +110 -0
  333. package/dist/serve/bundler.d.ts.map +1 -0
  334. package/dist/serve/bundler.js +432 -0
  335. package/dist/serve/bundler.js.map +1 -0
  336. package/dist/serve/capture-store.d.ts +27 -0
  337. package/dist/serve/capture-store.d.ts.map +1 -0
  338. package/dist/serve/capture-store.js +47 -0
  339. package/dist/serve/capture-store.js.map +1 -0
  340. package/dist/serve/discovery.d.ts +71 -0
  341. package/dist/serve/discovery.d.ts.map +1 -0
  342. package/dist/serve/discovery.js +158 -0
  343. package/dist/serve/discovery.js.map +1 -0
  344. package/dist/serve/docs-ui/_astro/_slug_.CQYSemvw.css +1 -0
  345. package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
  346. package/dist/serve/docs-ui/docs/_rhythm.md +101 -0
  347. package/dist/serve/docs-ui/docs/api-reference/index.html +64 -0
  348. package/dist/serve/docs-ui/docs/api-reference.md +67 -0
  349. package/dist/serve/docs-ui/docs/audit-your-rules/index.html +34 -0
  350. package/dist/serve/docs-ui/docs/audit-your-rules.md +50 -0
  351. package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +498 -0
  352. package/dist/serve/docs-ui/docs/create-pyric-reference-api.md +345 -0
  353. package/dist/serve/docs-ui/docs/firestore-rules-limits/index.html +59 -0
  354. package/dist/serve/docs-ui/docs/firestore-rules-limits.md +54 -0
  355. package/dist/serve/docs-ui/docs/how-the-swap-works/index.html +47 -0
  356. package/dist/serve/docs-ui/docs/how-the-swap-works.md +43 -0
  357. package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase/index.html +131 -0
  358. package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase.md +169 -0
  359. package/dist/serve/docs-ui/docs/index.html +2 -0
  360. package/dist/serve/docs-ui/docs/index.json +18637 -0
  361. package/dist/serve/docs-ui/docs/overview/index.html +23 -0
  362. package/dist/serve/docs-ui/docs/overview.md +40 -0
  363. package/dist/serve/docs-ui/docs/pyric-admin-app/index.html +19 -0
  364. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +185 -0
  365. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api.md +206 -0
  366. package/dist/serve/docs-ui/docs/pyric-admin-app.md +27 -0
  367. package/dist/serve/docs-ui/docs/pyric-admin-auth/index.html +24 -0
  368. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +617 -0
  369. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api.md +441 -0
  370. package/dist/serve/docs-ui/docs/pyric-admin-auth.md +29 -0
  371. package/dist/serve/docs-ui/docs/pyric-admin-database/index.html +26 -0
  372. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +583 -0
  373. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api.md +597 -0
  374. package/dist/serve/docs-ui/docs/pyric-admin-database.md +31 -0
  375. package/dist/serve/docs-ui/docs/pyric-admin-firestore/index.html +38 -0
  376. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation/index.html +57 -0
  377. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation.md +95 -0
  378. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate/index.html +58 -0
  379. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate.md +94 -0
  380. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape/index.html +59 -0
  381. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape.md +88 -0
  382. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction/index.html +53 -0
  383. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction.md +76 -0
  384. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules/index.html +62 -0
  385. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules.md +96 -0
  386. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials/index.html +80 -0
  387. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials.md +98 -0
  388. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot/index.html +57 -0
  389. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot.md +88 -0
  390. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch/index.html +50 -0
  391. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch.md +73 -0
  392. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +32 -0
  393. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +30 -0
  394. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot/index.html +68 -0
  395. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot.md +81 -0
  396. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types/index.html +76 -0
  397. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types.md +103 -0
  398. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore/index.html +40 -0
  399. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore.md +77 -0
  400. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session/index.html +118 -0
  401. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session.md +166 -0
  402. package/dist/serve/docs-ui/docs/pyric-admin-firestore.md +53 -0
  403. package/dist/serve/docs-ui/docs/pyric-admin-storage/index.html +25 -0
  404. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +317 -0
  405. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api.md +285 -0
  406. package/dist/serve/docs-ui/docs/pyric-admin-storage.md +30 -0
  407. package/dist/serve/docs-ui/docs/pyric-ai-compat/index.html +436 -0
  408. package/dist/serve/docs-ui/docs/pyric-ai-compat.md +471 -0
  409. package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +5831 -0
  410. package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +5440 -0
  411. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +159 -0
  412. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api.md +122 -0
  413. package/dist/serve/docs-ui/docs/pyric-app-compat/index.html +180 -0
  414. package/dist/serve/docs-ui/docs/pyric-app-compat.md +199 -0
  415. package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +420 -0
  416. package/dist/serve/docs-ui/docs/pyric-app-reference-api.md +326 -0
  417. package/dist/serve/docs-ui/docs/pyric-auth/index.html +59 -0
  418. package/dist/serve/docs-ui/docs/pyric-auth-compat/index.html +804 -0
  419. package/dist/serve/docs-ui/docs/pyric-auth-compat.md +847 -0
  420. package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +5452 -0
  421. package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +5271 -0
  422. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix/index.html +781 -0
  423. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix.md +198 -0
  424. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver/index.html +71 -0
  425. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver.md +108 -0
  426. package/dist/serve/docs-ui/docs/pyric-auth.md +86 -0
  427. package/dist/serve/docs-ui/docs/pyric-cli/index.html +40 -0
  428. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +98 -0
  429. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api.md +88 -0
  430. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +2355 -0
  431. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +1554 -0
  432. package/dist/serve/docs-ui/docs/pyric-cli-bridge/index.html +69 -0
  433. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +546 -0
  434. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api.md +485 -0
  435. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +506 -0
  436. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api.md +419 -0
  437. package/dist/serve/docs-ui/docs/pyric-cli-bridge.md +99 -0
  438. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +67 -0
  439. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api.md +59 -0
  440. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +2355 -0
  441. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api.md +2036 -0
  442. package/dist/serve/docs-ui/docs/pyric-cli-functions-rtdb-compat/index.html +112 -0
  443. package/dist/serve/docs-ui/docs/pyric-cli-functions-rtdb-compat.md +124 -0
  444. package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary/index.html +91 -0
  445. package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary.md +105 -0
  446. package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture/index.html +52 -0
  447. package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture.md +98 -0
  448. package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated/index.html +66 -0
  449. package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated.md +100 -0
  450. package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab/index.html +228 -0
  451. package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab.md +179 -0
  452. package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin/index.html +341 -0
  453. package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin.md +309 -0
  454. package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session/index.html +128 -0
  455. package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session.md +207 -0
  456. package/dist/serve/docs-ui/docs/pyric-cli-reference-cli/index.html +404 -0
  457. package/dist/serve/docs-ui/docs/pyric-cli-reference-cli.md +249 -0
  458. package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution/index.html +93 -0
  459. package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution.md +65 -0
  460. package/dist/serve/docs-ui/docs/pyric-cli-reference-verify/index.html +81 -0
  461. package/dist/serve/docs-ui/docs/pyric-cli-reference-verify.md +110 -0
  462. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +10 -0
  463. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api.md +16 -0
  464. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1044 -0
  465. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api.md +952 -0
  466. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +5041 -0
  467. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +4739 -0
  468. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-server-adoption/index.html +219 -0
  469. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-server-adoption.md +251 -0
  470. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code/index.html +136 -0
  471. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code.md +217 -0
  472. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +926 -0
  473. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api.md +586 -0
  474. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +102 -0
  475. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api.md +76 -0
  476. package/dist/serve/docs-ui/docs/pyric-cli.md +42 -0
  477. package/dist/serve/docs-ui/docs/pyric-conformance-scores/index.html +180 -0
  478. package/dist/serve/docs-ui/docs/pyric-conformance-scores.md +184 -0
  479. package/dist/serve/docs-ui/docs/pyric-database/index.html +43 -0
  480. package/dist/serve/docs-ui/docs/pyric-database-compat/index.html +1224 -0
  481. package/dist/serve/docs-ui/docs/pyric-database-compat.md +1289 -0
  482. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate/index.html +16 -0
  483. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate.md +23 -0
  484. package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +1851 -0
  485. package/dist/serve/docs-ui/docs/pyric-database-reference-api.md +1842 -0
  486. package/dist/serve/docs-ui/docs/pyric-database-reference-constraints/index.html +381 -0
  487. package/dist/serve/docs-ui/docs/pyric-database-reference-constraints.md +168 -0
  488. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling/index.html +218 -0
  489. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling.md +303 -0
  490. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints/index.html +125 -0
  491. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints.md +171 -0
  492. package/dist/serve/docs-ui/docs/pyric-database.md +26 -0
  493. package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility/index.html +40 -0
  494. package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility.md +68 -0
  495. package/dist/serve/docs-ui/docs/pyric-firestore/index.html +48 -0
  496. package/dist/serve/docs-ui/docs/pyric-firestore-compat/index.html +868 -0
  497. package/dist/serve/docs-ui/docs/pyric-firestore-compat.md +939 -0
  498. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate/index.html +92 -0
  499. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate.md +70 -0
  500. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity/index.html +59 -0
  501. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity.md +91 -0
  502. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface/index.html +43 -0
  503. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface.md +58 -0
  504. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore/index.html +58 -0
  505. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore.md +86 -0
  506. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend/index.html +52 -0
  507. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend.md +83 -0
  508. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction/index.html +42 -0
  509. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction.md +59 -0
  510. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot/index.html +66 -0
  511. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot.md +96 -0
  512. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops/index.html +61 -0
  513. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops.md +92 -0
  514. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +3623 -0
  515. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +3399 -0
  516. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix/index.html +80 -0
  517. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix.md +66 -0
  518. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore/index.html +46 -0
  519. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore.md +73 -0
  520. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints/index.html +80 -0
  521. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints.md +129 -0
  522. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops/index.html +58 -0
  523. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops.md +88 -0
  524. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories/index.html +51 -0
  525. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories.md +71 -0
  526. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo/index.html +130 -0
  527. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo.md +180 -0
  528. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend/index.html +59 -0
  529. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend.md +92 -0
  530. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +30 -0
  531. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +30 -0
  532. package/dist/serve/docs-ui/docs/pyric-firestore.md +72 -0
  533. package/dist/serve/docs-ui/docs/pyric-messaging-compat/index.html +300 -0
  534. package/dist/serve/docs-ui/docs/pyric-messaging-compat.md +321 -0
  535. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +508 -0
  536. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api.md +374 -0
  537. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +482 -0
  538. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api.md +348 -0
  539. package/dist/serve/docs-ui/docs/pyric-rules/index.html +87 -0
  540. package/dist/serve/docs-ui/docs/pyric-rules-compat/index.html +328 -0
  541. package/dist/serve/docs-ui/docs/pyric-rules-compat.md +347 -0
  542. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes/index.html +50 -0
  543. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes.md +78 -0
  544. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test/index.html +79 -0
  545. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test.md +69 -0
  546. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates/index.html +67 -0
  547. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates.md +75 -0
  548. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine/index.html +49 -0
  549. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine.md +74 -0
  550. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api/index.html +95 -0
  551. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api.md +80 -0
  552. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension/index.html +58 -0
  553. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension.md +79 -0
  554. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design/index.html +63 -0
  555. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design.md +84 -0
  556. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists/index.html +34 -0
  557. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists.md +43 -0
  558. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening/index.html +55 -0
  559. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening.md +77 -0
  560. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast/index.html +90 -0
  561. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast.md +129 -0
  562. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source/index.html +55 -0
  563. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source.md +84 -0
  564. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time/index.html +49 -0
  565. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time.md +64 -0
  566. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent/index.html +61 -0
  567. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent.md +87 -0
  568. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports/index.html +93 -0
  569. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports.md +105 -0
  570. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally/index.html +89 -0
  571. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally.md +134 -0
  572. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase/index.html +66 -0
  573. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase.md +102 -0
  574. package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +2629 -0
  575. package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +2213 -0
  576. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast/index.html +85 -0
  577. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast.md +121 -0
  578. package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps/index.html +277 -0
  579. package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps.md +360 -0
  580. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors/index.html +76 -0
  581. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors.md +123 -0
  582. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules/index.html +148 -0
  583. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules.md +159 -0
  584. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context/index.html +66 -0
  585. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context.md +104 -0
  586. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules/index.html +241 -0
  587. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules.md +143 -0
  588. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema/index.html +94 -0
  589. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema.md +121 -0
  590. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings/index.html +87 -0
  591. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings.md +117 -0
  592. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers/index.html +102 -0
  593. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers.md +152 -0
  594. package/dist/serve/docs-ui/docs/pyric-rules.md +93 -0
  595. package/dist/serve/docs-ui/docs/pyric-sandbox/index.html +67 -0
  596. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +120 -0
  597. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api.md +110 -0
  598. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request/index.html +141 -0
  599. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request.md +161 -0
  600. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context/index.html +66 -0
  601. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context.md +110 -0
  602. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol/index.html +71 -0
  603. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol.md +111 -0
  604. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation/index.html +56 -0
  605. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation.md +82 -0
  606. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline/index.html +64 -0
  607. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline.md +56 -0
  608. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings/index.html +92 -0
  609. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings.md +90 -0
  610. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists/index.html +69 -0
  611. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists.md +57 -0
  612. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +202 -0
  613. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api.md +134 -0
  614. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes/index.html +63 -0
  615. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes.md +89 -0
  616. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events/index.html +159 -0
  617. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events.md +168 -0
  618. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter/index.html +79 -0
  619. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter.md +75 -0
  620. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events/index.html +88 -0
  621. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events.md +92 -0
  622. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests/index.html +68 -0
  623. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests.md +92 -0
  624. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules/index.html +91 -0
  625. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules.md +122 -0
  626. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users/index.html +50 -0
  627. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users.md +78 -0
  628. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads/index.html +54 -0
  629. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads.md +85 -0
  630. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +5019 -0
  631. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +4060 -0
  632. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences/index.html +125 -0
  633. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences.md +151 -0
  634. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes/index.html +110 -0
  635. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes.md +118 -0
  636. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol/index.html +72 -0
  637. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol.md +109 -0
  638. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context/index.html +90 -0
  639. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context.md +140 -0
  640. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event/index.html +146 -0
  641. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event.md +204 -0
  642. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin/index.html +53 -0
  643. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin.md +89 -0
  644. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session/index.html +115 -0
  645. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session.md +176 -0
  646. package/dist/serve/docs-ui/docs/pyric-sandbox.md +69 -0
  647. package/dist/serve/docs-ui/docs/pyric-storage/index.html +65 -0
  648. package/dist/serve/docs-ui/docs/pyric-storage-compat/index.html +676 -0
  649. package/dist/serve/docs-ui/docs/pyric-storage-compat.md +699 -0
  650. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope/index.html +52 -0
  651. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope.md +85 -0
  652. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case/index.html +58 -0
  653. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case.md +82 -0
  654. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb/index.html +50 -0
  655. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb.md +82 -0
  656. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules/index.html +120 -0
  657. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules.md +127 -0
  658. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete/index.html +53 -0
  659. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete.md +86 -0
  660. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends/index.html +43 -0
  661. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends.md +65 -0
  662. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions/index.html +70 -0
  663. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions.md +88 -0
  664. package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +2120 -0
  665. package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +1687 -0
  666. package/dist/serve/docs-ui/docs/pyric-storage-reference-conformance-gaps/index.html +137 -0
  667. package/dist/serve/docs-ui/docs/pyric-storage-reference-conformance-gaps.md +171 -0
  668. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes/index.html +37 -0
  669. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes.md +57 -0
  670. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset/index.html +96 -0
  671. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset.md +134 -0
  672. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options/index.html +39 -0
  673. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options.md +61 -0
  674. package/dist/serve/docs-ui/docs/pyric-storage.md +67 -0
  675. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +638 -0
  676. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api.md +430 -0
  677. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +813 -0
  678. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api.md +634 -0
  679. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +1708 -0
  680. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api.md +1300 -0
  681. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +177 -0
  682. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api.md +111 -0
  683. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +1542 -0
  684. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api.md +903 -0
  685. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1024 -0
  686. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api.md +640 -0
  687. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +2753 -0
  688. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api.md +2171 -0
  689. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +1005 -0
  690. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api.md +693 -0
  691. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +1388 -0
  692. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api.md +1340 -0
  693. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +131 -0
  694. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api.md +76 -0
  695. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +648 -0
  696. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api.md +508 -0
  697. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1457 -0
  698. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api.md +1029 -0
  699. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +2476 -0
  700. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api.md +1919 -0
  701. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1241 -0
  702. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api.md +817 -0
  703. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +2289 -0
  704. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api.md +1489 -0
  705. package/dist/serve/docs-ui/docs/read-a-denial/index.html +40 -0
  706. package/dist/serve/docs-ui/docs/read-a-denial.md +62 -0
  707. package/dist/serve/docs-ui/docs/receive-messages/index.html +28 -0
  708. package/dist/serve/docs-ui/docs/receive-messages.md +43 -0
  709. package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript/index.html +67 -0
  710. package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript.md +101 -0
  711. package/dist/serve/docs-ui/docs/rules-patterns/index.html +68 -0
  712. package/dist/serve/docs-ui/docs/rules-patterns.md +104 -0
  713. package/dist/serve/docs-ui/docs/rules-standard-library/index.html +87 -0
  714. package/dist/serve/docs-ui/docs/rules-standard-library.md +93 -0
  715. package/dist/serve/docs-ui/docs/run-ai-logic-locally/index.html +27 -0
  716. package/dist/serve/docs-ui/docs/run-ai-logic-locally.md +43 -0
  717. package/dist/serve/docs-ui/docs/secure-it-with-rules/index.html +69 -0
  718. package/dist/serve/docs-ui/docs/secure-it-with-rules.md +101 -0
  719. package/dist/serve/docs-ui/docs/see-whats-happening/index.html +73 -0
  720. package/dist/serve/docs-ui/docs/see-whats-happening.md +77 -0
  721. package/dist/serve/docs-ui/docs/set-up-the-project/index.html +14 -0
  722. package/dist/serve/docs-ui/docs/set-up-the-project.md +19 -0
  723. package/dist/serve/docs-ui/docs/set-up-your-agent/index.html +42 -0
  724. package/dist/serve/docs-ui/docs/set-up-your-agent.md +86 -0
  725. package/dist/serve/docs-ui/docs/shape-your-data/index.html +44 -0
  726. package/dist/serve/docs-ui/docs/shape-your-data.md +88 -0
  727. package/dist/serve/docs-ui/docs/ship-to-production/index.html +36 -0
  728. package/dist/serve/docs-ui/docs/ship-to-production.md +80 -0
  729. package/dist/serve/docs-ui/docs/sign-in-and-manage-users/index.html +31 -0
  730. package/dist/serve/docs-ui/docs/sign-in-and-manage-users.md +50 -0
  731. package/dist/serve/docs-ui/docs/simulate-and-lint/index.html +95 -0
  732. package/dist/serve/docs-ui/docs/simulate-and-lint.md +99 -0
  733. package/dist/serve/docs-ui/docs/skills/index.html +20 -0
  734. package/dist/serve/docs-ui/docs/skills.md +34 -0
  735. package/dist/serve/docs-ui/docs/start-building/index.html +32 -0
  736. package/dist/serve/docs-ui/docs/start-building.md +64 -0
  737. package/dist/serve/docs-ui/docs/store-and-query-data/index.html +16 -0
  738. package/dist/serve/docs-ui/docs/store-and-query-data.md +33 -0
  739. package/dist/serve/docs-ui/docs/store-files/index.html +13 -0
  740. package/dist/serve/docs-ui/docs/store-files.md +25 -0
  741. package/dist/serve/docs-ui/docs/sync-realtime-data/index.html +15 -0
  742. package/dist/serve/docs-ui/docs/sync-realtime-data.md +27 -0
  743. package/dist/serve/docs-ui/docs/test-in-node/index.html +74 -0
  744. package/dist/serve/docs-ui/docs/test-in-node.md +100 -0
  745. package/dist/serve/docs-ui/docs/ui/index.html +76 -0
  746. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper/index.html +194 -0
  747. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper.md +114 -0
  748. package/dist/serve/docs-ui/docs/ui-auth-authusers/index.html +263 -0
  749. package/dist/serve/docs-ui/docs/ui-auth-authusers.md +183 -0
  750. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist/index.html +92 -0
  751. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist.md +79 -0
  752. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm/index.html +128 -0
  753. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm.md +104 -0
  754. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor/index.html +154 -0
  755. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor.md +117 -0
  756. package/dist/serve/docs-ui/docs/ui-firestore-documentlist/index.html +132 -0
  757. package/dist/serve/docs-ui/docs/ui-firestore-documentlist.md +92 -0
  758. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview/index.html +159 -0
  759. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview.md +84 -0
  760. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder/index.html +104 -0
  761. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder.md +103 -0
  762. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker/index.html +113 -0
  763. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker.md +93 -0
  764. package/dist/serve/docs-ui/docs/ui-primitives-badge/index.html +56 -0
  765. package/dist/serve/docs-ui/docs/ui-primitives-badge.md +40 -0
  766. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog/index.html +140 -0
  767. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog.md +108 -0
  768. package/dist/serve/docs-ui/docs/ui-primitives-copybutton/index.html +58 -0
  769. package/dist/serve/docs-ui/docs/ui-primitives-copybutton.md +37 -0
  770. package/dist/serve/docs-ui/docs/ui-primitives-jsonview/index.html +58 -0
  771. package/dist/serve/docs-ui/docs/ui-primitives-jsonview.md +47 -0
  772. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol/index.html +70 -0
  773. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol.md +50 -0
  774. package/dist/serve/docs-ui/docs/ui-primitives-toast/index.html +87 -0
  775. package/dist/serve/docs-ui/docs/ui-primitives-toast.md +82 -0
  776. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist/index.html +85 -0
  777. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist.md +54 -0
  778. package/dist/serve/docs-ui/docs/ui-storage/index.html +150 -0
  779. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm/index.html +126 -0
  780. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm.md +88 -0
  781. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser/index.html +137 -0
  782. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser.md +90 -0
  783. package/dist/serve/docs-ui/docs/ui-storage-objectinspector/index.html +139 -0
  784. package/dist/serve/docs-ui/docs/ui-storage-objectinspector.md +93 -0
  785. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb/index.html +72 -0
  786. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb.md +57 -0
  787. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances/index.html +60 -0
  788. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances.md +52 -0
  789. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone/index.html +93 -0
  790. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone.md +78 -0
  791. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate/index.html +144 -0
  792. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate.md +101 -0
  793. package/dist/serve/docs-ui/docs/ui-storage.md +165 -0
  794. package/dist/serve/docs-ui/docs/ui-traffic/index.html +88 -0
  795. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap/index.html +79 -0
  796. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap.md +60 -0
  797. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail/index.html +78 -0
  798. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail.md +59 -0
  799. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog/index.html +118 -0
  800. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog.md +69 -0
  801. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats/index.html +51 -0
  802. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats.md +46 -0
  803. package/dist/serve/docs-ui/docs/ui-traffic.md +102 -0
  804. package/dist/serve/docs-ui/docs/ui.md +90 -0
  805. package/dist/serve/docs-ui/docs/watch-and-review/index.html +25 -0
  806. package/dist/serve/docs-ui/docs/watch-and-review.md +40 -0
  807. package/dist/serve/docs-ui/docs/what-your-agent-can-do/index.html +81 -0
  808. package/dist/serve/docs-ui/docs/what-your-agent-can-do.md +78 -0
  809. package/dist/serve/docs-ui/docs/whats-experimental/index.html +22 -0
  810. package/dist/serve/docs-ui/docs/whats-experimental.md +33 -0
  811. package/dist/serve/docs-ui/docs/whats-possible/index.html +63 -0
  812. package/dist/serve/docs-ui/docs/whats-possible.md +53 -0
  813. package/dist/serve/docs-ui/docs/which-data-service/index.html +8 -0
  814. package/dist/serve/docs-ui/docs/which-data-service.md +11 -0
  815. package/dist/serve/docs-ui/docs/write-a-rules-test-suite/index.html +85 -0
  816. package/dist/serve/docs-ui/docs/write-a-rules-test-suite.md +119 -0
  817. package/dist/serve/docs-ui/index.html +1 -0
  818. package/dist/serve/docs-ui/llms.txt +308 -0
  819. package/dist/serve/entries/ai.d.ts +4 -0
  820. package/dist/serve/entries/ai.d.ts.map +1 -0
  821. package/dist/serve/entries/ai.js +184 -0
  822. package/dist/serve/entries/ai.js.map +1 -0
  823. package/dist/serve/entries/app-backend.d.ts +2 -0
  824. package/dist/serve/entries/app-backend.d.ts.map +1 -0
  825. package/dist/serve/entries/app-backend.js +4 -0
  826. package/dist/serve/entries/app-backend.js.map +1 -0
  827. package/dist/serve/entries/app-client.d.ts +5 -0
  828. package/dist/serve/entries/app-client.d.ts.map +1 -0
  829. package/dist/serve/entries/app-client.js +23 -0
  830. package/dist/serve/entries/app-client.js.map +1 -0
  831. package/dist/serve/entries/app-session-store.d.ts +14 -0
  832. package/dist/serve/entries/app-session-store.d.ts.map +1 -0
  833. package/dist/serve/entries/app-session-store.js +37 -0
  834. package/dist/serve/entries/app-session-store.js.map +1 -0
  835. package/dist/serve/entries/app.d.ts +2 -0
  836. package/dist/serve/entries/app.d.ts.map +1 -0
  837. package/dist/serve/entries/app.js +10 -0
  838. package/dist/serve/entries/app.js.map +1 -0
  839. package/dist/serve/entries/auth-helper-core.d.ts +52 -0
  840. package/dist/serve/entries/auth-helper-core.d.ts.map +1 -0
  841. package/dist/serve/entries/auth-helper-core.js +118 -0
  842. package/dist/serve/entries/auth-helper-core.js.map +1 -0
  843. package/dist/serve/entries/auth-helper-dom.d.ts +14 -0
  844. package/dist/serve/entries/auth-helper-dom.d.ts.map +1 -0
  845. package/dist/serve/entries/auth-helper-dom.js +116 -0
  846. package/dist/serve/entries/auth-helper-dom.js.map +1 -0
  847. package/dist/serve/entries/auth-helper-runtime.d.ts +5 -0
  848. package/dist/serve/entries/auth-helper-runtime.d.ts.map +1 -0
  849. package/dist/serve/entries/auth-helper-runtime.js +11 -0
  850. package/dist/serve/entries/auth-helper-runtime.js.map +1 -0
  851. package/dist/serve/entries/auth.d.ts +77 -0
  852. package/dist/serve/entries/auth.d.ts.map +1 -0
  853. package/dist/serve/entries/auth.js +201 -0
  854. package/dist/serve/entries/auth.js.map +1 -0
  855. package/dist/serve/entries/bridge-url.d.ts +25 -0
  856. package/dist/serve/entries/bridge-url.d.ts.map +1 -0
  857. package/dist/serve/entries/bridge-url.js +30 -0
  858. package/dist/serve/entries/bridge-url.js.map +1 -0
  859. package/dist/serve/entries/database.d.ts +46 -0
  860. package/dist/serve/entries/database.d.ts.map +1 -0
  861. package/dist/serve/entries/database.js +80 -0
  862. package/dist/serve/entries/database.js.map +1 -0
  863. package/dist/serve/entries/firestore.d.ts +104 -0
  864. package/dist/serve/entries/firestore.d.ts.map +1 -0
  865. package/dist/serve/entries/firestore.js +202 -0
  866. package/dist/serve/entries/firestore.js.map +1 -0
  867. package/dist/serve/entries/init.d.ts +2 -0
  868. package/dist/serve/entries/init.d.ts.map +1 -0
  869. package/dist/serve/entries/init.js +40 -0
  870. package/dist/serve/entries/init.js.map +1 -0
  871. package/dist/serve/entries/keepalive.d.ts +20 -0
  872. package/dist/serve/entries/keepalive.d.ts.map +1 -0
  873. package/dist/serve/entries/keepalive.js +38 -0
  874. package/dist/serve/entries/keepalive.js.map +1 -0
  875. package/dist/serve/entries/messaging-sw.d.ts +10 -0
  876. package/dist/serve/entries/messaging-sw.d.ts.map +1 -0
  877. package/dist/serve/entries/messaging-sw.js +36 -0
  878. package/dist/serve/entries/messaging-sw.js.map +1 -0
  879. package/dist/serve/entries/messaging.d.ts +11 -0
  880. package/dist/serve/entries/messaging.d.ts.map +1 -0
  881. package/dist/serve/entries/messaging.js +53 -0
  882. package/dist/serve/entries/messaging.js.map +1 -0
  883. package/dist/serve/entries/runtime.d.ts +46 -0
  884. package/dist/serve/entries/runtime.d.ts.map +1 -0
  885. package/dist/serve/entries/runtime.js +435 -0
  886. package/dist/serve/entries/runtime.js.map +1 -0
  887. package/dist/serve/entries/session-store.d.ts +48 -0
  888. package/dist/serve/entries/session-store.d.ts.map +1 -0
  889. package/dist/serve/entries/session-store.js +82 -0
  890. package/dist/serve/entries/session-store.js.map +1 -0
  891. package/dist/serve/entries/storage.d.ts +25 -0
  892. package/dist/serve/entries/storage.d.ts.map +1 -0
  893. package/dist/serve/entries/storage.js +61 -0
  894. package/dist/serve/entries/storage.js.map +1 -0
  895. package/dist/serve/entries/tab-sync-wiring.d.ts +88 -0
  896. package/dist/serve/entries/tab-sync-wiring.d.ts.map +1 -0
  897. package/dist/serve/entries/tab-sync-wiring.js +217 -0
  898. package/dist/serve/entries/tab-sync-wiring.js.map +1 -0
  899. package/dist/serve/entries/worker-runtime.d.ts +10 -0
  900. package/dist/serve/entries/worker-runtime.d.ts.map +1 -0
  901. package/dist/serve/entries/worker-runtime.js +59 -0
  902. package/dist/serve/entries/worker-runtime.js.map +1 -0
  903. package/dist/serve/init-payload.d.ts +21 -0
  904. package/dist/serve/init-payload.d.ts.map +1 -0
  905. package/dist/serve/init-payload.js +2 -0
  906. package/dist/serve/init-payload.js.map +1 -0
  907. package/dist/serve/namespace.d.ts +73 -0
  908. package/dist/serve/namespace.d.ts.map +1 -0
  909. package/dist/serve/namespace.js +470 -0
  910. package/dist/serve/namespace.js.map +1 -0
  911. package/dist/serve/open-browser.d.ts +23 -0
  912. package/dist/serve/open-browser.d.ts.map +1 -0
  913. package/dist/serve/open-browser.js +58 -0
  914. package/dist/serve/open-browser.js.map +1 -0
  915. package/dist/serve/rules.d.ts +77 -0
  916. package/dist/serve/rules.d.ts.map +1 -0
  917. package/dist/serve/rules.js +202 -0
  918. package/dist/serve/rules.js.map +1 -0
  919. package/dist/serve/sandbox-marker.d.ts +9 -0
  920. package/dist/serve/sandbox-marker.d.ts.map +1 -0
  921. package/dist/serve/sandbox-marker.js +31 -0
  922. package/dist/serve/sandbox-marker.js.map +1 -0
  923. package/dist/serve/server.d.ts +135 -0
  924. package/dist/serve/server.d.ts.map +1 -0
  925. package/dist/serve/server.js +328 -0
  926. package/dist/serve/server.js.map +1 -0
  927. package/dist/serve/standalone-assets.d.ts +67 -0
  928. package/dist/serve/standalone-assets.d.ts.map +1 -0
  929. package/dist/serve/standalone-assets.js +134 -0
  930. package/dist/serve/standalone-assets.js.map +1 -0
  931. package/dist/serve/state-store.d.ts +45 -0
  932. package/dist/serve/state-store.d.ts.map +1 -0
  933. package/dist/serve/state-store.js +120 -0
  934. package/dist/serve/state-store.js.map +1 -0
  935. package/dist/serve/studio/disk-project-store.d.ts +9 -0
  936. package/dist/serve/studio/disk-project-store.d.ts.map +1 -0
  937. package/dist/serve/studio/disk-project-store.js +173 -0
  938. package/dist/serve/studio/disk-project-store.js.map +1 -0
  939. package/dist/serve/studio/disk-workspace.d.ts +14 -0
  940. package/dist/serve/studio/disk-workspace.d.ts.map +1 -0
  941. package/dist/serve/studio/disk-workspace.js +152 -0
  942. package/dist/serve/studio/disk-workspace.js.map +1 -0
  943. package/dist/serve/studio/index.d.ts +10 -0
  944. package/dist/serve/studio/index.d.ts.map +1 -0
  945. package/dist/serve/studio/index.js +9 -0
  946. package/dist/serve/studio/index.js.map +1 -0
  947. package/dist/serve/studio/routes.d.ts +40 -0
  948. package/dist/serve/studio/routes.d.ts.map +1 -0
  949. package/dist/serve/studio/routes.js +182 -0
  950. package/dist/serve/studio/routes.js.map +1 -0
  951. package/dist/serve/studio/store-types.d.ts +45 -0
  952. package/dist/serve/studio/store-types.d.ts.map +1 -0
  953. package/dist/serve/studio/store-types.js +11 -0
  954. package/dist/serve/studio/store-types.js.map +1 -0
  955. package/dist/serve/studio-ui/assets/RulesCodeEditor-BZpD57II.js +23 -0
  956. package/dist/serve/studio-ui/assets/index-Bsa-TQNK.css +1 -0
  957. package/dist/serve/studio-ui/assets/index-DGaVuOhE.js +1211 -0
  958. package/dist/serve/studio-ui/assets/seed-CTmn6YuO.js +2 -0
  959. package/dist/serve/studio-ui/index.html +32 -0
  960. package/dist/serve/studio-ui/pyric-logo.svg +76 -0
  961. package/dist/serve/vite-plugin.d.ts +57 -0
  962. package/dist/serve/vite-plugin.d.ts.map +1 -0
  963. package/dist/serve/vite-plugin.js +658 -0
  964. package/dist/serve/vite-plugin.js.map +1 -0
  965. package/dist/serve/worker/client/admin-firestore.d.ts +18 -0
  966. package/dist/serve/worker/client/admin-firestore.d.ts.map +1 -0
  967. package/dist/serve/worker/client/admin-firestore.js +26 -0
  968. package/dist/serve/worker/client/admin-firestore.js.map +1 -0
  969. package/dist/serve/worker/client/ai.d.ts +31 -0
  970. package/dist/serve/worker/client/ai.d.ts.map +1 -0
  971. package/dist/serve/worker/client/ai.js +89 -0
  972. package/dist/serve/worker/client/ai.js.map +1 -0
  973. package/dist/serve/worker/client/auth.d.ts +168 -0
  974. package/dist/serve/worker/client/auth.d.ts.map +1 -0
  975. package/dist/serve/worker/client/auth.js +322 -0
  976. package/dist/serve/worker/client/auth.js.map +1 -0
  977. package/dist/serve/worker/client/connection.d.ts +80 -0
  978. package/dist/serve/worker/client/connection.d.ts.map +1 -0
  979. package/dist/serve/worker/client/connection.js +148 -0
  980. package/dist/serve/worker/client/connection.js.map +1 -0
  981. package/dist/serve/worker/client/core.d.ts +109 -0
  982. package/dist/serve/worker/client/core.d.ts.map +1 -0
  983. package/dist/serve/worker/client/core.js +248 -0
  984. package/dist/serve/worker/client/core.js.map +1 -0
  985. package/dist/serve/worker/client/disconnect.d.ts +7 -0
  986. package/dist/serve/worker/client/disconnect.d.ts.map +1 -0
  987. package/dist/serve/worker/client/disconnect.js +26 -0
  988. package/dist/serve/worker/client/disconnect.js.map +1 -0
  989. package/dist/serve/worker/client/firestore-reads.d.ts +49 -0
  990. package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -0
  991. package/dist/serve/worker/client/firestore-reads.js +139 -0
  992. package/dist/serve/worker/client/firestore-reads.js.map +1 -0
  993. package/dist/serve/worker/client/firestore-refs.d.ts +54 -0
  994. package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -0
  995. package/dist/serve/worker/client/firestore-refs.js +167 -0
  996. package/dist/serve/worker/client/firestore-refs.js.map +1 -0
  997. package/dist/serve/worker/client/firestore-writes.d.ts +70 -0
  998. package/dist/serve/worker/client/firestore-writes.d.ts.map +1 -0
  999. package/dist/serve/worker/client/firestore-writes.js +169 -0
  1000. package/dist/serve/worker/client/firestore-writes.js.map +1 -0
  1001. package/dist/serve/worker/client/handles.d.ts +73 -0
  1002. package/dist/serve/worker/client/handles.d.ts.map +1 -0
  1003. package/dist/serve/worker/client/handles.js +4 -0
  1004. package/dist/serve/worker/client/handles.js.map +1 -0
  1005. package/dist/serve/worker/client/messaging.d.ts +16 -0
  1006. package/dist/serve/worker/client/messaging.d.ts.map +1 -0
  1007. package/dist/serve/worker/client/messaging.js +60 -0
  1008. package/dist/serve/worker/client/messaging.js.map +1 -0
  1009. package/dist/serve/worker/client/presence.d.ts +43 -0
  1010. package/dist/serve/worker/client/presence.d.ts.map +1 -0
  1011. package/dist/serve/worker/client/presence.js +132 -0
  1012. package/dist/serve/worker/client/presence.js.map +1 -0
  1013. package/dist/serve/worker/client/rtdb.d.ts +36 -0
  1014. package/dist/serve/worker/client/rtdb.d.ts.map +1 -0
  1015. package/dist/serve/worker/client/rtdb.js +241 -0
  1016. package/dist/serve/worker/client/rtdb.js.map +1 -0
  1017. package/dist/serve/worker/client/rules.d.ts +24 -0
  1018. package/dist/serve/worker/client/rules.d.ts.map +1 -0
  1019. package/dist/serve/worker/client/rules.js +44 -0
  1020. package/dist/serve/worker/client/rules.js.map +1 -0
  1021. package/dist/serve/worker/client/service-worker-connection.d.ts +3 -0
  1022. package/dist/serve/worker/client/service-worker-connection.d.ts.map +1 -0
  1023. package/dist/serve/worker/client/service-worker-connection.js +53 -0
  1024. package/dist/serve/worker/client/service-worker-connection.js.map +1 -0
  1025. package/dist/serve/worker/client/snapshots.d.ts +32 -0
  1026. package/dist/serve/worker/client/snapshots.d.ts.map +1 -0
  1027. package/dist/serve/worker/client/snapshots.js +46 -0
  1028. package/dist/serve/worker/client/snapshots.js.map +1 -0
  1029. package/dist/serve/worker/client/storage.d.ts +64 -0
  1030. package/dist/serve/worker/client/storage.d.ts.map +1 -0
  1031. package/dist/serve/worker/client/storage.js +125 -0
  1032. package/dist/serve/worker/client/storage.js.map +1 -0
  1033. package/dist/serve/worker/client/studio.d.ts +32 -0
  1034. package/dist/serve/worker/client/studio.d.ts.map +1 -0
  1035. package/dist/serve/worker/client/studio.js +61 -0
  1036. package/dist/serve/worker/client/studio.js.map +1 -0
  1037. package/dist/serve/worker/client.d.ts +43 -0
  1038. package/dist/serve/worker/client.d.ts.map +1 -0
  1039. package/dist/serve/worker/client.js +44 -0
  1040. package/dist/serve/worker/client.js.map +1 -0
  1041. package/dist/serve/worker/entry.d.ts +40 -0
  1042. package/dist/serve/worker/entry.d.ts.map +1 -0
  1043. package/dist/serve/worker/entry.js +144 -0
  1044. package/dist/serve/worker/entry.js.map +1 -0
  1045. package/dist/serve/worker/host/admin-firestore.d.ts +17 -0
  1046. package/dist/serve/worker/host/admin-firestore.d.ts.map +1 -0
  1047. package/dist/serve/worker/host/admin-firestore.js +92 -0
  1048. package/dist/serve/worker/host/admin-firestore.js.map +1 -0
  1049. package/dist/serve/worker/host/connection.d.ts +40 -0
  1050. package/dist/serve/worker/host/connection.d.ts.map +1 -0
  1051. package/dist/serve/worker/host/connection.js +153 -0
  1052. package/dist/serve/worker/host/connection.js.map +1 -0
  1053. package/dist/serve/worker/host/core.d.ts +159 -0
  1054. package/dist/serve/worker/host/core.d.ts.map +1 -0
  1055. package/dist/serve/worker/host/core.js +296 -0
  1056. package/dist/serve/worker/host/core.js.map +1 -0
  1057. package/dist/serve/worker/host/dispatch.d.ts +34 -0
  1058. package/dist/serve/worker/host/dispatch.d.ts.map +1 -0
  1059. package/dist/serve/worker/host/dispatch.js +267 -0
  1060. package/dist/serve/worker/host/dispatch.js.map +1 -0
  1061. package/dist/serve/worker/host/firestore-reads.d.ts +17 -0
  1062. package/dist/serve/worker/host/firestore-reads.d.ts.map +1 -0
  1063. package/dist/serve/worker/host/firestore-reads.js +108 -0
  1064. package/dist/serve/worker/host/firestore-reads.js.map +1 -0
  1065. package/dist/serve/worker/host/firestore-writes.d.ts +37 -0
  1066. package/dist/serve/worker/host/firestore-writes.d.ts.map +1 -0
  1067. package/dist/serve/worker/host/firestore-writes.js +409 -0
  1068. package/dist/serve/worker/host/firestore-writes.js.map +1 -0
  1069. package/dist/serve/worker/host/presence.d.ts +38 -0
  1070. package/dist/serve/worker/host/presence.d.ts.map +1 -0
  1071. package/dist/serve/worker/host/presence.js +280 -0
  1072. package/dist/serve/worker/host/presence.js.map +1 -0
  1073. package/dist/serve/worker/host/rtdb.d.ts +18 -0
  1074. package/dist/serve/worker/host/rtdb.d.ts.map +1 -0
  1075. package/dist/serve/worker/host/rtdb.js +128 -0
  1076. package/dist/serve/worker/host/rtdb.js.map +1 -0
  1077. package/dist/serve/worker/host/rules.d.ts +17 -0
  1078. package/dist/serve/worker/host/rules.d.ts.map +1 -0
  1079. package/dist/serve/worker/host/rules.js +118 -0
  1080. package/dist/serve/worker/host/rules.js.map +1 -0
  1081. package/dist/serve/worker/host/storage.d.ts +19 -0
  1082. package/dist/serve/worker/host/storage.d.ts.map +1 -0
  1083. package/dist/serve/worker/host/storage.js +260 -0
  1084. package/dist/serve/worker/host/storage.js.map +1 -0
  1085. package/dist/serve/worker/host/studio.d.ts +13 -0
  1086. package/dist/serve/worker/host/studio.d.ts.map +1 -0
  1087. package/dist/serve/worker/host/studio.js +30 -0
  1088. package/dist/serve/worker/host/studio.js.map +1 -0
  1089. package/dist/serve/worker/host/subscriptions.d.ts +21 -0
  1090. package/dist/serve/worker/host/subscriptions.d.ts.map +1 -0
  1091. package/dist/serve/worker/host/subscriptions.js +162 -0
  1092. package/dist/serve/worker/host/subscriptions.js.map +1 -0
  1093. package/dist/serve/worker/host-ai.d.ts +59 -0
  1094. package/dist/serve/worker/host-ai.d.ts.map +1 -0
  1095. package/dist/serve/worker/host-ai.js +158 -0
  1096. package/dist/serve/worker/host-ai.js.map +1 -0
  1097. package/dist/serve/worker/host-auth.d.ts +47 -0
  1098. package/dist/serve/worker/host-auth.d.ts.map +1 -0
  1099. package/dist/serve/worker/host-auth.js +464 -0
  1100. package/dist/serve/worker/host-auth.js.map +1 -0
  1101. package/dist/serve/worker/host-context.d.ts +220 -0
  1102. package/dist/serve/worker/host-context.d.ts.map +1 -0
  1103. package/dist/serve/worker/host-context.js +45 -0
  1104. package/dist/serve/worker/host-context.js.map +1 -0
  1105. package/dist/serve/worker/host-events.d.ts +21 -0
  1106. package/dist/serve/worker/host-events.d.ts.map +1 -0
  1107. package/dist/serve/worker/host-events.js +87 -0
  1108. package/dist/serve/worker/host-events.js.map +1 -0
  1109. package/dist/serve/worker/host-messaging.d.ts +60 -0
  1110. package/dist/serve/worker/host-messaging.d.ts.map +1 -0
  1111. package/dist/serve/worker/host-messaging.js +226 -0
  1112. package/dist/serve/worker/host-messaging.js.map +1 -0
  1113. package/dist/serve/worker/host.d.ts +36 -0
  1114. package/dist/serve/worker/host.d.ts.map +1 -0
  1115. package/dist/serve/worker/host.js +39 -0
  1116. package/dist/serve/worker/host.js.map +1 -0
  1117. package/dist/serve/worker/index.d.ts +22 -0
  1118. package/dist/serve/worker/index.d.ts.map +1 -0
  1119. package/dist/serve/worker/index.js +61 -0
  1120. package/dist/serve/worker/index.js.map +1 -0
  1121. package/dist/serve/worker/presence-timing.d.ts +14 -0
  1122. package/dist/serve/worker/presence-timing.d.ts.map +1 -0
  1123. package/dist/serve/worker/presence-timing.js +14 -0
  1124. package/dist/serve/worker/presence-timing.js.map +1 -0
  1125. package/dist/serve/worker/protocol.d.ts +1150 -0
  1126. package/dist/serve/worker/protocol.d.ts.map +1 -0
  1127. package/dist/serve/worker/protocol.js +228 -0
  1128. package/dist/serve/worker/protocol.js.map +1 -0
  1129. package/dist/serve/worker/serve-init.d.ts +201 -0
  1130. package/dist/serve/worker/serve-init.d.ts.map +1 -0
  1131. package/dist/serve/worker/serve-init.js +579 -0
  1132. package/dist/serve/worker/serve-init.js.map +1 -0
  1133. package/dist/serve/worker/service-worker-channel.d.ts +23 -0
  1134. package/dist/serve/worker/service-worker-channel.d.ts.map +1 -0
  1135. package/dist/serve/worker/service-worker-channel.js +9 -0
  1136. package/dist/serve/worker/service-worker-channel.js.map +1 -0
  1137. package/dist/serve/worker/service-worker-relay.d.ts +22 -0
  1138. package/dist/serve/worker/service-worker-relay.d.ts.map +1 -0
  1139. package/dist/serve/worker/service-worker-relay.js +63 -0
  1140. package/dist/serve/worker/service-worker-relay.js.map +1 -0
  1141. package/dist/serve/writer-lock.d.ts +32 -0
  1142. package/dist/serve/writer-lock.d.ts.map +1 -0
  1143. package/dist/serve/writer-lock.js +43 -0
  1144. package/dist/serve/writer-lock.js.map +1 -0
  1145. package/dist/verify/cases.d.ts +37 -0
  1146. package/dist/verify/cases.d.ts.map +1 -0
  1147. package/dist/verify/cases.js +173 -0
  1148. package/dist/verify/cases.js.map +1 -0
  1149. package/dist/verify/fixture.d.ts +100 -0
  1150. package/dist/verify/fixture.d.ts.map +1 -0
  1151. package/dist/verify/fixture.js +156 -0
  1152. package/dist/verify/fixture.js.map +1 -0
  1153. package/dist/verify/index.d.ts +102 -0
  1154. package/dist/verify/index.d.ts.map +1 -0
  1155. package/dist/verify/index.js +318 -0
  1156. package/dist/verify/index.js.map +1 -0
  1157. package/dist/verify/tools.d.ts +7 -0
  1158. package/dist/verify/tools.d.ts.map +1 -0
  1159. package/dist/verify/tools.js +83 -0
  1160. package/dist/verify/tools.js.map +1 -0
  1161. package/dist/version/compat-target.d.ts +18 -0
  1162. package/dist/version/compat-target.d.ts.map +1 -0
  1163. package/dist/version/compat-target.js +18 -0
  1164. package/dist/version/compat-target.js.map +1 -0
  1165. package/dist/vite.d.ts +12 -0
  1166. package/dist/vite.d.ts.map +1 -0
  1167. package/dist/vite.js +16 -0
  1168. package/dist/vite.js.map +1 -0
  1169. package/package.json +133 -0
@@ -0,0 +1,3399 @@
1
+
2
+ <!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
3
+
4
+ ## Classes
5
+
6
+ <a id="bytes"></a>
7
+
8
+ ### Bytes
9
+
10
+ #### Methods
11
+
12
+ <a id="isequal"></a>
13
+
14
+ ##### isEqual()
15
+
16
+ ```ts
17
+ isEqual(other: Bytes): boolean;
18
+ ```
19
+
20
+ ###### Parameters
21
+
22
+ | Parameter | Type |
23
+ | :------ | :------ |
24
+ | `other` | [`Bytes`](#bytes) |
25
+
26
+ ###### Returns
27
+
28
+ `boolean`
29
+
30
+ <a id="tobase64"></a>
31
+
32
+ ##### toBase64()
33
+
34
+ ```ts
35
+ toBase64(): string;
36
+ ```
37
+
38
+ ###### Returns
39
+
40
+ `string`
41
+
42
+ <a id="tojson"></a>
43
+
44
+ ##### toJSON()
45
+
46
+ ```ts
47
+ toJSON(): object;
48
+ ```
49
+
50
+ ###### Returns
51
+
52
+ `object`
53
+
54
+ <a id="tostring"></a>
55
+
56
+ ##### toString()
57
+
58
+ ```ts
59
+ toString(): string;
60
+ ```
61
+
62
+ ###### Returns
63
+
64
+ `string`
65
+
66
+ <a id="touint8array"></a>
67
+
68
+ ##### toUint8Array()
69
+
70
+ ```ts
71
+ toUint8Array(): Uint8Array;
72
+ ```
73
+
74
+ ###### Returns
75
+
76
+ `Uint8Array`
77
+
78
+ <a id="frombase64string"></a>
79
+
80
+ ##### fromBase64String()
81
+
82
+ ```ts
83
+ static fromBase64String(base64: string): Bytes;
84
+ ```
85
+
86
+ ###### Parameters
87
+
88
+ | Parameter | Type |
89
+ | :------ | :------ |
90
+ | `base64` | `string` |
91
+
92
+ ###### Returns
93
+
94
+ [`Bytes`](#bytes)
95
+
96
+ <a id="fromjson"></a>
97
+
98
+ ##### fromJSON()
99
+
100
+ ```ts
101
+ static fromJSON(json: object): Bytes;
102
+ ```
103
+
104
+ ###### Parameters
105
+
106
+ | Parameter | Type |
107
+ | :------ | :------ |
108
+ | `json` | `object` |
109
+
110
+ ###### Returns
111
+
112
+ [`Bytes`](#bytes)
113
+
114
+ <a id="fromuint8array"></a>
115
+
116
+ ##### fromUint8Array()
117
+
118
+ ```ts
119
+ static fromUint8Array(array: Uint8Array): Bytes;
120
+ ```
121
+
122
+ ###### Parameters
123
+
124
+ | Parameter | Type |
125
+ | :------ | :------ |
126
+ | `array` | `Uint8Array` |
127
+
128
+ ###### Returns
129
+
130
+ [`Bytes`](#bytes)
131
+
132
+ ***
133
+
134
+ <a id="fieldpath"></a>
135
+
136
+ ### FieldPath
137
+
138
+ #### Constructors
139
+
140
+ <a id="constructor"></a>
141
+
142
+ ##### Constructor
143
+
144
+ ```ts
145
+ new FieldPath(...fieldNames: string[]): FieldPath;
146
+ ```
147
+
148
+ ###### Parameters
149
+
150
+ | Parameter | Type |
151
+ | :------ | :------ |
152
+ | ...`fieldNames` | `string`[] |
153
+
154
+ ###### Returns
155
+
156
+ [`FieldPath`](#fieldpath)
157
+
158
+ #### Methods
159
+
160
+ <a id="isequal-2"></a>
161
+
162
+ ##### isEqual()
163
+
164
+ ```ts
165
+ isEqual(other: FieldPath): boolean;
166
+ ```
167
+
168
+ ###### Parameters
169
+
170
+ | Parameter | Type |
171
+ | :------ | :------ |
172
+ | `other` | [`FieldPath`](#fieldpath) |
173
+
174
+ ###### Returns
175
+
176
+ `boolean`
177
+
178
+ ***
179
+
180
+ <a id="geopoint"></a>
181
+
182
+ ### GeoPoint
183
+
184
+ #### Constructors
185
+
186
+ <a id="constructor-1"></a>
187
+
188
+ ##### Constructor
189
+
190
+ ```ts
191
+ new GeoPoint(lat: number, lng: number): GeoPoint;
192
+ ```
193
+
194
+ ###### Parameters
195
+
196
+ | Parameter | Type |
197
+ | :------ | :------ |
198
+ | `lat` | `number` |
199
+ | `lng` | `number` |
200
+
201
+ ###### Returns
202
+
203
+ [`GeoPoint`](#geopoint)
204
+
205
+ #### Accessors
206
+
207
+ <a id="latitude"></a>
208
+
209
+ ##### latitude
210
+
211
+ ###### Get Signature
212
+
213
+ ```ts
214
+ get latitude(): number;
215
+ ```
216
+
217
+ ###### Returns
218
+
219
+ `number`
220
+
221
+ <a id="longitude"></a>
222
+
223
+ ##### longitude
224
+
225
+ ###### Get Signature
226
+
227
+ ```ts
228
+ get longitude(): number;
229
+ ```
230
+
231
+ ###### Returns
232
+
233
+ `number`
234
+
235
+ #### Methods
236
+
237
+ <a id="isequal-4"></a>
238
+
239
+ ##### isEqual()
240
+
241
+ ```ts
242
+ isEqual(other: GeoPoint): boolean;
243
+ ```
244
+
245
+ ###### Parameters
246
+
247
+ | Parameter | Type |
248
+ | :------ | :------ |
249
+ | `other` | [`GeoPoint`](#geopoint) |
250
+
251
+ ###### Returns
252
+
253
+ `boolean`
254
+
255
+ <a id="tojson-2"></a>
256
+
257
+ ##### toJSON()
258
+
259
+ ```ts
260
+ toJSON(): {
261
+ latitude: number;
262
+ longitude: number;
263
+ type: string;
264
+ };
265
+ ```
266
+
267
+ ###### Returns
268
+
269
+ ```ts
270
+ {
271
+ latitude: number;
272
+ longitude: number;
273
+ type: string;
274
+ }
275
+ ```
276
+
277
+ ###### latitude
278
+
279
+ ```ts
280
+ latitude: number;
281
+ ```
282
+
283
+ ###### longitude
284
+
285
+ ```ts
286
+ longitude: number;
287
+ ```
288
+
289
+ ###### type
290
+
291
+ ```ts
292
+ type: string;
293
+ ```
294
+
295
+ <a id="fromjson-2"></a>
296
+
297
+ ##### fromJSON()
298
+
299
+ ```ts
300
+ static fromJSON(json: object): GeoPoint;
301
+ ```
302
+
303
+ ###### Parameters
304
+
305
+ | Parameter | Type |
306
+ | :------ | :------ |
307
+ | `json` | `object` |
308
+
309
+ ###### Returns
310
+
311
+ [`GeoPoint`](#geopoint)
312
+
313
+ ***
314
+
315
+ <a id="vectorvalue"></a>
316
+
317
+ ### VectorValue
318
+
319
+ #### Methods
320
+
321
+ <a id="isequal-6"></a>
322
+
323
+ ##### isEqual()
324
+
325
+ ```ts
326
+ isEqual(other: VectorValue): boolean;
327
+ ```
328
+
329
+ ###### Parameters
330
+
331
+ | Parameter | Type |
332
+ | :------ | :------ |
333
+ | `other` | [`VectorValue`](#vectorvalue) |
334
+
335
+ ###### Returns
336
+
337
+ `boolean`
338
+
339
+ <a id="toarray"></a>
340
+
341
+ ##### toArray()
342
+
343
+ ```ts
344
+ toArray(): number[];
345
+ ```
346
+
347
+ ###### Returns
348
+
349
+ `number`[]
350
+
351
+ <a id="tojson-4"></a>
352
+
353
+ ##### toJSON()
354
+
355
+ ```ts
356
+ toJSON(): object;
357
+ ```
358
+
359
+ ###### Returns
360
+
361
+ `object`
362
+
363
+ <a id="create"></a>
364
+
365
+ ##### create()
366
+
367
+ ```ts
368
+ static create(values: number[]): VectorValue;
369
+ ```
370
+
371
+ ###### Parameters
372
+
373
+ | Parameter | Type |
374
+ | :------ | :------ |
375
+ | `values` | `number`[] |
376
+
377
+ ###### Returns
378
+
379
+ [`VectorValue`](#vectorvalue)
380
+
381
+ <a id="fromjson-4"></a>
382
+
383
+ ##### fromJSON()
384
+
385
+ ```ts
386
+ static fromJSON(json: object): VectorValue;
387
+ ```
388
+
389
+ ###### Parameters
390
+
391
+ | Parameter | Type |
392
+ | :------ | :------ |
393
+ | `json` | `object` |
394
+
395
+ ###### Returns
396
+
397
+ [`VectorValue`](#vectorvalue)
398
+
399
+ ## Interfaces
400
+
401
+ <a id="aggregatequerysnapshot"></a>
402
+
403
+ ### AggregateQuerySnapshot
404
+
405
+ Snapshot returned by `getCountFromServer` /
406
+ `getAggregateFromServer`. `.data()` returns the computed numbers
407
+ keyed by the spec's aliases (or `{ count: number }` for the
408
+ count-only entry point).
409
+
410
+ #### Type Parameters
411
+
412
+ | Type Parameter | Default type |
413
+ | :------ | :------ |
414
+ | `T` *extends* `Record`\<`string`, `number` \| `null`\> | `Record`\<`string`, `number` \| `null`\> |
415
+
416
+ #### Methods
417
+
418
+ <a id="data"></a>
419
+
420
+ ##### data()
421
+
422
+ ```ts
423
+ data(): T;
424
+ ```
425
+
426
+ ###### Returns
427
+
428
+ `T`
429
+
430
+ ***
431
+
432
+ <a id="collectionreference"></a>
433
+
434
+ ### CollectionReference
435
+
436
+ A reference to a Firestore collection. Backend-opaque.
437
+
438
+ #### Type Parameters
439
+
440
+ | Type Parameter | Default type |
441
+ | :------ | :------ |
442
+ | `_T` | [`AuthState`](#authstate) |
443
+
444
+ #### Properties
445
+
446
+ | Property | Modifier | Type |
447
+ | :------ | :------ | :------ |
448
+ | <a id="id"></a> `id` | `readonly` | `string` |
449
+ | <a id="path"></a> `path` | `readonly` | `string` |
450
+
451
+ ***
452
+
453
+ <a id="documentreference"></a>
454
+
455
+ ### DocumentReference
456
+
457
+ A reference to a Firestore document. Backend-opaque.
458
+
459
+ #### Type Parameters
460
+
461
+ | Type Parameter | Default type |
462
+ | :------ | :------ |
463
+ | `_T` | [`AuthState`](#authstate) |
464
+
465
+ #### Properties
466
+
467
+ | Property | Modifier | Type |
468
+ | :------ | :------ | :------ |
469
+ | <a id="id-1"></a> `id` | `readonly` | `string` |
470
+ | <a id="path-1"></a> `path` | `readonly` | `string` |
471
+
472
+ ***
473
+
474
+ <a id="documentsnapshot"></a>
475
+
476
+ ### DocumentSnapshot
477
+
478
+ A point-in-time view of one document.
479
+
480
+ #### Extended by
481
+
482
+ - [`QueryDocumentSnapshot`](#querydocumentsnapshot)
483
+
484
+ #### Type Parameters
485
+
486
+ | Type Parameter | Default type |
487
+ | :------ | :------ |
488
+ | `T` | [`AuthState`](#authstate) |
489
+
490
+ #### Properties
491
+
492
+ | Property | Modifier | Type |
493
+ | :------ | :------ | :------ |
494
+ | <a id="exists"></a> `exists` | `readonly` | `boolean` \| () => `boolean` |
495
+ | <a id="id-2"></a> `id` | `readonly` | `string` |
496
+
497
+ #### Methods
498
+
499
+ <a id="data-2"></a>
500
+
501
+ ##### data()
502
+
503
+ ```ts
504
+ data(): T;
505
+ ```
506
+
507
+ ###### Returns
508
+
509
+ `T`
510
+
511
+ ***
512
+
513
+ <a id="firestore"></a>
514
+
515
+ ### Firestore
516
+
517
+ Opaque sandbox handle carrying its owner via [TARGET\_SYMBOL](#target_symbol-1).
518
+
519
+ #### Properties
520
+
521
+ | Property | Modifier | Type |
522
+ | :------ | :------ | :------ |
523
+ | <a id="target_symbol"></a> `[TARGET_SYMBOL]` | `readonly` | `Target` |
524
+ | <a id="app"></a> `app?` | `readonly` | `FirebaseApp` |
525
+
526
+ ***
527
+
528
+ <a id="firestoredataconverter"></a>
529
+
530
+ ### FirestoreDataConverter
531
+
532
+ Pair of translators between the consumer's app model and the
533
+ underlying Firestore representation. Mirrors `firebase/firestore`'s
534
+ `FirestoreDataConverter` shape.
535
+
536
+ - `toFirestore(model)` runs on every write (`setDoc`, `addDoc`)
537
+ through a converted ref. Returns the `DocumentData` to send.
538
+ - `fromFirestore(snapshot)` runs on every read (`getDoc`,
539
+ `getDocs`, snapshot listener callback) through a converted ref.
540
+ Receives the raw snapshot, returns the typed model.
541
+
542
+ #### Type Parameters
543
+
544
+ | Type Parameter | Default type |
545
+ | :------ | :------ |
546
+ | `AppModelType` | - |
547
+ | `DbModelType` *extends* [`AuthState`](#authstate) | [`AuthState`](#authstate) |
548
+
549
+ #### Methods
550
+
551
+ <a id="fromfirestore"></a>
552
+
553
+ ##### fromFirestore()
554
+
555
+ ```ts
556
+ fromFirestore(snapshot: QueryDocumentSnapshot<DbModelType>): AppModelType;
557
+ ```
558
+
559
+ ###### Parameters
560
+
561
+ | Parameter | Type |
562
+ | :------ | :------ |
563
+ | `snapshot` | [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`DbModelType`\> |
564
+
565
+ ###### Returns
566
+
567
+ `AppModelType`
568
+
569
+ <a id="tofirestore"></a>
570
+
571
+ ##### toFirestore()
572
+
573
+ ```ts
574
+ toFirestore(modelObject: AppModelType): DbModelType;
575
+ ```
576
+
577
+ ###### Parameters
578
+
579
+ | Parameter | Type |
580
+ | :------ | :------ |
581
+ | `modelObject` | `AppModelType` |
582
+
583
+ ###### Returns
584
+
585
+ `DbModelType`
586
+
587
+ ***
588
+
589
+ <a id="firestoredatatooldeps"></a>
590
+
591
+ ### FirestoreDataToolDeps
592
+
593
+ #### Methods
594
+
595
+ <a id="resolvedb"></a>
596
+
597
+ ##### resolveDb()
598
+
599
+ ```ts
600
+ resolveDb(as?: As): Firestore | Promise<Firestore>;
601
+ ```
602
+
603
+ Resolver returning a `Firestore` handle. Called per-dispatch with the
604
+ op's `as` value: `'admin'` (or undefined) → an admin-bypass Firestore;
605
+ `{ uid, claims? }` → a rules-enforcing Firestore acting as that user.
606
+
607
+ The host decides the posture; the tool layer does NOT enforce it. A sandbox
608
+ resolver may default to admin (rules bypass is the point of seeding), but a
609
+ resolver wired to a real backend should require an explicit identity or
610
+ confirm-gate admin writes (see the bridge's prod confirm-policy).
611
+
612
+ ###### Parameters
613
+
614
+ | Parameter | Type |
615
+ | :------ | :------ |
616
+ | `as?` | [`As`](#as) |
617
+
618
+ ###### Returns
619
+
620
+ [`Firestore`](#firestore) \| `Promise`\<[`Firestore`](#firestore)\>
621
+
622
+ ***
623
+
624
+ <a id="firestoreinspecttooldeps"></a>
625
+
626
+ ### FirestoreInspectToolDeps
627
+
628
+ #### Methods
629
+
630
+ <a id="resolvesandbox"></a>
631
+
632
+ ##### resolveSandbox()
633
+
634
+ ```ts
635
+ resolveSandbox(): any;
636
+ ```
637
+
638
+ Resolve the sandbox whose Firestore state should be inspected.
639
+
640
+ ###### Returns
641
+
642
+ `any`
643
+
644
+ ***
645
+
646
+ <a id="firestoresettings"></a>
647
+
648
+ ### FirestoreSettings
649
+
650
+ Client-cache/network settings `initializeFirestore` accepts but no-ops
651
+ on sandbox targets — see the tier-1 section rationale above.
652
+
653
+ #### Properties
654
+
655
+ | Property | Type |
656
+ | :------ | :------ |
657
+ | <a id="cachesizebytes"></a> `cacheSizeBytes?` | `number` |
658
+ | <a id="experimentalautodetectlongpolling"></a> `experimentalAutoDetectLongPolling?` | `boolean` |
659
+ | <a id="experimentalforcelongpolling"></a> `experimentalForceLongPolling?` | `boolean` |
660
+ | <a id="host"></a> `host?` | `string` |
661
+ | <a id="ignoreundefinedproperties"></a> `ignoreUndefinedProperties?` | `boolean` |
662
+ | <a id="localcache"></a> `localCache?` | [`LocalCache`](#localcache-1) |
663
+ | <a id="ssl"></a> `ssl?` | `boolean` |
664
+
665
+ ***
666
+
667
+ <a id="localcache-1"></a>
668
+
669
+ ### LocalCache
670
+
671
+ Opaque local-cache config token accepted by [initializeFirestore](#initializefirestore)'s
672
+ `settings.localCache`. Inert — see the tier-1 section rationale above.
673
+
674
+ #### Properties
675
+
676
+ | Property | Modifier | Type |
677
+ | :------ | :------ | :------ |
678
+ | <a id="local_cache_symbol"></a> `[LOCAL_CACHE_SYMBOL]` | `readonly` | `"persistent"` \| `"memory"` |
679
+ | <a id="garbagecollector"></a> `garbageCollector?` | `readonly` | [`MemoryGarbageCollector`](#memorygarbagecollector) |
680
+ | <a id="tabmanager"></a> `tabManager?` | `readonly` | [`PersistentTabManager`](#persistenttabmanager) |
681
+
682
+ ***
683
+
684
+ <a id="memorygarbagecollector"></a>
685
+
686
+ ### MemoryGarbageCollector
687
+
688
+ Opaque garbage-collector config token. Inert for the same reason —
689
+ there is no memory cache tier with GC pressure to tune.
690
+
691
+ #### Properties
692
+
693
+ | Property | Modifier | Type |
694
+ | :------ | :------ | :------ |
695
+ | <a id="gc_symbol"></a> `[GC_SYMBOL]` | `readonly` | `"eager"` \| `"lru"` |
696
+
697
+ ***
698
+
699
+ <a id="persistencesettings"></a>
700
+
701
+ ### PersistenceSettings
702
+
703
+ #### Properties
704
+
705
+ | Property | Type |
706
+ | :------ | :------ |
707
+ | <a id="forceownership"></a> `forceOwnership?` | `boolean` |
708
+
709
+ ***
710
+
711
+ <a id="persistenttabmanager"></a>
712
+
713
+ ### PersistentTabManager
714
+
715
+ Opaque tab-manager config token. Inert — persistence is always on,
716
+ and the SharedWorker/`pyric dev` path already is the one shared
717
+ store every tab talks to, so there is no separate multi-tab mode
718
+ to opt into. Carries the requested kind only for debugging.
719
+
720
+ #### Properties
721
+
722
+ | Property | Modifier | Type |
723
+ | :------ | :------ | :------ |
724
+ | <a id="tab_manager_symbol"></a> `[TAB_MANAGER_SYMBOL]` | `readonly` | `"single"` \| `"multiple"` |
725
+
726
+ ***
727
+
728
+ <a id="query"></a>
729
+
730
+ ### Query
731
+
732
+ A Firestore query (a collection ref or one with where/orderBy/limit applied).
733
+
734
+ #### Type Parameters
735
+
736
+ | Type Parameter | Default type |
737
+ | :------ | :------ |
738
+ | `_T` | [`AuthState`](#authstate) |
739
+
740
+ ***
741
+
742
+ <a id="queryconstraint"></a>
743
+
744
+ ### QueryConstraint
745
+
746
+ #### Methods
747
+
748
+ <a id="applysandbox"></a>
749
+
750
+ ##### applySandbox()
751
+
752
+ ```ts
753
+ applySandbox(q: ChainQuery): ChainQuery;
754
+ ```
755
+
756
+ ###### Parameters
757
+
758
+ | Parameter | Type |
759
+ | :------ | :------ |
760
+ | `q` | `ChainQuery` |
761
+
762
+ ###### Returns
763
+
764
+ `ChainQuery`
765
+
766
+ ***
767
+
768
+ <a id="querydocumentsnapshot"></a>
769
+
770
+ ### QueryDocumentSnapshot
771
+
772
+ `QueryDocumentSnapshot` is a `DocumentSnapshot` known to exist —
773
+ `.data()` always returns the typed model, never `undefined`. Yielded
774
+ by `QuerySnapshot.docs` and passed to converter `fromFirestore`
775
+ callbacks. Mirrors the JS SDK's narrowing.
776
+
777
+ #### Extends
778
+
779
+ - [`DocumentSnapshot`](#documentsnapshot)\<`T`\>
780
+
781
+ #### Type Parameters
782
+
783
+ | Type Parameter | Default type |
784
+ | :------ | :------ |
785
+ | `T` | [`AuthState`](#authstate) |
786
+
787
+ #### Properties
788
+
789
+ | Property | Modifier | Type |
790
+ | :------ | :------ | :------ |
791
+ | <a id="exists-1"></a> `exists` | `readonly` | `boolean` \| () => `boolean` |
792
+ | <a id="id-3"></a> `id` | `readonly` | `string` |
793
+
794
+ #### Methods
795
+
796
+ <a id="data-4"></a>
797
+
798
+ ##### data()
799
+
800
+ ```ts
801
+ data(): T;
802
+ ```
803
+
804
+ ###### Returns
805
+
806
+ `T`
807
+
808
+ ###### Overrides
809
+
810
+ [`DocumentSnapshot`](#documentsnapshot).[`data`](#data-2)
811
+
812
+ ***
813
+
814
+ <a id="querysnapshot"></a>
815
+
816
+ ### QuerySnapshot
817
+
818
+ A point-in-time view of a query result.
819
+
820
+ #### Type Parameters
821
+
822
+ | Type Parameter | Default type |
823
+ | :------ | :------ |
824
+ | `T` | [`AuthState`](#authstate) |
825
+
826
+ #### Properties
827
+
828
+ | Property | Modifier | Type |
829
+ | :------ | :------ | :------ |
830
+ | <a id="docs"></a> `docs` | `readonly` | readonly [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`T`\>[] |
831
+ | <a id="empty"></a> `empty` | `readonly` | `boolean` |
832
+ | <a id="size"></a> `size` | `readonly` | `number` |
833
+
834
+ ***
835
+
836
+ <a id="setoptions"></a>
837
+
838
+ ### SetOptions
839
+
840
+ Modular Web-SDK-shaped `SetOptions`. Either flag controls how `data`
841
+ combines with the existing document; passing nothing replaces the
842
+ existing doc entirely (Firestore default).
843
+
844
+ - `{ merge: true }` — shallow-merge every top-level field in
845
+ `data` into the existing document, preserving fields not in
846
+ `data`. Equivalent to `firebase/firestore`'s `setDoc(ref, data,
847
+ { merge: true })`.
848
+ - `{ mergeFields: [...] }` — project `data` to just the listed
849
+ top-level fields, then merge. Other fields in `data` are
850
+ ignored; other fields in the existing doc are preserved.
851
+
852
+ `merge` and `mergeFields` are mutually exclusive; passing both is
853
+ a programming error (`mergeFields` wins on the sandbox path,
854
+ matching the JS SDK's effective behavior).
855
+
856
+ #### Properties
857
+
858
+ | Property | Type |
859
+ | :------ | :------ |
860
+ | <a id="merge"></a> `merge?` | `boolean` |
861
+ | <a id="mergefields"></a> `mergeFields?` | readonly `string`[] |
862
+
863
+ ***
864
+
865
+ <a id="snapshotlistenoptions"></a>
866
+
867
+ ### SnapshotListenOptions
868
+
869
+ #### Properties
870
+
871
+ | Property | Type |
872
+ | :------ | :------ |
873
+ | <a id="includemetadatachanges"></a> `includeMetadataChanges?` | `boolean` |
874
+
875
+ ***
876
+
877
+ <a id="snapshotobserver"></a>
878
+
879
+ ### SnapshotObserver
880
+
881
+ #### Type Parameters
882
+
883
+ | Type Parameter |
884
+ | :------ |
885
+ | `T` |
886
+
887
+ #### Properties
888
+
889
+ | Property | Type |
890
+ | :------ | :------ |
891
+ | <a id="complete"></a> `complete?` | () => `void` |
892
+ | <a id="error"></a> `error?` | (`error`: `unknown`) => `void` |
893
+ | <a id="next"></a> `next?` | (`snapshot`: `T`) => `void` |
894
+
895
+ ***
896
+
897
+ <a id="userauth"></a>
898
+
899
+ ### UserAuth
900
+
901
+ #### Properties
902
+
903
+ | Property | Type |
904
+ | :------ | :------ |
905
+ | <a id="claims"></a> `claims?` | `Record`\<`string`, `unknown`\> |
906
+ | <a id="uid"></a> `uid` | `string` |
907
+
908
+ ## Type Aliases
909
+
910
+ <a id="aggregatefield"></a>
911
+
912
+ ### AggregateField
913
+
914
+ ```ts
915
+ type AggregateField =
916
+ | {
917
+ kind: "count";
918
+ }
919
+ | {
920
+ field: string;
921
+ kind: "sum";
922
+ }
923
+ | {
924
+ field: string;
925
+ kind: "average";
926
+ };
927
+ ```
928
+
929
+ Aggregate-field descriptor returned by `count()` / `sum(field)` /
930
+ `average(field)`.
931
+
932
+ ***
933
+
934
+ <a id="aggregatespec"></a>
935
+
936
+ ### AggregateSpec
937
+
938
+ ```ts
939
+ type AggregateSpec = Record<string, AggregateField>;
940
+ ```
941
+
942
+ Spec passed to `getAggregateFromServer(query, spec)`.
943
+
944
+ ***
945
+
946
+ <a id="appfirestore"></a>
947
+
948
+ ### AppFirestore
949
+
950
+ ```ts
951
+ type AppFirestore = Firestore & {
952
+ app: FirebaseApp;
953
+ };
954
+ ```
955
+
956
+ Firestore handle returned by Firebase-shaped app overloads.
957
+
958
+ #### Type Declaration
959
+
960
+ ##### app
961
+
962
+ ```ts
963
+ readonly app: FirebaseApp;
964
+ ```
965
+
966
+ ***
967
+
968
+ <a id="as"></a>
969
+
970
+ ### As
971
+
972
+ ```ts
973
+ type As = "admin" | UserAuth;
974
+ ```
975
+
976
+ Who a data-plane op runs as. The default (omitted, or the literal `'admin'`)
977
+ is an ADMIN write that BYPASSES rules — the right mode for sandbox seeding.
978
+ A `{ uid, claims? }` runs as that user with rules ENFORCED. The point of the
979
+ explicit literal: bypass is NAMED (`as:'admin'`), not the silent consequence
980
+ of omitting an auth field, and acting-as-a-user is named too.
981
+
982
+ ***
983
+
984
+ <a id="authstate"></a>
985
+
986
+ ### AuthState
987
+
988
+ ```ts
989
+ type AuthState = any;
990
+ ```
991
+
992
+ ***
993
+
994
+ <a id="loglevel"></a>
995
+
996
+ ### LogLevel
997
+
998
+ ```ts
999
+ type LogLevel = "debug" | "verbose" | "info" | "warn" | "error" | "silent";
1000
+ ```
1001
+
1002
+ Mirrors `firebase/firestore`'s `LogLevel` union.
1003
+
1004
+ ***
1005
+
1006
+ <a id="transaction"></a>
1007
+
1008
+ ### Transaction
1009
+
1010
+ ```ts
1011
+ type Transaction = AuthState;
1012
+ ```
1013
+
1014
+ ***
1015
+
1016
+ <a id="unsubscribe"></a>
1017
+
1018
+ ### Unsubscribe()
1019
+
1020
+ ```ts
1021
+ type Unsubscribe = () => void;
1022
+ ```
1023
+
1024
+ #### Returns
1025
+
1026
+ `void`
1027
+
1028
+ ***
1029
+
1030
+ <a id="writebatch"></a>
1031
+
1032
+ ### WriteBatch
1033
+
1034
+ ```ts
1035
+ type WriteBatch = AuthState;
1036
+ ```
1037
+
1038
+ ## Variables
1039
+
1040
+ <a id="target_symbol-1"></a>
1041
+
1042
+ ### TARGET\_SYMBOL
1043
+
1044
+ ```ts
1045
+ const TARGET_SYMBOL: unique symbol;
1046
+ ```
1047
+
1048
+ Hidden property on every [Firestore](#firestore) handle. Discriminates
1049
+ the sandbox backend so free functions can recover their owner.
1050
+
1051
+ ## Functions
1052
+
1053
+ <a id="actingas"></a>
1054
+
1055
+ ### actingAs()
1056
+
1057
+ ```ts
1058
+ function actingAs(sandbox: Sandbox, identity: AuthState): Firestore;
1059
+ ```
1060
+
1061
+ A Firestore handle scoped to a specific identity, for multi-user testing.
1062
+
1063
+ `actingAs(sandbox, { uid })` returns a `Firestore` whose ops evaluate security
1064
+ rules as that user (`request.auth.uid === uid`; custom claims via `token`);
1065
+ `actingAs(sandbox, null)` is the anonymous (signed-out) path. Multiple
1066
+ identities over ONE sandbox share the same store, so a write by one is
1067
+ delivered to another's `onSnapshot`: the basis for multi-user sync testing.
1068
+
1069
+ #### Parameters
1070
+
1071
+ | Parameter | Type |
1072
+ | :------ | :------ |
1073
+ | `sandbox` | `Sandbox` |
1074
+ | `identity` | `AuthState` |
1075
+
1076
+ #### Returns
1077
+
1078
+ [`Firestore`](#firestore)
1079
+
1080
+ #### Example
1081
+
1082
+ ```ts
1083
+ import { initializeSandbox } from 'pyric/sandbox';
1084
+ import { actingAs, doc, setDoc, onSnapshot } from 'pyric/firestore';
1085
+ const sandbox = initializeSandbox();
1086
+ const alice = actingAs(sandbox, { uid: 'alice' });
1087
+ const bob = actingAs(sandbox, { uid: 'bob', token: { role: 'member' } });
1088
+ onSnapshot(doc(bob, 'rooms/r1'), () => {
1089
+ // fires when alice writes (same store; rules evaluated as bob)
1090
+ });
1091
+ await setDoc(doc(alice, 'rooms/r1'), { owner: 'alice' });
1092
+ ```
1093
+
1094
+ Thin sugar over `getFirestore(sandbox.withAuth(identity))`; the value is a
1095
+ named, discoverable seam for multi-user scenarios. See
1096
+ the design rationale.
1097
+
1098
+ ***
1099
+
1100
+ <a id="adddoc"></a>
1101
+
1102
+ ### addDoc()
1103
+
1104
+ ```ts
1105
+ function addDoc<T>(coll: CollectionReference<T>, data: T): Promise<DocumentReference<T>>;
1106
+ ```
1107
+
1108
+ #### Type Parameters
1109
+
1110
+ | Type Parameter | Default type |
1111
+ | :------ | :------ |
1112
+ | `T` | `DocumentData` |
1113
+
1114
+ #### Parameters
1115
+
1116
+ | Parameter | Type |
1117
+ | :------ | :------ |
1118
+ | `coll` | [`CollectionReference`](#collectionreference)\<`T`\> |
1119
+ | `data` | `T` |
1120
+
1121
+ #### Returns
1122
+
1123
+ `Promise`\<[`DocumentReference`](#documentreference)\<`T`\>\>
1124
+
1125
+ ***
1126
+
1127
+ <a id="and"></a>
1128
+
1129
+ ### and()
1130
+
1131
+ ```ts
1132
+ function and(...filters: QueryConstraint[]): QueryConstraint;
1133
+ ```
1134
+
1135
+ AND composite. Same shape as `or()` but every inner constraint
1136
+ must match. Useful inside an `or()` to combine constraints that
1137
+ would otherwise be at the top level.
1138
+
1139
+ #### Parameters
1140
+
1141
+ | Parameter | Type |
1142
+ | :------ | :------ |
1143
+ | ...`filters` | [`QueryConstraint`](#queryconstraint)[] |
1144
+
1145
+ #### Returns
1146
+
1147
+ [`QueryConstraint`](#queryconstraint)
1148
+
1149
+ ***
1150
+
1151
+ <a id="arrayremove"></a>
1152
+
1153
+ ### arrayRemove()
1154
+
1155
+ ```ts
1156
+ function arrayRemove(...values: unknown[]): FieldValueSentinel;
1157
+ ```
1158
+
1159
+ #### Parameters
1160
+
1161
+ | Parameter | Type |
1162
+ | :------ | :------ |
1163
+ | ...`values` | `unknown`[] |
1164
+
1165
+ #### Returns
1166
+
1167
+ `FieldValueSentinel`
1168
+
1169
+ ***
1170
+
1171
+ <a id="arrayunion"></a>
1172
+
1173
+ ### arrayUnion()
1174
+
1175
+ ```ts
1176
+ function arrayUnion(...values: unknown[]): FieldValueSentinel;
1177
+ ```
1178
+
1179
+ #### Parameters
1180
+
1181
+ | Parameter | Type |
1182
+ | :------ | :------ |
1183
+ | ...`values` | `unknown`[] |
1184
+
1185
+ #### Returns
1186
+
1187
+ `FieldValueSentinel`
1188
+
1189
+ ***
1190
+
1191
+ <a id="average"></a>
1192
+
1193
+ ### average()
1194
+
1195
+ ```ts
1196
+ function average(field: string): AggregateField;
1197
+ ```
1198
+
1199
+ Factory: average-of-`field` aggregate.
1200
+
1201
+ #### Parameters
1202
+
1203
+ | Parameter | Type |
1204
+ | :------ | :------ |
1205
+ | `field` | `string` |
1206
+
1207
+ #### Returns
1208
+
1209
+ [`AggregateField`](#aggregatefield)
1210
+
1211
+ ***
1212
+
1213
+ <a id="clearindexeddbpersistence"></a>
1214
+
1215
+ ### clearIndexedDbPersistence()
1216
+
1217
+ ```ts
1218
+ function clearIndexedDbPersistence(db: Firestore): Promise<void>;
1219
+ ```
1220
+
1221
+ Sandbox: actually clears the sandbox's persisted store via
1222
+ `Sandbox.clearPersistence()` — the honest mapping, not a no-op. This
1223
+ wipes the persisted blob (IndexedDB, or whatever backend
1224
+ `enablePersistence` was configured with) while leaving in-memory
1225
+ state untouched, matching `clearPersistence`'s own contract. It is
1226
+ ALREADY a no-op when persistence was never enabled, so callers that
1227
+ invoke this defensively at startup are safe either way.
1228
+
1229
+ `getFirestore(ctx)` (frozen `SandboxContext`) targets don't carry a
1230
+ live `Sandbox` handle with a `clearPersistence` method reachable the
1231
+ same way as a `sandbox`/`sandbox-live` target's `.sandbox` field —
1232
+ both variants do, in fact, so this always has a sandbox to call into.
1233
+
1234
+ The real SDK requires this before Firestore starts; the sandbox's mapped
1235
+ `clearPersistence()` has no such restriction.
1236
+
1237
+ #### Parameters
1238
+
1239
+ | Parameter | Type |
1240
+ | :------ | :------ |
1241
+ | `db` | [`Firestore`](#firestore) |
1242
+
1243
+ #### Returns
1244
+
1245
+ `Promise`\<`void`\>
1246
+
1247
+ ***
1248
+
1249
+ <a id="collection"></a>
1250
+
1251
+ ### collection()
1252
+
1253
+ ```ts
1254
+ function collection(parent:
1255
+ | Firestore
1256
+ | DocumentReference<DocumentData>, ...pathSegments: string[]): CollectionReference;
1257
+ ```
1258
+
1259
+ #### Parameters
1260
+
1261
+ | Parameter | Type |
1262
+ | :------ | :------ |
1263
+ | `parent` | \| [`Firestore`](#firestore) \| [`DocumentReference`](#documentreference)\<`DocumentData`\> |
1264
+ | ...`pathSegments` | `string`[] |
1265
+
1266
+ #### Returns
1267
+
1268
+ [`CollectionReference`](#collectionreference)
1269
+
1270
+ ***
1271
+
1272
+ <a id="collectiongroup"></a>
1273
+
1274
+ ### collectionGroup()
1275
+
1276
+ ```ts
1277
+ function collectionGroup(db: Firestore, collectionId: string): Query;
1278
+ ```
1279
+
1280
+ Cross-collection query — scans every document under every
1281
+ collection whose final segment matches `collectionId`. Mirrors
1282
+ `firebase/firestore`'s `collectionGroup(db, id)` shape.
1283
+
1284
+ Returned `Query` accepts the same `where` / `orderBy` / `limit`
1285
+ constraints as any other query.
1286
+
1287
+ #### Parameters
1288
+
1289
+ | Parameter | Type |
1290
+ | :------ | :------ |
1291
+ | `db` | [`Firestore`](#firestore) |
1292
+ | `collectionId` | `string` |
1293
+
1294
+ #### Returns
1295
+
1296
+ [`Query`](#query)
1297
+
1298
+ ***
1299
+
1300
+ <a id="connectfirestoreemulator"></a>
1301
+
1302
+ ### connectFirestoreEmulator()
1303
+
1304
+ ```ts
1305
+ function connectFirestoreEmulator(
1306
+ db: Firestore,
1307
+ host: string,
1308
+ port: number,
1309
+ options?: {
1310
+ mockUserToken?: | string
1311
+ | {
1312
+ [claim: string]: unknown;
1313
+ firebase?: {
1314
+ identities?: Record<string, string[]>;
1315
+ sign_in_provider?: string;
1316
+ };
1317
+ sub?: string;
1318
+ user_id?: string;
1319
+ };
1320
+ }): void;
1321
+ ```
1322
+
1323
+ No-op in the sandbox mirror because the sandbox already runs locally.
1324
+
1325
+ The option shape remains source-compatible with Firebase so canonical
1326
+ initialization code can call it unconditionally.
1327
+
1328
+ #### Parameters
1329
+
1330
+ | Parameter | Type |
1331
+ | :------ | :------ |
1332
+ | `db` | [`Firestore`](#firestore) |
1333
+ | `host` | `string` |
1334
+ | `port` | `number` |
1335
+ | `options?` | \{ `mockUserToken?`: \| `string` \| \{ \[`claim`: `string`\]: `unknown`; `firebase?`: \{ `identities?`: `Record`\<`string`, `string`[]\>; `sign_in_provider?`: `string`; \}; `sub?`: `string`; `user_id?`: `string`; \}; \} |
1336
+ | `options.mockUserToken?` | \| `string` \| \{ \[`claim`: `string`\]: `unknown`; `firebase?`: \{ `identities?`: `Record`\<`string`, `string`[]\>; `sign_in_provider?`: `string`; \}; `sub?`: `string`; `user_id?`: `string`; \} |
1337
+
1338
+ #### Returns
1339
+
1340
+ `void`
1341
+
1342
+ ***
1343
+
1344
+ <a id="count"></a>
1345
+
1346
+ ### count()
1347
+
1348
+ ```ts
1349
+ function count(): AggregateField;
1350
+ ```
1351
+
1352
+ Factory: count() aggregate.
1353
+
1354
+ #### Returns
1355
+
1356
+ [`AggregateField`](#aggregatefield)
1357
+
1358
+ ***
1359
+
1360
+ <a id="createfirestoredatatools"></a>
1361
+
1362
+ ### createFirestoreDataTools()
1363
+
1364
+ ```ts
1365
+ function createFirestoreDataTools(deps: FirestoreDataToolDeps): ToolHandler<unknown, unknown>[];
1366
+ ```
1367
+
1368
+ Modular Web-SDK-shaped Firestore data tools — get, list, create,
1369
+ update, delete. Each tool's `auth` arg is forwarded to the
1370
+ resolver; omitted = admin mode, supplied = user mode.
1371
+
1372
+ #### Parameters
1373
+
1374
+ | Parameter | Type |
1375
+ | :------ | :------ |
1376
+ | `deps` | [`FirestoreDataToolDeps`](#firestoredatatooldeps) |
1377
+
1378
+ #### Returns
1379
+
1380
+ `ToolHandler`\<`unknown`, `unknown`\>[]
1381
+
1382
+ ***
1383
+
1384
+ <a id="createfirestoreinspecttools"></a>
1385
+
1386
+ ### createFirestoreInspectTools()
1387
+
1388
+ ```ts
1389
+ function createFirestoreInspectTools(deps: FirestoreInspectToolDeps): ToolHandler<unknown, unknown>[];
1390
+ ```
1391
+
1392
+ `sandbox_inspect` — the missing-tool tax this entire library
1393
+ used to charge agents. Without it, debugging "why aren't my rules
1394
+ working?" took 51 tool calls + 72k tokens of grepping node_modules
1395
+ (recorded in CLAUDE_DEBUG_SESSION.md). With it, the same diagnosis
1396
+ is one tool call:
1397
+
1398
+ { rules: { source, sizeBytes, isEmpty, lint: { errors, warnings, findings } },
1399
+ documents: { totalCount, byCollection },
1400
+ events: { totalCount, recentDenials, recentRequests } }
1401
+
1402
+ Returns a snapshot of sandbox state — current rules, lint summary,
1403
+ document census by collection, and the most-recent denials + requests
1404
+ from sandbox.history(). Everything an agent needs to localize a
1405
+ sandbox bug in one round-trip.
1406
+
1407
+ Sandbox-only. `resolveSandbox` must return the owning Sandbox.
1408
+
1409
+ #### Parameters
1410
+
1411
+ | Parameter | Type |
1412
+ | :------ | :------ |
1413
+ | `deps` | [`FirestoreInspectToolDeps`](#firestoreinspecttooldeps) |
1414
+
1415
+ #### Returns
1416
+
1417
+ `ToolHandler`\<`unknown`, `unknown`\>[]
1418
+
1419
+ ***
1420
+
1421
+ <a id="deletedoc"></a>
1422
+
1423
+ ### deleteDoc()
1424
+
1425
+ ```ts
1426
+ function deleteDoc(ref: DocumentReference): Promise<void>;
1427
+ ```
1428
+
1429
+ #### Parameters
1430
+
1431
+ | Parameter | Type |
1432
+ | :------ | :------ |
1433
+ | `ref` | [`DocumentReference`](#documentreference) |
1434
+
1435
+ #### Returns
1436
+
1437
+ `Promise`\<`void`\>
1438
+
1439
+ ***
1440
+
1441
+ <a id="deletefield"></a>
1442
+
1443
+ ### deleteField()
1444
+
1445
+ ```ts
1446
+ function deleteField(): FieldValueSentinel;
1447
+ ```
1448
+
1449
+ #### Returns
1450
+
1451
+ `FieldValueSentinel`
1452
+
1453
+ ***
1454
+
1455
+ <a id="disablenetwork"></a>
1456
+
1457
+ ### disableNetwork()
1458
+
1459
+ ```ts
1460
+ function disableNetwork(db: Firestore): Promise<void>;
1461
+ ```
1462
+
1463
+ Sandbox: no-op success. There is no network in the sandbox — every
1464
+ op is a local call into the in-memory/IndexedDB-backed store — so
1465
+ there is nothing to disable. This deliberately does NOT simulate an
1466
+ offline mode: queued writes still commit immediately rather than
1467
+ queuing, because the sandbox cannot honestly deliver "queued until
1468
+ reconnected" when there is no connection to lose in the first place.
1469
+ App code that calls this to prep for flaky connectivity will not
1470
+ crash, but it also will not observe write-queuing behavior.
1471
+
1472
+ #### Parameters
1473
+
1474
+ | Parameter | Type |
1475
+ | :------ | :------ |
1476
+ | `db` | [`Firestore`](#firestore) |
1477
+
1478
+ #### Returns
1479
+
1480
+ `Promise`\<`void`\>
1481
+
1482
+ ***
1483
+
1484
+ <a id="doc"></a>
1485
+
1486
+ ### doc()
1487
+
1488
+ ```ts
1489
+ function doc<T>(parent:
1490
+ | Firestore
1491
+ | CollectionReference<T>, ...pathSegments: string[]): DocumentReference<T>;
1492
+ ```
1493
+
1494
+ #### Type Parameters
1495
+
1496
+ | Type Parameter | Default type |
1497
+ | :------ | :------ |
1498
+ | `T` | `DocumentData` |
1499
+
1500
+ #### Parameters
1501
+
1502
+ | Parameter | Type |
1503
+ | :------ | :------ |
1504
+ | `parent` | \| [`Firestore`](#firestore) \| [`CollectionReference`](#collectionreference)\<`T`\> |
1505
+ | ...`pathSegments` | `string`[] |
1506
+
1507
+ #### Returns
1508
+
1509
+ [`DocumentReference`](#documentreference)\<`T`\>
1510
+
1511
+ ***
1512
+
1513
+ <a id="documentid"></a>
1514
+
1515
+ ### documentId()
1516
+
1517
+ ```ts
1518
+ function documentId(): FieldPath;
1519
+ ```
1520
+
1521
+ #### Returns
1522
+
1523
+ [`FieldPath`](#fieldpath)
1524
+
1525
+ ***
1526
+
1527
+ <a id="enableindexeddbpersistence"></a>
1528
+
1529
+ ### enableIndexedDbPersistence()
1530
+
1531
+ ```ts
1532
+ function enableIndexedDbPersistence(db: Firestore, persistenceSettings?: PersistenceSettings): Promise<void>;
1533
+ ```
1534
+
1535
+ Sandbox: no-op success. The sandbox's default persistence (IndexedDB
1536
+ on the SharedWorker/serve path, or whatever backend `enablePersistence`
1537
+ was configured with) already caches every write — this call has
1538
+ nothing left to enable. Resolves immediately.
1539
+
1540
+ Unlike the real SDK, this does NOT reject with `'failed-precondition'`
1541
+ when called after other Firestore ops have already run. The guard
1542
+ exists in the real SDK to protect an actual cache-initialization
1543
+ race; the sandbox has no such race (there's no cache to initialize),
1544
+ so enforcing the same restriction would only make app code that
1545
+ calls this defensively at startup fail for no local reason.
1546
+
1547
+ #### Parameters
1548
+
1549
+ | Parameter | Type |
1550
+ | :------ | :------ |
1551
+ | `db` | [`Firestore`](#firestore) |
1552
+ | `persistenceSettings?` | [`PersistenceSettings`](#persistencesettings) |
1553
+
1554
+ #### Returns
1555
+
1556
+ `Promise`\<`void`\>
1557
+
1558
+ ***
1559
+
1560
+ <a id="enablemultitabindexeddbpersistence"></a>
1561
+
1562
+ ### enableMultiTabIndexedDbPersistence()
1563
+
1564
+ ```ts
1565
+ function enableMultiTabIndexedDbPersistence(db: Firestore): Promise<void>;
1566
+ ```
1567
+
1568
+ Sandbox: no-op success, same rationale as [enableIndexedDbPersistence](#enableindexeddbpersistence).
1569
+ Multi-tab coordination is meaningless here too: the sandbox's
1570
+ SharedWorker path already IS the single shared store every tab talks
1571
+ to, so there's no separate "multi-tab" mode to opt into.
1572
+
1573
+ #### Parameters
1574
+
1575
+ | Parameter | Type |
1576
+ | :------ | :------ |
1577
+ | `db` | [`Firestore`](#firestore) |
1578
+
1579
+ #### Returns
1580
+
1581
+ `Promise`\<`void`\>
1582
+
1583
+ ***
1584
+
1585
+ <a id="enablenetwork"></a>
1586
+
1587
+ ### enableNetwork()
1588
+
1589
+ ```ts
1590
+ function enableNetwork(db: Firestore): Promise<void>;
1591
+ ```
1592
+
1593
+ Sandbox: no-op success, symmetric with [disableNetwork](#disablenetwork) — since
1594
+ network was never disabled locally, there is nothing to re-enable.
1595
+
1596
+ #### Parameters
1597
+
1598
+ | Parameter | Type |
1599
+ | :------ | :------ |
1600
+ | `db` | [`Firestore`](#firestore) |
1601
+
1602
+ #### Returns
1603
+
1604
+ `Promise`\<`void`\>
1605
+
1606
+ ***
1607
+
1608
+ <a id="endat"></a>
1609
+
1610
+ ### endAt()
1611
+
1612
+ #### Call Signature
1613
+
1614
+ ```ts
1615
+ function endAt(snapshot: DocumentSnapshot): QueryConstraint;
1616
+ ```
1617
+
1618
+ End the query at the document whose ordered field values match
1619
+ the cursor. Inclusive — the document at the cursor IS included.
1620
+
1621
+ ##### Parameters
1622
+
1623
+ | Parameter | Type |
1624
+ | :------ | :------ |
1625
+ | `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
1626
+
1627
+ ##### Returns
1628
+
1629
+ [`QueryConstraint`](#queryconstraint)
1630
+
1631
+ #### Call Signature
1632
+
1633
+ ```ts
1634
+ function endAt(...values: unknown[]): QueryConstraint;
1635
+ ```
1636
+
1637
+ End the query at the document whose ordered field values match
1638
+ the cursor. Inclusive — the document at the cursor IS included.
1639
+
1640
+ ##### Parameters
1641
+
1642
+ | Parameter | Type |
1643
+ | :------ | :------ |
1644
+ | ...`values` | `unknown`[] |
1645
+
1646
+ ##### Returns
1647
+
1648
+ [`QueryConstraint`](#queryconstraint)
1649
+
1650
+ ***
1651
+
1652
+ <a id="endbefore"></a>
1653
+
1654
+ ### endBefore()
1655
+
1656
+ #### Call Signature
1657
+
1658
+ ```ts
1659
+ function endBefore(snapshot: DocumentSnapshot): QueryConstraint;
1660
+ ```
1661
+
1662
+ Same as `endAt`, but EXCLUDES the document at the cursor — the
1663
+ result ends at the prior ordered position.
1664
+
1665
+ ##### Parameters
1666
+
1667
+ | Parameter | Type |
1668
+ | :------ | :------ |
1669
+ | `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
1670
+
1671
+ ##### Returns
1672
+
1673
+ [`QueryConstraint`](#queryconstraint)
1674
+
1675
+ #### Call Signature
1676
+
1677
+ ```ts
1678
+ function endBefore(...values: unknown[]): QueryConstraint;
1679
+ ```
1680
+
1681
+ Same as `endAt`, but EXCLUDES the document at the cursor — the
1682
+ result ends at the prior ordered position.
1683
+
1684
+ ##### Parameters
1685
+
1686
+ | Parameter | Type |
1687
+ | :------ | :------ |
1688
+ | ...`values` | `unknown`[] |
1689
+
1690
+ ##### Returns
1691
+
1692
+ [`QueryConstraint`](#queryconstraint)
1693
+
1694
+ ***
1695
+
1696
+ <a id="getadminfirestore"></a>
1697
+
1698
+ ### getAdminFirestore()
1699
+
1700
+ #### Call Signature
1701
+
1702
+ ```ts
1703
+ function getAdminFirestore(sandbox: Sandbox): Firestore;
1704
+ ```
1705
+
1706
+ Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
1707
+ Studio admin lens (Gap #2). Every modular op issued against the returned
1708
+ handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
1709
+ `count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
1710
+ is treated as ALLOW, while still going through the same store + emitting
1711
+ the same events + waking the same listeners. This is the modular sibling
1712
+ of the path-string `sandbox.admin.*` bypass; it reuses the underlying
1713
+ `LocalEnvironment` bypass execution path (the `bypassRules` op flag),
1714
+ not a parallel reimplementation.
1715
+
1716
+ Sandbox-only. There is no prod analog (you cannot bypass deployed
1717
+ security rules from a client), so this overload set accepts only a
1718
+ `Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
1719
+ Admin ops are identity-agnostic (rules are off), so the
1720
+ handle is a FROZEN `sandbox` target: it does not track
1721
+ `sandbox.currentUser`.
1722
+
1723
+ Intended for Studio's "edit anything as admin" surfaces (F2) and the
1724
+ serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
1725
+ impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
1726
+ uid }))` instead.
1727
+
1728
+ ##### Parameters
1729
+
1730
+ | Parameter | Type |
1731
+ | :------ | :------ |
1732
+ | `sandbox` | `Sandbox` |
1733
+
1734
+ ##### Returns
1735
+
1736
+ [`Firestore`](#firestore)
1737
+
1738
+ ##### Example
1739
+
1740
+ ```ts
1741
+ import { initializeSandbox } from 'pyric/sandbox';
1742
+ import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
1743
+ const sandbox = initializeSandbox();
1744
+ const adminDb = getAdminFirestore(sandbox);
1745
+ await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
1746
+ ```
1747
+
1748
+ #### Call Signature
1749
+
1750
+ ```ts
1751
+ function getAdminFirestore(ctx: SandboxContext): Firestore;
1752
+ ```
1753
+
1754
+ Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
1755
+ Studio admin lens (Gap #2). Every modular op issued against the returned
1756
+ handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
1757
+ `count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
1758
+ is treated as ALLOW, while still going through the same store + emitting
1759
+ the same events + waking the same listeners. This is the modular sibling
1760
+ of the path-string `sandbox.admin.*` bypass; it reuses the underlying
1761
+ `LocalEnvironment` bypass execution path (the `bypassRules` op flag),
1762
+ not a parallel reimplementation.
1763
+
1764
+ Sandbox-only. There is no prod analog (you cannot bypass deployed
1765
+ security rules from a client), so this overload set accepts only a
1766
+ `Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
1767
+ Admin ops are identity-agnostic (rules are off), so the
1768
+ handle is a FROZEN `sandbox` target: it does not track
1769
+ `sandbox.currentUser`.
1770
+
1771
+ Intended for Studio's "edit anything as admin" surfaces (F2) and the
1772
+ serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
1773
+ impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
1774
+ uid }))` instead.
1775
+
1776
+ ##### Parameters
1777
+
1778
+ | Parameter | Type |
1779
+ | :------ | :------ |
1780
+ | `ctx` | `SandboxContext` |
1781
+
1782
+ ##### Returns
1783
+
1784
+ [`Firestore`](#firestore)
1785
+
1786
+ ##### Example
1787
+
1788
+ ```ts
1789
+ import { initializeSandbox } from 'pyric/sandbox';
1790
+ import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
1791
+ const sandbox = initializeSandbox();
1792
+ const adminDb = getAdminFirestore(sandbox);
1793
+ await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
1794
+ ```
1795
+
1796
+ #### Call Signature
1797
+
1798
+ ```ts
1799
+ function getAdminFirestore(app: FirebaseApp): Firestore;
1800
+ ```
1801
+
1802
+ Construct a **rules-bypassing** sandbox Firestore handle — the Pyric
1803
+ Studio admin lens (Gap #2). Every modular op issued against the returned
1804
+ handle (`getDoc`/`getDocs`/`setDoc`/`updateDoc`/`deleteDoc`/`addDoc`/
1805
+ `count`/`writeBatch`/`runTransaction`) SKIPS security-rule evaluation and
1806
+ is treated as ALLOW, while still going through the same store + emitting
1807
+ the same events + waking the same listeners. This is the modular sibling
1808
+ of the path-string `sandbox.admin.*` bypass; it reuses the underlying
1809
+ `LocalEnvironment` bypass execution path (the `bypassRules` op flag),
1810
+ not a parallel reimplementation.
1811
+
1812
+ Sandbox-only. There is no prod analog (you cannot bypass deployed
1813
+ security rules from a client), so this overload set accepts only a
1814
+ `Sandbox`, `SandboxContext`, or a privately-associated `FirebaseApp`.
1815
+ Admin ops are identity-agnostic (rules are off), so the
1816
+ handle is a FROZEN `sandbox` target: it does not track
1817
+ `sandbox.currentUser`.
1818
+
1819
+ Intended for Studio's "edit anything as admin" surfaces (F2) and the
1820
+ serve worker's `{ mode: 'admin' }` auth lens. For rules-applied
1821
+ impersonation ("act as this user"), use `getFirestore(sandbox.withAuth({
1822
+ uid }))` instead.
1823
+
1824
+ ##### Parameters
1825
+
1826
+ | Parameter | Type |
1827
+ | :------ | :------ |
1828
+ | `app` | `FirebaseApp` |
1829
+
1830
+ ##### Returns
1831
+
1832
+ [`Firestore`](#firestore)
1833
+
1834
+ ##### Example
1835
+
1836
+ ```ts
1837
+ import { initializeSandbox } from 'pyric/sandbox';
1838
+ import { getAdminFirestore, doc, setDoc } from 'pyric/firestore';
1839
+ const sandbox = initializeSandbox();
1840
+ const adminDb = getAdminFirestore(sandbox);
1841
+ await setDoc(doc(adminDb, 'locked/x'), { a: 1 }); // bypasses rules
1842
+ ```
1843
+
1844
+ ***
1845
+
1846
+ <a id="getaggregatefromserver"></a>
1847
+
1848
+ ### getAggregateFromServer()
1849
+
1850
+ ```ts
1851
+ function getAggregateFromServer<S>(source:
1852
+ | Query<DocumentData>
1853
+ | CollectionReference<DocumentData>, spec: S): Promise<AggregateQuerySnapshot<{ [K in string | number | symbol]: number }>>;
1854
+ ```
1855
+
1856
+ Run a multi-field aggregate against the query. Spec entries are
1857
+ keyed by caller-chosen aliases; the returned snapshot's `.data()`
1858
+ uses the same keys.
1859
+
1860
+ The sandbox target dispatches straight into the chainable adapter.
1861
+
1862
+ #### Type Parameters
1863
+
1864
+ | Type Parameter |
1865
+ | :------ |
1866
+ | `S` *extends* [`AggregateSpec`](#aggregatespec) |
1867
+
1868
+ #### Parameters
1869
+
1870
+ | Parameter | Type |
1871
+ | :------ | :------ |
1872
+ | `source` | \| [`Query`](#query)\<`DocumentData`\> \| [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
1873
+ | `spec` | `S` |
1874
+
1875
+ #### Returns
1876
+
1877
+ `Promise`\<[`AggregateQuerySnapshot`](#aggregatequerysnapshot)\<\{ \[K in string \| number \| symbol\]: number \}\>\>
1878
+
1879
+ ***
1880
+
1881
+ <a id="getcountfromserver"></a>
1882
+
1883
+ ### getCountFromServer()
1884
+
1885
+ ```ts
1886
+ function getCountFromServer(source:
1887
+ | Query<DocumentData>
1888
+ | CollectionReference<DocumentData>): Promise<AggregateQuerySnapshot<{
1889
+ count: number;
1890
+ }>>;
1891
+ ```
1892
+
1893
+ Count documents matching the query. Returns a snapshot whose
1894
+ `.data()` yields `{ count: N }` — same shape `firebase/firestore`'s
1895
+ `getCountFromServer` produces.
1896
+
1897
+ #### Parameters
1898
+
1899
+ | Parameter | Type |
1900
+ | :------ | :------ |
1901
+ | `source` | \| [`Query`](#query)\<`DocumentData`\> \| [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
1902
+
1903
+ #### Returns
1904
+
1905
+ `Promise`\<[`AggregateQuerySnapshot`](#aggregatequerysnapshot)\<\{
1906
+ `count`: `number`;
1907
+ \}\>\>
1908
+
1909
+ ***
1910
+
1911
+ <a id="getdoc"></a>
1912
+
1913
+ ### getDoc()
1914
+
1915
+ ```ts
1916
+ function getDoc<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
1917
+ ```
1918
+
1919
+ #### Type Parameters
1920
+
1921
+ | Type Parameter | Default type |
1922
+ | :------ | :------ |
1923
+ | `T` | `DocumentData` |
1924
+
1925
+ #### Parameters
1926
+
1927
+ | Parameter | Type |
1928
+ | :------ | :------ |
1929
+ | `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
1930
+
1931
+ #### Returns
1932
+
1933
+ `Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
1934
+
1935
+ ***
1936
+
1937
+ <a id="getdocfromcache"></a>
1938
+
1939
+ ### getDocFromCache()
1940
+
1941
+ ```ts
1942
+ function getDocFromCache<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
1943
+ ```
1944
+
1945
+ Sandbox: delegates to [getDoc](#getdoc). Real Firebase THROWS
1946
+ `'unavailable'` here on a cache miss (nothing local matches the
1947
+ ref); pyric never misses — the local store always has whatever is
1948
+ there — so this never throws for that reason. Documented divergence,
1949
+ not a claim of parity.
1950
+
1951
+ #### Type Parameters
1952
+
1953
+ | Type Parameter | Default type |
1954
+ | :------ | :------ |
1955
+ | `T` | `DocumentData` |
1956
+
1957
+ #### Parameters
1958
+
1959
+ | Parameter | Type |
1960
+ | :------ | :------ |
1961
+ | `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
1962
+
1963
+ #### Returns
1964
+
1965
+ `Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
1966
+
1967
+ ***
1968
+
1969
+ <a id="getdocfromserver"></a>
1970
+
1971
+ ### getDocFromServer()
1972
+
1973
+ ```ts
1974
+ function getDocFromServer<T>(ref: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
1975
+ ```
1976
+
1977
+ Sandbox: delegates to [getDoc](#getdoc). The sandbox store IS the
1978
+ authoritative, always-fresh source — there is no separate server
1979
+ round-trip to force, so "from server" and the default read are the
1980
+ same honest thing.
1981
+
1982
+ #### Type Parameters
1983
+
1984
+ | Type Parameter | Default type |
1985
+ | :------ | :------ |
1986
+ | `T` | `DocumentData` |
1987
+
1988
+ #### Parameters
1989
+
1990
+ | Parameter | Type |
1991
+ | :------ | :------ |
1992
+ | `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
1993
+
1994
+ #### Returns
1995
+
1996
+ `Promise`\<[`DocumentSnapshot`](#documentsnapshot)\<`T`\>\>
1997
+
1998
+ ***
1999
+
2000
+ <a id="getdocs"></a>
2001
+
2002
+ ### getDocs()
2003
+
2004
+ ```ts
2005
+ function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
2006
+ ```
2007
+
2008
+ #### Type Parameters
2009
+
2010
+ | Type Parameter | Default type |
2011
+ | :------ | :------ |
2012
+ | `T` | `DocumentData` |
2013
+
2014
+ #### Parameters
2015
+
2016
+ | Parameter | Type |
2017
+ | :------ | :------ |
2018
+ | `query` | [`Query`](#query)\<`T`\> |
2019
+
2020
+ #### Returns
2021
+
2022
+ `Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
2023
+
2024
+ ***
2025
+
2026
+ <a id="getdocsfromcache"></a>
2027
+
2028
+ ### getDocsFromCache()
2029
+
2030
+ ```ts
2031
+ function getDocsFromCache<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
2032
+ ```
2033
+
2034
+ Query-plural form of [getDocFromCache](#getdocfromcache) — same cache-miss divergence.
2035
+
2036
+ #### Type Parameters
2037
+
2038
+ | Type Parameter | Default type |
2039
+ | :------ | :------ |
2040
+ | `T` | `DocumentData` |
2041
+
2042
+ #### Parameters
2043
+
2044
+ | Parameter | Type |
2045
+ | :------ | :------ |
2046
+ | `query` | [`Query`](#query)\<`T`\> |
2047
+
2048
+ #### Returns
2049
+
2050
+ `Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
2051
+
2052
+ ***
2053
+
2054
+ <a id="getdocsfromserver"></a>
2055
+
2056
+ ### getDocsFromServer()
2057
+
2058
+ ```ts
2059
+ function getDocsFromServer<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
2060
+ ```
2061
+
2062
+ Query-plural form of [getDocFromServer](#getdocfromserver).
2063
+
2064
+ #### Type Parameters
2065
+
2066
+ | Type Parameter | Default type |
2067
+ | :------ | :------ |
2068
+ | `T` | `DocumentData` |
2069
+
2070
+ #### Parameters
2071
+
2072
+ | Parameter | Type |
2073
+ | :------ | :------ |
2074
+ | `query` | [`Query`](#query)\<`T`\> |
2075
+
2076
+ #### Returns
2077
+
2078
+ `Promise`\<[`QuerySnapshot`](#querysnapshot)\<`T`\>\>
2079
+
2080
+ ***
2081
+
2082
+ <a id="getfirestore"></a>
2083
+
2084
+ ### getFirestore()
2085
+
2086
+ #### Call Signature
2087
+
2088
+ ```ts
2089
+ function getFirestore(ctx: SandboxContext): Firestore;
2090
+ ```
2091
+
2092
+ Construct a Firestore handle. Three overloads dispatch by the
2093
+ input's shape:
2094
+
2095
+ - `SandboxContext` → sandbox-backed Firestore with a frozen
2096
+ identity (the ctx's `auth` chosen at `getFirestore` time). Best
2097
+ for runner/test code that names identity explicitly per
2098
+ scenario.
2099
+ - `Sandbox` → sandbox-backed Firestore that reads
2100
+ `sandbox.currentUser` per-call. Best for app code that drives
2101
+ identity through `pyric/auth` — every Firestore op evaluates
2102
+ rules under whatever user is currently signed in.
2103
+
2104
+ ##### Parameters
2105
+
2106
+ | Parameter | Type |
2107
+ | :------ | :------ |
2108
+ | `ctx` | `SandboxContext` |
2109
+
2110
+ ##### Returns
2111
+
2112
+ [`Firestore`](#firestore)
2113
+
2114
+ ##### Example
2115
+
2116
+ ```ts
2117
+ // Sandbox, frozen identity (runner / explicit tests).
2118
+ import { initializeSandbox } from 'pyric/sandbox';
2119
+ import { getFirestore, doc, setDoc } from 'pyric/firestore';
2120
+ const sandbox = initializeSandbox();
2121
+ const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
2122
+
2123
+ // Sandbox, live identity (app code paired with pyric/auth).
2124
+ import { initializeSandbox } from 'pyric/sandbox';
2125
+ import { getAuth, signInAnonymously } from 'pyric/auth';
2126
+ const sandbox = initializeSandbox();
2127
+ const auth = getAuth(sandbox);
2128
+ const db = getFirestore(sandbox); // reads sandbox.currentUser per op
2129
+ await signInAnonymously(auth); // subsequent db ops use the new identity
2130
+
2131
+ // Canonical imports are swapped to this mirror in a sandbox process.
2132
+ import { initializeApp } from 'firebase/app';
2133
+ import { getFirestore } from 'firebase/firestore';
2134
+ const app = initializeApp({ projectId: 'demo-project' });
2135
+ const db = getFirestore(app);
2136
+ ```
2137
+
2138
+ #### Call Signature
2139
+
2140
+ ```ts
2141
+ function getFirestore(sandbox: Sandbox): Firestore;
2142
+ ```
2143
+
2144
+ Construct a Firestore handle. Three overloads dispatch by the
2145
+ input's shape:
2146
+
2147
+ - `SandboxContext` → sandbox-backed Firestore with a frozen
2148
+ identity (the ctx's `auth` chosen at `getFirestore` time). Best
2149
+ for runner/test code that names identity explicitly per
2150
+ scenario.
2151
+ - `Sandbox` → sandbox-backed Firestore that reads
2152
+ `sandbox.currentUser` per-call. Best for app code that drives
2153
+ identity through `pyric/auth` — every Firestore op evaluates
2154
+ rules under whatever user is currently signed in.
2155
+
2156
+ ##### Parameters
2157
+
2158
+ | Parameter | Type |
2159
+ | :------ | :------ |
2160
+ | `sandbox` | `Sandbox` |
2161
+
2162
+ ##### Returns
2163
+
2164
+ [`Firestore`](#firestore)
2165
+
2166
+ ##### Example
2167
+
2168
+ ```ts
2169
+ // Sandbox, frozen identity (runner / explicit tests).
2170
+ import { initializeSandbox } from 'pyric/sandbox';
2171
+ import { getFirestore, doc, setDoc } from 'pyric/firestore';
2172
+ const sandbox = initializeSandbox();
2173
+ const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
2174
+
2175
+ // Sandbox, live identity (app code paired with pyric/auth).
2176
+ import { initializeSandbox } from 'pyric/sandbox';
2177
+ import { getAuth, signInAnonymously } from 'pyric/auth';
2178
+ const sandbox = initializeSandbox();
2179
+ const auth = getAuth(sandbox);
2180
+ const db = getFirestore(sandbox); // reads sandbox.currentUser per op
2181
+ await signInAnonymously(auth); // subsequent db ops use the new identity
2182
+
2183
+ // Canonical imports are swapped to this mirror in a sandbox process.
2184
+ import { initializeApp } from 'firebase/app';
2185
+ import { getFirestore } from 'firebase/firestore';
2186
+ const app = initializeApp({ projectId: 'demo-project' });
2187
+ const db = getFirestore(app);
2188
+ ```
2189
+
2190
+ #### Call Signature
2191
+
2192
+ ```ts
2193
+ function getFirestore(app: FirebaseApp): AppFirestore;
2194
+ ```
2195
+
2196
+ Construct a Firestore handle. Three overloads dispatch by the
2197
+ input's shape:
2198
+
2199
+ - `SandboxContext` → sandbox-backed Firestore with a frozen
2200
+ identity (the ctx's `auth` chosen at `getFirestore` time). Best
2201
+ for runner/test code that names identity explicitly per
2202
+ scenario.
2203
+ - `Sandbox` → sandbox-backed Firestore that reads
2204
+ `sandbox.currentUser` per-call. Best for app code that drives
2205
+ identity through `pyric/auth` — every Firestore op evaluates
2206
+ rules under whatever user is currently signed in.
2207
+
2208
+ ##### Parameters
2209
+
2210
+ | Parameter | Type |
2211
+ | :------ | :------ |
2212
+ | `app` | `FirebaseApp` |
2213
+
2214
+ ##### Returns
2215
+
2216
+ [`AppFirestore`](#appfirestore)
2217
+
2218
+ ##### Example
2219
+
2220
+ ```ts
2221
+ // Sandbox, frozen identity (runner / explicit tests).
2222
+ import { initializeSandbox } from 'pyric/sandbox';
2223
+ import { getFirestore, doc, setDoc } from 'pyric/firestore';
2224
+ const sandbox = initializeSandbox();
2225
+ const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
2226
+
2227
+ // Sandbox, live identity (app code paired with pyric/auth).
2228
+ import { initializeSandbox } from 'pyric/sandbox';
2229
+ import { getAuth, signInAnonymously } from 'pyric/auth';
2230
+ const sandbox = initializeSandbox();
2231
+ const auth = getAuth(sandbox);
2232
+ const db = getFirestore(sandbox); // reads sandbox.currentUser per op
2233
+ await signInAnonymously(auth); // subsequent db ops use the new identity
2234
+
2235
+ // Canonical imports are swapped to this mirror in a sandbox process.
2236
+ import { initializeApp } from 'firebase/app';
2237
+ import { getFirestore } from 'firebase/firestore';
2238
+ const app = initializeApp({ projectId: 'demo-project' });
2239
+ const db = getFirestore(app);
2240
+ ```
2241
+
2242
+ #### Call Signature
2243
+
2244
+ ```ts
2245
+ function getFirestore(): AppFirestore;
2246
+ ```
2247
+
2248
+ Construct a Firestore handle. Three overloads dispatch by the
2249
+ input's shape:
2250
+
2251
+ - `SandboxContext` → sandbox-backed Firestore with a frozen
2252
+ identity (the ctx's `auth` chosen at `getFirestore` time). Best
2253
+ for runner/test code that names identity explicitly per
2254
+ scenario.
2255
+ - `Sandbox` → sandbox-backed Firestore that reads
2256
+ `sandbox.currentUser` per-call. Best for app code that drives
2257
+ identity through `pyric/auth` — every Firestore op evaluates
2258
+ rules under whatever user is currently signed in.
2259
+
2260
+ ##### Returns
2261
+
2262
+ [`AppFirestore`](#appfirestore)
2263
+
2264
+ ##### Example
2265
+
2266
+ ```ts
2267
+ // Sandbox, frozen identity (runner / explicit tests).
2268
+ import { initializeSandbox } from 'pyric/sandbox';
2269
+ import { getFirestore, doc, setDoc } from 'pyric/firestore';
2270
+ const sandbox = initializeSandbox();
2271
+ const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
2272
+
2273
+ // Sandbox, live identity (app code paired with pyric/auth).
2274
+ import { initializeSandbox } from 'pyric/sandbox';
2275
+ import { getAuth, signInAnonymously } from 'pyric/auth';
2276
+ const sandbox = initializeSandbox();
2277
+ const auth = getAuth(sandbox);
2278
+ const db = getFirestore(sandbox); // reads sandbox.currentUser per op
2279
+ await signInAnonymously(auth); // subsequent db ops use the new identity
2280
+
2281
+ // Canonical imports are swapped to this mirror in a sandbox process.
2282
+ import { initializeApp } from 'firebase/app';
2283
+ import { getFirestore } from 'firebase/firestore';
2284
+ const app = initializeApp({ projectId: 'demo-project' });
2285
+ const db = getFirestore(app);
2286
+ ```
2287
+
2288
+ #### Call Signature
2289
+
2290
+ ```ts
2291
+ function getFirestore(target?: any): Firestore;
2292
+ ```
2293
+
2294
+ Construct a Firestore handle. Three overloads dispatch by the
2295
+ input's shape:
2296
+
2297
+ - `SandboxContext` → sandbox-backed Firestore with a frozen
2298
+ identity (the ctx's `auth` chosen at `getFirestore` time). Best
2299
+ for runner/test code that names identity explicitly per
2300
+ scenario.
2301
+ - `Sandbox` → sandbox-backed Firestore that reads
2302
+ `sandbox.currentUser` per-call. Best for app code that drives
2303
+ identity through `pyric/auth` — every Firestore op evaluates
2304
+ rules under whatever user is currently signed in.
2305
+
2306
+ ##### Parameters
2307
+
2308
+ | Parameter | Type |
2309
+ | :------ | :------ |
2310
+ | `target?` | `any` |
2311
+
2312
+ ##### Returns
2313
+
2314
+ [`Firestore`](#firestore)
2315
+
2316
+ ##### Example
2317
+
2318
+ ```ts
2319
+ // Sandbox, frozen identity (runner / explicit tests).
2320
+ import { initializeSandbox } from 'pyric/sandbox';
2321
+ import { getFirestore, doc, setDoc } from 'pyric/firestore';
2322
+ const sandbox = initializeSandbox();
2323
+ const db = getFirestore(sandbox.withAuth({ uid: 'alice' }));
2324
+
2325
+ // Sandbox, live identity (app code paired with pyric/auth).
2326
+ import { initializeSandbox } from 'pyric/sandbox';
2327
+ import { getAuth, signInAnonymously } from 'pyric/auth';
2328
+ const sandbox = initializeSandbox();
2329
+ const auth = getAuth(sandbox);
2330
+ const db = getFirestore(sandbox); // reads sandbox.currentUser per op
2331
+ await signInAnonymously(auth); // subsequent db ops use the new identity
2332
+
2333
+ // Canonical imports are swapped to this mirror in a sandbox process.
2334
+ import { initializeApp } from 'firebase/app';
2335
+ import { getFirestore } from 'firebase/firestore';
2336
+ const app = initializeApp({ projectId: 'demo-project' });
2337
+ const db = getFirestore(app);
2338
+ ```
2339
+
2340
+ ***
2341
+
2342
+ <a id="increment"></a>
2343
+
2344
+ ### increment()
2345
+
2346
+ ```ts
2347
+ function increment(n: number): FieldValueSentinel;
2348
+ ```
2349
+
2350
+ #### Parameters
2351
+
2352
+ | Parameter | Type |
2353
+ | :------ | :------ |
2354
+ | `n` | `number` |
2355
+
2356
+ #### Returns
2357
+
2358
+ `FieldValueSentinel`
2359
+
2360
+ ***
2361
+
2362
+ <a id="initializefirestore"></a>
2363
+
2364
+ ### initializeFirestore()
2365
+
2366
+ ```ts
2367
+ function initializeFirestore(
2368
+ app: any,
2369
+ _settings?: FirestoreSettings,
2370
+ _databaseId?: string): Firestore;
2371
+ ```
2372
+
2373
+ Delegates to [getFirestore](#getfirestore) and returns the same handle. Accepts
2374
+ the `settings` argument (so the explicit-init pattern app code commonly
2375
+ writes — `initializeFirestore(app, { localCache: persistentLocalCache(...) } )`
2376
+ — no longer crashes at import) but no-ops the cache/network settings:
2377
+ persistence is already the sandbox default, so there is nothing left to
2378
+ configure into existence.
2379
+
2380
+ #### Parameters
2381
+
2382
+ | Parameter | Type |
2383
+ | :------ | :------ |
2384
+ | `app` | `any` |
2385
+ | `_settings?` | [`FirestoreSettings`](#firestoresettings) |
2386
+ | `_databaseId?` | `string` |
2387
+
2388
+ #### Returns
2389
+
2390
+ [`Firestore`](#firestore)
2391
+
2392
+ ***
2393
+
2394
+ <a id="limit"></a>
2395
+
2396
+ ### limit()
2397
+
2398
+ ```ts
2399
+ function limit(n: number): QueryConstraint;
2400
+ ```
2401
+
2402
+ #### Parameters
2403
+
2404
+ | Parameter | Type |
2405
+ | :------ | :------ |
2406
+ | `n` | `number` |
2407
+
2408
+ #### Returns
2409
+
2410
+ [`QueryConstraint`](#queryconstraint)
2411
+
2412
+ ***
2413
+
2414
+ <a id="limittolast"></a>
2415
+
2416
+ ### limitToLast()
2417
+
2418
+ ```ts
2419
+ function limitToLast(n: number): QueryConstraint;
2420
+ ```
2421
+
2422
+ Limit the query to the LAST `n` documents in the ordered result.
2423
+ Requires at least one `orderBy` on the query (production-aligned —
2424
+ the simulator throws at execute time without one).
2425
+
2426
+ #### Parameters
2427
+
2428
+ | Parameter | Type |
2429
+ | :------ | :------ |
2430
+ | `n` | `number` |
2431
+
2432
+ #### Returns
2433
+
2434
+ [`QueryConstraint`](#queryconstraint)
2435
+
2436
+ ***
2437
+
2438
+ <a id="memoryeagergarbagecollector"></a>
2439
+
2440
+ ### memoryEagerGarbageCollector()
2441
+
2442
+ ```ts
2443
+ function memoryEagerGarbageCollector(): MemoryGarbageCollector;
2444
+ ```
2445
+
2446
+ Inert config token accepted by [memoryLocalCache](#memorylocalcache)'s `garbageCollector`.
2447
+
2448
+ #### Returns
2449
+
2450
+ [`MemoryGarbageCollector`](#memorygarbagecollector)
2451
+
2452
+ ***
2453
+
2454
+ <a id="memorylocalcache"></a>
2455
+
2456
+ ### memoryLocalCache()
2457
+
2458
+ ```ts
2459
+ function memoryLocalCache(settings?: {
2460
+ garbageCollector?: MemoryGarbageCollector;
2461
+ }): LocalCache;
2462
+ ```
2463
+
2464
+ Inert config token — the memory-cache counterpart of [persistentLocalCache](#persistentlocalcache).
2465
+
2466
+ #### Parameters
2467
+
2468
+ | Parameter | Type |
2469
+ | :------ | :------ |
2470
+ | `settings?` | \{ `garbageCollector?`: [`MemoryGarbageCollector`](#memorygarbagecollector); \} |
2471
+ | `settings.garbageCollector?` | [`MemoryGarbageCollector`](#memorygarbagecollector) |
2472
+
2473
+ #### Returns
2474
+
2475
+ [`LocalCache`](#localcache-1)
2476
+
2477
+ ***
2478
+
2479
+ <a id="memorylrugarbagecollector"></a>
2480
+
2481
+ ### memoryLruGarbageCollector()
2482
+
2483
+ ```ts
2484
+ function memoryLruGarbageCollector(_settings?: {
2485
+ cacheSizeBytes?: number;
2486
+ }): MemoryGarbageCollector;
2487
+ ```
2488
+
2489
+ Inert config token accepted by [memoryLocalCache](#memorylocalcache)'s `garbageCollector`.
2490
+
2491
+ #### Parameters
2492
+
2493
+ | Parameter | Type |
2494
+ | :------ | :------ |
2495
+ | `_settings?` | \{ `cacheSizeBytes?`: `number`; \} |
2496
+ | `_settings.cacheSizeBytes?` | `number` |
2497
+
2498
+ #### Returns
2499
+
2500
+ [`MemoryGarbageCollector`](#memorygarbagecollector)
2501
+
2502
+ ***
2503
+
2504
+ <a id="onsnapshot"></a>
2505
+
2506
+ ### onSnapshot()
2507
+
2508
+ #### Call Signature
2509
+
2510
+ ```ts
2511
+ function onSnapshot<T>(
2512
+ ref: T,
2513
+ observerOrNext:
2514
+ | SnapshotObserver<unknown>
2515
+ | (snap: unknown) => void,
2516
+ errorOrNothing?: (error: unknown) => void): Unsubscribe;
2517
+ ```
2518
+
2519
+ ##### Type Parameters
2520
+
2521
+ | Type Parameter |
2522
+ | :------ |
2523
+ | `T` *extends* \| [`DocumentReference`](#documentreference)\<`DocumentData`\> \| [`Query`](#query)\<`DocumentData`\> |
2524
+
2525
+ ##### Parameters
2526
+
2527
+ | Parameter | Type |
2528
+ | :------ | :------ |
2529
+ | `ref` | `T` |
2530
+ | `observerOrNext` | \| [`SnapshotObserver`](#snapshotobserver)\<`unknown`\> \| (`snap`: `unknown`) => `void` |
2531
+ | `errorOrNothing?` | (`error`: `unknown`) => `void` |
2532
+
2533
+ ##### Returns
2534
+
2535
+ [`Unsubscribe`](#unsubscribe)
2536
+
2537
+ #### Call Signature
2538
+
2539
+ ```ts
2540
+ function onSnapshot<T>(
2541
+ ref: T,
2542
+ options: SnapshotListenOptions,
2543
+ observerOrNext:
2544
+ | SnapshotObserver<unknown>
2545
+ | (snap: unknown) => void,
2546
+ errorOrNothing?: (error: unknown) => void): Unsubscribe;
2547
+ ```
2548
+
2549
+ ##### Type Parameters
2550
+
2551
+ | Type Parameter |
2552
+ | :------ |
2553
+ | `T` *extends* \| [`DocumentReference`](#documentreference)\<`DocumentData`\> \| [`Query`](#query)\<`DocumentData`\> |
2554
+
2555
+ ##### Parameters
2556
+
2557
+ | Parameter | Type |
2558
+ | :------ | :------ |
2559
+ | `ref` | `T` |
2560
+ | `options` | [`SnapshotListenOptions`](#snapshotlistenoptions) |
2561
+ | `observerOrNext` | \| [`SnapshotObserver`](#snapshotobserver)\<`unknown`\> \| (`snap`: `unknown`) => `void` |
2562
+ | `errorOrNothing?` | (`error`: `unknown`) => `void` |
2563
+
2564
+ ##### Returns
2565
+
2566
+ [`Unsubscribe`](#unsubscribe)
2567
+
2568
+ ***
2569
+
2570
+ <a id="onsnapshotsinsync"></a>
2571
+
2572
+ ### onSnapshotsInSync()
2573
+
2574
+ ```ts
2575
+ function onSnapshotsInSync(db: Firestore, observerOrCallback:
2576
+ | () => void
2577
+ | {
2578
+ complete?: () => void;
2579
+ error?: (error: unknown) => void;
2580
+ next?: () => void;
2581
+ }): Unsubscribe;
2582
+ ```
2583
+
2584
+ Sandbox: fires the callback once the current snapshot-delivery
2585
+ microtask queue settles — the closest honest approximation of "every
2586
+ active listener has delivered its latest state" available without a
2587
+ true cross-listener sync signal (the sandbox doesn't track one).
2588
+ This is NOT the real SDK's guarantee (which is scoped to actual
2589
+ server round-trips); it is scoped to local delivery only.
2590
+
2591
+ #### Parameters
2592
+
2593
+ | Parameter | Type |
2594
+ | :------ | :------ |
2595
+ | `db` | [`Firestore`](#firestore) |
2596
+ | `observerOrCallback` | \| () => `void` \| \{ `complete?`: () => `void`; `error?`: (`error`: `unknown`) => `void`; `next?`: () => `void`; \} |
2597
+
2598
+ #### Returns
2599
+
2600
+ [`Unsubscribe`](#unsubscribe)
2601
+
2602
+ ***
2603
+
2604
+ <a id="or"></a>
2605
+
2606
+ ### or()
2607
+
2608
+ ```ts
2609
+ function or(...filters: QueryConstraint[]): QueryConstraint;
2610
+ ```
2611
+
2612
+ OR composite — at least one of the inner constraints must match.
2613
+ Each argument must itself be a filter constraint (`where()`, or
2614
+ nested `or()` / `and()`); passing `orderBy()` or `limit()` here is
2615
+ a type error at runtime.
2616
+
2617
+ Mirrors `firebase/firestore`'s `or(...filters)` shape.
2618
+
2619
+ #### Parameters
2620
+
2621
+ | Parameter | Type |
2622
+ | :------ | :------ |
2623
+ | ...`filters` | [`QueryConstraint`](#queryconstraint)[] |
2624
+
2625
+ #### Returns
2626
+
2627
+ [`QueryConstraint`](#queryconstraint)
2628
+
2629
+ ***
2630
+
2631
+ <a id="orderby"></a>
2632
+
2633
+ ### orderBy()
2634
+
2635
+ ```ts
2636
+ function orderBy(field: string | FieldPath, direction?: OrderDirection): QueryConstraint;
2637
+ ```
2638
+
2639
+ #### Parameters
2640
+
2641
+ | Parameter | Type |
2642
+ | :------ | :------ |
2643
+ | `field` | `string` \| [`FieldPath`](#fieldpath) |
2644
+ | `direction?` | `OrderDirection` |
2645
+
2646
+ #### Returns
2647
+
2648
+ [`QueryConstraint`](#queryconstraint)
2649
+
2650
+ ***
2651
+
2652
+ <a id="persistentlocalcache"></a>
2653
+
2654
+ ### persistentLocalCache()
2655
+
2656
+ ```ts
2657
+ function persistentLocalCache(settings?: {
2658
+ cacheSizeBytes?: number;
2659
+ tabManager?: PersistentTabManager;
2660
+ }): LocalCache;
2661
+ ```
2662
+
2663
+ Inert config token. Real Firebase uses this to select an on-disk,
2664
+ persistent IndexedDB cache tier; the sandbox has no separate cache
2665
+ tier — persistence is already the default — so this just returns a
2666
+ tagged token `initializeFirestore` can accept without crashing.
2667
+
2668
+ #### Parameters
2669
+
2670
+ | Parameter | Type |
2671
+ | :------ | :------ |
2672
+ | `settings?` | \{ `cacheSizeBytes?`: `number`; `tabManager?`: [`PersistentTabManager`](#persistenttabmanager); \} |
2673
+ | `settings.cacheSizeBytes?` | `number` |
2674
+ | `settings.tabManager?` | [`PersistentTabManager`](#persistenttabmanager) |
2675
+
2676
+ #### Returns
2677
+
2678
+ [`LocalCache`](#localcache-1)
2679
+
2680
+ ***
2681
+
2682
+ <a id="persistentmultipletabmanager"></a>
2683
+
2684
+ ### persistentMultipleTabManager()
2685
+
2686
+ ```ts
2687
+ function persistentMultipleTabManager(): PersistentTabManager;
2688
+ ```
2689
+
2690
+ Inert config token accepted by [persistentLocalCache](#persistentlocalcache)'s `tabManager`.
2691
+
2692
+ #### Returns
2693
+
2694
+ [`PersistentTabManager`](#persistenttabmanager)
2695
+
2696
+ ***
2697
+
2698
+ <a id="persistentsingletabmanager"></a>
2699
+
2700
+ ### persistentSingleTabManager()
2701
+
2702
+ ```ts
2703
+ function persistentSingleTabManager(_settings?: {
2704
+ forceOwnership?: boolean;
2705
+ }): PersistentTabManager;
2706
+ ```
2707
+
2708
+ Inert config token accepted by [persistentLocalCache](#persistentlocalcache)'s `tabManager`.
2709
+
2710
+ #### Parameters
2711
+
2712
+ | Parameter | Type |
2713
+ | :------ | :------ |
2714
+ | `_settings?` | \{ `forceOwnership?`: `boolean`; \} |
2715
+ | `_settings.forceOwnership?` | `boolean` |
2716
+
2717
+ #### Returns
2718
+
2719
+ [`PersistentTabManager`](#persistenttabmanager)
2720
+
2721
+ ***
2722
+
2723
+ <a id="query-1"></a>
2724
+
2725
+ ### query()
2726
+
2727
+ ```ts
2728
+ function query<T>(source:
2729
+ | CollectionReference<T>
2730
+ | Query<T>, ...constraints: QueryConstraint[]): Query<T>;
2731
+ ```
2732
+
2733
+ #### Type Parameters
2734
+
2735
+ | Type Parameter | Default type |
2736
+ | :------ | :------ |
2737
+ | `T` | `DocumentData` |
2738
+
2739
+ #### Parameters
2740
+
2741
+ | Parameter | Type |
2742
+ | :------ | :------ |
2743
+ | `source` | \| [`CollectionReference`](#collectionreference)\<`T`\> \| [`Query`](#query)\<`T`\> |
2744
+ | ...`constraints` | [`QueryConstraint`](#queryconstraint)[] |
2745
+
2746
+ #### Returns
2747
+
2748
+ [`Query`](#query)\<`T`\>
2749
+
2750
+ ***
2751
+
2752
+ <a id="queryequal"></a>
2753
+
2754
+ ### queryEqual()
2755
+
2756
+ ```ts
2757
+ function queryEqual(a: Query, b: Query): boolean;
2758
+ ```
2759
+
2760
+ #### Parameters
2761
+
2762
+ | Parameter | Type |
2763
+ | :------ | :------ |
2764
+ | `a` | [`Query`](#query) |
2765
+ | `b` | [`Query`](#query) |
2766
+
2767
+ #### Returns
2768
+
2769
+ `boolean`
2770
+
2771
+ ***
2772
+
2773
+ <a id="refequal"></a>
2774
+
2775
+ ### refEqual()
2776
+
2777
+ ```ts
2778
+ function refEqual(a: DocumentReference, b: DocumentReference): boolean;
2779
+ ```
2780
+
2781
+ #### Parameters
2782
+
2783
+ | Parameter | Type |
2784
+ | :------ | :------ |
2785
+ | `a` | [`DocumentReference`](#documentreference) |
2786
+ | `b` | [`DocumentReference`](#documentreference) |
2787
+
2788
+ #### Returns
2789
+
2790
+ `boolean`
2791
+
2792
+ ***
2793
+
2794
+ <a id="runtransaction"></a>
2795
+
2796
+ ### runTransaction()
2797
+
2798
+ ```ts
2799
+ function runTransaction<R>(db: Firestore, fn: (tx: ChainTransaction) => R | Promise<R>): Promise<R>;
2800
+ ```
2801
+
2802
+ #### Type Parameters
2803
+
2804
+ | Type Parameter |
2805
+ | :------ |
2806
+ | `R` |
2807
+
2808
+ #### Parameters
2809
+
2810
+ | Parameter | Type |
2811
+ | :------ | :------ |
2812
+ | `db` | [`Firestore`](#firestore) |
2813
+ | `fn` | (`tx`: `ChainTransaction`) => `R` \| `Promise`\<`R`\> |
2814
+
2815
+ #### Returns
2816
+
2817
+ `Promise`\<`R`\>
2818
+
2819
+ ***
2820
+
2821
+ <a id="servertimestamp"></a>
2822
+
2823
+ ### serverTimestamp()
2824
+
2825
+ ```ts
2826
+ function serverTimestamp(): FieldValueSentinel;
2827
+ ```
2828
+
2829
+ #### Returns
2830
+
2831
+ `FieldValueSentinel`
2832
+
2833
+ ***
2834
+
2835
+ <a id="setdoc"></a>
2836
+
2837
+ ### setDoc()
2838
+
2839
+ ```ts
2840
+ function setDoc<T>(
2841
+ ref: DocumentReference<T>,
2842
+ data: T,
2843
+ options?: SetOptions): Promise<void>;
2844
+ ```
2845
+
2846
+ #### Type Parameters
2847
+
2848
+ | Type Parameter | Default type |
2849
+ | :------ | :------ |
2850
+ | `T` | `DocumentData` |
2851
+
2852
+ #### Parameters
2853
+
2854
+ | Parameter | Type |
2855
+ | :------ | :------ |
2856
+ | `ref` | [`DocumentReference`](#documentreference)\<`T`\> |
2857
+ | `data` | `T` |
2858
+ | `options?` | [`SetOptions`](#setoptions) |
2859
+
2860
+ #### Returns
2861
+
2862
+ `Promise`\<`void`\>
2863
+
2864
+ ***
2865
+
2866
+ <a id="setloglevel"></a>
2867
+
2868
+ ### setLogLevel()
2869
+
2870
+ ```ts
2871
+ function setLogLevel(logLevel: LogLevel): void;
2872
+ ```
2873
+
2874
+ Accepted no-op: the sandbox has no modular-SDK-style logger to wire
2875
+ a level into (it uses host-level `console` logging directly, gated
2876
+ by `pyric dev`'s own flags, not this call). Exists purely so app
2877
+ code that calls this defensively at startup doesn't crash on a
2878
+ missing export.
2879
+
2880
+ #### Parameters
2881
+
2882
+ | Parameter | Type |
2883
+ | :------ | :------ |
2884
+ | `logLevel` | [`LogLevel`](#loglevel) |
2885
+
2886
+ #### Returns
2887
+
2888
+ `void`
2889
+
2890
+ ***
2891
+
2892
+ <a id="snapshotequal"></a>
2893
+
2894
+ ### snapshotEqual()
2895
+
2896
+ ```ts
2897
+ function snapshotEqual(a:
2898
+ | DocumentSnapshot<DocumentData>
2899
+ | QuerySnapshot<DocumentData>, b:
2900
+ | DocumentSnapshot<DocumentData>
2901
+ | QuerySnapshot<DocumentData>): boolean;
2902
+ ```
2903
+
2904
+ #### Parameters
2905
+
2906
+ | Parameter | Type |
2907
+ | :------ | :------ |
2908
+ | `a` | \| [`DocumentSnapshot`](#documentsnapshot)\<`DocumentData`\> \| [`QuerySnapshot`](#querysnapshot)\<`DocumentData`\> |
2909
+ | `b` | \| [`DocumentSnapshot`](#documentsnapshot)\<`DocumentData`\> \| [`QuerySnapshot`](#querysnapshot)\<`DocumentData`\> |
2910
+
2911
+ #### Returns
2912
+
2913
+ `boolean`
2914
+
2915
+ ***
2916
+
2917
+ <a id="startafter"></a>
2918
+
2919
+ ### startAfter()
2920
+
2921
+ #### Call Signature
2922
+
2923
+ ```ts
2924
+ function startAfter(snapshot: DocumentSnapshot): QueryConstraint;
2925
+ ```
2926
+
2927
+ Same as `startAt`, but EXCLUDES the document at the cursor — the
2928
+ result starts at the next ordered position.
2929
+
2930
+ ##### Parameters
2931
+
2932
+ | Parameter | Type |
2933
+ | :------ | :------ |
2934
+ | `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
2935
+
2936
+ ##### Returns
2937
+
2938
+ [`QueryConstraint`](#queryconstraint)
2939
+
2940
+ #### Call Signature
2941
+
2942
+ ```ts
2943
+ function startAfter(...values: unknown[]): QueryConstraint;
2944
+ ```
2945
+
2946
+ Same as `startAt`, but EXCLUDES the document at the cursor — the
2947
+ result starts at the next ordered position.
2948
+
2949
+ ##### Parameters
2950
+
2951
+ | Parameter | Type |
2952
+ | :------ | :------ |
2953
+ | ...`values` | `unknown`[] |
2954
+
2955
+ ##### Returns
2956
+
2957
+ [`QueryConstraint`](#queryconstraint)
2958
+
2959
+ ***
2960
+
2961
+ <a id="startat"></a>
2962
+
2963
+ ### startAt()
2964
+
2965
+ #### Call Signature
2966
+
2967
+ ```ts
2968
+ function startAt(snapshot: DocumentSnapshot): QueryConstraint;
2969
+ ```
2970
+
2971
+ Start the query at the document whose ordered field values match
2972
+ the cursor. Inclusive — the document at the cursor IS included in
2973
+ the result. Two overloads:
2974
+
2975
+ `startAt(snapshot)` — values come from `snapshot.data()` indexed
2976
+ by the query's orderBy fields.
2977
+ `startAt(...values)` — explicit positional values (one per
2978
+ orderBy clause).
2979
+
2980
+ ##### Parameters
2981
+
2982
+ | Parameter | Type |
2983
+ | :------ | :------ |
2984
+ | `snapshot` | [`DocumentSnapshot`](#documentsnapshot) |
2985
+
2986
+ ##### Returns
2987
+
2988
+ [`QueryConstraint`](#queryconstraint)
2989
+
2990
+ #### Call Signature
2991
+
2992
+ ```ts
2993
+ function startAt(...values: unknown[]): QueryConstraint;
2994
+ ```
2995
+
2996
+ Start the query at the document whose ordered field values match
2997
+ the cursor. Inclusive — the document at the cursor IS included in
2998
+ the result. Two overloads:
2999
+
3000
+ `startAt(snapshot)` — values come from `snapshot.data()` indexed
3001
+ by the query's orderBy fields.
3002
+ `startAt(...values)` — explicit positional values (one per
3003
+ orderBy clause).
3004
+
3005
+ ##### Parameters
3006
+
3007
+ | Parameter | Type |
3008
+ | :------ | :------ |
3009
+ | ...`values` | `unknown`[] |
3010
+
3011
+ ##### Returns
3012
+
3013
+ [`QueryConstraint`](#queryconstraint)
3014
+
3015
+ ***
3016
+
3017
+ <a id="sum"></a>
3018
+
3019
+ ### sum()
3020
+
3021
+ ```ts
3022
+ function sum(field: string): AggregateField;
3023
+ ```
3024
+
3025
+ Factory: sum-of-`field` aggregate.
3026
+
3027
+ #### Parameters
3028
+
3029
+ | Parameter | Type |
3030
+ | :------ | :------ |
3031
+ | `field` | `string` |
3032
+
3033
+ #### Returns
3034
+
3035
+ [`AggregateField`](#aggregatefield)
3036
+
3037
+ ***
3038
+
3039
+ <a id="terminate"></a>
3040
+
3041
+ ### terminate()
3042
+
3043
+ ```ts
3044
+ function terminate(db: Firestore): Promise<void>;
3045
+ ```
3046
+
3047
+ Sandbox: genuinely tears the target down by calling
3048
+ `Sandbox.dispose()` — NOT a pure no-op like the rest of this family.
3049
+ `dispose()` tears down listener registries on the sandbox's
3050
+ environment without replacing it (idempotent, doesn't touch data).
3051
+ This is the honest mapping of "terminate this Firestore instance":
3052
+ a real app that calls `terminate(db)` expects listeners to stop and
3053
+ the instance to be unusable for further meaningful work, and
3054
+ `dispose()` delivers exactly that for the sandbox.
3055
+
3056
+ Caveat: `dispose()` operates on the whole `Sandbox`, not a
3057
+ Firestore-only slice of it — if `pyric/database` or `pyric/storage`
3058
+ share the same `Sandbox`, their listener registries are torn down
3059
+ too. This differs from the real SDK, where `terminate()` only
3060
+ affects the one `Firestore` instance. Documented divergence.
3061
+
3062
+ #### Parameters
3063
+
3064
+ | Parameter | Type |
3065
+ | :------ | :------ |
3066
+ | `db` | [`Firestore`](#firestore) |
3067
+
3068
+ #### Returns
3069
+
3070
+ `Promise`\<`void`\>
3071
+
3072
+ ***
3073
+
3074
+ <a id="updatedoc"></a>
3075
+
3076
+ ### updateDoc()
3077
+
3078
+ ```ts
3079
+ function updateDoc(ref: DocumentReference, data: DocumentData): Promise<void>;
3080
+ ```
3081
+
3082
+ `updateDoc` does NOT run the converter. Matches `firebase/firestore`'s
3083
+ Web SDK shape — partial updates can target any subset of fields, so
3084
+ a translator built around a full `AppModelType` would be a type-shape
3085
+ mismatch. Use the underlying `DocumentData` view (`withConverter(ref,
3086
+ null)`) for typed-and-untyped mixed access if you need both styles
3087
+ against the same path.
3088
+
3089
+ #### Parameters
3090
+
3091
+ | Parameter | Type |
3092
+ | :------ | :------ |
3093
+ | `ref` | [`DocumentReference`](#documentreference) |
3094
+ | `data` | `DocumentData` |
3095
+
3096
+ #### Returns
3097
+
3098
+ `Promise`\<`void`\>
3099
+
3100
+ ***
3101
+
3102
+ <a id="vector"></a>
3103
+
3104
+ ### vector()
3105
+
3106
+ ```ts
3107
+ function vector(values?: number[]): VectorValue;
3108
+ ```
3109
+
3110
+ #### Parameters
3111
+
3112
+ | Parameter | Type |
3113
+ | :------ | :------ |
3114
+ | `values?` | `number`[] |
3115
+
3116
+ #### Returns
3117
+
3118
+ [`VectorValue`](#vectorvalue)
3119
+
3120
+ ***
3121
+
3122
+ <a id="waitforpendingwrites"></a>
3123
+
3124
+ ### waitForPendingWrites()
3125
+
3126
+ ```ts
3127
+ function waitForPendingWrites(db: Firestore): Promise<void>;
3128
+ ```
3129
+
3130
+ Sandbox: resolves immediately. The real SDK's version waits for
3131
+ queued writes to reach the server; the sandbox has no server to wait
3132
+ on — every write it accepts is already committed to the local store
3133
+ by the time the write's own promise resolves, so by the time this is
3134
+ called there are, honestly, never any writes still pending a round
3135
+ trip.
3136
+
3137
+ #### Parameters
3138
+
3139
+ | Parameter | Type |
3140
+ | :------ | :------ |
3141
+ | `db` | [`Firestore`](#firestore) |
3142
+
3143
+ #### Returns
3144
+
3145
+ `Promise`\<`void`\>
3146
+
3147
+ ***
3148
+
3149
+ <a id="where"></a>
3150
+
3151
+ ### where()
3152
+
3153
+ ```ts
3154
+ function where(
3155
+ field: string | FieldPath,
3156
+ op: WhereFilterOp,
3157
+ value: unknown): QueryConstraint;
3158
+ ```
3159
+
3160
+ #### Parameters
3161
+
3162
+ | Parameter | Type |
3163
+ | :------ | :------ |
3164
+ | `field` | `string` \| [`FieldPath`](#fieldpath) |
3165
+ | `op` | `WhereFilterOp` |
3166
+ | `value` | `unknown` |
3167
+
3168
+ #### Returns
3169
+
3170
+ [`QueryConstraint`](#queryconstraint)
3171
+
3172
+ ***
3173
+
3174
+ <a id="withconverter"></a>
3175
+
3176
+ ### withConverter()
3177
+
3178
+ #### Call Signature
3179
+
3180
+ ```ts
3181
+ function withConverter<AppModel, DbModel>(ref: DocumentReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): DocumentReference<AppModel>;
3182
+ ```
3183
+
3184
+ ##### Type Parameters
3185
+
3186
+ | Type Parameter | Default type |
3187
+ | :------ | :------ |
3188
+ | `AppModel` | - |
3189
+ | `DbModel` *extends* `DocumentData` | `DocumentData` |
3190
+
3191
+ ##### Parameters
3192
+
3193
+ | Parameter | Type |
3194
+ | :------ | :------ |
3195
+ | `ref` | [`DocumentReference`](#documentreference)\<`DocumentData`\> |
3196
+ | `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
3197
+
3198
+ ##### Returns
3199
+
3200
+ [`DocumentReference`](#documentreference)\<`AppModel`\>
3201
+
3202
+ #### Call Signature
3203
+
3204
+ ```ts
3205
+ function withConverter(ref: DocumentReference<unknown>, converter: null): DocumentReference<DocumentData>;
3206
+ ```
3207
+
3208
+ ##### Parameters
3209
+
3210
+ | Parameter | Type |
3211
+ | :------ | :------ |
3212
+ | `ref` | [`DocumentReference`](#documentreference)\<`unknown`\> |
3213
+ | `converter` | `null` |
3214
+
3215
+ ##### Returns
3216
+
3217
+ [`DocumentReference`](#documentreference)\<`DocumentData`\>
3218
+
3219
+ #### Call Signature
3220
+
3221
+ ```ts
3222
+ function withConverter<AppModel, DbModel>(ref: CollectionReference<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): CollectionReference<AppModel>;
3223
+ ```
3224
+
3225
+ ##### Type Parameters
3226
+
3227
+ | Type Parameter | Default type |
3228
+ | :------ | :------ |
3229
+ | `AppModel` | - |
3230
+ | `DbModel` *extends* `DocumentData` | `DocumentData` |
3231
+
3232
+ ##### Parameters
3233
+
3234
+ | Parameter | Type |
3235
+ | :------ | :------ |
3236
+ | `ref` | [`CollectionReference`](#collectionreference)\<`DocumentData`\> |
3237
+ | `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
3238
+
3239
+ ##### Returns
3240
+
3241
+ [`CollectionReference`](#collectionreference)\<`AppModel`\>
3242
+
3243
+ #### Call Signature
3244
+
3245
+ ```ts
3246
+ function withConverter(ref: CollectionReference<unknown>, converter: null): CollectionReference<DocumentData>;
3247
+ ```
3248
+
3249
+ ##### Parameters
3250
+
3251
+ | Parameter | Type |
3252
+ | :------ | :------ |
3253
+ | `ref` | [`CollectionReference`](#collectionreference)\<`unknown`\> |
3254
+ | `converter` | `null` |
3255
+
3256
+ ##### Returns
3257
+
3258
+ [`CollectionReference`](#collectionreference)\<`DocumentData`\>
3259
+
3260
+ #### Call Signature
3261
+
3262
+ ```ts
3263
+ function withConverter<AppModel, DbModel>(q: Query<DocumentData>, converter: FirestoreDataConverter<AppModel, DbModel>): Query<AppModel>;
3264
+ ```
3265
+
3266
+ ##### Type Parameters
3267
+
3268
+ | Type Parameter | Default type |
3269
+ | :------ | :------ |
3270
+ | `AppModel` | - |
3271
+ | `DbModel` *extends* `DocumentData` | `DocumentData` |
3272
+
3273
+ ##### Parameters
3274
+
3275
+ | Parameter | Type |
3276
+ | :------ | :------ |
3277
+ | `q` | [`Query`](#query)\<`DocumentData`\> |
3278
+ | `converter` | [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModel`, `DbModel`\> |
3279
+
3280
+ ##### Returns
3281
+
3282
+ [`Query`](#query)\<`AppModel`\>
3283
+
3284
+ #### Call Signature
3285
+
3286
+ ```ts
3287
+ function withConverter(q: Query<unknown>, converter: null): Query<DocumentData>;
3288
+ ```
3289
+
3290
+ ##### Parameters
3291
+
3292
+ | Parameter | Type |
3293
+ | :------ | :------ |
3294
+ | `q` | [`Query`](#query)\<`unknown`\> |
3295
+ | `converter` | `null` |
3296
+
3297
+ ##### Returns
3298
+
3299
+ [`Query`](#query)\<`DocumentData`\>
3300
+
3301
+ ***
3302
+
3303
+ <a id="writebatch-1"></a>
3304
+
3305
+ ### writeBatch()
3306
+
3307
+ ```ts
3308
+ function writeBatch(db: Firestore): ChainWriteBatch;
3309
+ ```
3310
+
3311
+ #### Parameters
3312
+
3313
+ | Parameter | Type |
3314
+ | :------ | :------ |
3315
+ | `db` | [`Firestore`](#firestore) |
3316
+
3317
+ #### Returns
3318
+
3319
+ `ChainWriteBatch`
3320
+
3321
+ ## References
3322
+
3323
+ <a id="documentdata"></a>
3324
+
3325
+ ### DocumentData
3326
+
3327
+ Renames and re-exports [AuthState](#authstate)
3328
+
3329
+ ***
3330
+
3331
+ <a id="fieldvalue"></a>
3332
+
3333
+ ### FieldValue
3334
+
3335
+ Renames and re-exports [AuthState](#authstate)
3336
+
3337
+ ***
3338
+
3339
+ <a id="fieldvaluesentinel"></a>
3340
+
3341
+ ### FieldValueSentinel
3342
+
3343
+ Renames and re-exports [AuthState](#authstate)
3344
+
3345
+ ***
3346
+
3347
+ <a id="lintresult"></a>
3348
+
3349
+ ### LintResult
3350
+
3351
+ Renames and re-exports [AuthState](#authstate)
3352
+
3353
+ ***
3354
+
3355
+ <a id="orderdirection"></a>
3356
+
3357
+ ### OrderDirection
3358
+
3359
+ Renames and re-exports [AuthState](#authstate)
3360
+
3361
+ ***
3362
+
3363
+ <a id="sandbox"></a>
3364
+
3365
+ ### Sandbox
3366
+
3367
+ Renames and re-exports [AuthState](#authstate)
3368
+
3369
+ ***
3370
+
3371
+ <a id="sandboxcontext"></a>
3372
+
3373
+ ### SandboxContext
3374
+
3375
+ Renames and re-exports [AuthState](#authstate)
3376
+
3377
+ ***
3378
+
3379
+ <a id="sandboxerror"></a>
3380
+
3381
+ ### SandboxError
3382
+
3383
+ Renames and re-exports [AuthState](#authstate)
3384
+
3385
+ ***
3386
+
3387
+ <a id="timestamp"></a>
3388
+
3389
+ ### Timestamp
3390
+
3391
+ Renames and re-exports [AuthState](#authstate)
3392
+
3393
+ ***
3394
+
3395
+ <a id="wherefilterop"></a>
3396
+
3397
+ ### WhereFilterOp
3398
+
3399
+ Renames and re-exports [AuthState](#authstate)