@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,1842 @@
1
+
2
+ <!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
3
+
4
+ ## Interfaces
5
+
6
+ <a id="database"></a>
7
+
8
+ ### Database
9
+
10
+ Opaque RTDB handle. Routes via [TARGET\_SYMBOL](#target_symbol-1).
11
+
12
+ #### Properties
13
+
14
+ | Property | Modifier | Type |
15
+ | :------ | :------ | :------ |
16
+ | <a id="target_symbol"></a> `[TARGET_SYMBOL]` | `readonly` | `Target` |
17
+ | <a id="app"></a> `app?` | `readonly` | `FirebaseApp` |
18
+
19
+ ***
20
+
21
+ <a id="databasereference"></a>
22
+
23
+ ### DatabaseReference
24
+
25
+ RTDB-shaped reference. Backend-opaque to consumers; mirrors
26
+ `firebase/database`'s `DatabaseReference` for the subset of methods
27
+ the modular SDK uses idiomatically as plain free-function args.
28
+
29
+ `key` is the last path segment (matches `DatabaseReference.key`).
30
+ `null` for the root ref. `parent` is the ref one segment up
31
+ (`null` at root). `root` is always the root ref.
32
+
33
+ `toString()` returns a stable `sandbox://` URL.
34
+
35
+ #### Extended by
36
+
37
+ - [`ThenableReference`](#thenablereference)
38
+
39
+ #### Properties
40
+
41
+ | Property | Modifier | Type |
42
+ | :------ | :------ | :------ |
43
+ | <a id="key"></a> `key` | `readonly` | `string` |
44
+ | <a id="parent"></a> `parent` | `readonly` | [`DatabaseReference`](#databasereference) |
45
+ | <a id="root"></a> `root` | `readonly` | [`DatabaseReference`](#databasereference) |
46
+
47
+ #### Methods
48
+
49
+ <a id="tostring"></a>
50
+
51
+ ##### toString()
52
+
53
+ ```ts
54
+ toString(): string;
55
+ ```
56
+
57
+ ###### Returns
58
+
59
+ `string`
60
+
61
+ ***
62
+
63
+ <a id="datasnapshot"></a>
64
+
65
+ ### DataSnapshot
66
+
67
+ Lightweight `DataSnapshot` — matches the subset of
68
+ `firebase/database`'s `DataSnapshot` we surface synchronously on a
69
+ `get()`. Methods are the load-bearing ones (`val`, `exists`, `key`,
70
+ `child`) plus a few utilities consumer code routinely reads.
71
+
72
+ #### Properties
73
+
74
+ | Property | Modifier | Type | Description |
75
+ | :------ | :------ | :------ | :------ |
76
+ | <a id="key-1"></a> `key` | `readonly` | `string` | - |
77
+ | <a id="priority"></a> `priority` | `readonly` | `string` \| `number` | The node's priority, or `null`. The sandbox does not model RTDB's priority (deny-listed — see COMPAT) so this is always `null`, matching the common case (no `.priority` set). Mirrors `api/Reference_impl.ts:312`. |
78
+ | <a id="ref"></a> `ref` | `readonly` | [`DatabaseReference`](#databasereference) | The ref the snap was taken from. |
79
+ | <a id="size"></a> `size` | `readonly` | `number` | Number of child properties of this snapshot. A getter (NOT a `numChildren()` method — that was the legacy namespaced API). Locked by oracle `rtdb-modular-get-snapshot-shape.json` (`hasSize: true, hasNumChildren: false`) + upstream `api/Reference_impl.ts:331-333`. |
80
+
81
+ #### Methods
82
+
83
+ <a id="child"></a>
84
+
85
+ ##### child()
86
+
87
+ ```ts
88
+ child(path: string): DataSnapshot;
89
+ ```
90
+
91
+ ###### Parameters
92
+
93
+ | Parameter | Type |
94
+ | :------ | :------ |
95
+ | `path` | `string` |
96
+
97
+ ###### Returns
98
+
99
+ [`DataSnapshot`](#datasnapshot)
100
+
101
+ <a id="exists"></a>
102
+
103
+ ##### exists()
104
+
105
+ ```ts
106
+ exists(): boolean;
107
+ ```
108
+
109
+ ###### Returns
110
+
111
+ `boolean`
112
+
113
+ <a id="exportval"></a>
114
+
115
+ ##### exportVal()
116
+
117
+ ```ts
118
+ exportVal(): JsonValue;
119
+ ```
120
+
121
+ Like `val()` but includes priority info (for backups). With no
122
+ priority modeled, this equals `val()`. Mirrors
123
+ `api/Reference_impl.ts:374-376`.
124
+
125
+ ###### Returns
126
+
127
+ [`JsonValue`](#jsonvalue)
128
+
129
+ <a id="foreach"></a>
130
+
131
+ ##### forEach()
132
+
133
+ ```ts
134
+ forEach(cb: (child: DataSnapshot) => boolean | void): boolean;
135
+ ```
136
+
137
+ Iterate the snapshot's immediate children. The callback is invoked
138
+ with a child `DataSnapshot` for each child; return `true` to stop
139
+ iteration early (matches the `firebase/database` contract).
140
+
141
+ For a snapshot built from a [Query](#query), children are visited in
142
+ the order the query's `orderBy*` constraint computed — the windowed
143
+ + filtered + limited sequence. For a plain ref snapshot, children
144
+ are visited in key-insertion order (V8 object iteration order; the
145
+ RTDB SDK does NOT guarantee an order on plain refs either).
146
+
147
+ ###### Parameters
148
+
149
+ | Parameter | Type |
150
+ | :------ | :------ |
151
+ | `cb` | (`child`: [`DataSnapshot`](#datasnapshot)) => `boolean` \| `void` |
152
+
153
+ ###### Returns
154
+
155
+ `boolean`
156
+
157
+ <a id="haschild"></a>
158
+
159
+ ##### hasChild()
160
+
161
+ ```ts
162
+ hasChild(path: string): boolean;
163
+ ```
164
+
165
+ ###### Parameters
166
+
167
+ | Parameter | Type |
168
+ | :------ | :------ |
169
+ | `path` | `string` |
170
+
171
+ ###### Returns
172
+
173
+ `boolean`
174
+
175
+ <a id="haschildren"></a>
176
+
177
+ ##### hasChildren()
178
+
179
+ ```ts
180
+ hasChildren(): boolean;
181
+ ```
182
+
183
+ ###### Returns
184
+
185
+ `boolean`
186
+
187
+ <a id="tojson"></a>
188
+
189
+ ##### toJSON()
190
+
191
+ ```ts
192
+ toJSON(): JsonValue;
193
+ ```
194
+
195
+ ###### Returns
196
+
197
+ [`JsonValue`](#jsonvalue)
198
+
199
+ <a id="val"></a>
200
+
201
+ ##### val()
202
+
203
+ ```ts
204
+ val(): JsonValue;
205
+ ```
206
+
207
+ ###### Returns
208
+
209
+ [`JsonValue`](#jsonvalue)
210
+
211
+ ***
212
+
213
+ <a id="query"></a>
214
+
215
+ ### Query
216
+
217
+ RTDB-shaped Query — a ref + an immutable constraint chain. Mirrors
218
+ `firebase/database`'s `Query` for the subset of methods the modular
219
+ SDK uses idiomatically.
220
+
221
+ Construct with [query](#query-1); pass to [get](#get) or [onValue](#onvalue).
222
+
223
+ #### Properties
224
+
225
+ | Property | Modifier | Type | Description |
226
+ | :------ | :------ | :------ | :------ |
227
+ | <a id="query_symbol"></a> `[QUERY_SYMBOL]` | `readonly` | `true` | - |
228
+ | <a id="ref-1"></a> `ref` | `readonly` | [`DatabaseReference`](#databasereference) | The Query's location. Used by `query()` chaining + listener fan-out. |
229
+
230
+ #### Methods
231
+
232
+ <a id="tostring-2"></a>
233
+
234
+ ##### toString()
235
+
236
+ ```ts
237
+ toString(): string;
238
+ ```
239
+
240
+ Resolves to the same URL the ref would.
241
+
242
+ ###### Returns
243
+
244
+ `string`
245
+
246
+ ***
247
+
248
+ <a id="queryconstraint"></a>
249
+
250
+ ### QueryConstraint
251
+
252
+ Opaque constraint produced by `orderByChild` / `equalTo` / `limitToFirst`
253
+ etc. Pass to [query](#query-1).
254
+
255
+ #### Properties
256
+
257
+ | Property | Modifier | Type | Description |
258
+ | :------ | :------ | :------ | :------ |
259
+ | <a id="constraint_symbol"></a> `[CONSTRAINT_SYMBOL]` | `readonly` | `Constraint` | - |
260
+ | <a id="type"></a> `type` | `readonly` | \| `"orderByChild"` \| `"orderByKey"` \| `"orderByValue"` \| `"startAt"` \| `"startAfter"` \| `"endAt"` \| `"endBefore"` \| `"equalTo"` \| `"limitToFirst"` \| `"limitToLast"` | The constraint's variant — surfaces as the SDK's `QueryConstraintType` strings. |
261
+
262
+ ***
263
+
264
+ <a id="thenablereference"></a>
265
+
266
+ ### ThenableReference
267
+
268
+ The return type of [push](#push) — a regular [DatabaseReference](#databasereference)
269
+ with `.then` / `.catch` attached so it can be `await`ed. Mirrors
270
+ `firebase/database`'s `ThenableReference` (`api/Reference_impl.ts:569`).
271
+
272
+ Critical (DB-B7): the ref + its `.key` are available SYNCHRONOUSLY —
273
+ the key is minted client-side. The promise covers only the optional
274
+ value write; a rules-denied write rejects the promise (it does NOT
275
+ throw synchronously and lose the key). Oracle:
276
+ `rtdb-push-autoid-format.json`.
277
+
278
+ #### Extends
279
+
280
+ - [`DatabaseReference`](#databasereference)
281
+
282
+ #### Properties
283
+
284
+ | Property | Modifier | Type |
285
+ | :------ | :------ | :------ |
286
+ | <a id="key-2"></a> `key` | `readonly` | `string` |
287
+ | <a id="parent-1"></a> `parent` | `readonly` | [`DatabaseReference`](#databasereference) |
288
+ | <a id="root-1"></a> `root` | `readonly` | [`DatabaseReference`](#databasereference) |
289
+
290
+ #### Methods
291
+
292
+ <a id="catch"></a>
293
+
294
+ ##### catch()
295
+
296
+ ```ts
297
+ catch<TResult>(onrejected?: (reason: unknown) => TResult | PromiseLike<TResult>): Promise<DatabaseReference | TResult>;
298
+ ```
299
+
300
+ ###### Type Parameters
301
+
302
+ | Type Parameter | Default type |
303
+ | :------ | :------ |
304
+ | `TResult` | `never` |
305
+
306
+ ###### Parameters
307
+
308
+ | Parameter | Type |
309
+ | :------ | :------ |
310
+ | `onrejected?` | (`reason`: `unknown`) => `TResult` \| `PromiseLike`\<`TResult`\> |
311
+
312
+ ###### Returns
313
+
314
+ `Promise`\<[`DatabaseReference`](#databasereference) \| `TResult`\>
315
+
316
+ <a id="then"></a>
317
+
318
+ ##### then()
319
+
320
+ ```ts
321
+ then<TResult1, TResult2>(onfulfilled?: (value: DatabaseReference) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: unknown) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
322
+ ```
323
+
324
+ ###### Type Parameters
325
+
326
+ | Type Parameter | Default type |
327
+ | :------ | :------ |
328
+ | `TResult1` | [`DatabaseReference`](#databasereference) |
329
+ | `TResult2` | `never` |
330
+
331
+ ###### Parameters
332
+
333
+ | Parameter | Type |
334
+ | :------ | :------ |
335
+ | `onfulfilled?` | (`value`: [`DatabaseReference`](#databasereference)) => `TResult1` \| `PromiseLike`\<`TResult1`\> |
336
+ | `onrejected?` | (`reason`: `unknown`) => `TResult2` \| `PromiseLike`\<`TResult2`\> |
337
+
338
+ ###### Returns
339
+
340
+ `Promise`\<`TResult1` \| `TResult2`\>
341
+
342
+ <a id="tostring-4"></a>
343
+
344
+ ##### toString()
345
+
346
+ ```ts
347
+ toString(): string;
348
+ ```
349
+
350
+ ###### Returns
351
+
352
+ `string`
353
+
354
+ ###### Inherited from
355
+
356
+ [`DatabaseReference`](#databasereference).[`toString`](#tostring)
357
+
358
+ ***
359
+
360
+ <a id="transactionresult"></a>
361
+
362
+ ### TransactionResult
363
+
364
+ Result of [runTransaction](#runtransaction). Matches `firebase/database`'s
365
+ `TransactionResult` for the fields agent / playground code reads
366
+ idiomatically.
367
+
368
+ `committed === false` when the update fn aborted by returning
369
+ `undefined`. The snapshot still resolves — it reflects the **pre-
370
+ transaction** value (oracle:
371
+ `rtdb-modular-runtransaction-abort-undefined.json` →
372
+ `afterValOnServer: 100` preserved).
373
+
374
+ On rule denial the promise rejects with a plain `Error` whose
375
+ `message === 'permission_denied'` (lowercase, no `.code`); see
376
+ `rtdb-modular-runtransaction-on-rules-denied-path.json`.
377
+
378
+ #### Properties
379
+
380
+ | Property | Modifier | Type |
381
+ | :------ | :------ | :------ |
382
+ | <a id="committed"></a> `committed` | `readonly` | `boolean` |
383
+ | <a id="snapshot"></a> `snapshot` | `readonly` | [`DataSnapshot`](#datasnapshot) |
384
+
385
+ ## Type Aliases
386
+
387
+ <a id="appdatabase"></a>
388
+
389
+ ### AppDatabase
390
+
391
+ ```ts
392
+ type AppDatabase = Database & {
393
+ app: FirebaseApp;
394
+ };
395
+ ```
396
+
397
+ Database handle returned by Firebase-shaped app overloads.
398
+
399
+ #### Type Declaration
400
+
401
+ ##### app
402
+
403
+ ```ts
404
+ readonly app: FirebaseApp;
405
+ ```
406
+
407
+ ***
408
+
409
+ <a id="jsonvalue"></a>
410
+
411
+ ### JsonValue
412
+
413
+ ```ts
414
+ type JsonValue =
415
+ | null
416
+ | boolean
417
+ | number
418
+ | string
419
+ | JsonValue[]
420
+ | {
421
+ [key: string]: JsonValue;
422
+ };
423
+ ```
424
+
425
+ RTDB-shaped in-memory JSON tree.
426
+
427
+ The data layer for the modular SDK's sandbox target. RTDB stores a
428
+ single nested JSON tree; reads name a path and walk; writes either
429
+ replace a subtree (`set`) or merge top-level keys (`update`).
430
+
431
+ Path semantics (matches `firebase/database`):
432
+ - `'/'` is the root.
433
+ - Leading + trailing slashes are stripped; empty segments are
434
+ ignored.
435
+ - `null` at any level erases that subtree. Locked by oracle
436
+ observation
437
+ `packages/conformance/observations/rtdb/rtdb-remove-vs-set-null.json` which
438
+ says `set(ref, null)` and `remove(ref)` produce equivalent end
439
+ states.
440
+ - A read of an absent path returns `null` (NOT an error). Matches
441
+ the `DataSnapshot.val()` contract.
442
+
443
+ Trimming: when a write or delete leaves a sibling-less empty branch,
444
+ the empty branch is removed. RTDB's documented invariant: "Empty
445
+ nodes don't exist". The crawl + listener layers count on this so
446
+ `exists()` and `hasChildren()` match prod.
447
+
448
+ This module is identity-agnostic — rules evaluation happens in
449
+ `local-environment.ts`. The tree just stores bytes.
450
+
451
+ ***
452
+
453
+ <a id="sandbox"></a>
454
+
455
+ ### Sandbox
456
+
457
+ ```ts
458
+ type Sandbox = any;
459
+ ```
460
+
461
+ ***
462
+
463
+ <a id="unsubscribe"></a>
464
+
465
+ ### Unsubscribe()
466
+
467
+ ```ts
468
+ type Unsubscribe = () => void;
469
+ ```
470
+
471
+ #### Returns
472
+
473
+ `void`
474
+
475
+ ## Variables
476
+
477
+ <a id="query_symbol-1"></a>
478
+
479
+ ### QUERY\_SYMBOL
480
+
481
+ ```ts
482
+ const QUERY_SYMBOL: unique symbol;
483
+ ```
484
+
485
+ Hidden brand on every [Query](#query) (and on every QueryConstraint).
486
+ Distinct from `TARGET_SYMBOL`; this brand is only used to dispatch
487
+ `get` / `onValue` between plain refs and query-wrapped refs.
488
+
489
+ ***
490
+
491
+ <a id="sandbox-1"></a>
492
+
493
+ ### sandbox
494
+
495
+ ```ts
496
+ const sandbox: {
497
+ setData: void;
498
+ setRules: void;
499
+ snapshotState: JsonValue;
500
+ };
501
+ ```
502
+
503
+ #### Type Declaration
504
+
505
+ <a id="setdata"></a>
506
+
507
+ ##### setData()
508
+
509
+ ```ts
510
+ setData(db: Database, data: Record<string, unknown>): void;
511
+ ```
512
+
513
+ Bulk-load data bypassing rules. The supplied map's keys are
514
+ absolute paths (`'/users/alice'`) and the values land at those
515
+ paths. Convenient for test fixtures.
516
+
517
+ ###### Parameters
518
+
519
+ | Parameter | Type |
520
+ | :------ | :------ |
521
+ | `db` | [`Database`](#database) |
522
+ | `data` | `Record`\<`string`, `unknown`\> |
523
+
524
+ ###### Returns
525
+
526
+ `void`
527
+
528
+ <a id="setrules"></a>
529
+
530
+ ##### setRules()
531
+
532
+ ```ts
533
+ setRules(db: Database, rulesJson: {
534
+ rules: Record<string, unknown>;
535
+ }): void;
536
+ ```
537
+
538
+ Replace deployed rules. Pass `null` to clear (sandbox returns to
539
+ default-allow). Rules are evaluated through the existing
540
+ RTDB rules simulator — the same engine used by the rules tooling.
541
+
542
+ ###### Parameters
543
+
544
+ | Parameter | Type |
545
+ | :------ | :------ |
546
+ | `db` | [`Database`](#database) |
547
+ | `rulesJson` | \{ `rules`: `Record`\<`string`, `unknown`\>; \} |
548
+ | `rulesJson.rules` | `Record`\<`string`, `unknown`\> |
549
+
550
+ ###### Returns
551
+
552
+ `void`
553
+
554
+ ###### Example
555
+
556
+ ```ts
557
+ sandbox.setRules(db, {
558
+ rules: {
559
+ '.read': 'auth != null',
560
+ '.write': 'auth != null',
561
+ },
562
+ });
563
+ ```
564
+
565
+ <a id="snapshotstate"></a>
566
+
567
+ ##### snapshotState()
568
+
569
+ ```ts
570
+ snapshotState(db: Database): JsonValue;
571
+ ```
572
+
573
+ Snapshot the full sandbox tree (rule-bypass read). Usually a keyed
574
+ object; may be a primitive when the root holds one (DB-B13).
575
+
576
+ ###### Parameters
577
+
578
+ | Parameter | Type |
579
+ | :------ | :------ |
580
+ | `db` | [`Database`](#database) |
581
+
582
+ ###### Returns
583
+
584
+ [`JsonValue`](#jsonvalue)
585
+
586
+ ***
587
+
588
+ <a id="target_symbol-1"></a>
589
+
590
+ ### TARGET\_SYMBOL
591
+
592
+ ```ts
593
+ const TARGET_SYMBOL: unique symbol;
594
+ ```
595
+
596
+ Hidden brand on every [Database](#database) handle.
597
+
598
+ ## Functions
599
+
600
+ <a id="child-2"></a>
601
+
602
+ ### child()
603
+
604
+ ```ts
605
+ function child(parent: DatabaseReference, path: string): DatabaseReference;
606
+ ```
607
+
608
+ Sub-path constructor. `child(ref, 'sub/path')` returns a ref at
609
+ `<ref>/sub/path`.
610
+
611
+ Mirrors `firebase/database`'s `child(parent, path)` — leading +
612
+ empty segments stripped; the result inherits the parent's target.
613
+
614
+ #### Parameters
615
+
616
+ | Parameter | Type |
617
+ | :------ | :------ |
618
+ | `parent` | [`DatabaseReference`](#databasereference) |
619
+ | `path` | `string` |
620
+
621
+ #### Returns
622
+
623
+ [`DatabaseReference`](#databasereference)
624
+
625
+ ***
626
+
627
+ <a id="connectdatabaseemulator"></a>
628
+
629
+ ### connectDatabaseEmulator()
630
+
631
+ ```ts
632
+ function connectDatabaseEmulator(
633
+ _db: Database,
634
+ _host: string,
635
+ _port: number,
636
+ _options?: {
637
+ mockUserToken?: string | Record<string, unknown>;
638
+ }): void;
639
+ ```
640
+
641
+ `connectDatabaseEmulator(db, host, port)` is an accepted no-op because the
642
+ selected backend already is the local sandbox.
643
+
644
+ #### Parameters
645
+
646
+ | Parameter | Type |
647
+ | :------ | :------ |
648
+ | `_db` | [`Database`](#database) |
649
+ | `_host` | `string` |
650
+ | `_port` | `number` |
651
+ | `_options?` | \{ `mockUserToken?`: `string` \| `Record`\<`string`, `unknown`\>; \} |
652
+ | `_options.mockUserToken?` | `string` \| `Record`\<`string`, `unknown`\> |
653
+
654
+ #### Returns
655
+
656
+ `void`
657
+
658
+ ***
659
+
660
+ <a id="enablelogging"></a>
661
+
662
+ ### enableLogging()
663
+
664
+ ```ts
665
+ function enableLogging(logger?: boolean | (message: string) => void, persistent?: boolean): void;
666
+ ```
667
+
668
+ `enableLogging(logger?, persistent?)` — toggle RTDB SDK logging.
669
+
670
+ Accepted no-op: the sandbox has no modular-SDK-style logger to wire a
671
+ level/sink into (it uses host-level `console` logging directly, gated
672
+ by `pyric dev`'s own flags — matching `pyric/firestore`'s
673
+ `setLogLevel`). Accepted so init code that calls it compiles + runs.
674
+
675
+ #### Parameters
676
+
677
+ | Parameter | Type |
678
+ | :------ | :------ |
679
+ | `logger?` | `boolean` \| (`message`: `string`) => `void` |
680
+ | `persistent?` | `boolean` |
681
+
682
+ #### Returns
683
+
684
+ `void`
685
+
686
+ ***
687
+
688
+ <a id="endat"></a>
689
+
690
+ ### endAt()
691
+
692
+ ```ts
693
+ function endAt(value: JsonValue, key?: string): QueryConstraint;
694
+ ```
695
+
696
+ `endAt(value, key?)` — INCLUSIVE upper bound. Adjacent to startAt;
697
+ same key tie-breaker semantics.
698
+
699
+ #### Parameters
700
+
701
+ | Parameter | Type |
702
+ | :------ | :------ |
703
+ | `value` | [`JsonValue`](#jsonvalue) |
704
+ | `key?` | `string` |
705
+
706
+ #### Returns
707
+
708
+ [`QueryConstraint`](#queryconstraint)
709
+
710
+ ***
711
+
712
+ <a id="endbefore"></a>
713
+
714
+ ### endBefore()
715
+
716
+ ```ts
717
+ function endBefore(value: JsonValue, key?: string): QueryConstraint;
718
+ ```
719
+
720
+ `endBefore(value, key?)` — EXCLUSIVE upper bound. Locked by
721
+ `rtdb-modular-startafter-endbefore-exclusive.json`.
722
+
723
+ #### Parameters
724
+
725
+ | Parameter | Type |
726
+ | :------ | :------ |
727
+ | `value` | [`JsonValue`](#jsonvalue) |
728
+ | `key?` | `string` |
729
+
730
+ #### Returns
731
+
732
+ [`QueryConstraint`](#queryconstraint)
733
+
734
+ ***
735
+
736
+ <a id="equalto"></a>
737
+
738
+ ### equalTo()
739
+
740
+ ```ts
741
+ function equalTo(value: JsonValue, key?: string): QueryConstraint;
742
+ ```
743
+
744
+ `equalTo(value, key?)` — sugar for `startAt(value, key) +
745
+ endAt(value, key)`. Returns ALL matching children (no uniqueness).
746
+ Locked by oracle observation `rtdb-modular-equalTo-filter.json`.
747
+
748
+ #### Parameters
749
+
750
+ | Parameter | Type |
751
+ | :------ | :------ |
752
+ | `value` | [`JsonValue`](#jsonvalue) |
753
+ | `key?` | `string` |
754
+
755
+ #### Returns
756
+
757
+ [`QueryConstraint`](#queryconstraint)
758
+
759
+ ***
760
+
761
+ <a id="forcelongpolling"></a>
762
+
763
+ ### forceLongPolling()
764
+
765
+ ```ts
766
+ function forceLongPolling(): void;
767
+ ```
768
+
769
+ `forceLongPolling()` — force the long-polling transport for all
770
+ subsequent `getDatabase` connections.
771
+
772
+ No-op: transport selection is meaningless to the in-process/worker
773
+ sandbox, which never opens a real socket. Accepted so init code that
774
+ calls it unconditionally compiles + runs.
775
+
776
+ #### Returns
777
+
778
+ `void`
779
+
780
+ ***
781
+
782
+ <a id="forcewebsockets"></a>
783
+
784
+ ### forceWebSockets()
785
+
786
+ ```ts
787
+ function forceWebSockets(): void;
788
+ ```
789
+
790
+ `forceWebSockets()` — force the WebSocket transport for all
791
+ subsequent `getDatabase` connections.
792
+
793
+ No-op: transport selection is not applicable to the in-process/worker
794
+ sandbox (see [forceLongPolling](#forcelongpolling)).
795
+
796
+ #### Returns
797
+
798
+ `void`
799
+
800
+ ***
801
+
802
+ <a id="get"></a>
803
+
804
+ ### get()
805
+
806
+ ```ts
807
+ function get(r: DatabaseReference | Query): Promise<DataSnapshot>;
808
+ ```
809
+
810
+ `get(ref)` — one-shot read at the ref's path. Resolves to a
811
+ `DataSnapshot`-shaped object.
812
+
813
+ Runs through the sandbox rule engine; denial throws the plain-`Error`
814
+ shape locked by the oracle.
815
+
816
+ Absent path → `snap.val() === null && snap.exists() === false`.
817
+ Matches the SDK's `DataSnapshot.val()` contract.
818
+
819
+ #### Parameters
820
+
821
+ | Parameter | Type |
822
+ | :------ | :------ |
823
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
824
+
825
+ #### Returns
826
+
827
+ `Promise`\<[`DataSnapshot`](#datasnapshot)\>
828
+
829
+ ***
830
+
831
+ <a id="getadmindatabase"></a>
832
+
833
+ ### getAdminDatabase()
834
+
835
+ #### Call Signature
836
+
837
+ ```ts
838
+ function getAdminDatabase(sandbox: Sandbox): Database;
839
+ ```
840
+
841
+ Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
842
+ `getAdminFirestore(sandbox)` for Studio/Playground data browsers and
843
+ controlled admin tools.
844
+
845
+ ##### Parameters
846
+
847
+ | Parameter | Type |
848
+ | :------ | :------ |
849
+ | `sandbox` | `Sandbox` |
850
+
851
+ ##### Returns
852
+
853
+ [`Database`](#database)
854
+
855
+ #### Call Signature
856
+
857
+ ```ts
858
+ function getAdminDatabase(ctx: SandboxContext): Database;
859
+ ```
860
+
861
+ Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
862
+ `getAdminFirestore(sandbox)` for Studio/Playground data browsers and
863
+ controlled admin tools.
864
+
865
+ ##### Parameters
866
+
867
+ | Parameter | Type |
868
+ | :------ | :------ |
869
+ | `ctx` | `SandboxContext` |
870
+
871
+ ##### Returns
872
+
873
+ [`Database`](#database)
874
+
875
+ #### Call Signature
876
+
877
+ ```ts
878
+ function getAdminDatabase(app: FirebaseApp): Database;
879
+ ```
880
+
881
+ Sandbox-only rules-bypass RTDB handle. Mirrors Firestore's
882
+ `getAdminFirestore(sandbox)` for Studio/Playground data browsers and
883
+ controlled admin tools.
884
+
885
+ ##### Parameters
886
+
887
+ | Parameter | Type |
888
+ | :------ | :------ |
889
+ | `app` | `FirebaseApp` |
890
+
891
+ ##### Returns
892
+
893
+ [`Database`](#database)
894
+
895
+ ***
896
+
897
+ <a id="getdatabase"></a>
898
+
899
+ ### getDatabase()
900
+
901
+ #### Call Signature
902
+
903
+ ```ts
904
+ function getDatabase(ctx: SandboxContext): Database;
905
+ ```
906
+
907
+ Build a sandbox Database handle:
908
+
909
+ - `SandboxContext` → sandbox-backed, frozen identity.
910
+ - `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
911
+
912
+ ##### Parameters
913
+
914
+ | Parameter | Type |
915
+ | :------ | :------ |
916
+ | `ctx` | `SandboxContext` |
917
+
918
+ ##### Returns
919
+
920
+ [`Database`](#database)
921
+
922
+ ##### Example
923
+
924
+ ```ts
925
+ import { initializeSandbox } from 'pyric/sandbox';
926
+ import { getDatabase, ref, set, get } from 'pyric/database';
927
+
928
+ const sandbox = initializeSandbox();
929
+ const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
930
+ await set(ref(db, 'greetings/hello'), { text: 'hi' });
931
+ const snap = await get(ref(db, 'greetings/hello'));
932
+ console.log(snap.val()); // { text: 'hi' }
933
+ ```
934
+
935
+ #### Call Signature
936
+
937
+ ```ts
938
+ function getDatabase(sandbox: Sandbox): Database;
939
+ ```
940
+
941
+ Build a sandbox Database handle:
942
+
943
+ - `SandboxContext` → sandbox-backed, frozen identity.
944
+ - `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
945
+
946
+ ##### Parameters
947
+
948
+ | Parameter | Type |
949
+ | :------ | :------ |
950
+ | `sandbox` | `Sandbox` |
951
+
952
+ ##### Returns
953
+
954
+ [`Database`](#database)
955
+
956
+ ##### Example
957
+
958
+ ```ts
959
+ import { initializeSandbox } from 'pyric/sandbox';
960
+ import { getDatabase, ref, set, get } from 'pyric/database';
961
+
962
+ const sandbox = initializeSandbox();
963
+ const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
964
+ await set(ref(db, 'greetings/hello'), { text: 'hi' });
965
+ const snap = await get(ref(db, 'greetings/hello'));
966
+ console.log(snap.val()); // { text: 'hi' }
967
+ ```
968
+
969
+ #### Call Signature
970
+
971
+ ```ts
972
+ function getDatabase(app: FirebaseApp): AppDatabase;
973
+ ```
974
+
975
+ Build a sandbox Database handle:
976
+
977
+ - `SandboxContext` → sandbox-backed, frozen identity.
978
+ - `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
979
+
980
+ ##### Parameters
981
+
982
+ | Parameter | Type |
983
+ | :------ | :------ |
984
+ | `app` | `FirebaseApp` |
985
+
986
+ ##### Returns
987
+
988
+ [`AppDatabase`](#appdatabase)
989
+
990
+ ##### Example
991
+
992
+ ```ts
993
+ import { initializeSandbox } from 'pyric/sandbox';
994
+ import { getDatabase, ref, set, get } from 'pyric/database';
995
+
996
+ const sandbox = initializeSandbox();
997
+ const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
998
+ await set(ref(db, 'greetings/hello'), { text: 'hi' });
999
+ const snap = await get(ref(db, 'greetings/hello'));
1000
+ console.log(snap.val()); // { text: 'hi' }
1001
+ ```
1002
+
1003
+ #### Call Signature
1004
+
1005
+ ```ts
1006
+ function getDatabase(): AppDatabase;
1007
+ ```
1008
+
1009
+ Build a sandbox Database handle:
1010
+
1011
+ - `SandboxContext` → sandbox-backed, frozen identity.
1012
+ - `Sandbox` → sandbox-backed, live identity (per-op `currentUser`).
1013
+
1014
+ ##### Returns
1015
+
1016
+ [`AppDatabase`](#appdatabase)
1017
+
1018
+ ##### Example
1019
+
1020
+ ```ts
1021
+ import { initializeSandbox } from 'pyric/sandbox';
1022
+ import { getDatabase, ref, set, get } from 'pyric/database';
1023
+
1024
+ const sandbox = initializeSandbox();
1025
+ const db = getDatabase(sandbox.withAuth({ uid: 'alice' }));
1026
+ await set(ref(db, 'greetings/hello'), { text: 'hi' });
1027
+ const snap = await get(ref(db, 'greetings/hello'));
1028
+ console.log(snap.val()); // { text: 'hi' }
1029
+ ```
1030
+
1031
+ ***
1032
+
1033
+ <a id="gooffline"></a>
1034
+
1035
+ ### goOffline()
1036
+
1037
+ ```ts
1038
+ function goOffline(_db: Database): void;
1039
+ ```
1040
+
1041
+ `goOffline(db)` — disconnect the client from the RTDB backend.
1042
+
1043
+ No-op on sandbox handles: there is NO network connection in the local
1044
+ sandbox to toggle, so honest behavior is to accept the call and do
1045
+ nothing (we deliberately do NOT simulate a disconnect — pending
1046
+ writes, listeners, and `get()` all keep working exactly as before).
1047
+
1048
+ #### Parameters
1049
+
1050
+ | Parameter | Type |
1051
+ | :------ | :------ |
1052
+ | `_db` | [`Database`](#database) |
1053
+
1054
+ #### Returns
1055
+
1056
+ `void`
1057
+
1058
+ ***
1059
+
1060
+ <a id="goonline"></a>
1061
+
1062
+ ### goOnline()
1063
+
1064
+ ```ts
1065
+ function goOnline(_db: Database): void;
1066
+ ```
1067
+
1068
+ `goOnline(db)` — reconnect the client to the RTDB backend.
1069
+
1070
+ No-op on sandbox handles (there is no connection to reopen — see
1071
+ [goOffline](#gooffline)).
1072
+
1073
+ #### Parameters
1074
+
1075
+ | Parameter | Type |
1076
+ | :------ | :------ |
1077
+ | `_db` | [`Database`](#database) |
1078
+
1079
+ #### Returns
1080
+
1081
+ `void`
1082
+
1083
+ ***
1084
+
1085
+ <a id="increment"></a>
1086
+
1087
+ ### increment()
1088
+
1089
+ ```ts
1090
+ function increment(delta: number): IncrementSentinel;
1091
+ ```
1092
+
1093
+ `increment(delta)` — returns the `{ ".sv": { increment: delta } }`
1094
+ sentinel that atomically adds `delta` to the current value at the
1095
+ write's field. Starts from `0` when the field is absent or
1096
+ non-numeric (oracle: `rtdb-modular-increment-from-missing.json`).
1097
+
1098
+ The sandbox backend resolves it against the field's prior value at write
1099
+ time. Mirrors `firebase/database`'s `increment` (`api/ServerValue.ts:38-44`).
1100
+
1101
+ #### Parameters
1102
+
1103
+ | Parameter | Type |
1104
+ | :------ | :------ |
1105
+ | `delta` | `number` |
1106
+
1107
+ #### Returns
1108
+
1109
+ `IncrementSentinel`
1110
+
1111
+ ***
1112
+
1113
+ <a id="limittofirst"></a>
1114
+
1115
+ ### limitToFirst()
1116
+
1117
+ ```ts
1118
+ function limitToFirst(n: number): QueryConstraint;
1119
+ ```
1120
+
1121
+ `limitToFirst(n)` — keep the first N children of the ordered window.
1122
+ Locked by oracle observation `rtdb-modular-limittofirst-vs-limittolast.json`.
1123
+
1124
+ #### Parameters
1125
+
1126
+ | Parameter | Type |
1127
+ | :------ | :------ |
1128
+ | `n` | `number` |
1129
+
1130
+ #### Returns
1131
+
1132
+ [`QueryConstraint`](#queryconstraint)
1133
+
1134
+ ***
1135
+
1136
+ <a id="limittolast"></a>
1137
+
1138
+ ### limitToLast()
1139
+
1140
+ ```ts
1141
+ function limitToLast(n: number): QueryConstraint;
1142
+ ```
1143
+
1144
+ `limitToLast(n)` — keep the last N children of the ordered window.
1145
+ Locked by oracle observation `rtdb-modular-limittofirst-vs-limittolast.json`.
1146
+
1147
+ #### Parameters
1148
+
1149
+ | Parameter | Type |
1150
+ | :------ | :------ |
1151
+ | `n` | `number` |
1152
+
1153
+ #### Returns
1154
+
1155
+ [`QueryConstraint`](#queryconstraint)
1156
+
1157
+ ***
1158
+
1159
+ <a id="off"></a>
1160
+
1161
+ ### off()
1162
+
1163
+ ```ts
1164
+ function off(
1165
+ r: DatabaseReference,
1166
+ eventType?: "value" | ChildEvent,
1167
+ callback?: (snap: DataSnapshot) => void): void;
1168
+ ```
1169
+
1170
+ `off(ref, eventType?, callback?)` — unsubscribe variant.
1171
+
1172
+ Semantics (locked by oracle observation
1173
+ `packages/conformance/observations/rtdb-modular/rtdb-modular-off-stops-child-fires.json`):
1174
+
1175
+ - `off(ref)` (no eventType) removes ALL listeners at that ref —
1176
+ value + every child event variety.
1177
+ - `off(ref, 'value')` removes only `value` listeners.
1178
+ - `off(ref, 'child_added')` (or any child event type) removes only
1179
+ that variety.
1180
+ - `off(ref, eventType, cb)` removes only the matching callback.
1181
+
1182
+ The returned-unsubscribe pattern from `onValue` / `onChild*` is
1183
+ functionally equivalent to `off(ref, eventType, cb)` for a specific
1184
+ registration — both are supported.
1185
+
1186
+ #### Parameters
1187
+
1188
+ | Parameter | Type |
1189
+ | :------ | :------ |
1190
+ | `r` | [`DatabaseReference`](#databasereference) |
1191
+ | `eventType?` | `"value"` \| `ChildEvent` |
1192
+ | `callback?` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1193
+
1194
+ #### Returns
1195
+
1196
+ `void`
1197
+
1198
+ ***
1199
+
1200
+ <a id="onchildadded"></a>
1201
+
1202
+ ### onChildAdded()
1203
+
1204
+ ```ts
1205
+ function onChildAdded(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
1206
+ ```
1207
+
1208
+ `onChildAdded(ref, cb)` — subscribe to child-added events at the
1209
+ ref's path.
1210
+
1211
+ Semantics (locked by oracle observations under
1212
+ `packages/conformance/observations/rtdb-modular/rtdb-modular-onchildadded-*.json`):
1213
+
1214
+ - On subscribe, replays every existing direct child of `ref`'s path
1215
+ (one fire per existing key, in `orderByKey`-default order).
1216
+ - After subscribe, fires exactly once per new direct child write.
1217
+
1218
+ Also accepts a [Query](#query) (a `query(ref, ...)` with `orderBy*` /
1219
+ `limitTo*` constraints): child events are then computed against the
1220
+ ordered, windowed result — a child ENTERING the window fires
1221
+ `child_added`; on subscribe the current window is replayed in window
1222
+ order.
1223
+
1224
+ Returns an unsubscribe; calling it twice is a no-op.
1225
+
1226
+ #### Parameters
1227
+
1228
+ | Parameter | Type |
1229
+ | :------ | :------ |
1230
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1231
+ | `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1232
+
1233
+ #### Returns
1234
+
1235
+ [`Unsubscribe`](#unsubscribe)
1236
+
1237
+ ***
1238
+
1239
+ <a id="onchildchanged"></a>
1240
+
1241
+ ### onChildChanged()
1242
+
1243
+ ```ts
1244
+ function onChildChanged(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
1245
+ ```
1246
+
1247
+ `onChildChanged(ref, cb)` — subscribe to child-changed events.
1248
+
1249
+ Semantics (oracle: `rtdb-modular-onchildchanged-fires-on-update`):
1250
+
1251
+ - No initial replay.
1252
+ - Fires when an existing direct child's value transitions to a
1253
+ NEW non-null value. Snapshot carries the NEW value.
1254
+ - Does NOT fire for added or removed children.
1255
+
1256
+ Also accepts a [Query](#query): fires when a child that is IN the query
1257
+ window changes value (an in-window update).
1258
+
1259
+ #### Parameters
1260
+
1261
+ | Parameter | Type |
1262
+ | :------ | :------ |
1263
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1264
+ | `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1265
+
1266
+ #### Returns
1267
+
1268
+ [`Unsubscribe`](#unsubscribe)
1269
+
1270
+ ***
1271
+
1272
+ <a id="onchildmoved"></a>
1273
+
1274
+ ### onChildMoved()
1275
+
1276
+ ```ts
1277
+ function onChildMoved(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
1278
+ ```
1279
+
1280
+ `onChildMoved(ref, cb)` — subscribe to child-moved events.
1281
+
1282
+ Semantics (oracle: `rtdb-modular-onchildmoved-with-orderby`):
1283
+
1284
+ - Only fires under an ordered query (`query(ref, orderByChild(...))`).
1285
+ - Under a plain ref, this listener is effectively a no-op — the
1286
+ upstream SDK accepts the subscription but never fires it
1287
+ (matches RTDB docs).
1288
+
1289
+ Accepts a [Query](#query) WITHOUT throwing, but the sandbox deliberately
1290
+ does NOT fire `child_moved` on reorder yet: prod fires here (matrix row
1291
+ `rtdb-modular#137`) while the sandbox holds — the reorder /
1292
+ `previousChildName` ordering semantics are pending two new oracle
1293
+ captures. This is a documented, pinned divergence (both sides asserted
1294
+ in `test/database/modular/sandbox-child-events.test.ts`).
1295
+
1296
+ #### Parameters
1297
+
1298
+ | Parameter | Type |
1299
+ | :------ | :------ |
1300
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1301
+ | `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1302
+
1303
+ #### Returns
1304
+
1305
+ [`Unsubscribe`](#unsubscribe)
1306
+
1307
+ ***
1308
+
1309
+ <a id="onchildremoved"></a>
1310
+
1311
+ ### onChildRemoved()
1312
+
1313
+ ```ts
1314
+ function onChildRemoved(r: DatabaseReference | Query, cb: (snap: DataSnapshot) => void): Unsubscribe;
1315
+ ```
1316
+
1317
+ `onChildRemoved(ref, cb)` — subscribe to child-removed events.
1318
+
1319
+ Semantics (oracle: `rtdb-modular-onchildremoved-fires-on-delete`):
1320
+
1321
+ - No initial replay.
1322
+ - Fires when a direct child is deleted (via `remove(child)` or
1323
+ `set(child, null)`).
1324
+ - Snapshot carries the PRIOR (now-removed) value — the listener
1325
+ sees what was there before deletion.
1326
+
1327
+ Also accepts a [Query](#query): a child LEAVING the query window (e.g.
1328
+ displaced past a `limitTo*` boundary or filtered out) fires
1329
+ `child_removed` carrying its prior value.
1330
+
1331
+ #### Parameters
1332
+
1333
+ | Parameter | Type |
1334
+ | :------ | :------ |
1335
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1336
+ | `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1337
+
1338
+ #### Returns
1339
+
1340
+ [`Unsubscribe`](#unsubscribe)
1341
+
1342
+ ***
1343
+
1344
+ <a id="onvalue"></a>
1345
+
1346
+ ### onValue()
1347
+
1348
+ ```ts
1349
+ function onValue(
1350
+ r: DatabaseReference | Query,
1351
+ cb: (snap: DataSnapshot) => void,
1352
+ options?: {
1353
+ onlyOnce?: boolean;
1354
+ }): Unsubscribe;
1355
+ ```
1356
+
1357
+ `onValue(ref, cb)` — subscribe to value changes at the ref's path.
1358
+
1359
+ Fires immediately on subscribe with the current value (or
1360
+ `null` + `exists: false` for an absent path), then on every
1361
+ subsequent write that touches the path or any descendant.
1362
+
1363
+ Returns an unsubscribe function. The unsubscribe is idempotent;
1364
+ calling it twice is a no-op.
1365
+
1366
+ `options.onlyOnce` (DB-B12): when `true`, the listener auto-unsubscribes
1367
+ after its first fire (mirrors `api/Reference_impl.ts:975-980`).
1368
+
1369
+ Errors path: subscribing under rules that deny the read throws the
1370
+ plain-`Error` `PERMISSION_DENIED` shape synchronously (matching the
1371
+ production behavior where the subscribe path immediately errors).
1372
+
1373
+ #### Parameters
1374
+
1375
+ | Parameter | Type |
1376
+ | :------ | :------ |
1377
+ | `r` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1378
+ | `cb` | (`snap`: [`DataSnapshot`](#datasnapshot)) => `void` |
1379
+ | `options?` | \{ `onlyOnce?`: `boolean`; \} |
1380
+ | `options.onlyOnce?` | `boolean` |
1381
+
1382
+ #### Returns
1383
+
1384
+ [`Unsubscribe`](#unsubscribe)
1385
+
1386
+ ***
1387
+
1388
+ <a id="orderbychild"></a>
1389
+
1390
+ ### orderByChild()
1391
+
1392
+ ```ts
1393
+ function orderByChild(path: string): QueryConstraint;
1394
+ ```
1395
+
1396
+ `orderByChild('path')` — order children by the value at the nested
1397
+ child path. Locked by oracle observation
1398
+ `rtdb-modular-orderbychild-window.json`.
1399
+
1400
+ #### Parameters
1401
+
1402
+ | Parameter | Type |
1403
+ | :------ | :------ |
1404
+ | `path` | `string` |
1405
+
1406
+ #### Returns
1407
+
1408
+ [`QueryConstraint`](#queryconstraint)
1409
+
1410
+ ***
1411
+
1412
+ <a id="orderbykey"></a>
1413
+
1414
+ ### orderByKey()
1415
+
1416
+ ```ts
1417
+ function orderByKey(): QueryConstraint;
1418
+ ```
1419
+
1420
+ `orderByKey()` — order children lexicographically by key string.
1421
+ Locked by oracle observation `rtdb-modular-orderbykey-window.json`.
1422
+
1423
+ #### Returns
1424
+
1425
+ [`QueryConstraint`](#queryconstraint)
1426
+
1427
+ ***
1428
+
1429
+ <a id="orderbyvalue"></a>
1430
+
1431
+ ### orderByValue()
1432
+
1433
+ ```ts
1434
+ function orderByValue(): QueryConstraint;
1435
+ ```
1436
+
1437
+ `orderByValue()` — order children by primitive value. Prod requires
1438
+ `.indexOn: ".value"` (oracle: `rtdb-modular-orderbyvalue-numeric.json`
1439
+ threw `Index not defined` against blockingfun); sandbox does NOT
1440
+ enforce indexes (the rules engine here checks read-allow only, not
1441
+ query-index conformance).
1442
+
1443
+ #### Returns
1444
+
1445
+ [`QueryConstraint`](#queryconstraint)
1446
+
1447
+ ***
1448
+
1449
+ <a id="push"></a>
1450
+
1451
+ ### push()
1452
+
1453
+ ```ts
1454
+ function push(r: DatabaseReference, value?: unknown): ThenableReference;
1455
+ ```
1456
+
1457
+ `push(ref, value?)` — mint an auto-id child key under `ref`'s path,
1458
+ optionally writing `value` at the new child.
1459
+
1460
+ Returns a ref at the new child path. The ref's `key` is the minted
1461
+ id (locked by oracle observation `rtdb-push-autoid-format.json`:
1462
+ 20 chars, leading `-`, lex-sortable).
1463
+
1464
+ Production note: the key is minted **client-side** (no server
1465
+ round-trip required); it's available synchronously on the returned
1466
+ ref even when the optional write is denied by rules. The oracle
1467
+ observation confirms this — the sandbox matches.
1468
+
1469
+ #### Parameters
1470
+
1471
+ | Parameter | Type |
1472
+ | :------ | :------ |
1473
+ | `r` | [`DatabaseReference`](#databasereference) |
1474
+ | `value?` | `unknown` |
1475
+
1476
+ #### Returns
1477
+
1478
+ [`ThenableReference`](#thenablereference)
1479
+
1480
+ ***
1481
+
1482
+ <a id="pushkey"></a>
1483
+
1484
+ ### pushKey()
1485
+
1486
+ ```ts
1487
+ function pushKey(): string;
1488
+ ```
1489
+
1490
+ Pre-mint a push key without writing. Used by callers that need the
1491
+ key for a multi-path update (`update(rootRef, { [\`/users/${key}\`]: ... })`).
1492
+ Returns a freshly-minted key.
1493
+
1494
+ #### Returns
1495
+
1496
+ `string`
1497
+
1498
+ ***
1499
+
1500
+ <a id="query-1"></a>
1501
+
1502
+ ### query()
1503
+
1504
+ ```ts
1505
+ function query(refOrQuery: DatabaseReference | Query, ...constraints: QueryConstraint[]): Query;
1506
+ ```
1507
+
1508
+ `query(ref, ...constraints)` — wrap a ref in an immutable
1509
+ constraint chain. The resulting [Query](#query) routes through
1510
+ [get](#get)/[onValue](#onvalue) and applies the ordering + filtering +
1511
+ limit pipeline on the sandbox backend.
1512
+
1513
+ Chaining is supported — `query(query(ref, orderByChild('x')),
1514
+ limitToFirst(2))` folds both constraints into one spec.
1515
+
1516
+ Locked semantics (oracle):
1517
+ - `orderByChild('p') + startAt(v) + endAt(w)` is BOTH-inclusive
1518
+ (`rtdb-modular-orderbychild-window.json`).
1519
+ - `orderByKey() + startAt('b') + endAt('d')` matches `[b, c, d]`
1520
+ (`rtdb-modular-orderbykey-window.json`).
1521
+ - `orderByValue() + limitToFirst(3)` returns the 3 smallest by
1522
+ value (`rtdb-modular-orderbyvalue-numeric.json` — note: prod
1523
+ requires `.indexOn: ".value"`; sandbox does not enforce indexes).
1524
+ - `orderByChild('group') + equalTo('b')` returns ALL matching
1525
+ children (`rtdb-modular-equalTo-filter.json`).
1526
+ - `limitToFirst(N)` / `limitToLast(N)` take from the start / end of
1527
+ the ordered window (`rtdb-modular-limittofirst-vs-limittolast.json`).
1528
+ - `startAfter` / `endBefore` are EXCLUSIVE
1529
+ (`rtdb-modular-startafter-endbefore-exclusive.json`).
1530
+
1531
+ #### Parameters
1532
+
1533
+ | Parameter | Type |
1534
+ | :------ | :------ |
1535
+ | `refOrQuery` | [`DatabaseReference`](#databasereference) \| [`Query`](#query) |
1536
+ | ...`constraints` | [`QueryConstraint`](#queryconstraint)[] |
1537
+
1538
+ #### Returns
1539
+
1540
+ [`Query`](#query)
1541
+
1542
+ ***
1543
+
1544
+ <a id="ref-2"></a>
1545
+
1546
+ ### ref()
1547
+
1548
+ ```ts
1549
+ function ref(db: Database, path?: string): DatabaseReference;
1550
+ ```
1551
+
1552
+ Build a [DatabaseReference](#databasereference) at `path` (default root).
1553
+
1554
+ Path normalisation: leading + trailing slashes are stripped;
1555
+ empty path / `'/'` becomes the root.
1556
+
1557
+ #### Parameters
1558
+
1559
+ | Parameter | Type |
1560
+ | :------ | :------ |
1561
+ | `db` | [`Database`](#database) |
1562
+ | `path?` | `string` |
1563
+
1564
+ #### Returns
1565
+
1566
+ [`DatabaseReference`](#databasereference)
1567
+
1568
+ ***
1569
+
1570
+ <a id="reffromurl"></a>
1571
+
1572
+ ### refFromURL()
1573
+
1574
+ ```ts
1575
+ function refFromURL(db: Database, url: string): DatabaseReference;
1576
+ ```
1577
+
1578
+ `refFromURL(db, url)` — build a [DatabaseReference](#databasereference) from an
1579
+ absolute database URL (`https://<namespace>.firebaseio.com/path`).
1580
+
1581
+ Real alias with real behavior: parses the path out of the URL and
1582
+ delegates to [ref](#ref-2), so the returned ref resolves + reads exactly
1583
+ like `ref(db, path)`. The sandbox is single-database and has no host /
1584
+ namespace, so the URL's HOST is not validated against the handle (the
1585
+ real SDK throws if the host doesn't match the db's namespace); only
1586
+ the path component is honored.
1587
+
1588
+ #### Parameters
1589
+
1590
+ | Parameter | Type |
1591
+ | :------ | :------ |
1592
+ | `db` | [`Database`](#database) |
1593
+ | `url` | `string` |
1594
+
1595
+ #### Returns
1596
+
1597
+ [`DatabaseReference`](#databasereference)
1598
+
1599
+ ***
1600
+
1601
+ <a id="remove"></a>
1602
+
1603
+ ### remove()
1604
+
1605
+ ```ts
1606
+ function remove(r: DatabaseReference): Promise<void>;
1607
+ ```
1608
+
1609
+ `remove(ref)` — delete the subtree at the ref's path.
1610
+
1611
+ RTDB invariant (oracle: `rtdb-remove-vs-set-null.json`): equivalent
1612
+ to `set(ref, null)`. The sandbox backend dispatches `remove` through
1613
+ the same code path as `set(_, null)`.
1614
+
1615
+ #### Parameters
1616
+
1617
+ | Parameter | Type |
1618
+ | :------ | :------ |
1619
+ | `r` | [`DatabaseReference`](#databasereference) |
1620
+
1621
+ #### Returns
1622
+
1623
+ `Promise`\<`void`\>
1624
+
1625
+ ***
1626
+
1627
+ <a id="runtransaction"></a>
1628
+
1629
+ ### runTransaction()
1630
+
1631
+ ```ts
1632
+ function runTransaction<T>(
1633
+ r: DatabaseReference,
1634
+ transactionUpdate: (current: T) => T,
1635
+ options?: {
1636
+ applyLocally?: boolean;
1637
+ }): Promise<TransactionResult>;
1638
+ ```
1639
+
1640
+ `runTransaction(ref, transactionUpdate, options?)` — atomic
1641
+ read-modify-write.
1642
+
1643
+ Contract (oracle-locked):
1644
+
1645
+ 1. `transactionUpdate` is called with the CURRENT value at `ref`'s
1646
+ path. For an absent path the arg is `null` (NOT `undefined`);
1647
+ oracle:
1648
+ `rtdb-modular-runtransaction-current-value-arg.json` →
1649
+ `missingFirstWasNull: true`.
1650
+ 2. Returning `undefined` from the update fn ABORTS the transaction:
1651
+ resolves `{ committed: false, snapshot }` where the snapshot is
1652
+ the pre-transaction value; oracle:
1653
+ `rtdb-modular-runtransaction-abort-undefined.json` → `committed:
1654
+ false, snapVal: null`.
1655
+ 3. Returning any defined value WRITES that value (rules-checked);
1656
+ resolves `{ committed: true, snapshot }` where `snapshot.val()`
1657
+ is the committed value; oracle:
1658
+ `rtdb-modular-runtransaction-success.json` → `committedNewValue:
1659
+ true` and
1660
+ `rtdb-modular-runtransaction-returns-committed-snapshot.json`.
1661
+ 4. If rules deny the write, the promise REJECTS with a plain
1662
+ `Error` whose `message === 'permission_denied'` and NO `.code`
1663
+ field (distinct from `set`/`get`'s `'PERMISSION_DENIED:
1664
+ Permission denied'`); oracle:
1665
+ `rtdb-modular-runtransaction-on-rules-denied-path.json`.
1666
+
1667
+ `options.applyLocally` (default `true`): when `false`, the
1668
+ intermediate optimistic value is NOT fanned out to listeners — they
1669
+ see only the committed value. In a single-client harness this is
1670
+ usually invisible; we honor the flag for prod-parity. Oracle
1671
+ observation `rtdb-modular-runtransaction-options-applylocally.json`
1672
+ confirms both branches commit and end at the same value; the
1673
+ intermediate-fire difference isn't observable from a single client.
1674
+
1675
+ Single-client sandbox doesn't model concurrency conflicts; the
1676
+ documented "retry on conflict" path is degenerate (no other writer
1677
+ exists to conflict with). The fn is invoked once.
1678
+
1679
+ #### Type Parameters
1680
+
1681
+ | Type Parameter |
1682
+ | :------ |
1683
+ | `T` |
1684
+
1685
+ #### Parameters
1686
+
1687
+ | Parameter | Type |
1688
+ | :------ | :------ |
1689
+ | `r` | [`DatabaseReference`](#databasereference) |
1690
+ | `transactionUpdate` | (`current`: `T`) => `T` |
1691
+ | `options?` | \{ `applyLocally?`: `boolean`; \} |
1692
+ | `options.applyLocally?` | `boolean` |
1693
+
1694
+ #### Returns
1695
+
1696
+ `Promise`\<[`TransactionResult`](#transactionresult)\>
1697
+
1698
+ ***
1699
+
1700
+ <a id="servertimestamp"></a>
1701
+
1702
+ ### serverTimestamp()
1703
+
1704
+ ```ts
1705
+ function serverTimestamp(): ServerTimestampSentinel;
1706
+ ```
1707
+
1708
+ `serverTimestamp()` — returns the `{ ".sv": "timestamp" }` sentinel
1709
+ the wire encoder recognises. Resolves to `Date.now()` (epoch ms) on
1710
+ write — locked by the prod SDK's resolved-as-number contract
1711
+ (oracle: `rtdb-servertimestamp-resolves.json`).
1712
+
1713
+ The sandbox backend recognises the marker.
1714
+
1715
+ #### Returns
1716
+
1717
+ `ServerTimestampSentinel`
1718
+
1719
+ ***
1720
+
1721
+ <a id="set"></a>
1722
+
1723
+ ### set()
1724
+
1725
+ ```ts
1726
+ function set(r: DatabaseReference, value: unknown): Promise<void>;
1727
+ ```
1728
+
1729
+ `set(ref, value)` — replace the value at `ref`'s path. `null`
1730
+ deletes (matches the RTDB invariant — locked by oracle observation
1731
+ `rtdb-remove-vs-set-null.json`).
1732
+
1733
+ `serverTimestamp()` sentinels are resolved at write time.
1734
+
1735
+ #### Parameters
1736
+
1737
+ | Parameter | Type |
1738
+ | :------ | :------ |
1739
+ | `r` | [`DatabaseReference`](#databasereference) |
1740
+ | `value` | `unknown` |
1741
+
1742
+ #### Returns
1743
+
1744
+ `Promise`\<`void`\>
1745
+
1746
+ ***
1747
+
1748
+ <a id="startafter"></a>
1749
+
1750
+ ### startAfter()
1751
+
1752
+ ```ts
1753
+ function startAfter(value: JsonValue, key?: string): QueryConstraint;
1754
+ ```
1755
+
1756
+ `startAfter(value, key?)` — EXCLUSIVE lower bound. Locked by
1757
+ `rtdb-modular-startafter-endbefore-exclusive.json`.
1758
+
1759
+ #### Parameters
1760
+
1761
+ | Parameter | Type |
1762
+ | :------ | :------ |
1763
+ | `value` | [`JsonValue`](#jsonvalue) |
1764
+ | `key?` | `string` |
1765
+
1766
+ #### Returns
1767
+
1768
+ [`QueryConstraint`](#queryconstraint)
1769
+
1770
+ ***
1771
+
1772
+ <a id="startat"></a>
1773
+
1774
+ ### startAt()
1775
+
1776
+ ```ts
1777
+ function startAt(value: JsonValue, key?: string): QueryConstraint;
1778
+ ```
1779
+
1780
+ `startAt(value, key?)` — INCLUSIVE lower bound under the active
1781
+ ordering. Optional `key` is the tie-breaker when ordering by
1782
+ child/value and multiple children share the bound's value.
1783
+
1784
+ #### Parameters
1785
+
1786
+ | Parameter | Type |
1787
+ | :------ | :------ |
1788
+ | `value` | [`JsonValue`](#jsonvalue) |
1789
+ | `key?` | `string` |
1790
+
1791
+ #### Returns
1792
+
1793
+ [`QueryConstraint`](#queryconstraint)
1794
+
1795
+ ***
1796
+
1797
+ <a id="update"></a>
1798
+
1799
+ ### update()
1800
+
1801
+ ```ts
1802
+ function update(r: DatabaseReference, values: Record<string, unknown>): Promise<void>;
1803
+ ```
1804
+
1805
+ `update(ref, values)` — partial update.
1806
+
1807
+ - When `values` keys contain `/`, the call is a **multi-path atomic
1808
+ update**: every listed path is written as one transaction (any
1809
+ denial fails the whole batch).
1810
+ - Otherwise it's a **shallow merge** at the ref's path: each
1811
+ top-level key replaces the corresponding child. `null` values
1812
+ delete.
1813
+
1814
+ Both behaviors are sandbox-implemented per the RtdbBackend's
1815
+ `update` method (`rtdb-modular`-spec atomic claim, matrix row #23).
1816
+
1817
+ #### Parameters
1818
+
1819
+ | Parameter | Type |
1820
+ | :------ | :------ |
1821
+ | `r` | [`DatabaseReference`](#databasereference) |
1822
+ | `values` | `Record`\<`string`, `unknown`\> |
1823
+
1824
+ #### Returns
1825
+
1826
+ `Promise`\<`void`\>
1827
+
1828
+ ## References
1829
+
1830
+ <a id="authstate"></a>
1831
+
1832
+ ### AuthState
1833
+
1834
+ Renames and re-exports [Sandbox](#sandbox)
1835
+
1836
+ ***
1837
+
1838
+ <a id="sandboxcontext"></a>
1839
+
1840
+ ### SandboxContext
1841
+
1842
+ Renames and re-exports [Sandbox](#sandbox)