@noy-db/hub 0.3.0-pre.1 → 0.3.0-pre.11

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 (938) hide show
  1. package/dist/aggregate/index.js +9 -8
  2. package/dist/aggregate/index.js.map +1 -1
  3. package/dist/api-YGMINAET.js +20 -0
  4. package/dist/as/index.js +12 -6
  5. package/dist/attestation/index.js +19 -13
  6. package/dist/attestation/index.js.map +1 -1
  7. package/dist/backup-XA5STIYQ.js +225 -0
  8. package/dist/backup-XA5STIYQ.js.map +1 -0
  9. package/dist/blobs/index.js +12 -6
  10. package/dist/blobs/index.js.map +1 -1
  11. package/dist/broker/index.js +92 -0
  12. package/dist/broker/index.js.map +1 -0
  13. package/dist/bundle/index.js +21 -15
  14. package/dist/bundle/index.js.map +1 -1
  15. package/dist/by/index.js +2 -2
  16. package/dist/cargo/index.js +32 -26
  17. package/dist/chunk-25NDNMQ7.js +70 -0
  18. package/dist/chunk-25NDNMQ7.js.map +1 -0
  19. package/dist/chunk-2JMMY7HZ.js +188 -0
  20. package/dist/chunk-2JMMY7HZ.js.map +1 -0
  21. package/dist/chunk-3CNQ7FQ3.js +430 -0
  22. package/dist/chunk-3G4KMVUN.js +291 -0
  23. package/dist/chunk-3G4KMVUN.js.map +1 -0
  24. package/dist/chunk-3MSQLQNZ.js +74 -0
  25. package/dist/chunk-45ZZLTFH.js +38 -0
  26. package/dist/chunk-45ZZLTFH.js.map +1 -0
  27. package/dist/chunk-4GPE63GU.js +111 -0
  28. package/dist/chunk-4GPE63GU.js.map +1 -0
  29. package/dist/chunk-4N5QFSNQ.js +150 -0
  30. package/dist/chunk-4N5QFSNQ.js.map +1 -0
  31. package/dist/chunk-4R4Q64W5.js +34 -0
  32. package/dist/chunk-57V5S7PW.js +130 -0
  33. package/dist/chunk-57V5S7PW.js.map +1 -0
  34. package/dist/chunk-5JB73NMC.js +202 -0
  35. package/dist/chunk-5JB73NMC.js.map +1 -0
  36. package/dist/chunk-5XIPOCQC.js +155 -0
  37. package/dist/chunk-5ZOSG3RJ.js +778 -0
  38. package/dist/chunk-5ZOSG3RJ.js.map +1 -0
  39. package/dist/chunk-67TNU77I.js +36 -0
  40. package/dist/chunk-67TNU77I.js.map +1 -0
  41. package/dist/chunk-6QILBDZU.js +205 -0
  42. package/dist/chunk-7E67FJ33.js +155 -0
  43. package/dist/chunk-7ITPJFGC.js +50 -0
  44. package/dist/chunk-7ITPJFGC.js.map +1 -0
  45. package/dist/chunk-7NS43EXZ.js +117 -0
  46. package/dist/chunk-7QIXUSDQ.js +341 -0
  47. package/dist/chunk-7QIXUSDQ.js.map +1 -0
  48. package/dist/chunk-7VSGW5KJ.js +74 -0
  49. package/dist/chunk-7VSGW5KJ.js.map +1 -0
  50. package/dist/chunk-A2QF4JUE.js +14073 -0
  51. package/dist/chunk-A2QF4JUE.js.map +1 -0
  52. package/dist/chunk-A2Y6YFVN.js +209 -0
  53. package/dist/chunk-AOVDSIL3.js +1221 -0
  54. package/dist/chunk-AOVDSIL3.js.map +1 -0
  55. package/dist/chunk-ARSAMO24.js +29 -0
  56. package/dist/chunk-ARSAMO24.js.map +1 -0
  57. package/dist/chunk-AWB5JZW6.js +41 -0
  58. package/dist/chunk-AWB5JZW6.js.map +1 -0
  59. package/dist/chunk-BCYQA5BK.js +45 -0
  60. package/dist/chunk-BE7N3AXA.js +621 -0
  61. package/dist/chunk-BE7N3AXA.js.map +1 -0
  62. package/dist/chunk-BEIRE5K4.js +164 -0
  63. package/dist/chunk-BEIRE5K4.js.map +1 -0
  64. package/dist/chunk-BZO4WCJI.js +86 -0
  65. package/dist/chunk-BZO4WCJI.js.map +1 -0
  66. package/dist/chunk-C3YH34IL.js +75 -0
  67. package/dist/chunk-C3YH34IL.js.map +1 -0
  68. package/dist/chunk-C7NTK5I3.js +49 -0
  69. package/dist/chunk-C7NTK5I3.js.map +1 -0
  70. package/dist/chunk-CB25ONKC.js +129 -0
  71. package/dist/chunk-CIKY6I4W.js +21 -0
  72. package/dist/chunk-CKZW6P5V.js +32 -0
  73. package/dist/chunk-CKZW6P5V.js.map +1 -0
  74. package/dist/chunk-D26JB3LZ.js +54 -0
  75. package/dist/chunk-D3EFFFOL.js +59 -0
  76. package/dist/chunk-D3EFFFOL.js.map +1 -0
  77. package/dist/chunk-DGH65E7Q.js +466 -0
  78. package/dist/chunk-DGH65E7Q.js.map +1 -0
  79. package/dist/chunk-DIRRS7WP.js +42 -0
  80. package/dist/chunk-DJ3VKYFA.js +150 -0
  81. package/dist/chunk-DJ3VKYFA.js.map +1 -0
  82. package/dist/chunk-DMFNPHCX.js +247 -0
  83. package/dist/chunk-DMFNPHCX.js.map +1 -0
  84. package/dist/chunk-ELNBMFOS.js +392 -0
  85. package/dist/chunk-ELNBMFOS.js.map +1 -0
  86. package/dist/chunk-FH542DDY.js +1505 -0
  87. package/dist/chunk-FH542DDY.js.map +1 -0
  88. package/dist/chunk-FQQF23MC.js +45 -0
  89. package/dist/chunk-FQQF23MC.js.map +1 -0
  90. package/dist/chunk-FXK4X4BL.js +91 -0
  91. package/dist/chunk-FXK4X4BL.js.map +1 -0
  92. package/dist/chunk-GA2QHD6P.js +235 -0
  93. package/dist/chunk-GA2QHD6P.js.map +1 -0
  94. package/dist/chunk-GYGLAVCX.js +19 -0
  95. package/dist/chunk-GYGLAVCX.js.map +1 -0
  96. package/dist/chunk-H44ZE4IE.js +355 -0
  97. package/dist/chunk-H6CZSDWK.js +1697 -0
  98. package/dist/chunk-H6CZSDWK.js.map +1 -0
  99. package/dist/chunk-H6HM6CVR.js +279 -0
  100. package/dist/chunk-H6HM6CVR.js.map +1 -0
  101. package/dist/chunk-HFJIGWJC.js +382 -0
  102. package/dist/chunk-HUS3J5WM.js +404 -0
  103. package/dist/chunk-HUS3J5WM.js.map +1 -0
  104. package/dist/chunk-IDIV5NVH.js +99 -0
  105. package/dist/chunk-IDIV5NVH.js.map +1 -0
  106. package/dist/chunk-IGJCYUT5.js +99 -0
  107. package/dist/chunk-IGJCYUT5.js.map +1 -0
  108. package/dist/chunk-IGJHJYM6.js +515 -0
  109. package/dist/chunk-IGJHJYM6.js.map +1 -0
  110. package/dist/chunk-IP2QBAGS.js +589 -0
  111. package/dist/chunk-IP2QBAGS.js.map +1 -0
  112. package/dist/chunk-JK733I5V.js +23 -0
  113. package/dist/chunk-JK733I5V.js.map +1 -0
  114. package/dist/chunk-JOQ53DMI.js +255 -0
  115. package/dist/chunk-JOQ53DMI.js.map +1 -0
  116. package/dist/chunk-K62IUKOD.js +823 -0
  117. package/dist/chunk-K62IUKOD.js.map +1 -0
  118. package/dist/chunk-KPGX66PM.js +230 -0
  119. package/dist/chunk-KPZS5QAQ.js +151 -0
  120. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  121. package/dist/chunk-L2SNBIV7.js +453 -0
  122. package/dist/chunk-L2SNBIV7.js.map +1 -0
  123. package/dist/chunk-LP7BEXCT.js +32 -0
  124. package/dist/chunk-LP7BEXCT.js.map +1 -0
  125. package/dist/chunk-MCEKIAO4.js +367 -0
  126. package/dist/chunk-MELR46EF.js +280 -0
  127. package/dist/chunk-MELR46EF.js.map +1 -0
  128. package/dist/chunk-MSPNM2OM.js +95 -0
  129. package/dist/chunk-MSPNM2OM.js.map +1 -0
  130. package/dist/chunk-NO272T7Q.js +194 -0
  131. package/dist/chunk-NO272T7Q.js.map +1 -0
  132. package/dist/chunk-O2DYPAZY.js +23 -0
  133. package/dist/chunk-ODJWBC5I.js +30 -0
  134. package/dist/chunk-OEAATWH5.js +686 -0
  135. package/dist/chunk-OEAATWH5.js.map +1 -0
  136. package/dist/chunk-OFJ5GPNA.js +71 -0
  137. package/dist/chunk-OOLO4LQG.js +99 -0
  138. package/dist/chunk-OOLO4LQG.js.map +1 -0
  139. package/dist/chunk-P5RY4ZWD.js +662 -0
  140. package/dist/chunk-P5RY4ZWD.js.map +1 -0
  141. package/dist/chunk-PR5LC5YX.js +265 -0
  142. package/dist/chunk-PR5LC5YX.js.map +1 -0
  143. package/dist/chunk-PXWVF7MC.js +135 -0
  144. package/dist/chunk-Q3XSMOZM.js +40 -0
  145. package/dist/chunk-QLLKLFE2.js +94 -0
  146. package/dist/chunk-QLLKLFE2.js.map +1 -0
  147. package/dist/chunk-QQJXBZCO.js +1056 -0
  148. package/dist/chunk-QQJXBZCO.js.map +1 -0
  149. package/dist/chunk-QYPKGVT4.js +261 -0
  150. package/dist/chunk-QYPKGVT4.js.map +1 -0
  151. package/dist/chunk-RKRGDAS7.js +59 -0
  152. package/dist/chunk-SRVQHVNX.js +164 -0
  153. package/dist/chunk-SYMS4546.js +29 -0
  154. package/dist/chunk-SYMS4546.js.map +1 -0
  155. package/dist/chunk-THNJ3IKU.js +17 -0
  156. package/dist/chunk-THNJ3IKU.js.map +1 -0
  157. package/dist/chunk-TPH5EO6L.js +54 -0
  158. package/dist/chunk-TPH5EO6L.js.map +1 -0
  159. package/dist/chunk-UFILRICG.js +14 -0
  160. package/dist/chunk-UTLEAJXC.js +97 -0
  161. package/dist/chunk-VA4ZWLFY.js +123 -0
  162. package/dist/chunk-VR24ILCR.js +367 -0
  163. package/dist/chunk-VYYM3MEN.js +98 -0
  164. package/dist/chunk-VYYM3MEN.js.map +1 -0
  165. package/dist/chunk-W5D62AQD.js +944 -0
  166. package/dist/chunk-W5D62AQD.js.map +1 -0
  167. package/dist/chunk-WGV4CUZT.js +167 -0
  168. package/dist/chunk-WGV4CUZT.js.map +1 -0
  169. package/dist/chunk-WTUNZACT.js +30 -0
  170. package/dist/chunk-WTUNZACT.js.map +1 -0
  171. package/dist/chunk-X6CMGUAG.js +69 -0
  172. package/dist/chunk-X6CMGUAG.js.map +1 -0
  173. package/dist/chunk-XFXUTFWQ.js +85 -0
  174. package/dist/chunk-XFXUTFWQ.js.map +1 -0
  175. package/dist/chunk-XHV25KBM.js +30 -0
  176. package/dist/chunk-YSXEFGND.js +124 -0
  177. package/dist/chunk-YXOUQ2H7.js +36 -0
  178. package/dist/chunk-ZP5PL65C.js +80 -0
  179. package/dist/classified/index.js +40 -0
  180. package/dist/classified-marker-LQWWQNIJ.js +24 -0
  181. package/dist/classified-marker-LQWWQNIJ.js.map +1 -0
  182. package/dist/collection-facade-YE2O4J4O.js +39 -0
  183. package/dist/computed-W6MVAMWZ.js +11 -0
  184. package/dist/consent/index.js +10 -4
  185. package/dist/consent/index.js.map +1 -1
  186. package/dist/crdt/index.js +1 -1
  187. package/dist/dead-filter-4KXZEB3X.js +28 -0
  188. package/dist/dead-filter-4KXZEB3X.js.map +1 -0
  189. package/dist/delegation-OPUU3R2E.js +25 -0
  190. package/dist/derivations/index.js +13 -6
  191. package/dist/derive-BGUHU663.js +21 -0
  192. package/dist/enclave-VXAQD4XJ.js +135 -0
  193. package/dist/executor-GTVSUUBX.js +25 -0
  194. package/dist/executor-GZWMTOXB.js +9 -0
  195. package/dist/executor-XXGS4S3K.js +9 -0
  196. package/dist/export-accessible-BMULIOYB.js +23 -0
  197. package/dist/extract-partition-JUQTWDXR.js +36 -0
  198. package/dist/fanout-sidecar-CKYFH33E.js +74 -0
  199. package/dist/fanout-sidecar-CKYFH33E.js.map +1 -0
  200. package/dist/fence-watcher-DHQ775JB.js +69 -0
  201. package/dist/fence-watcher-DHQ775JB.js.map +1 -0
  202. package/dist/find-XRGCNGNN.js +11 -0
  203. package/dist/forget/index.js +11 -5
  204. package/dist/forget/index.js.map +1 -1
  205. package/dist/guards/index.js +4 -4
  206. package/dist/history/index.js +12 -6
  207. package/dist/history/index.js.map +1 -1
  208. package/dist/i18n/index.js +50 -31
  209. package/dist/i18n/index.js.map +1 -1
  210. package/dist/index.d.ts +303 -1400
  211. package/dist/index.js +1525 -184
  212. package/dist/index.js.map +1 -1
  213. package/dist/indexing/index.js +4 -4
  214. package/dist/issue-UB6AA5M6.js +19 -0
  215. package/dist/json-schema-I22JCYCG.js +44 -0
  216. package/dist/json-schema-I22JCYCG.js.map +1 -0
  217. package/dist/kernel/cache/index.d.ts +10 -0
  218. package/dist/kernel/cache/lru.d.ts +97 -0
  219. package/dist/kernel/cache/policy.d.ts +32 -0
  220. package/dist/kernel/collection-config.d.ts +781 -0
  221. package/dist/kernel/collection.d.ts +1505 -0
  222. package/dist/kernel/constants.d.ts +18 -0
  223. package/dist/kernel/debug.d.ts +25 -0
  224. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  225. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  226. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  227. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  228. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  229. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  230. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  231. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  232. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  233. package/dist/kernel/enclave/classify/verify.d.ts +33 -0
  234. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  235. package/dist/kernel/enclave/crypto.d.ts +263 -0
  236. package/dist/kernel/enclave/index.d.ts +78 -0
  237. package/dist/kernel/enclave/record-keys/deterministic.d.ts +54 -0
  238. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  239. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +57 -0
  240. package/dist/kernel/enclave/record-keys/record-codec.d.ts +301 -0
  241. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  242. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  243. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  244. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  245. package/dist/kernel/env-check.d.ts +1 -0
  246. package/dist/kernel/errors.d.ts +1848 -0
  247. package/dist/kernel/events.d.ts +11 -0
  248. package/dist/kernel/memory-store.d.ts +17 -0
  249. package/dist/kernel/mutation.d.ts +14 -0
  250. package/dist/kernel/noydb.d.ts +818 -0
  251. package/dist/kernel/paths.d.ts +25 -0
  252. package/dist/kernel/query/builder.d.ts +520 -0
  253. package/dist/kernel/query/index.d.ts +31 -0
  254. package/dist/kernel/query/join.d.ts +205 -0
  255. package/dist/kernel/query/live.d.ts +111 -0
  256. package/dist/kernel/query/predicate.d.ts +139 -0
  257. package/dist/kernel/query/scan-builder.d.ts +334 -0
  258. package/dist/kernel/refs.d.ts +205 -0
  259. package/dist/kernel/schema.d.ts +134 -0
  260. package/dist/kernel/sync-policy.d.ts +188 -0
  261. package/dist/kernel/types.d.ts +3147 -0
  262. package/dist/kernel/util/discriminant.d.ts +58 -0
  263. package/dist/kernel/util/index.d.ts +14 -0
  264. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  265. package/dist/kernel/validation.d.ts +130 -0
  266. package/dist/kernel/vault.d.ts +1723 -0
  267. package/dist/kernel/via/compose.d.ts +144 -0
  268. package/dist/kernel/via/dispatch.d.ts +185 -0
  269. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  270. package/dist/kernel/via/graph.d.ts +165 -0
  271. package/dist/kernel/via/index.d.ts +200 -0
  272. package/dist/kernel/via/pipeline.d.ts +266 -0
  273. package/dist/kernel/via/reconcile.d.ts +153 -0
  274. package/dist/kernel/via/taint-binding.d.ts +66 -0
  275. package/dist/kernel/write-queue.d.ts +46 -0
  276. package/dist/lazy/index.js +12 -0
  277. package/dist/ledger-FU6GH5EH.js +42 -0
  278. package/dist/legacy/bundle.d.ts +30 -0
  279. package/dist/legacy/kernel.d.ts +33 -0
  280. package/dist/liberate-YUN7W5QG.js +24 -0
  281. package/dist/link-set-MNADSH5M.js +31 -0
  282. package/dist/materialized-views/index.js +20 -10
  283. package/dist/noydb-6JLBZU4U.js +67 -0
  284. package/dist/on/index.js +10 -4
  285. package/dist/overlay-views/index.js +4 -4
  286. package/dist/periods/index.js +21 -7
  287. package/dist/pod/index.js +12 -6
  288. package/dist/policy-JTFOPPUU.js +41 -0
  289. package/dist/port/as/index.d.ts +26 -0
  290. package/dist/port/at/index.d.ts +18 -0
  291. package/dist/port/by/default-provider.d.ts +9 -0
  292. package/dist/port/by/index.d.ts +17 -0
  293. package/dist/port/by/types.d.ts +86 -0
  294. package/dist/port/in/index.d.ts +21 -0
  295. package/dist/port/on/index.d.ts +27 -0
  296. package/dist/port/to/index.d.ts +19 -0
  297. package/dist/port/ui/index.d.ts +21 -0
  298. package/dist/port/with/blob-strategy.d.ts +81 -0
  299. package/dist/port/with/broker-strategy.d.ts +84 -0
  300. package/dist/port/with/capabilities.d.ts +31 -0
  301. package/dist/port/with/classified-marker.d.ts +9 -0
  302. package/dist/port/with/classified-strategy.d.ts +62 -0
  303. package/dist/port/with/computed-strategy.d.ts +19 -0
  304. package/dist/port/with/i18n-strategy.d.ts +175 -0
  305. package/dist/port/with/index.d.ts +18 -0
  306. package/dist/port/with/lazy-strategy.d.ts +48 -0
  307. package/dist/port/with/lookup-strategy.d.ts +128 -0
  308. package/dist/port/with/service-bus.d.ts +156 -0
  309. package/dist/port/with/team-strategy.d.ts +36 -0
  310. package/dist/port/with/write-hooks.d.ts +34 -0
  311. package/dist/portability/index.js +8 -8
  312. package/dist/post-register-HAWO3O7O.js +55 -0
  313. package/dist/post-register-HAWO3O7O.js.map +1 -0
  314. package/dist/public-envelope-NJVB7LPA.js +32 -0
  315. package/dist/purge-scope-FGNNLWHD.js +24 -0
  316. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  317. package/dist/query/index.js +9 -6
  318. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  319. package/dist/register-VCKOBWKT.js +23 -0
  320. package/dist/registry-72UKJ2L4.js +9 -0
  321. package/dist/registry-BZFLJNEH.js +18 -0
  322. package/dist/registry-YJEYSYI5.js +19 -0
  323. package/dist/request-withdrawal-6MJRMFHF.js +31 -0
  324. package/dist/reveal-BOY7XYFH.js +38 -0
  325. package/dist/reveal-BOY7XYFH.js.map +1 -0
  326. package/dist/revoke-4KUNSVJC.js +24 -0
  327. package/dist/satellites/index.js +8 -0
  328. package/dist/sealed-record/index.js +13 -7
  329. package/dist/sealed-record/index.js.map +1 -1
  330. package/dist/seed-4RRXT42N.js +231 -0
  331. package/dist/seed-4RRXT42N.js.map +1 -0
  332. package/dist/session/index.js +10 -4
  333. package/dist/session/index.js.map +1 -1
  334. package/dist/shadow/index.js +2 -2
  335. package/dist/signer-DDDXP5JD.js +25 -0
  336. package/dist/signer-DDDXP5JD.js.map +1 -0
  337. package/dist/snapshots/index.js +11 -5
  338. package/dist/snapshots/index.js.map +1 -1
  339. package/dist/stale-NXPT56JA.js +14 -0
  340. package/dist/stale-NXPT56JA.js.map +1 -0
  341. package/dist/storage-IR6EEAV2.js +23 -0
  342. package/dist/storage-IR6EEAV2.js.map +1 -0
  343. package/dist/store-coordination-provider-HPYVFJCV.js +142 -0
  344. package/dist/sync/index.js +10 -4
  345. package/dist/sync/index.js.map +1 -1
  346. package/dist/team/index.js +25 -12
  347. package/dist/tiers/index.js +11 -5
  348. package/dist/to/index.js +1 -2
  349. package/dist/tx/index.js +3 -3
  350. package/dist/util/index.js +1 -1
  351. package/dist/verify-66RHOW7N.js +139 -0
  352. package/dist/verify-66RHOW7N.js.map +1 -0
  353. package/dist/via/blob/active.d.ts +34 -0
  354. package/dist/via/blob/binding.d.ts +86 -0
  355. package/dist/via/blob/index.d.ts +34 -0
  356. package/dist/via/classified/active.d.ts +3 -0
  357. package/dist/via/classified/binding.d.ts +83 -0
  358. package/dist/via/classified/config-drift.d.ts +34 -0
  359. package/dist/via/classified/descriptor.d.ts +66 -0
  360. package/dist/via/classified/errors.d.ts +19 -0
  361. package/dist/via/classified/guards.d.ts +23 -0
  362. package/dist/via/classified/index.d.ts +11 -0
  363. package/dist/via/classified/presets.d.ts +65 -0
  364. package/dist/via/classified/resolve.d.ts +9 -0
  365. package/dist/via/classified/strategy.d.ts +11 -0
  366. package/dist/via/classified/validators.d.ts +3 -0
  367. package/dist/via/classified/write.d.ts +4 -0
  368. package/dist/via/computed/binding.d.ts +34 -0
  369. package/dist/via/computed/descriptor.d.ts +35 -0
  370. package/dist/via/i18n/active.d.ts +28 -0
  371. package/dist/via/i18n/binding.d.ts +36 -0
  372. package/dist/via/i18n/core.d.ts +267 -0
  373. package/dist/via/i18n/densify.d.ts +24 -0
  374. package/dist/via/i18n/dictionary.d.ts +200 -0
  375. package/dist/via/i18n/index.d.ts +21 -0
  376. package/dist/via/i18n/policy.d.ts +44 -0
  377. package/dist/via/i18n/script.d.ts +26 -0
  378. package/dist/via/i18n/strategy.d.ts +13 -0
  379. package/dist/via/lookup/active.d.ts +19 -0
  380. package/dist/via/lookup/binding.d.ts +99 -0
  381. package/dist/via/lookup/descriptor.d.ts +123 -0
  382. package/dist/via/lookup/handle.d.ts +220 -0
  383. package/dist/via/lookup/index.d.ts +17 -0
  384. package/dist/via/lookup/registry.d.ts +219 -0
  385. package/dist/via/lookup/snapshot.d.ts +67 -0
  386. package/dist/via/money/arith.d.ts +68 -0
  387. package/dist/via/money/binding.d.ts +21 -0
  388. package/dist/via/money/branded.d.ts +61 -0
  389. package/dist/via/money/descriptor.d.ts +73 -0
  390. package/dist/via/money/fixed-point.d.ts +51 -0
  391. package/dist/via/money/index.d.ts +15 -0
  392. package/dist/via/money/iso4217.d.ts +6 -0
  393. package/dist/via/money/money-reducer.d.ts +33 -0
  394. package/dist/via/money/normalize.d.ts +105 -0
  395. package/dist/via/money/paths.d.ts +61 -0
  396. package/dist/via/money/where.d.ts +106 -0
  397. package/dist/walk-2RWEOCAS.js +241 -0
  398. package/dist/walk-2RWEOCAS.js.map +1 -0
  399. package/dist/with/index.js +12 -6
  400. package/dist/with-audit/attestation/active.d.ts +10 -0
  401. package/dist/with-audit/attestation/index.d.ts +16 -0
  402. package/dist/with-audit/attestation/issue.d.ts +29 -0
  403. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  404. package/dist/with-audit/attestation/signer.d.ts +33 -0
  405. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  406. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  407. package/dist/with-audit/consent/active.d.ts +14 -0
  408. package/dist/with-audit/consent/consent.d.ts +114 -0
  409. package/dist/with-audit/consent/index.d.ts +14 -0
  410. package/dist/with-audit/consent/strategy.d.ts +36 -0
  411. package/dist/with-audit/forget/active.d.ts +31 -0
  412. package/dist/with-audit/forget/index.d.ts +28 -0
  413. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  414. package/dist/with-audit/forget/strategy.d.ts +177 -0
  415. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  416. package/dist/with-audit/guards/executor.d.ts +26 -0
  417. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  418. package/dist/with-audit/guards/index.d.ts +10 -0
  419. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  420. package/dist/with-audit/guards/registry.d.ts +83 -0
  421. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  422. package/dist/with-audit/guards/types.d.ts +134 -0
  423. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  424. package/dist/with-audit/periods/active.d.ts +11 -0
  425. package/dist/with-audit/periods/index.d.ts +18 -0
  426. package/dist/with-audit/periods/periods.d.ts +417 -0
  427. package/dist/with-audit/periods/strategy.d.ts +32 -0
  428. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  429. package/dist/with-audit/portability/active.d.ts +11 -0
  430. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  431. package/dist/with-audit/portability/index.d.ts +18 -0
  432. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  433. package/dist/with-audit/portability/strategy.d.ts +31 -0
  434. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  435. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  436. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  437. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  438. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  439. package/dist/with-audit/tiers/active.d.ts +9 -0
  440. package/dist/with-audit/tiers/index.d.ts +122 -0
  441. package/dist/with-audit/tiers/strategy.d.ts +35 -0
  442. package/dist/with-cargo/active.d.ts +11 -0
  443. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  444. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  445. package/dist/with-cargo/describe-extraction.d.ts +33 -0
  446. package/dist/with-cargo/extract-partition.d.ts +147 -0
  447. package/dist/with-cargo/index.d.ts +33 -0
  448. package/dist/with-cargo/strategy.d.ts +30 -0
  449. package/dist/with-cargo/vault-diff.d.ts +144 -0
  450. package/dist/with-cargo/walk-closure.d.ts +38 -0
  451. package/dist/with-commit/crdt/active.d.ts +25 -0
  452. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  453. package/dist/with-commit/crdt/index.d.ts +16 -0
  454. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  455. package/dist/with-commit/history/active.d.ts +40 -0
  456. package/dist/with-commit/history/diff.d.ts +23 -0
  457. package/dist/with-commit/history/history.d.ts +27 -0
  458. package/dist/with-commit/history/index.d.ts +30 -0
  459. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  460. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  461. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  462. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  463. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  464. package/dist/with-commit/history/ledger/store.d.ts +335 -0
  465. package/dist/with-commit/history/strategy.d.ts +126 -0
  466. package/dist/with-commit/history/time-machine.d.ts +179 -0
  467. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  468. package/dist/with-commit/numbering/index.d.ts +69 -0
  469. package/dist/with-commit/sequence/active.d.ts +10 -0
  470. package/dist/with-commit/sequence/index.d.ts +150 -0
  471. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  472. package/dist/with-commit/tx/active.d.ts +27 -0
  473. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  474. package/dist/with-commit/tx/elevated-handle.d.ts +58 -0
  475. package/dist/with-commit/tx/index.d.ts +13 -0
  476. package/dist/with-commit/tx/invariants.d.ts +68 -0
  477. package/dist/with-commit/tx/strategy.d.ts +23 -0
  478. package/dist/with-commit/tx/transaction.d.ts +207 -0
  479. package/dist/with-fork/archive/engine.d.ts +71 -0
  480. package/dist/with-fork/archive/index.d.ts +23 -0
  481. package/dist/with-fork/shadow/active.d.ts +6 -0
  482. package/dist/with-fork/shadow/index.d.ts +14 -0
  483. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  484. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  485. package/dist/with-fork/snapshots/active.d.ts +20 -0
  486. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  487. package/dist/with-fork/snapshots/index.d.ts +5 -0
  488. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  489. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  490. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  491. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  492. package/dist/with-formula/computed/index.d.ts +48 -0
  493. package/dist/with-formula/computed/lazy.d.ts +13 -0
  494. package/dist/with-formula/derivations/executor.d.ts +61 -0
  495. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  496. package/dist/with-formula/derivations/index.d.ts +6 -0
  497. package/dist/with-formula/derivations/registry.d.ts +67 -0
  498. package/dist/with-formula/derivations/stale.d.ts +39 -0
  499. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  500. package/dist/with-formula/derivations/types.d.ts +248 -0
  501. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  502. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  503. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  504. package/dist/with-formula/materialized-views/executor.d.ts +71 -0
  505. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  506. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  507. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  508. package/dist/with-formula/materialized-views/stale.d.ts +62 -0
  509. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  510. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  511. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  512. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  513. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  514. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  515. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  516. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  517. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  518. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  519. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  520. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  521. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  522. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  523. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  524. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  525. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  526. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  527. package/dist/with-lookup/indexing/active.d.ts +30 -0
  528. package/dist/with-lookup/indexing/collection-facade.d.ts +120 -0
  529. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  530. package/dist/with-lookup/indexing/index.d.ts +27 -0
  531. package/dist/with-lookup/indexing/lazy-builder.d.ts +69 -0
  532. package/dist/with-lookup/indexing/persisted-indexes.d.ts +186 -0
  533. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  534. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  535. package/dist/with-lookup/search/active.d.ts +10 -0
  536. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  537. package/dist/with-lookup/search/collection-facade.d.ts +123 -0
  538. package/dist/with-lookup/search/fuse.d.ts +22 -0
  539. package/dist/with-lookup/search/index-store.d.ts +19 -0
  540. package/dist/with-lookup/search/index.d.ts +19 -0
  541. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  542. package/dist/with-lookup/search/persisted-index-store.d.ts +41 -0
  543. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  544. package/dist/with-lookup/search/scan.d.ts +28 -0
  545. package/dist/with-lookup/search/segment.d.ts +15 -0
  546. package/dist/with-lookup/search/serialize.d.ts +4 -0
  547. package/dist/with-lookup/search/snippet.d.ts +5 -0
  548. package/dist/with-lookup/search/strategy.d.ts +37 -0
  549. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  550. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  551. package/dist/with-party/broker/active.d.ts +23 -0
  552. package/dist/with-party/broker/index.d.ts +28 -0
  553. package/dist/with-party/broker/seed.d.ts +77 -0
  554. package/dist/with-party/custody/active.d.ts +10 -0
  555. package/dist/with-party/custody/index.d.ts +69 -0
  556. package/dist/with-party/custody/liberate.d.ts +64 -0
  557. package/dist/with-party/custody/strategy.d.ts +48 -0
  558. package/dist/with-party/directory/index.d.ts +11 -0
  559. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  560. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  561. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  562. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  563. package/dist/with-party/directory/storage.d.ts +33 -0
  564. package/dist/with-party/directory/types.d.ts +43 -0
  565. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  566. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  567. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  568. package/dist/with-party/directory/visibility.d.ts +47 -0
  569. package/dist/with-party/policy/engine.d.ts +60 -0
  570. package/dist/with-party/policy/index.d.ts +15 -0
  571. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  572. package/dist/with-party/policy/presets.d.ts +38 -0
  573. package/dist/with-party/policy/storage.d.ts +31 -0
  574. package/dist/with-party/session/active.d.ts +34 -0
  575. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  576. package/dist/with-party/session/index.d.ts +23 -0
  577. package/dist/with-party/session/session-policy.d.ts +92 -0
  578. package/dist/with-party/session/session.d.ts +131 -0
  579. package/dist/with-party/session/strategy.d.ts +42 -0
  580. package/dist/with-party/session/unlock-state.d.ts +47 -0
  581. package/dist/with-party/sync/index.d.ts +31 -0
  582. package/dist/with-party/tab-coordination.d.ts +73 -0
  583. package/dist/with-party/tab-write-relay.d.ts +39 -0
  584. package/dist/with-party/team/active.d.ts +13 -0
  585. package/dist/with-party/team/authenticators.d.ts +95 -0
  586. package/dist/with-party/team/deed.d.ts +97 -0
  587. package/dist/with-party/team/delegation.d.ts +88 -0
  588. package/dist/with-party/team/index.d.ts +38 -0
  589. package/dist/with-party/team/keyring.d.ts +318 -0
  590. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  591. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  592. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  593. package/dist/with-party/team/peer-recover.d.ts +81 -0
  594. package/dist/with-party/team/presence.d.ts +81 -0
  595. package/dist/with-party/team/recovery.d.ts +191 -0
  596. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  597. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  598. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  599. package/dist/with-party/team/strategy.d.ts +9 -0
  600. package/dist/with-party/team/sync-active.d.ts +33 -0
  601. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  602. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  603. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  604. package/dist/with-party/team/sync.d.ts +165 -0
  605. package/dist/with-party/team/tiers.d.ts +39 -0
  606. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  607. package/dist/with-pod/backup.d.ts +74 -0
  608. package/dist/with-pod/bundle.d.ts +414 -0
  609. package/dist/with-pod/format.d.ts +203 -0
  610. package/dist/with-pod/index.d.ts +20 -0
  611. package/dist/with-pod/pod-store.d.ts +54 -0
  612. package/dist/with-pod/ulid.d.ts +64 -0
  613. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  614. package/dist/with-shape/blobs/blob-set.d.ts +342 -0
  615. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  616. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  617. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  618. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  619. package/dist/with-shape/introspection/describe.d.ts +237 -0
  620. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  621. package/dist/with-shape/introspection/fields.d.ts +14 -0
  622. package/dist/with-shape/introspection/index.d.ts +12 -0
  623. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  624. package/dist/with-shape/introspection/meta.d.ts +22 -0
  625. package/dist/with-shape/introspection/projection.d.ts +13 -0
  626. package/dist/with-shape/introspection/types.d.ts +154 -0
  627. package/dist/with-shape/introspection/walk.d.ts +50 -0
  628. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  629. package/dist/with-shape/links/link-set.d.ts +67 -0
  630. package/dist/with-shape/links/names.d.ts +65 -0
  631. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  632. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  633. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  634. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  635. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  636. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  637. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  638. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  639. package/dist/with-shape/satellites/declare.d.ts +60 -0
  640. package/dist/with-shape/satellites/existence.d.ts +5 -0
  641. package/dist/with-shape/satellites/fanout.d.ts +37 -0
  642. package/dist/with-shape/satellites/forget.d.ts +47 -0
  643. package/dist/with-shape/satellites/index.d.ts +3 -0
  644. package/dist/with-shape/satellites/joined.d.ts +19 -0
  645. package/dist/with-shape/satellites/marker.d.ts +10 -0
  646. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  647. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  648. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  649. package/dist/with-shape/satellites/registry.d.ts +19 -0
  650. package/dist/with-shape/satellites/types.d.ts +26 -0
  651. package/dist/with-shape/satellites/validate.d.ts +17 -0
  652. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  653. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  654. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  655. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  656. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  657. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  658. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  659. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  660. package/dist/with-shape/schema-update/index.d.ts +6 -0
  661. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  662. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  663. package/dist/with-shape/schema-update/types.d.ts +53 -0
  664. package/dist/with-store/index.d.ts +15 -0
  665. package/dist/with-store/lazy/active.d.ts +12 -0
  666. package/dist/with-store/lazy/index.d.ts +14 -0
  667. package/dist/with-store/lazy/strategy.d.ts +9 -0
  668. package/dist/with-store/route-store.d.ts +259 -0
  669. package/dist/with-store/store-middleware.d.ts +189 -0
  670. package/dist/withdraw-accessible-CLMZEHQT.js +28 -0
  671. package/dist/withdraw-accessible-CLMZEHQT.js.map +1 -0
  672. package/package.json +56 -52
  673. package/dist/adapter/index.d.ts +0 -5
  674. package/dist/adapter/index.js +0 -15
  675. package/dist/aggregate/index.d.ts +0 -42
  676. package/dist/api-RW3KP7WU.js +0 -14
  677. package/dist/as/index.d.ts +0 -7
  678. package/dist/at/index.d.ts +0 -5
  679. package/dist/attestation/index.d.ts +0 -20
  680. package/dist/backup-XV3IOEGB.js +0 -217
  681. package/dist/backup-XV3IOEGB.js.map +0 -1
  682. package/dist/blobs/index.d.ts +0 -44
  683. package/dist/bundle/index.d.ts +0 -122
  684. package/dist/bundle-CH-H06dp.d.ts +0 -548
  685. package/dist/by/index.d.ts +0 -1
  686. package/dist/cargo/index.d.ts +0 -9
  687. package/dist/chunk-26LGBE4T.js +0 -42
  688. package/dist/chunk-26LGBE4T.js.map +0 -1
  689. package/dist/chunk-2P2HZEXU.js +0 -233
  690. package/dist/chunk-2P2HZEXU.js.map +0 -1
  691. package/dist/chunk-3YFXJ3ZP.js +0 -97
  692. package/dist/chunk-5LUY7UTV.js +0 -380
  693. package/dist/chunk-5LUY7UTV.js.map +0 -1
  694. package/dist/chunk-5N6CZTCY.js +0 -367
  695. package/dist/chunk-5O3AOPDT.js +0 -992
  696. package/dist/chunk-5O3AOPDT.js.map +0 -1
  697. package/dist/chunk-5R3ERCDH.js +0 -239
  698. package/dist/chunk-5R3ERCDH.js.map +0 -1
  699. package/dist/chunk-5R5JW2JT.js +0 -12502
  700. package/dist/chunk-5R5JW2JT.js.map +0 -1
  701. package/dist/chunk-5TDJ56JE.js +0 -32
  702. package/dist/chunk-5TDJ56JE.js.map +0 -1
  703. package/dist/chunk-62QYRORB.js +0 -320
  704. package/dist/chunk-62QYRORB.js.map +0 -1
  705. package/dist/chunk-6S7T6WC4.js +0 -111
  706. package/dist/chunk-6S7T6WC4.js.map +0 -1
  707. package/dist/chunk-76722EBH.js +0 -451
  708. package/dist/chunk-76722EBH.js.map +0 -1
  709. package/dist/chunk-AIWULCUO.js +0 -68
  710. package/dist/chunk-AIWULCUO.js.map +0 -1
  711. package/dist/chunk-AQTBSL7R.js +0 -181
  712. package/dist/chunk-AQTBSL7R.js.map +0 -1
  713. package/dist/chunk-AXRXJTE2.js +0 -59
  714. package/dist/chunk-AZAOEIKW.js +0 -155
  715. package/dist/chunk-BG3SPSR4.js +0 -53
  716. package/dist/chunk-BG3SPSR4.js.map +0 -1
  717. package/dist/chunk-BGIZAFY7.js +0 -1
  718. package/dist/chunk-CMGR4ZEW.js +0 -209
  719. package/dist/chunk-CWPPNPOH.js +0 -23
  720. package/dist/chunk-DFEMTNPJ.js +0 -1219
  721. package/dist/chunk-DFEMTNPJ.js.map +0 -1
  722. package/dist/chunk-DGDI2D4M.js +0 -79
  723. package/dist/chunk-DGDI2D4M.js.map +0 -1
  724. package/dist/chunk-EIZUR2XW.js +0 -36
  725. package/dist/chunk-FISN7WE4.js +0 -798
  726. package/dist/chunk-FISN7WE4.js.map +0 -1
  727. package/dist/chunk-GYGWYIOZ.js +0 -200
  728. package/dist/chunk-GYGWYIOZ.js.map +0 -1
  729. package/dist/chunk-HCIPRAGS.js +0 -45
  730. package/dist/chunk-I2NOIW44.js +0 -83
  731. package/dist/chunk-I2NOIW44.js.map +0 -1
  732. package/dist/chunk-I3TIKTJO.js +0 -132
  733. package/dist/chunk-I3TIKTJO.js.map +0 -1
  734. package/dist/chunk-IAGBDSCS.js +0 -40
  735. package/dist/chunk-IELYAOGG.js +0 -78
  736. package/dist/chunk-IELYAOGG.js.map +0 -1
  737. package/dist/chunk-IGUYVGGI.js +0 -205
  738. package/dist/chunk-IO6GRPT6.js +0 -34
  739. package/dist/chunk-IPB7FTQX.js +0 -273
  740. package/dist/chunk-IPB7FTQX.js.map +0 -1
  741. package/dist/chunk-ITNUCOXM.js +0 -148
  742. package/dist/chunk-ITNUCOXM.js.map +0 -1
  743. package/dist/chunk-IUEN57TV.js +0 -722
  744. package/dist/chunk-IUEN57TV.js.map +0 -1
  745. package/dist/chunk-JNUWZ6D3.js +0 -57
  746. package/dist/chunk-JNUWZ6D3.js.map +0 -1
  747. package/dist/chunk-K2WCO3NX.js +0 -1
  748. package/dist/chunk-KVOXU4T5.js +0 -30
  749. package/dist/chunk-KXGNJJXB.js +0 -135
  750. package/dist/chunk-LFLXAY2W.js +0 -414
  751. package/dist/chunk-LFLXAY2W.js.map +0 -1
  752. package/dist/chunk-LMTH2RM6.js +0 -129
  753. package/dist/chunk-LV7M27WM.js +0 -702
  754. package/dist/chunk-LV7M27WM.js.map +0 -1
  755. package/dist/chunk-LXQT4WMP.js +0 -684
  756. package/dist/chunk-LXQT4WMP.js.map +0 -1
  757. package/dist/chunk-M2YKN37S.js +0 -524
  758. package/dist/chunk-M2YKN37S.js.map +0 -1
  759. package/dist/chunk-M6OST55S.js +0 -14
  760. package/dist/chunk-MD3Y6J3L.js +0 -278
  761. package/dist/chunk-MD3Y6J3L.js.map +0 -1
  762. package/dist/chunk-MTMJVJ5W.js +0 -73
  763. package/dist/chunk-MTMJVJ5W.js.map +0 -1
  764. package/dist/chunk-NF5JWERG.js +0 -74
  765. package/dist/chunk-PKHL44ER.js +0 -124
  766. package/dist/chunk-PSMV73A5.js +0 -117
  767. package/dist/chunk-Q7SS3IME.js +0 -120
  768. package/dist/chunk-Q7SS3IME.js.map +0 -1
  769. package/dist/chunk-QHJW5EXU.js +0 -54
  770. package/dist/chunk-RUEKROOS.js +0 -80
  771. package/dist/chunk-RUIMKQTA.js +0 -23
  772. package/dist/chunk-RUIMKQTA.js.map +0 -1
  773. package/dist/chunk-SKF73JOP.js +0 -355
  774. package/dist/chunk-SM3AVUHC.js +0 -42
  775. package/dist/chunk-SMXWYP24.js +0 -155
  776. package/dist/chunk-SRB2XEWB.js +0 -148
  777. package/dist/chunk-SRB2XEWB.js.map +0 -1
  778. package/dist/chunk-TA66UMI4.js +0 -123
  779. package/dist/chunk-TEILUWOI.js +0 -664
  780. package/dist/chunk-TEILUWOI.js.map +0 -1
  781. package/dist/chunk-TJYQIGAP.js +0 -82
  782. package/dist/chunk-TJYQIGAP.js.map +0 -1
  783. package/dist/chunk-UAG5KWVA.js +0 -367
  784. package/dist/chunk-UDRIWL7A.js +0 -382
  785. package/dist/chunk-UIU2THRG.js +0 -1937
  786. package/dist/chunk-UIU2THRG.js.map +0 -1
  787. package/dist/chunk-UPJNJGGA.js +0 -572
  788. package/dist/chunk-UPJNJGGA.js.map +0 -1
  789. package/dist/chunk-UV5MFVO3.js +0 -21
  790. package/dist/chunk-V7RWQRG7.js +0 -430
  791. package/dist/chunk-VCTFO5CO.js +0 -71
  792. package/dist/chunk-VFQGRQIH.js +0 -97
  793. package/dist/chunk-VFQGRQIH.js.map +0 -1
  794. package/dist/chunk-WWGT2MDV.js +0 -762
  795. package/dist/chunk-WWGT2MDV.js.map +0 -1
  796. package/dist/chunk-WYSO2NIH.js +0 -30
  797. package/dist/chunk-XXYIOFUB.js +0 -164
  798. package/dist/chunk-Y22T3KQE.js +0 -261
  799. package/dist/chunk-Y22T3KQE.js.map +0 -1
  800. package/dist/chunk-ZCGAHGUS.js +0 -230
  801. package/dist/chunk-ZYUC53LT.js +0 -1370
  802. package/dist/chunk-ZYUC53LT.js.map +0 -1
  803. package/dist/collection-facade-GQAOGJP2.js +0 -33
  804. package/dist/consent/index.d.ts +0 -23
  805. package/dist/crdt/index.d.ts +0 -34
  806. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  807. package/dist/delegation-UL5HKLER.js +0 -19
  808. package/dist/derivations/index.d.ts +0 -70
  809. package/dist/describe/index.d.ts +0 -1
  810. package/dist/describe/index.js +0 -1
  811. package/dist/describe-aBkJR2sd.d.ts +0 -131
  812. package/dist/dev-unlock-C9Ro3v_O.d.ts +0 -263
  813. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  814. package/dist/enclave-UL5LW66V.js +0 -88
  815. package/dist/executor-2FWQRLMG.js +0 -15
  816. package/dist/executor-QZ7BXICW.js +0 -9
  817. package/dist/executor-Z5ZLJVTV.js +0 -9
  818. package/dist/export-accessible-KRV5W4GH.js +0 -17
  819. package/dist/extract-partition-GLKBOXFQ.js +0 -30
  820. package/dist/fanout-sidecar-GF3DJ6KR.js +0 -71
  821. package/dist/fanout-sidecar-GF3DJ6KR.js.map +0 -1
  822. package/dist/forget/index.d.ts +0 -36
  823. package/dist/guards/index.d.ts +0 -35
  824. package/dist/hash-Cp5uwiox.d.ts +0 -67
  825. package/dist/history/index.d.ts +0 -61
  826. package/dist/i18n/index.d.ts +0 -37
  827. package/dist/in/index.d.ts +0 -5
  828. package/dist/index-B9QdHytu.d.ts +0 -123
  829. package/dist/index-BF9_96A5.d.ts +0 -123
  830. package/dist/index-BzUo1B6n.d.ts +0 -20730
  831. package/dist/indexing/index.d.ts +0 -39
  832. package/dist/issue-Y6UVIR43.js +0 -13
  833. package/dist/kernel/index.d.ts +0 -32
  834. package/dist/kernel/index.js +0 -53
  835. package/dist/ledger-RYI35CDS.js +0 -36
  836. package/dist/liberate-CRPZEV7O.js +0 -18
  837. package/dist/materialized-views/index.d.ts +0 -173
  838. package/dist/mime-magic-CGhw37_E.d.ts +0 -103
  839. package/dist/noydb-367AM4HT.js +0 -50
  840. package/dist/on/index.d.ts +0 -5
  841. package/dist/overlay-views/index.d.ts +0 -98
  842. package/dist/periods/index.d.ts +0 -20
  843. package/dist/pod/index.d.ts +0 -63
  844. package/dist/policy-IXK4FVXP.js +0 -41
  845. package/dist/portability/index.d.ts +0 -20
  846. package/dist/public-envelope-JHDQCPSX.js +0 -32
  847. package/dist/query/index.d.ts +0 -5
  848. package/dist/read-only-facade-5ADRJVTM.js +0 -8
  849. package/dist/registry-45RJNWGU.js +0 -9
  850. package/dist/registry-5GRV5VXI.js +0 -13
  851. package/dist/registry-WEUCHBO4.js +0 -11
  852. package/dist/request-withdrawal-GBPH2FDY.js +0 -25
  853. package/dist/revoke-TUFRGI6S.js +0 -18
  854. package/dist/sealed-record/index.d.ts +0 -69
  855. package/dist/session/index.d.ts +0 -44
  856. package/dist/shadow/index.d.ts +0 -15
  857. package/dist/signer-PNKTBVF7.js +0 -19
  858. package/dist/snapshots/index.d.ts +0 -26
  859. package/dist/stale-3JWHNDIY.js +0 -14
  860. package/dist/store-coordination-provider-3I7XWZZK.js +0 -142
  861. package/dist/subject-index-O75wKshW.d.ts +0 -362
  862. package/dist/sync/index.d.ts +0 -41
  863. package/dist/team/index.d.ts +0 -116
  864. package/dist/tiers/index.d.ts +0 -5
  865. package/dist/to/index.d.ts +0 -5
  866. package/dist/transition-guard-C7ol6oPw.d.ts +0 -165
  867. package/dist/tx/index.d.ts +0 -35
  868. package/dist/ui/index.d.ts +0 -1
  869. package/dist/ulid-DRH25k3y.d.ts +0 -66
  870. package/dist/util/index.d.ts +0 -79
  871. package/dist/vault-diff-B5fYNBL7.d.ts +0 -147
  872. package/dist/with/index.d.ts +0 -38
  873. package/dist/with-materialized-view-6p0Fk8bL.d.ts +0 -27
  874. package/dist/with-overlayed-view-BJ6mXGMd.d.ts +0 -12
  875. package/dist/with-rollup-BvQo3ROo.d.ts +0 -47
  876. package/dist/withdraw-accessible-FFS46EOD.js +0 -22
  877. /package/dist/{adapter/index.js.map → api-YGMINAET.js.map} +0 -0
  878. /package/dist/{chunk-V7RWQRG7.js.map → chunk-3CNQ7FQ3.js.map} +0 -0
  879. /package/dist/{chunk-NF5JWERG.js.map → chunk-3MSQLQNZ.js.map} +0 -0
  880. /package/dist/{chunk-IO6GRPT6.js.map → chunk-4R4Q64W5.js.map} +0 -0
  881. /package/dist/{chunk-SMXWYP24.js.map → chunk-5XIPOCQC.js.map} +0 -0
  882. /package/dist/{chunk-IGUYVGGI.js.map → chunk-6QILBDZU.js.map} +0 -0
  883. /package/dist/{chunk-AZAOEIKW.js.map → chunk-7E67FJ33.js.map} +0 -0
  884. /package/dist/{chunk-PSMV73A5.js.map → chunk-7NS43EXZ.js.map} +0 -0
  885. /package/dist/{chunk-CMGR4ZEW.js.map → chunk-A2Y6YFVN.js.map} +0 -0
  886. /package/dist/{chunk-HCIPRAGS.js.map → chunk-BCYQA5BK.js.map} +0 -0
  887. /package/dist/{chunk-LMTH2RM6.js.map → chunk-CB25ONKC.js.map} +0 -0
  888. /package/dist/{chunk-UV5MFVO3.js.map → chunk-CIKY6I4W.js.map} +0 -0
  889. /package/dist/{chunk-QHJW5EXU.js.map → chunk-D26JB3LZ.js.map} +0 -0
  890. /package/dist/{chunk-SM3AVUHC.js.map → chunk-DIRRS7WP.js.map} +0 -0
  891. /package/dist/{chunk-SKF73JOP.js.map → chunk-H44ZE4IE.js.map} +0 -0
  892. /package/dist/{chunk-UDRIWL7A.js.map → chunk-HFJIGWJC.js.map} +0 -0
  893. /package/dist/{chunk-ZCGAHGUS.js.map → chunk-KPGX66PM.js.map} +0 -0
  894. /package/dist/{chunk-5N6CZTCY.js.map → chunk-MCEKIAO4.js.map} +0 -0
  895. /package/dist/{chunk-CWPPNPOH.js.map → chunk-O2DYPAZY.js.map} +0 -0
  896. /package/dist/{chunk-KVOXU4T5.js.map → chunk-ODJWBC5I.js.map} +0 -0
  897. /package/dist/{chunk-VCTFO5CO.js.map → chunk-OFJ5GPNA.js.map} +0 -0
  898. /package/dist/{chunk-KXGNJJXB.js.map → chunk-PXWVF7MC.js.map} +0 -0
  899. /package/dist/{chunk-IAGBDSCS.js.map → chunk-Q3XSMOZM.js.map} +0 -0
  900. /package/dist/{chunk-AXRXJTE2.js.map → chunk-RKRGDAS7.js.map} +0 -0
  901. /package/dist/{chunk-XXYIOFUB.js.map → chunk-SRVQHVNX.js.map} +0 -0
  902. /package/dist/{chunk-M6OST55S.js.map → chunk-UFILRICG.js.map} +0 -0
  903. /package/dist/{chunk-3YFXJ3ZP.js.map → chunk-UTLEAJXC.js.map} +0 -0
  904. /package/dist/{chunk-TA66UMI4.js.map → chunk-VA4ZWLFY.js.map} +0 -0
  905. /package/dist/{chunk-UAG5KWVA.js.map → chunk-VR24ILCR.js.map} +0 -0
  906. /package/dist/{chunk-WYSO2NIH.js.map → chunk-XHV25KBM.js.map} +0 -0
  907. /package/dist/{chunk-PKHL44ER.js.map → chunk-YSXEFGND.js.map} +0 -0
  908. /package/dist/{chunk-EIZUR2XW.js.map → chunk-YXOUQ2H7.js.map} +0 -0
  909. /package/dist/{chunk-RUEKROOS.js.map → chunk-ZP5PL65C.js.map} +0 -0
  910. /package/dist/{describe → classified}/index.js.map +0 -0
  911. /package/dist/{api-RW3KP7WU.js.map → collection-facade-YE2O4J4O.js.map} +0 -0
  912. /package/dist/{chunk-BGIZAFY7.js.map → computed-W6MVAMWZ.js.map} +0 -0
  913. /package/dist/{chunk-K2WCO3NX.js.map → delegation-OPUU3R2E.js.map} +0 -0
  914. /package/dist/{collection-facade-GQAOGJP2.js.map → derive-BGUHU663.js.map} +0 -0
  915. /package/dist/{delegation-UL5HKLER.js.map → enclave-VXAQD4XJ.js.map} +0 -0
  916. /package/dist/{enclave-UL5LW66V.js.map → executor-GTVSUUBX.js.map} +0 -0
  917. /package/dist/{executor-2FWQRLMG.js.map → executor-GZWMTOXB.js.map} +0 -0
  918. /package/dist/{executor-QZ7BXICW.js.map → executor-XXGS4S3K.js.map} +0 -0
  919. /package/dist/{executor-Z5ZLJVTV.js.map → export-accessible-BMULIOYB.js.map} +0 -0
  920. /package/dist/{export-accessible-KRV5W4GH.js.map → extract-partition-JUQTWDXR.js.map} +0 -0
  921. /package/dist/{extract-partition-GLKBOXFQ.js.map → find-XRGCNGNN.js.map} +0 -0
  922. /package/dist/{issue-Y6UVIR43.js.map → issue-UB6AA5M6.js.map} +0 -0
  923. /package/dist/{kernel → lazy}/index.js.map +0 -0
  924. /package/dist/{ledger-RYI35CDS.js.map → ledger-FU6GH5EH.js.map} +0 -0
  925. /package/dist/{liberate-CRPZEV7O.js.map → liberate-YUN7W5QG.js.map} +0 -0
  926. /package/dist/{noydb-367AM4HT.js.map → link-set-MNADSH5M.js.map} +0 -0
  927. /package/dist/{policy-IXK4FVXP.js.map → noydb-6JLBZU4U.js.map} +0 -0
  928. /package/dist/{public-envelope-JHDQCPSX.js.map → policy-JTFOPPUU.js.map} +0 -0
  929. /package/dist/{read-only-facade-5ADRJVTM.js.map → public-envelope-NJVB7LPA.js.map} +0 -0
  930. /package/dist/{registry-45RJNWGU.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  931. /package/dist/{registry-5GRV5VXI.js.map → register-VCKOBWKT.js.map} +0 -0
  932. /package/dist/{registry-WEUCHBO4.js.map → registry-72UKJ2L4.js.map} +0 -0
  933. /package/dist/{request-withdrawal-GBPH2FDY.js.map → registry-BZFLJNEH.js.map} +0 -0
  934. /package/dist/{revoke-TUFRGI6S.js.map → registry-YJEYSYI5.js.map} +0 -0
  935. /package/dist/{signer-PNKTBVF7.js.map → request-withdrawal-6MJRMFHF.js.map} +0 -0
  936. /package/dist/{stale-3JWHNDIY.js.map → revoke-4KUNSVJC.js.map} +0 -0
  937. /package/dist/{withdraw-accessible-FFS46EOD.js.map → satellites/index.js.map} +0 -0
  938. /package/dist/{store-coordination-provider-3I7XWZZK.js.map → store-coordination-provider-HPYVFJCV.js.map} +0 -0
@@ -0,0 +1,58 @@
1
+ import type { Query } from '../../kernel/query/builder.js';
2
+ import type { MaterializedViewStrategy } from './types.js';
3
+ /**
4
+ * Walks a `Query<T>` plan and returns the set of source collection
5
+ * names that any source-write should trigger a refresh on.
6
+ *
7
+ * Handles:
8
+ * - root collection (the one the query was built from)
9
+ * - FK join targets (`.join(field, { as })`)
10
+ *
11
+ * Also handles:
12
+ * - cross-join targets (`.crossJoin(target, { as })`) — v3
13
+ *
14
+ * Deferred:
15
+ * - `.wherePredicate(name)` — v2 predicate primitive
16
+ * - Overlay-name expansion to {base, overlay}
17
+ *
18
+ * The set is materialized at MV registration time. The MV registry
19
+ * uses it to (a) dispatch `onSourceWrite` only to MVs that actually
20
+ * care, and (b) contribute edges to the shared cycle-detection graph.
21
+ */
22
+ export declare function analyzeDependencies(query: Query<any>): Set<string>;
23
+ /**
24
+ * Convenience: produce a stable string summary of the query plan
25
+ * suitable for `queryHash` derivation. Captures everything the
26
+ * dependency analyzer reads + the where/orderBy/limit/offset
27
+ * structure that affects materialized rows.
28
+ *
29
+ * `joinContext` is intentionally NOT included — the join-resolution
30
+ * function references would defeat hash determinism. The set of join
31
+ * TARGETS (collection names) IS included via the plan.joins legs.
32
+ */
33
+ export declare function summarizeQueryPlan(query: Query<any>): string;
34
+ /**
35
+ * Canonical string description of a UNION MV's plan, used as input to
36
+ * `computeQueryHash`.
37
+ *
38
+ * Asymmetry note:
39
+ * - Arm collection names are NOT sorted. Declaration order is
40
+ * semantically meaningful for the dedup-only UNION path —
41
+ * `materializeUnionResult` iterates `spec.unionSources` in
42
+ * declaration order and keeps the first-seen row per composite key
43
+ * (tie-break precedence). If we sorted arms here, a consumer who
44
+ * reordered `unionSources` to change precedence would compute the
45
+ * same `queryHash`, refresh would be a no-op, and stale MV rows
46
+ * would persist. Hashing in declaration order makes any reorder
47
+ * trigger a refresh.
48
+ * - `groupBy` fields ARE sorted. Multi-key groupBy buckets are
49
+ * commutative (`canonicalGroupKey` produces the same composite key
50
+ * regardless of field order in the input spec).
51
+ * - `aggregate` keys ARE sorted. Reducer-spec keys are independent
52
+ * of each other — order of declaration doesn't change output.
53
+ *
54
+ * Per-arm `map` functions are NOT fingerprinted; consumers must bump
55
+ * the MV's `name` (or rely on application-level cache busting) when
56
+ * `map` semantics change non-equivalently.
57
+ */
58
+ export declare function summarizeUnionPlan<T extends Record<string, unknown>>(spec: MaterializedViewStrategy<T>): string;
@@ -0,0 +1,71 @@
1
+ import type { Collection } from '../../kernel/collection.js';
2
+ import type { TxContext } from '../../with-commit/tx/transaction.js';
3
+ import type { MVQueryContext } from './types.js';
4
+ import type { RegisteredMV } from './registry.js';
5
+ import { type PutDerivedOutputCtx } from '../../kernel/via/dispatch.js';
6
+ /**
7
+ * Accessor shape passed in from the owning Vault. Mirrors v1's
8
+ * `DerivationStaleAccessor` — provides the per-collection resolver
9
+ * and the active TxContext so refresh writes/tombstones register on
10
+ * `_executed` for rollback symmetry.
11
+ */
12
+ export interface MVExecutorAccessor {
13
+ getCollection(name: string): Collection<any>;
14
+ getActiveTxContext(): TxContext | null;
15
+ /**
16
+ * Vault-shaped accessor passed to the MV's `query()` callback at
17
+ * each refresh. Same instance the registry used at registration
18
+ * time; threading through the executor lets the refresh path
19
+ * re-evaluate the closure against the live vault state.
20
+ */
21
+ getQueryContext(): MVQueryContext;
22
+ /**
23
+ * #638 Task 5 — ctx for `putDerivedOutput`'s frozen-period skip+audit. #641: the lazy
24
+ * resolve-on-read caller (`stale.ts#resolveStaleMVOnRead`) now supplies one too — built at
25
+ * the `Collection.get()`/`list()` entry point with a `'resolve-on-read'` sentinel id (no
26
+ * real "reacting write" for a read-triggered materialize, mirroring `refreshView()`'s
27
+ * `'refreshView'` sentinel). Still declared optional here since `MVExecutorAccessor` is a
28
+ * general shape and a future caller could reasonably omit it.
29
+ */
30
+ dispatchCtx?: PutDerivedOutputCtx;
31
+ }
32
+ export interface RefreshResult {
33
+ /** Rows newly written / overwritten. */
34
+ written: number;
35
+ /** Rows tombstoned via `_internalDelete` (only when `onEmpty: 'delete'`). */
36
+ deleted: number;
37
+ /** Failed row writes (non-strict mode). */
38
+ failed: number;
39
+ }
40
+ /**
41
+ * Run an MV's `query()` and write the result rows to the output
42
+ * collection. Same-DEK encryption: routes through the standard
43
+ * `Collection.put` pipeline, so the output collection's DEK is what
44
+ * gets used (matches the v2 spec's "same DEK as the left-most source"
45
+ * invariant — `Collection.put` looks up the DEK by collection name,
46
+ * and the output collection IS the MV's owned collection).
47
+ *
48
+ * Stamps `_materializedFrom` onto every emitted row.
49
+ *
50
+ * **Tombstoning:** when `spec.onEmpty: 'delete'` (default), rows
51
+ * that existed in a prior refresh but no longer appear in the new
52
+ * materialized result are deleted via `Collection._internalDelete` —
53
+ * the housekeeping bypass primitive prevents user
54
+ * `onDelete` guards on the output collection from firing on these
55
+ * system-internal deletes. `onEmpty: 'keep'` opts out (rows from
56
+ * prior refreshes linger even when the new result lacks them).
57
+ *
58
+ * **Cost ceiling:** if the materialized row count exceeds
59
+ * `spec.maxRows` (default 100k), throws `MaterializedViewTooLargeError`
60
+ * before any writes hit the store — so strict-mode rollback is
61
+ * clean.
62
+ *
63
+ * **Strict mode:** `spec.strict === true` re-throws on any
64
+ * row-write failure; the active TxContext registration means the
65
+ * source-write rolls back atomically via `revertExecuted`.
66
+ *
67
+ * @internal
68
+ */
69
+ export declare const MaterializedViewExecutor: {
70
+ refresh(reg: RegisteredMV, accessor: MVExecutorAccessor): Promise<RefreshResult>;
71
+ };
@@ -0,0 +1,11 @@
1
+ export { withMaterializedView } from './with-materialized-view.js';
2
+ export { MaterializedViewRegistry } from './registry.js';
3
+ export { MaterializedViewExecutor } from './executor.js';
4
+ export { analyzeDependencies, summarizeQueryPlan } from './dependency-analyzer.js';
5
+ export { computeQueryHash, canonicalizeQueryPlan } from './query-hash.js';
6
+ export { markMVStale, resolveStaleMVOnRead, isMVStale, clearMVStale } from './stale.js';
7
+ export type { MVStaleAccessor } from './stale.js';
8
+ export type { MaterializedViewStrategy, MaterializedViewStrategyHandle, MaterializedViewOutput, MaterializedFromMeta, UnionSource, UnionArmJoin, } from './types.js';
9
+ export type { RegisteredMV } from './registry.js';
10
+ export type { MVExecutorAccessor, RefreshResult } from './executor.js';
11
+ export { MaterializedViewCycleError, MaterializedViewConfigError, MaterializedViewSourceUnknownError, MaterializedViewTooLargeError, } from '../../kernel/errors.js';
@@ -0,0 +1,23 @@
1
+ export declare function computeQueryHash(mvName: string,
2
+ /**
3
+ * Source-collection set the query depends on. Sorted before
4
+ * canonicalization so set iteration order doesn't affect the hash.
5
+ */
6
+ dependencies: ReadonlySet<string>,
7
+ /**
8
+ * Stringified query-plan summary. The caller produces this from the
9
+ * `Query<T>` builder — concretely: a JSON serialization of clauses +
10
+ * orderBy + limit + offset + joins. Function bodies inside
11
+ * `wherePredicate` are NOT included here (those carry their own
12
+ * `predicateHash` to be folded in by a later sub-issue).
13
+ */
14
+ queryPlanSummary: string): Promise<string>;
15
+ /**
16
+ * Canonicalize a query plan for hashing. Walks the plan structure
17
+ * with sorted keys so insertion order doesn't perturb the result.
18
+ * Lives here rather than in `query/builder.ts` to keep that module
19
+ * stable across MV-specific evolutions.
20
+ *
21
+ * @internal exported for testing
22
+ */
23
+ export declare function canonicalizeQueryPlan(plan: unknown): string;
@@ -0,0 +1,99 @@
1
+ import type { ViaGraph, FieldRef, EdgeKind, Grain } from '../../kernel/via/graph.js';
2
+ import type { FieldClause } from '../../kernel/query/predicate.js';
3
+ import type { MaterializedViewStrategy, MVQueryContext } from './types.js';
4
+ /**
5
+ * One registered MV strategy alongside its derived metadata. Stored
6
+ * type-erased on `TRow` so the registry can hold heterogeneous MVs.
7
+ */
8
+ export interface RegisteredMV {
9
+ readonly spec: MaterializedViewStrategy<any>;
10
+ /** Output collection name (`spec.output?.collection ?? spec.name`). */
11
+ readonly outputCollection: string;
12
+ /** Set of source collections; populated at registration via the analyzer. */
13
+ readonly dependencies: ReadonlySet<string>;
14
+ /** Canonical `queryHash` — `_materializedFrom.queryHash` for every emitted row. */
15
+ readonly queryHash: string;
16
+ /**
17
+ * Top-level FieldClauses on the partition field, captured at
18
+ * registration time. Used by the cycle detector to resolve
19
+ * same-collection-as-source edges via the partition-discriminator
20
+ * check. Empty when `spec.output?.partition` is undefined.
21
+ */
22
+ readonly partitionClauses: readonly FieldClause[];
23
+ /**
24
+ * #638 Task 2 — `'record'` for a row-per-source-row Query<T> or
25
+ * `unionSources` MV, `'aggregate'` for a `.groupBy().aggregate()` MV
26
+ * (the shape that requires explicit `sources`, since the dependency
27
+ * analyzer can't walk an aggregate plan). Feeds `edges()`'s grain.
28
+ */
29
+ readonly grain: Grain;
30
+ }
31
+ /**
32
+ * Vault-internal registry of MV strategies. Owned by `Vault`; not
33
+ * exported. Parallel to v1's `DerivationRegistry`; the two graphs share
34
+ * a single cycle-detection pass at vault open (see `validate`).
35
+ *
36
+ * @internal
37
+ */
38
+ export declare class MaterializedViewRegistry {
39
+ /** Keyed by `spec.name`. */
40
+ private readonly _byName;
41
+ /** Keyed by dependency source-collection → MVs that depend on it. */
42
+ private readonly _bySource;
43
+ /**
44
+ * Register an MV. Invokes `spec.query()` once at registration time to
45
+ * read the plan + join context; the resulting `Query<T>` is discarded
46
+ * after dependency extraction. `vault.collection(...)` must therefore
47
+ * be functional by the time this runs — typically wired from
48
+ * `Vault._initMaterializedViews` after collection bootstrap.
49
+ *
50
+ * Throws `MaterializedViewSourceUnknownError` if the analyzer
51
+ * surfaces a dependency the vault doesn't know about (when a
52
+ * `knownCollections` checker is supplied).
53
+ */
54
+ register(spec: MaterializedViewStrategy<any>, db: MVQueryContext, options?: {
55
+ knownCollections?: (name: string) => boolean;
56
+ }): Promise<void>;
57
+ /** All MVs that depend on `source`, in registration order. */
58
+ mvsForSource(source: string): ReadonlyArray<RegisteredMV>;
59
+ /** Single MV by name, or `undefined`. */
60
+ byName(name: string): RegisteredMV | undefined;
61
+ /** Iterate over every registered MV. */
62
+ all(): ReadonlyArray<RegisteredMV>;
63
+ /**
64
+ * Graph edges for #638 Task 2: one `'mv'` edge per registered MV — target
65
+ * = the output collection (a `WHOLE_RECORD` artifact node), sources =
66
+ * every dependency (also `WHOLE_RECORD` nodes). Same-collection edges
67
+ * (`dep === outputCollection`) are skipped IFF the MV declares an
68
+ * `output.partition` discriminator AND the query has a where-clause that
69
+ * provably excludes the partition value (`partitionDisjoint`) — the SAME
70
+ * condition the old local DFS used. Grain comes from the registration-time
71
+ * `RegisteredMV.grain`.
72
+ */
73
+ edges(): ReadonlyArray<{
74
+ readonly target: FieldRef;
75
+ readonly sources: readonly FieldRef[];
76
+ readonly kind: EdgeKind;
77
+ readonly grain: Grain;
78
+ }>;
79
+ /**
80
+ * Cycle detection, delegated to `ViaGraph.assertAcyclic()` (#638 Task 2 —
81
+ * retires the local DFS). `graph` is the caller's shared per-vault graph,
82
+ * ALREADY carrying this registry's `edges()` AND `DerivationRegistry`'s
83
+ * (registered by the caller — see `Vault._initMaterializedViews`, which
84
+ * runs after `_initDerivations`, so a pure-derivation cycle already threw
85
+ * `DerivationCycleError` there; any cycle surfacing here necessarily
86
+ * touches an MV edge). Throws `MaterializedViewCycleError` — SAME class as
87
+ * before.
88
+ */
89
+ validate(graph: ViaGraph): void;
90
+ }
91
+ /**
92
+ * Wrap an `MVQueryContext` so its `.collection().query()` returns a
93
+ * Query<T> with the MV's declared predicates attached. Bare Queries
94
+ * (outside of any MV) don't gain `.wherePredicate()` — only Queries
95
+ * obtained through this wrapped db do.
96
+ *
97
+ * @internal
98
+ */
99
+ export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<MaterializedViewStrategy<Record<string, unknown>>['predicates']>): MVQueryContext;
@@ -0,0 +1,62 @@
1
+ import type { Collection } from '../../kernel/collection.js';
2
+ import type { TxContext } from '../../with-commit/tx/transaction.js';
3
+ import type { PutDerivedOutputCtx } from '../../kernel/via/dispatch.js';
4
+ import type { MaterializedViewRegistry } from './registry.js';
5
+ import type { MVQueryContext } from './types.js';
6
+ /**
7
+ * Accessor shape passed in from the owning Vault. Provides the
8
+ * registry (used as a stable WeakMap key + to look up MVs by output
9
+ * collection) and the runtime context the lazy refresh needs.
10
+ * Mirrors v1's `DerivationStaleAccessor`.
11
+ */
12
+ export interface MVStaleAccessor {
13
+ registry(): MaterializedViewRegistry;
14
+ getCollection(name: string): Collection<any>;
15
+ getActiveTxContext(): TxContext | null;
16
+ getQueryContext(): MVQueryContext;
17
+ }
18
+ /**
19
+ * Mark an MV as stale. Called from `Collection.dispatchMaterializedViews`
20
+ * when a source-write fires for a `refresh: 'lazy'` MV.
21
+ *
22
+ * @internal
23
+ */
24
+ export declare function markMVStale(registry: MaterializedViewRegistry, mvName: string): void;
25
+ /**
26
+ * Test-only: check whether a given MV name is currently flagged stale
27
+ * against a registry. Exported so the regression suite can pin the
28
+ * stale-bit lifecycle without touching the internal `WeakMap`.
29
+ *
30
+ * @internal
31
+ */
32
+ export declare function isMVStale(registry: MaterializedViewRegistry, mvName: string): boolean;
33
+ /**
34
+ * Called from `Collection.get` (and any reader that materializes the
35
+ * MV's output collection). If any MV producing `outputCollection` is
36
+ * flagged stale, runs the executor against the live source state
37
+ * before returning. No-op when there is no pending work — keeps the
38
+ * read fast path negligible.
39
+ *
40
+ * `dispatchCtx` (#641): threaded from the calling `Collection`'s
41
+ * `#dispatchCtx({ collection: outputCollection, id: 'resolve-on-read' })` — a read has no
42
+ * real "reacting write" record, so `'resolve-on-read'` is the sentinel id, mirroring
43
+ * `Vault.refreshView()`'s `'refreshView'` sentinel for the same reason. Passed straight
44
+ * through to the executor so a stale row whose output lands in a closed period follows the
45
+ * frozen-output rule (skip + `derivation:skipped-frozen`, #637) instead of throwing
46
+ * `PeriodClosedError` out of a read.
47
+ *
48
+ * Dynamic-imports the executor only when a stale flag actually fires
49
+ * (the floor-bundle isolation pattern v1 derivations established in
50
+ * floor-bundle isolation pattern).
51
+ */
52
+ export declare function resolveStaleMVOnRead(accessor: MVStaleAccessor, outputCollection: string, dispatchCtx?: PutDerivedOutputCtx): Promise<void>;
53
+ /**
54
+ * Drop every stale flag for a registry. Used after a manual
55
+ * `vault.refreshView(name)` runs the executor explicitly — the
56
+ * post-refresh state matches the registered strategies, so
57
+ * lingering stale bits would force a redundant refresh on the next
58
+ * read.
59
+ *
60
+ * @internal
61
+ */
62
+ export declare function clearMVStale(registry: MaterializedViewRegistry, mvName: string): void;
@@ -0,0 +1,318 @@
1
+ import type { Query } from '../../kernel/query/builder.js';
2
+ import type { Collection } from '../../kernel/collection.js';
3
+ import type { AggregateSpec, Aggregation } from '../../with-lookup/aggregate/aggregation.js';
4
+ import type { GroupedAggregation } from '../../with-lookup/aggregate/groupby.js';
5
+ import type { JoinStrategy } from '../../kernel/query/join.js';
6
+ import type { MoneyDescriptor } from '../../via/money/descriptor.js';
7
+ import type { I18nTextDescriptor } from '../../via/i18n/core.js';
8
+ /**
9
+ * Minimal vault-shaped accessor passed to the MV `query()` callback.
10
+ * Defined as a structural interface so the strategy types don't have
11
+ * to import the full `Vault` class (avoids a circular import). The
12
+ * Vault implements this shape natively.
13
+ */
14
+ export interface MVQueryContext {
15
+ collection<T extends Record<string, unknown>>(name: string): Collection<T>;
16
+ }
17
+ /**
18
+ * Metadata that travels inside the `_data` payload of a materialized
19
+ * row. Lives in encrypted payload, not in the unencrypted envelope —
20
+ * the storage backend cannot infer the MV graph from listing.
21
+ *
22
+ * Extends the `_derivedFrom` precedent from v1: same encryption shape,
23
+ * same "metadata-inside-data" location.
24
+ */
25
+ export interface MaterializedFromMeta {
26
+ /** Stable identity for the MV that emitted this row. */
27
+ readonly mvName: string;
28
+ /**
29
+ * SHA-256 of (mvName + canonical query plan + dependency-set).
30
+ * Changes when the query structure changes → forces refresh on
31
+ * next visit (parallels v1's `strategyHash`).
32
+ */
33
+ readonly queryHash: string;
34
+ /**
35
+ * Map from source collection name → `_v` of the source row(s) that
36
+ * contributed to this MV row at materialization time. For aggregates
37
+ * over many rows, this is `max(_v)` per source collection — coarse
38
+ * but sufficient for stale detection.
39
+ */
40
+ readonly sourceVersions: Record<string, number>;
41
+ /** ISO timestamp when this row was materialized. */
42
+ readonly materializedAt: string;
43
+ }
44
+ /** Output routing for an MV. Optional — when omitted, writes to a collection named after `name`. */
45
+ export interface MaterializedViewOutput {
46
+ /** Output collection name. Defaults to `name`. */
47
+ collection?: string;
48
+ /**
49
+ * For same-collection-as-source MVs — see § Same-collection partition
50
+ * discriminator in the v2 spec. The cycle detector resolves the
51
+ * same-collection edge IFF the query has a where-clause that
52
+ * provably excludes `partition.value` (supports `==` against a
53
+ * different value, `!=` against the value, and `in` lists that
54
+ * don't contain it). Naïve same-collection MVs without a disjoint
55
+ * clause throw `MaterializedViewCycleError` at vault open.
56
+ */
57
+ partition?: {
58
+ field: string;
59
+ value: unknown;
60
+ };
61
+ }
62
+ /**
63
+ * One arm of a UNION materialized view. Reads rows from `collection`,
64
+ * then maps each into the MV's row shape via `map`.
65
+ *
66
+ * The per-source `map` is the schema-unification boundary — sibling
67
+ * collections can have different schemas, and `map` is where they
68
+ * meet the MV's row type. The hub does NOT compare schemas across
69
+ * arms; consumer responsibility is that every arm's `map` returns
70
+ * the same shape (the strategy's `TRow` type parameter enforces this
71
+ * at compile time).
72
+ */
73
+ export interface UnionSource<TRow extends Record<string, unknown>> {
74
+ /** Source collection name. Must exist in the vault. */
75
+ readonly collection: string;
76
+ /**
77
+ * Pure function from a source row to the unified MV row shape.
78
+ * Called once per source row at materialization time. Each arm's
79
+ * mapped output is concatenated into a single stream before
80
+ * `groupBy` + `aggregate` run.
81
+ *
82
+ * Returning `null` or `undefined` **omits** the source row from the
83
+ * materialized output entirely — the row is not pushed into the
84
+ * unified stream and never reaches `groupBy` / `aggregate`. This
85
+ * removes the need for sentinel rows (e.g. `{ amount: 0 }`) whose
86
+ * sole purpose is to be aggregated away.
87
+ *
88
+ * When this arm declares {@link join}, the aliased right-side
89
+ * record(s) are attached to the source row under each leg's `as`
90
+ * BEFORE `map` runs, so `map` can read `sourceRow[leg.as]`.
91
+ */
92
+ readonly map: (sourceRow: Record<string, unknown>) => TRow | null | undefined;
93
+ /**
94
+ * Optional FK joins to apply to this arm's rows before {@link map}.
95
+ * Each leg resolves a `ref()`-declared foreign key on the arm's
96
+ * source collection into an attached right-side record under
97
+ * `as` — the same machinery as the query-form `Query.join()`.
98
+ *
99
+ * The right-side collections must be listed in the strategy's
100
+ * {@link MaterializedViewStrategy.sources} so writes to them trigger
101
+ * MV refresh — registration throws `MaterializedViewConfigError`
102
+ * otherwise (the union dependency set comes from arm `collection`s
103
+ * alone, which would not include join targets).
104
+ */
105
+ readonly join?: ReadonlyArray<UnionArmJoin>;
106
+ }
107
+ /**
108
+ * One FK join leg on a UNION arm. Mirrors the option shape of the
109
+ * query-form `Query.join(field, { as, maxRows?, strategy? })`.
110
+ */
111
+ export interface UnionArmJoin {
112
+ /** FK field on the arm's source collection (must have a `ref()` declared). */
113
+ readonly field: string;
114
+ /** Alias under which the resolved right-side record attaches on the source row. */
115
+ readonly as: string;
116
+ /** Per-side row ceiling override. `undefined` → the join default. */
117
+ readonly maxRows?: number;
118
+ /** Planner strategy override. `undefined` → auto-select. */
119
+ readonly strategy?: JoinStrategy;
120
+ }
121
+ /**
122
+ * Registration shape passed to `withMaterializedView()`.
123
+ *
124
+ * @typeParam TRow - the materialized row type (the query's result row)
125
+ */
126
+ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>> {
127
+ /**
128
+ * Stable identity for this view. Used as the output collection name
129
+ * unless `output.collection` overrides. Must be unique within the vault.
130
+ */
131
+ name: string;
132
+ /**
133
+ * Declared query (single-source mode). Called at registration time
134
+ * with a vault-shaped accessor so the closure can compose collections
135
+ * without pre-existing in-scope references; called again at each
136
+ * refresh.
137
+ *
138
+ * Built via the same `Query<T>` chainable builder used elsewhere —
139
+ * `.where()`, `.join()`, `.groupBy()`, `.aggregate()`. The
140
+ * dependency analyzer walks the returned plan to determine source
141
+ * collections.
142
+ *
143
+ * Mutually exclusive with {@link unionSources}: a strategy must
144
+ * declare exactly one of `query` (single-source) or `unionSources`
145
+ * (multi-source UNION). Registration throws
146
+ * `MaterializedViewConfigError` if both are set or neither is set.
147
+ */
148
+ query?: (db: MVQueryContext) => Query<TRow> | Aggregation<TRow> | GroupedAggregation<TRow>;
149
+ /**
150
+ * UNION-form sources: an explicit list of sibling collections
151
+ * that contribute rows to a single MV. Each arm's `map` projects a
152
+ * source row into the MV's unified row shape; the mapped streams are
153
+ * concatenated, then {@link groupBy} + {@link aggregate} run on the
154
+ * combined output.
155
+ *
156
+ * Mutually exclusive with {@link query}. Registration throws
157
+ * `MaterializedViewConfigError` if both are set, if `unionSources`
158
+ * is empty, or if two arms name the same `collection`.
159
+ *
160
+ * A SINGLE arm is valid: it expresses map→group→aggregate
161
+ * over one collection with a COMPUTED bucket key (e.g. a month
162
+ * sliced from a date field). The query form's `.groupBy()` accepts
163
+ * stored field names only, so a derived key needs the arm's `map`.
164
+ *
165
+ * UNION mode replaces the dependency-analyzer path: the source
166
+ * collections come directly from `unionSources[].collection`, and
167
+ * {@link sources} is ignored.
168
+ */
169
+ unionSources?: ReadonlyArray<UnionSource<TRow>>;
170
+ /**
171
+ * Group-key field(s) for UNION mode. Applied to the
172
+ * concatenated mapped-row stream from {@link unionSources} before
173
+ * {@link aggregate} runs. Accepts a single field name or a tuple of
174
+ * field names for multi-key grouping (same shape as
175
+ * `Query.groupBy(...fields)`).
176
+ *
177
+ * UNION-mode only. Ignored if {@link query} is set — single-source
178
+ * grouping is expressed inside the `Query<T>` returned from `query()`
179
+ * via `.groupBy(...).aggregate(...)`.
180
+ */
181
+ groupBy?: string | ReadonlyArray<string>;
182
+ /**
183
+ * Aggregation spec for UNION mode. Applied per-group after
184
+ * {@link groupBy} buckets the concatenated mapped-row stream from
185
+ * {@link unionSources}. Same shape as the `AggregateSpec` passed to
186
+ * `Query.aggregate()`.
187
+ *
188
+ * UNION-mode only. Ignored if {@link query} is set.
189
+ */
190
+ aggregate?: AggregateSpec;
191
+ /**
192
+ * Money descriptors for the UNION-mode aggregate, keyed by the
193
+ * OUTPUT/intermediate field name as it appears in the mapped row and
194
+ * in {@link aggregate} (NOT the source collection's field name). When
195
+ * declared, any `sum` / `min` / `max` over a keyed field is rewritten
196
+ * into an exact per-currency BigInt reducer — without this, money
197
+ * aggregation in UNION mode silently runs in float (since the
198
+ * concatenated mapped stream is a plain array with no collection
199
+ * money context to inherit).
200
+ *
201
+ * UNION-mode only — the query form inherits its money descriptors
202
+ * from the source collection automatically. The descriptor's
203
+ * currency/scale must match what the arms' `map()` emits for that
204
+ * field (each arm maps into the same unified shape, so one descriptor
205
+ * per output field covers all arms). Meaningless without
206
+ * {@link aggregate}; registration throws `MaterializedViewConfigError`
207
+ * if declared alone.
208
+ */
209
+ moneyFields?: Record<string, MoneyDescriptor>;
210
+ /**
211
+ * Compute-time i18n resolution locale (`mv` layer). UNION-mode only.
212
+ *
213
+ * An MV that **groups by** an `i18nText` field would otherwise bucket on the
214
+ * raw `{ locale: string }` map — an unstable object key. Set `i18nLocale`
215
+ * (with {@link i18nFields} describing those fields) and, before grouping, the
216
+ * executor resolves each declared i18n group-key field to this locale at the
217
+ * `mv` layer (`resolvePolicy(onMissing, 'mv')`), so buckets are stable strings.
218
+ *
219
+ * This is the **compute** path only: i18n fields *carried through* for display
220
+ * stay raw — declare them on the OUTPUT collection and they resolve per-reader
221
+ * at read time (the resolve-at-output model). Without `i18nLocale`, grouping by
222
+ * a raw i18n field throws `LocaleNotSpecifiedError` (steer: group by a
223
+ * `dictKey`/`staticDict` code — the stable key — and label at read).
224
+ *
225
+ * Query-form MVs do their own `groupBy` inside the `Query`, which carries no
226
+ * locale yet — so `i18nLocale` /
227
+ * `i18nFields` on a query-form MV throw `MaterializedViewConfigError`.
228
+ */
229
+ i18nLocale?: string;
230
+ /**
231
+ * i18n descriptors for UNION-mode compute, keyed by the OUTPUT field
232
+ * name as it appears in the mapped row (NOT the source field). Mirrors
233
+ * {@link moneyFields}: the concatenated mapped stream is a plain array with no
234
+ * collection i18n context, so the descriptor (carrying `onMissing`/`substitute`
235
+ * /`fallback`) must be declared here for the `mv`-layer resolution that
236
+ * {@link i18nLocale} drives. Meaningless without `i18nLocale`.
237
+ */
238
+ i18nFields?: Record<string, I18nTextDescriptor>;
239
+ /**
240
+ * Pure function from a materialized row → stable id used in the
241
+ * output collection. Required — explicit always beats default-with-pitfalls
242
+ * (explicit always beats default-with-pitfalls; see the slash-collision rationale).
243
+ */
244
+ rowKey: (row: TRow) => string;
245
+ /**
246
+ * Explicit source collections. Required when `query()` returns
247
+ * an `Aggregation` or `GroupedAggregation` rather than a `Query<T>`
248
+ * — the dependency analyzer can't introspect through `groupBy().aggregate()`
249
+ * back to the source. Optional for plain `Query<T>` results — the
250
+ * analyzer extracts dependencies automatically from the query plan.
251
+ *
252
+ * When set, takes precedence over auto-analysis.
253
+ */
254
+ sources?: ReadonlyArray<string>;
255
+ /**
256
+ * Declared deterministic predicates. Each entry pairs a
257
+ * consumer-stable `hash` with a function. The `query()` callback's
258
+ * Query<T> can invoke them via `.wherePredicate(name, ctx?)`. The
259
+ * predicate's `hash` + a canonical-JSON hash of `ctx` both fold
260
+ * into `queryHash` — bumping either forces refresh on next visit.
261
+ *
262
+ * Consumer responsibility: bump `hash` when the function's semantics
263
+ * change. Failing to bump after a non-equivalent change leaves
264
+ * stale rows around until the next explicit refresh.
265
+ */
266
+ predicates?: {
267
+ [name: string]: {
268
+ hash: string;
269
+ fn: (row: TRow, ctx?: unknown) => boolean;
270
+ };
271
+ };
272
+ /**
273
+ * Refresh policy.
274
+ *
275
+ * - `'eager'` — re-materialize synchronously inside the source-write
276
+ * transaction (composes with `withTransactions` for strict-mode
277
+ * rollback).
278
+ * - `'lazy'` — mark stale on source-change; materialize on first
279
+ * read of the MV.
280
+ * - `'manual'` — only materializes when `vault.refreshView(name)` is
281
+ * called. Useful for very expensive MVs or time-dependent queries
282
+ * whose `ctx` changes externally.
283
+ */
284
+ refresh: 'eager' | 'lazy' | 'manual';
285
+ /** Output routing. Optional; defaults to writing the collection named after `name`. */
286
+ output?: MaterializedViewOutput;
287
+ /**
288
+ * What to do when a re-materialization produces zero rows for a key
289
+ * that previously had rows.
290
+ *
291
+ * - `'delete'` (default) — tombstone the prior MV row via
292
+ * `Collection._internalDelete` (system housekeeping bypasses user
293
+ * `onDelete` guards on the output collection — the housekeeping
294
+ * bypass composition fix).
295
+ * - `'keep'` — leave the prior MV row in place. Useful when zero
296
+ * is a meaningful state.
297
+ */
298
+ onEmpty?: 'delete' | 'keep';
299
+ /**
300
+ * `true` re-throws on any row-write failure → composes with
301
+ * `withTransactions` to roll back the source-write atomically via
302
+ * `revertExecuted`. Default `false` (failed rows are
303
+ * isolated; other rows commit).
304
+ */
305
+ strict?: boolean;
306
+ /**
307
+ * Row-count ceiling for the materialized output. Throws
308
+ * `MaterializedViewTooLargeError` before any writes when exceeded
309
+ * — keeps the rollback clean. Default `100_000`; override per-MV
310
+ * when the domain warrants it.
311
+ */
312
+ maxRows?: number;
313
+ }
314
+ /** Returned by `withMaterializedView()` and consumed by `createNoydb`. */
315
+ export interface MaterializedViewStrategyHandle {
316
+ readonly __noydb_strategy: 'materialized-view';
317
+ readonly spec: MaterializedViewStrategy<any>;
318
+ }
@@ -0,0 +1,24 @@
1
+ import type { MaterializedViewStrategy, MaterializedViewStrategyHandle } from './types.js';
2
+ /**
3
+ * Register a materialized view: a declared query whose result is
4
+ * persisted as a queryable collection and kept fresh as sources
5
+ * change. Writes go through the standard `Collection.put` pipeline;
6
+ * refresh-driven deletes route through `Collection._internalDelete` so
7
+ * user `onDelete` guards on the output collection aren't tripped by
8
+ * housekeeping.
9
+ *
10
+ * Two registration modes:
11
+ * - **single-source** — declare `query: (db) => Query<TRow>`; the
12
+ * dependency analyzer derives source collections from the plan.
13
+ * - **UNION** — declare `unionSources: [{ collection, map }, ...]`
14
+ * plus optional `groupBy` + `aggregate`; the executor reads each
15
+ * arm, maps to the unified row shape, concatenates, then groups
16
+ * and aggregates.
17
+ *
18
+ * The two modes are mutually exclusive — exactly one of `query` /
19
+ * `unionSources` must be set at registration time.
20
+ *
21
+ * See docs/superpowers/specs/2026-05-20-dim14-mv-v2-design.md (single-source v2)
22
+ * and docs/superpowers/specs/2026-05-21-dim14-mv-multikey-and-union.md (UNION).
23
+ */
24
+ export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec: MaterializedViewStrategy<TRow>): MaterializedViewStrategyHandle;