@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,144 @@
1
+ import type { ViaDescriptor } from './index.js';
2
+ import type { ViaPipeline } from './pipeline.js';
3
+ import type { DictKeyDescriptor, I18nTextDescriptor, StaticDictDescriptor } from '../../port/with/i18n-strategy.js';
4
+ import type { ComputedDescriptor } from '../../port/with/computed-strategy.js';
5
+ import type { LookupDescriptor } from '../../port/with/lookup-strategy.js';
6
+ /** Tagged container returned by {@link via}. Readonly — never mutated after construction. */
7
+ export interface ViaFieldSpec {
8
+ readonly _noydbVia: true;
9
+ readonly descriptors: readonly ViaDescriptor[];
10
+ }
11
+ /**
12
+ * Compose one or more Via feature descriptors for a single field.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * vault.collection('invoices', {
17
+ * viaFields: { total: via(money({ currency: 'EUR' })) },
18
+ * })
19
+ * ```
20
+ */
21
+ export declare function via(...descriptors: ViaDescriptor[]): ViaFieldSpec;
22
+ /** Runtime predicate for detecting a {@link ViaFieldSpec}. */
23
+ export declare function isViaFieldSpec(x: unknown): x is ViaFieldSpec;
24
+ /** The money/i18n/lookup sugar keys + a `viaFields` map — the inputs {@link mergeViaFields} reconciles. */
25
+ export interface ViaFieldSources {
26
+ readonly moneyFields?: Record<string, ViaDescriptor> | undefined;
27
+ readonly i18nFields?: Record<string, I18nTextDescriptor> | undefined;
28
+ readonly dictKeyFields?: Record<string, DictKeyDescriptor | StaticDictDescriptor> | undefined;
29
+ /** — lookup()/enumOf()/dict() sugar key (#650 Task 2). */
30
+ readonly lookupFields?: Record<string, LookupDescriptor> | undefined;
31
+ readonly viaFields?: Record<string, ViaFieldSpec> | undefined;
32
+ }
33
+ /** The effective per-feature field maps after merging sugar keys with `viaFields`. */
34
+ export interface MergedViaFields {
35
+ readonly moneyFields: Record<string, ViaDescriptor> | undefined;
36
+ readonly i18nFields: Record<string, I18nTextDescriptor> | undefined;
37
+ readonly dictKeyFields: Record<string, DictKeyDescriptor | StaticDictDescriptor> | undefined;
38
+ /** `via(computed(fn, { deps, mode }))` entries (#638 Task 7) — there is no `computed`
39
+ * sugar KEY to merge against here (unlike money/i18n/dictKey); `collection-config.ts`
40
+ * unions this with the `computed:` option's own entries before splitting by mode. */
41
+ readonly computedFields: Record<string, ComputedDescriptor> | undefined;
42
+ /** `lookupFields` sugar key merged with `via(lookup(...))`/`via(enumOf(...))`/`via(dict(...))`
43
+ * entries (#650 Task 2) — a SEPARATE binding from i18n; `dictKey()`/`staticDict()` stay
44
+ * routed onto `dictKeyFields`/the i18n binding (the alias, unchanged). */
45
+ readonly lookupFields: Record<string, LookupDescriptor> | undefined;
46
+ }
47
+ /**
48
+ * Merge `viaFields` (the {@link via} composer) with the money/i18n sugar
49
+ * keys into the effective maps every consumer reads — the kernel's
50
+ * `compileViaBindings` (the `ViaPipeline` bindings) and `vault.ts`'s own
51
+ * i18n/dict registries (put-time validation, dict-join/search resolution)
52
+ * both call this so a field declared via `viaFields` behaves identically to
53
+ * one declared under its feature's sugar key.
54
+ *
55
+ * Each `viaFields` entry's descriptors are grouped by `_viaBrand`; an
56
+ * `'i18n'`-branded descriptor further splits by shape (i18nText vs
57
+ * dictKey/staticDict) via the existing descriptor-shape predicates. A field
58
+ * name declared in BOTH a sugar key and `viaFields` throws `ValidationError`
59
+ * — one declaration site per field (#623 Task 9).
60
+ */
61
+ export declare function mergeViaFields(sources: ViaFieldSources): MergedViaFields;
62
+ /**
63
+ * #631 — declare-time cross-binding same-field collision guard. Today the same field named
64
+ * in two DIFFERENT via-binding families (e.g. the same field in both `moneyFields` and
65
+ * `blobFields`) resolves silently by compile-order first-wins in `ViaPipeline`'s per-field
66
+ * posture/clause lookup — undefined pipeline behavior for a config that is almost certainly a
67
+ * mistake. `mergeViaFields` already guards sugar-vs-`viaFields` and `dictKeyFields`-vs-
68
+ * `lookupFields` collisions (#623 Task 9); this runs one step later, in `compileViaBindings`
69
+ * (fresh construction) or {@link guardReconcileCollisions} (late-attach reconcile), because
70
+ * those are the only seams that also see `classifiedFields`/`blobFields` — neither is part of
71
+ * `ViaFieldSources`, so `mergeViaFields` never sees them.
72
+ *
73
+ * WHY FAMILY-BASED, NOT PROVENANCE-BASED (#631 review, round 2 — Controller ruling): a field
74
+ * declared via `via(computed(fn), money(...))` and a field declared via two independent sugar
75
+ * maps (`computed: { total: fn }` + `moneyFields: { total: money(...) }`) are NOT
76
+ * distinguishable here — `mergeViaFields` folds both declaration STYLES into the IDENTICAL
77
+ * merged per-family field maps this function receives; provenance (which style produced a given
78
+ * map entry) is erased before this guard ever runs. Narrowing the exemption to "only
79
+ * via()-composed fields" would therefore require threading a second, parallel
80
+ * provenance-tracking data structure through `mergeViaFields` for the sole purpose of refusing a
81
+ * config that is BEHAVIORALLY IDENTICAL to the sanctioned one — refusing it would be a
82
+ * behavior-lock violation (breaking a legal, meaningful config), not a bug fix. The exemption is
83
+ * therefore keyed on the FAMILY SET alone, and instead earned empirically per family (below).
84
+ *
85
+ * EXEMPT (test-earned, not merely asserted): `computed` colliding with EXACTLY ONE of
86
+ * `money`/`i18n`/`lookup` on the same field. `via()`'s descriptor loop only accepts
87
+ * money/i18n/computed/lookup `_viaBrand`s (`mergeViaFields` throws on any other brand), so a
88
+ * computed+classified or computed+blob same-field pairing can never arise from composition — it
89
+ * can only come from mistakenly naming the same field in `computed`/`viaFields` AND
90
+ * `classifiedFields`/`blobFields`, which this guard still refuses. For the three families that
91
+ * CAN legitimately arise, each is pinned by an end-to-end runtime test proving the composition
92
+ * does something real (not just "doesn't throw") — see `computed/virtual.test.ts`:
93
+ * - money: the "composed grammar" tests (materialized-mode money formatting the computed
94
+ * output; the ORIGINAL evidence this exemption started from — see the money DOES/does NOT
95
+ * format the computed output pair).
96
+ * - i18n (dictKey) / lookup (dict()): the "composed grammar — computed + i18n/lookup
97
+ * families (#631 collision-guard exemption pins)" block, BOTH declaration styles
98
+ * (`via(computed(...), dictKey(...)/dict(...))` and the two-independent-sugar-maps form),
99
+ * materialized mode — proven to dress `<field>Label` off the computed output identically
100
+ * either way (the provenance-erasure claim above, empirically confirmed). Virtual mode for
101
+ * both families hits the SAME present-ORDER limitation money's own virtual composed-grammar
102
+ * test already documents (i18n/lookup's `present()` runs BEFORE computed's — a virtual field
103
+ * is never stored, so there is nothing to dress yet); pinned as a known limitation, not
104
+ * grounds to drop the family from the exemption (materialized mode is what proves the family
105
+ * genuinely composes).
106
+ *
107
+ * 3-CLAIMANT TIGHTENING (#631 review, round 2): the exemption requires EXACTLY TWO claimant
108
+ * source-keys, not just two families. A field named in `computed` + BOTH `i18nFields` AND
109
+ * `dictKeyFields` collapses to the same two families (`{computed, i18n}` — `dictKeyFields`
110
+ * shares the `i18n` family) but is a genuine THREE-claimant collision: two independent i18n
111
+ * sugar keys both claiming the field is itself a mistake this guard exists to catch, and must
112
+ * not slip through because the family SET happens to match the earned exemption's shape.
113
+ */
114
+ export declare function guardCrossBindingFieldCollisions(fieldMaps: Readonly<Record<string, Record<string, unknown> | undefined>>, callerPrefix?: string): void;
115
+ /**
116
+ * #664 Part 1 — the late-attach reconcile-path sibling of {@link guardCrossBindingFieldCollisions}.
117
+ * `vault.ts`'s reconcile ladder (a second-or-later `vault.collection(name, {...})` call on an
118
+ * ALREADY-open collection) never ran the fresh-construction guard above, so two probe recipes
119
+ * slipped through (round-2 fable review, 2026-07-13):
120
+ *
121
+ * - **(a) incoming×incoming** — the SAME reconcile call names a field in two different
122
+ * families (e.g. `moneyFields`+`blobFields` both claiming `"amount"`). Fix: re-run
123
+ * {@link guardCrossBindingFieldCollisions} verbatim over THIS call's own merged field maps —
124
+ * identical semantics to fresh construction, just invoked one call later.
125
+ * - **(b) existing×incoming** — an EARLIER call already compiled a binding covering a field
126
+ * (money reconciled onto it, or it shipped with the collection's first declaration), and
127
+ * THIS call's incoming family map claims the SAME field for a DIFFERENT family (e.g. call-1
128
+ * `classifiedFields:['ssn']`, call-2 `moneyFields:{ssn}`) — undetectable by (a) alone since
129
+ * the collision spans two calls. Read via the LIVE collection's compiled bindings
130
+ * (`coll._via.bindings`): each `ViaBinding.covers(field)` (`via/index.ts`) plus its `brand` tells us
131
+ * which family already owns the field, mapped through the SAME {@link VIA_FIELD_MAP_FAMILY}
132
+ * the incoming side uses — no new collection.ts surface needed.
133
+ *
134
+ * Both sub-checks honor the SAME #631 exemption (`{computed,money}`/`{computed,i18n}`/
135
+ * `{computed,lookup}`, exactly-two-claimants) as the fresh guard — a composition that would be
136
+ * legal in one `vault.collection()` call (`via(computed(fn), money(...))`) must stay legal when
137
+ * split across two calls (computed declared fresh, money late-attached), since the two paths are
138
+ * behaviorally equivalent by the same provenance-erasure argument {@link guardCrossBindingFieldCollisions}
139
+ * documents. `existingFamilies` is collected as a SET (every binding covering the field, not just
140
+ * the first match) so an already-legally-composed pair (e.g. existing `{computed, money}`) is
141
+ * checked against the incoming family individually — a THIRD family colliding with either half
142
+ * is still refused.
143
+ */
144
+ export declare function guardReconcileCollisions(existingVia: ViaPipeline | undefined, incomingFieldMaps: Readonly<Record<string, Record<string, unknown> | undefined>>): void;
@@ -0,0 +1,185 @@
1
+ import type { ViaGraph } from './graph.js';
2
+ import type { Collection } from '../collection.js';
3
+ import type { EncryptedEnvelope } from '../types.js';
4
+ /** One deleted child's resolved rollup PARENT intent (#640) — ids + a field name only. A
5
+ * resolved `parentId` is an id, same class as any touched record id — never a stored value. */
6
+ export interface RollupDeleteIntent {
7
+ readonly into: string;
8
+ readonly parentId: string;
9
+ readonly field: string;
10
+ }
11
+ /** One collection's batched touches this session (#640 widens the #638 `Set<string>` shape):
12
+ * `puts` — the original semantics, unchanged; `deletes` — a deleted record's id mapped to its
13
+ * resolved rollup-parent intents, captured PRE-invalidation by `Collection._onRecordMutated`'s
14
+ * sync-apply delete case (the FK is only readable there — see `kernel/collection.ts
15
+ * #_rollupDeleteIntents`). */
16
+ export interface GraphTouch {
17
+ readonly puts: Set<string>;
18
+ readonly deletes: Map<string, readonly RollupDeleteIntent[]>;
19
+ }
20
+ /** Per-session touched set — collection → its `GraphTouch`. Metadata only — ids (collection
21
+ * names, record ids INCLUDING resolved rollup parent ids) and field names; NEVER record payload
22
+ * or key material. A resolved parentId is an id, same class as the touched ids — not a stored
23
+ * value. */
24
+ export type GraphBatch = Map<string, GraphTouch>;
25
+ /** Get-or-create `batch`'s `GraphTouch` entry for `collection` (#640) — shared by
26
+ * `Vault._collectGraphTouch`/`_collectGraphDelete` so each stays a one-line call. */
27
+ export declare function touchFor(batch: GraphBatch, collection: string): GraphTouch;
28
+ /** #640 — sync, I/O-free: `deleted`'s resolved rollup PARENT intents (the FK is only readable
29
+ * NOW, before the record is gone) — a pure function so `Collection._rollupDeleteIntents` stays
30
+ * a one-line delegator under the kernel-surface ceiling. `registry` is `this.derivationSource
31
+ * ?.registry()`; `collectionName` is `this.name` (the CHILD/`rollup.from` side). Generic over
32
+ * the registry's own spec shape so this file never imports a `with-formula` type (port-layering
33
+ * — via/dispatch.ts must not gain a with-* import). */
34
+ export declare function resolveRollupDeleteIntents<S extends {
35
+ source: string;
36
+ rollup?: {
37
+ from: string;
38
+ key: string;
39
+ field: string;
40
+ };
41
+ }>(registry: {
42
+ strategiesForSource(name: string): ReadonlyArray<{
43
+ spec: S;
44
+ }>;
45
+ } | undefined, collectionName: string, deleted: Record<string, unknown>): RollupDeleteIntent[];
46
+ /** #640 — resolve a `RollupDeleteIntent` back to its registry `spec`. The wave's per-intent
47
+ * driver needs `spec.rollup.compute`, which `GraphBatch`'s metadata-only pin forbids batching —
48
+ * so it's re-resolved here, post-boundary, instead of carried across it. `undefined` if the
49
+ * intent's originating strategy was unregistered between collect time and wave time (residual
50
+ * gap, freshness-only). */
51
+ export declare function findRollupSpecForIntent<S extends {
52
+ source: string;
53
+ rollup?: {
54
+ from: string;
55
+ field: string;
56
+ };
57
+ }>(registry: {
58
+ strategiesForSource(name: string): ReadonlyArray<{
59
+ spec: S;
60
+ }>;
61
+ } | undefined, collectionName: string, intent: RollupDeleteIntent): S | undefined;
62
+ /** One dedup ledger for a single wave — a target is recomputed at most once (mark-on-check). */
63
+ export declare class WaveContext {
64
+ private readonly _seen;
65
+ seen(targetKey: string): boolean;
66
+ }
67
+ /** The slice of `Vault` the wave needs: the shared graph (the #553 zero-cost skip) and cached-
68
+ * collection lookup — never constructs, since a touched collection is, by construction,
69
+ * already open (it just fired `_onRecordMutated`). */
70
+ export interface VaultLike {
71
+ readonly graph: ViaGraph;
72
+ _getCollection(name: string): Collection<Record<string, unknown>> | undefined;
73
+ /** #640 (#644 item 3) — structured wave-error surfacing, additive to the existing console.warn. */
74
+ _emit(event: string, payload: unknown): void;
75
+ }
76
+ /**
77
+ * Run ONE dispatch wave for a completed batch: for each touched (collection, id), decrypt the
78
+ * applied envelope (id threaded), then run the SAME `dispatchDerivations` +
79
+ * `dispatchMaterializedViews` the local-write path uses — with a shared `WaveContext` so N
80
+ * touched records feeding the SAME target recompute once. #553: a collection with no graph
81
+ * out-edges (e.g. money-only) is skipped before any decrypt/dispatch async work.
82
+ */
83
+ export declare function runGraphDispatchWave(vault: VaultLike, batch: GraphBatch): Promise<void>;
84
+ /** A record's post-freeze source mutation, for the `'derivation:skipped-frozen'` event
85
+ * and the optional audit-trail entry. See {@link putDerivedOutput}. */
86
+ export interface DerivationSkippedFrozen {
87
+ readonly source: {
88
+ readonly collection: string;
89
+ readonly id: string;
90
+ };
91
+ readonly target: {
92
+ readonly collection: string;
93
+ readonly id: string;
94
+ };
95
+ readonly period: string;
96
+ readonly endDate: string;
97
+ }
98
+ /** The minimal put-capable shape `putDerivedOutput` needs. Any `Collection<T>` structurally
99
+ * satisfies this — its real `options` type is a superset of what's declared here. */
100
+ export interface CollectionLike {
101
+ put(id: string, value: unknown, options?: {
102
+ readonly source?: string;
103
+ }): Promise<void>;
104
+ }
105
+ export interface PutDerivedOutputCtx {
106
+ readonly emit: (ev: string, p: unknown) => void;
107
+ readonly source: {
108
+ readonly collection: string;
109
+ readonly id: string;
110
+ };
111
+ readonly audit?: ((e: DerivationSkippedFrozen) => Promise<void>) | undefined;
112
+ }
113
+ /**
114
+ * Attempt a dispatch-driven output write. On `PeriodClosedError` (the closed-period
115
+ * `beforePut` gate — `freezePeriod`/`archivePeriod` add no separate gate, per seam map
116
+ * Part 7): SKIP (no `_ts` stamped — the gate throws before any write happens), emit
117
+ * `'derivation:skipped-frozen'` on the event bus (ALWAYS), and append an audit-trail entry
118
+ * when the with-history ledger is active. Returns `'written' | 'skipped-frozen'`. Any OTHER
119
+ * error propagates unchanged — this helper narrows exactly one error class. The SOURCE
120
+ * write is never wrapped through this helper — only derived-output writes are (§7).
121
+ */
122
+ export declare function putDerivedOutput(outColl: CollectionLike, id: string, value: unknown, ctx: PutDerivedOutputCtx, options?: {
123
+ readonly source?: string;
124
+ }): Promise<'written' | 'skipped-frozen'>;
125
+ /** Structural (no static import — kernel spine may not statically reach a with-* service,
126
+ * the S4 gate recipe `check-architecture.mjs`'s port-layering check enforces) shape of the
127
+ * with-history `LedgerStore.append` seam this helper needs. */
128
+ interface AuditLedgerLike {
129
+ append(input: {
130
+ readonly op: 'lifecycle';
131
+ readonly collection: string;
132
+ readonly id: string;
133
+ readonly version: number;
134
+ readonly actor: string;
135
+ readonly payloadHash: string;
136
+ readonly reason?: string;
137
+ }): Promise<unknown>;
138
+ }
139
+ /** @internal — the optional with-history ledger audit hook for `putDerivedOutput`, present
140
+ * only when the ledger is active (mirrors every other kernel event's `if (this.ledger)`
141
+ * gate). Encoded as a `'lifecycle'` entry — the existing "non-data audit event" op (the
142
+ * same convention `forget`'s JSON-summary-in-`reason` entry uses; `ledger/entry.ts:88-104`). */
143
+ export declare function ledgerAuditHook(ledger: AuditLedgerLike | undefined, actor: string): ((e: DerivationSkippedFrozen) => Promise<void>) | undefined;
144
+ /** `recomputeRollup`/`dispatchRollupsOnDelete`'s per-target write outcome (#638 Task 6):
145
+ * `'written'`/`'skipped-frozen'` mirror {@link putDerivedOutput}'s result; `'noop'` covers
146
+ * no-parent/no-change/deduped-by-wave — nothing to report either way. */
147
+ export type RollupOutcome = 'written' | 'skipped-frozen' | 'noop';
148
+ /** Mutable accumulator `forgetDerivedFanout` writes into, one per `Vault.forget()` call — keeps
149
+ * the per-ref loop's call site to a single line under vault.ts's tight kernel-surface ceiling.
150
+ * Maps 1:1 onto `ForgetResult`'s additive fields (`with-audit/forget/strategy.ts`). */
151
+ export interface ForgetFanoutStats {
152
+ recordsErased: number;
153
+ aggregatesRecomputed: number;
154
+ readonly residueFrozen: string[];
155
+ /** #650 Task 5 (#648) — referencing records tombstoned via a `'ref'` edge's `cascade` policy. */
156
+ lookupReferencesCascaded: number;
157
+ /** #650 Task 5 (#648) — referencing fields cleared via a `'ref'` edge's `nullify` policy. */
158
+ lookupReferencesNullified: number;
159
+ /** #650 Task 5 review (Important fix) — `'ref'` edges whose compare-key could NOT be resolved,
160
+ * even from the LIVE pre-shred row (the backing row itself is unreadable) — propagation was
161
+ * skipped for these, reported here so the skip is never silent. `backing:key:collection.field`
162
+ * entries, one per un-propagated edge. */
163
+ readonly lookupReferencesResidue: string[];
164
+ }
165
+ /**
166
+ * #622 — after `_writeTombstone(ref.id, actor)` erases the forgotten subject's own record, fan
167
+ * out to its derived residue via the graph (spec §5): record-grain artifacts (MV rows,
168
+ * array-shape derivation rows, same-id record-shape derivation copies) are ERASED through the
169
+ * SAME `!internal` housekeeping-bypass machinery the ordinary delete path uses (no user
170
+ * `onDelete` re-fires — the shred-is-not-a-domain-delete property `_writeTombstone` protects);
171
+ * aggregate-grain rollups are RECOMPUTED without the forgotten contribution in open periods, or
172
+ * skip+audit (via `putDerivedOutput`, already wired into the rollup/MV output paths) in frozen
173
+ * ones. Mutates `stats` in place. `envelope` is `ref`'s PRE-tombstone envelope, decoded only if
174
+ * a rollup edge is actually present — the #553 zero-cost-skip discipline: no decrypt for the
175
+ * common case of a forgotten record with no aggregate-grain consumer, and no work at all when
176
+ * `ref.collection` has no graph out-edges. `lookupCompareKeys` is the `'ref'` edges' compare-key
177
+ * map, resolved from the LIVE row BEFORE any shred (`VaultLinks.checkLookupRefsRestrict`'s return
178
+ * value — `Vault.forget()`'s pre-shred restrict check doubles as the live-resolve pass) — see
179
+ * {@link applyLookupRefsFanout}.
180
+ */
181
+ export declare function forgetDerivedFanout(vault: VaultLike, ref: {
182
+ readonly collection: string;
183
+ readonly id: string;
184
+ }, envelope: EncryptedEnvelope | null, stats: ForgetFanoutStats, lookupCompareKeys: ReadonlyMap<string, string | undefined>): Promise<void>;
185
+ export {};
@@ -0,0 +1,145 @@
1
+ import type { ViaGraph } from './graph.js';
2
+ import { resolveComputedEdges, type CollectionOpts, type GraphEdge } from '../collection-config.js';
3
+ import { type ClassifiedEntry } from '../../port/with/classified-strategy.js';
4
+ import { type HasWritableViaPipeline } from './pipeline.js';
5
+ type ComputedFieldsParam = NonNullable<Parameters<typeof resolveComputedEdges>[1]>;
6
+ /**
7
+ * Register one collection's field postures (`binding.posture` + `covers()`)
8
+ * and computed/via-binding-deps edges onto the vault's shared graph. Called
9
+ * from `Vault.collection()`'s fresh-construction path, right after the real
10
+ * `Collection` is built from the SAME `opts` — `resolveCollectionConfig` is a
11
+ * pure function, so re-running it here (Collection's constructor already ran
12
+ * it once internally) costs a one-time, side-effect-free recomputation at
13
+ * collection-declare time, not a per-write cost.
14
+ */
15
+ export declare function registerCollectionGraphSources<T>(graph: ViaGraph, name: string, opts: CollectionOpts<T>): void;
16
+ /** The slice of `Vault.collection()`'s reconcile-path options relevant to
17
+ * graph registration — money/computed/classifiedFields are the only
18
+ * options `Vault.collection()`'s reconcile branches actually attach
19
+ * (i18nFields/dictKeyFields are construction-only, never reconciled). */
20
+ export interface ReconcileGraphOptions {
21
+ readonly moneyFields?: Record<string, unknown>;
22
+ readonly classifiedFields?: Record<string, ClassifiedEntry>;
23
+ readonly computed?: ComputedFieldsParam;
24
+ }
25
+ /** Phase 1's output — what phase 2 (`commitReconcileGraphEdges`) applies once
26
+ * every `_apply*` mutation for this reconcile call has succeeded. */
27
+ export interface ReconcilePlan {
28
+ readonly edges: readonly GraphEdge[];
29
+ readonly depslessComputedFields: readonly string[];
30
+ readonly classifiedFieldNames: readonly string[];
31
+ }
32
+ /**
33
+ * Phase 1 (validate) of the reconcile-path's two-phase graph wiring (#638
34
+ * Task 2 fix wave 2). Pure — throws `ValidationError`, never mutates `graph`.
35
+ *
36
+ * Evaluates the COMBINED existing+incoming computed/classified state, using
37
+ * `graph` as the vault-side memory of what a PRIOR, separate
38
+ * `vault.collection()` call already registered (review Finding I1): a
39
+ * depsless computed field declared while no classified field existed yet
40
+ * registers no edge (`registerCollectionGraphSources` marks it instead), so a
41
+ * LATER call newly introducing a PERSISTABLE (`recoverable`/`digest-only`)
42
+ * classified field must still see it and refuse, regardless of which call
43
+ * declared which piece first. `storage: 'never'` fields are exempt from this
44
+ * specific check: `enforceClassifiedWrite` rejects the whole write BEFORE
45
+ * computed fields ever evaluate (`Collection._putInternal`'s pipeline order —
46
+ * enforceWrite, then computed), so a `never`-stored value structurally cannot
47
+ * reach a computed field's output. (`resolveComputedEdges` below, unchanged,
48
+ * still blanket-refuses a depsless field THIS SAME call introduces alongside
49
+ * ANY classified field regardless of storage — same as fresh construction.)
50
+ * Given that, once a PERSISTABLE classified field is successfully committed
51
+ * for a collection, no depsless computed field can survive uncaught (this
52
+ * very check, or the identical fresh-construction one, would already have
53
+ * refused it) — so this check only needs THIS call's own incoming
54
+ * `classifiedFields`, never `graph`'s classified memory.
55
+ *
56
+ * Each `computed` entry's own `deps` (#638 Task 7 — the reconcile path only ever sees the
57
+ * `computed:` sugar option, per `ReconcileGraphOptions`'s doc comment; `via(computed(...))`
58
+ * is construction-only like i18nFields/dictKeyFields) are resolved via `resolveComputedEdges`
59
+ * exactly like the fresh-construction path — Finding I2ii's original knownFields-sharing
60
+ * concern is back in play for the Task 7 review's CRITICAL fix: on a collection that
61
+ * declares classified fields, `resolveComputedEdges` now checks every `deps` entry against
62
+ * a `knownFields` universe built via the SAME `collectKnownFieldNames` helper the fresh path
63
+ * uses (never a hand-rolled second universe), scoped to THIS call's own
64
+ * `moneyFields`/`classifiedFields`/`computed` options (see `resolveComputedEdges`'s own doc
65
+ * comment for the full rationale and its documented residual limit). On a non-classified
66
+ * collection a plain, non-via field is still a legal dep, unchanged from Task 7.
67
+ *
68
+ * Callers MUST call this BEFORE any `_apply*` mutation runs, and must only
69
+ * call `commitReconcileGraphEdges` with the result AFTER every `_apply*` for
70
+ * this call has succeeded (Finding M2 — no partial graph state may survive a
71
+ * reconcile call whose config is ultimately rejected).
72
+ */
73
+ export declare function validateReconcileGraphEdges(graph: ViaGraph, name: string, options: ReconcileGraphOptions): ReconcilePlan;
74
+ /**
75
+ * Phase 2 (commit) — call ONLY after every `_apply*` mutation belonging to
76
+ * this reconcile call has succeeded (see {@link validateReconcileGraphEdges}'s
77
+ * doc comment, Finding M2). Registers `plan`'s edges, skipping any target
78
+ * already registered so `registerDerived`'s at-most-once contract holds
79
+ * across repeated identical `vault.collection()` calls, not just within one
80
+ * (Finding I2i); registers the late-attached classified field(s)' sealed
81
+ * posture (Finding M1 — fresh construction gets this for free from
82
+ * `registerCollectionGraphSources`'s compiled-binding loop, which the
83
+ * reconcile path has no equivalent of); and updates the depless-computed /
84
+ * classified graph memory {@link validateReconcileGraphEdges} reads.
85
+ */
86
+ export declare function commitReconcileGraphEdges(graph: ViaGraph, name: string, plan: ReconcilePlan): void;
87
+ /**
88
+ * Rebuild `coll`'s Via pipeline with the graph's taint overlay layered on
89
+ * (#638 Task 3 — the assignment→enforcement bridge): `postureFor` (query
90
+ * gate + `redactForExport`, `kernel/via/pipeline.ts`) enforces it with zero
91
+ * new surface, and any field the overlay resolves to `encryptedAtRest:
92
+ * 'sealed'` gets the `taint` binding added so it is ACTUALLY sealed at rest
93
+ * via `ctx.sealedSlots` (the same mechanism classified uses).
94
+ *
95
+ * No-op when the collection has no tainted fields — `coll.via` stays exactly
96
+ * what `resolveCollectionConfig` built, preserving `this.via === undefined`
97
+ * for an all-plain collection (#553's sync-stack guarantee). Called once
98
+ * after `registerCollectionGraphSources` (fresh construction) and once after
99
+ * `commitReconcileGraphEdges` (reconcile) — a late-attached classified/
100
+ * computed field can newly taint a field an EARLIER call already built the
101
+ * pipeline for, so both call sites must refresh.
102
+ *
103
+ * Writes through `Collection._setVia` (`kernel/collection.ts`, #666) rather
104
+ * than the old untyped structural-cast reach-in — `_setVia` does both of the
105
+ * cast site's old two steps itself: reassigns `this.via` AND resyncs the
106
+ * codec's OWN `via` snapshot (captured at construction, `collection.ts`'s
107
+ * `this.codec = new RecordCodec({..., via: this.via})`, which does not
108
+ * automatically follow a later `this.via` reassignment) so `encryptRecord`/
109
+ * `decryptRecord` seal/unseal through the taint binding too, not a stale
110
+ * pre-taint pipeline.
111
+ *
112
+ * #642 — `graph.taintedPostures(name)` also carries the collection's `'*'`
113
+ * target (a derivation/MV/overlay OUTPUT collection's whole-record fold,
114
+ * `via/graph.ts`'s `taintedPostures`/`taintSealedFields` already surface it
115
+ * under the literal key `'*'`, no `via/graph.ts` change needed). Split it off
116
+ * BEFORE building the field-specific overlay — `'*'` is never a real record
117
+ * field — and re-derive it as `defaultPosture` through the SAME
118
+ * `buildTaintOverlay` sealed→`queryable:'none'` clamp (reused, not
119
+ * duplicated, by feeding it a one-entry map). A sealed default folds into
120
+ * the SAME single `taintBinding` call via `sealAllFields` — every field
121
+ * (present-time, at-rest) is covered without a second binding.
122
+ */
123
+ export declare function applyTaintOverlay(coll: HasWritableViaPipeline, graph: ViaGraph, name: string): void;
124
+ /**
125
+ * #642 — the cross-collection re-apply gap (seam map finding 4/10): when the
126
+ * OUTPUT/parent collection was opened (its overlay built) BEFORE the
127
+ * classified SOURCE collection ever registered a field, the output's `'*'`
128
+ * fold (or a rollup's real-field fold) was computed against an empty/stale
129
+ * source posture. `applyTaintOverlay` alone never re-fires for an already-
130
+ * open dependent — this hook closes that: after `name` registers its OWN
131
+ * field postures (called right after `applyTaintOverlay(coll, graph, name)`
132
+ * at each collection-construction call site), re-run `applyTaintOverlay` for
133
+ * every OPEN collection that graph-depends on `name`.
134
+ *
135
+ * Pure wiring — re-applies OVERLAYS only (a pipeline rebuild), never
136
+ * re-registers a graph edge (`registerDerived`'s at-most-once contract, D-2
137
+ * wave-2 law, is untouched). `graph.dependentsOf(name)` already excludes
138
+ * `'ref'` edges (a referencing field must not seal just because its backing
139
+ * dimension changed — the phase-D lookup identity contract). A dependent
140
+ * collection that hasn't been opened yet (`getOpenCollection` returns
141
+ * `undefined`) is skipped — it will fold correctly on its OWN first-open
142
+ * `applyTaintOverlay` call, which reads the graph fresh.
143
+ */
144
+ export declare function reapplyDependentOverlays(graph: ViaGraph, name: string, getOpenCollection: (n: string) => HasWritableViaPipeline | undefined): void;
145
+ export {};
@@ -0,0 +1,165 @@
1
+ import type { ViaPosture } from './index.js';
2
+ /** A (collection, field) node. Artifact-grain targets (rollup field, MV row-class,
3
+ * overlay output) are modelled as a field node whose `field` is the artifact key. */
4
+ export interface FieldRef {
5
+ readonly collection: string;
6
+ readonly field: string;
7
+ }
8
+ export type EdgeKind = 'computed' | 'derivation' | 'rollup' | 'mv' | 'overlay' | 'ref';
9
+ /** `'virtual'` (#638 Task 7) marks a `computed(fn, { mode: 'virtual' })` field's edge —
10
+ * never stored (rides the `present` phase), so it can never be sealed at rest
11
+ * ({@link ViaGraph.taintSealedFields} excludes it) and is always non-queryable
12
+ * regardless of source posture ({@link ViaGraph.effectivePosture} clamps it). */
13
+ export type Grain = 'record' | 'aggregate' | 'virtual';
14
+ /** Delete/forget-time referential policy for a `'ref'` edge (#650 Task 5, spec §4) — duplicated
15
+ * (not imported) from `via/lookup/descriptor.ts`'s `OnDelete`: the kernel spine may not
16
+ * statically import `via/**` (Check 14, `via-layering`). Keep the two in sync by hand. */
17
+ export type OnDelete = 'restrict' | 'cascade' | 'nullify';
18
+ /** Plain (non-via) field baseline — max-permissive; taint only ever tightens. */
19
+ export declare const DEFAULT_POSTURE: ViaPosture;
20
+ /** The per-axis "most restrictive" fold — pure, exported for direct unit testing. */
21
+ export declare function foldPosture(a: ViaPosture, b: ViaPosture): ViaPosture;
22
+ /** Security-axes-only fold for a wildcard collection node (#642): sealed-wins encryptedAtRest,
23
+ * AND exportable, OR forgettable — queryable is NOT folded (stays base.queryable; the sealed
24
+ * clamp to 'none' is buildTaintOverlay's job, so inheriting `sealed` never over-restricts a
25
+ * blob-adjacent output to unqueryable). Pure; exported for unit testing. Distinct from
26
+ * {@link foldPosture} (which folds all four axes) — do NOT reuse foldPosture here. */
27
+ export declare function foldWildcardSecurity(base: ViaPosture, contributor: ViaPosture): ViaPosture;
28
+ /** Metadata-only dependency graph, ONE per vault. Never stores values or key material. */
29
+ export declare class ViaGraph {
30
+ /** Declared source-field postures (registerField), keyed by node id. */
31
+ private readonly _posture;
32
+ /** Every derived target's registration, keyed by the target's node id. */
33
+ private readonly _in;
34
+ /** source node id -> derived targets that depend on it (dispatch/erasure). */
35
+ private readonly _out;
36
+ /** Memoized effective posture per derived target node id. */
37
+ private readonly _effectiveCache;
38
+ /** Memoized whole-collection security-axes fold for `'*'` wildcard LEAF nodes (#642),
39
+ * keyed by collection name — see {@link _wildcardContribution}. Cleared alongside
40
+ * `_effectiveCache` on every `registerField`/`registerDerived` (a later-registered
41
+ * field must re-fold on the next read — registration ordering is free). */
42
+ private readonly _wildcardCache;
43
+ /** Collections with at least one classified field (#638 Task 2 fix wave 2,
44
+ * Finding I1 — the reconcile path's combined-state leak guard memory). */
45
+ private readonly _classifiedCollections;
46
+ /** Computed field names declared with no `deps` entry, per collection
47
+ * (Finding I1 — such a field registers no edge when no classified field is
48
+ * present yet, so a LATER, separate reconcile call attaching classifiedFields
49
+ * still needs to see it regardless of declaration order). */
50
+ private readonly _depslessComputed;
51
+ /** Declare a source field's posture (money/i18n/classified/plain). Plain fields
52
+ * default to `DEFAULT_POSTURE`; a later declaration for the same node wins-first (idempotent). */
53
+ registerField(collection: string, field: string, posture: ViaPosture): void;
54
+ /** A derived target depends on `sources` (may be cross-collection). `kind`/`grain`
55
+ * drive dispatch + erasure semantics; sources drive taint. Re-registering the same
56
+ * target replaces `_in` but does not prune stale `_out` edges — callers must
57
+ * register each target at most once per graph lifetime. `onDelete`/`keyField` (#650 Task 5)
58
+ * are meaningful only for `kind === 'ref'` edges — {@link referencingEdgesOf} reads them back. */
59
+ registerDerived(target: FieldRef, sources: readonly FieldRef[], kind: EdgeKind, grain: Grain, onDelete?: OnDelete, keyField?: string): void;
60
+ /** Whether `target` already has a registered in-edge — lets a caller skip
61
+ * re-registering the same target (#638 Task 2 fix wave 2, Finding I2i:
62
+ * `registerDerived`'s at-most-once contract must hold across repeated
63
+ * identical `vault.collection()` calls, not just within a single one). */
64
+ hasDerived(target: FieldRef): boolean;
65
+ /** Mark/query a collection as having declared at least one classified field. */
66
+ markClassified(collection: string): void;
67
+ isClassified(collection: string): boolean;
68
+ /** Mark/query a collection's depsless (no declared `deps`) computed
69
+ * field names — see `_depslessComputed`'s doc comment above. */
70
+ markDepslessComputed(collection: string, field: string): void;
71
+ depslessComputedFields(collection: string): ReadonlySet<string>;
72
+ /** Every field name the graph already has memory of for `collection` — from an
73
+ * EARLIER, separate `vault.collection()` call (registered postures, derived
74
+ * targets, depsless-computed names) — regardless of which via feature declared
75
+ * it. #645 — `via/graph-wiring.ts`'s reconcile-path `knownFields` universe
76
+ * (`collectKnownFieldNames`) is scoped to THIS call's own options only, so a
77
+ * computed field attached in a LATER call whose `deps` correctly names a field
78
+ * declared in an EARLIER call was spuriously refused as "unknown"; this method
79
+ * lets that call site union in the graph's cross-call memory. Excludes the `'*'`
80
+ * wildcard target (an overlay/derivation whole-record fold node, never a real
81
+ * record field — see {@link registerDerived}'s doc comment). */
82
+ knownFieldNames(collection: string): ReadonlySet<string>;
83
+ /** Reject cycles at declare time (vault open). Throws `DerivationCycleError` for a
84
+ * derivation/rollup/computed cycle, `MaterializedViewCycleError` for an MV cycle —
85
+ * same classes + message shape the registries throw today (behavior lock). */
86
+ assertAcyclic(): void;
87
+ /** A leaf (non-derived) node's own posture contribution: its declared posture,
88
+ * or `DEFAULT_POSTURE` if never declared via `registerField`. */
89
+ private _declaredPosture;
90
+ /** A node's posture contribution when folded into a dependent: recurse if it is itself
91
+ * derived; else its declared/default posture — UNLESS it is a `'*'` LEAF node consumed
92
+ * by a folded formula kind (#642, `derivation|rollup|mv|overlay`), in which case it
93
+ * contributes its collection's whole-record security fold ({@link _wildcardContribution}).
94
+ * `kind` is the CONSUMING edge's kind, threaded from {@link _computeEffective}. `'ref'`
95
+ * edges (and the provenance-only untyped call, `kind` left `undefined`) keep `'*'` =
96
+ * identity — the phase-D lookup reliance (`via/lookup/registry.ts:392-397`) that a
97
+ * referencing field must not seal just because its dimension collection has a classified
98
+ * column. */
99
+ private _contribution;
100
+ /** Lazy fold (#642) of a collection's REGISTERED field postures on the security axes only
101
+ * ({@link foldWildcardSecurity} — sealed-wins encryptedAtRest, AND exportable, OR
102
+ * forgettable; queryable stays at DEFAULT_POSTURE's 'full', never folded), seeded at
103
+ * DEFAULT_POSTURE. This is the collection-level posture a `'*'` LEAF node contributes to a
104
+ * folded-kind formula edge (derivation/rollup/mv/overlay) — see {@link _contribution}. A
105
+ * plain (unregistered) field contributes nothing (the identity), so the fold is strictly
106
+ * more conservative than deps-based taint and never hits the KNOWN-LIMIT wall (it names no
107
+ * fields — seam map §1d). Memoized per collection in `_wildcardCache`. */
108
+ private _wildcardContribution;
109
+ private _computeEffective;
110
+ /** Strictest source posture on every axis, per §2. `undefined` when `target` has no
111
+ * in-edges (not a derived field). Transitive: folds through chained derivations. */
112
+ effectivePosture(target: FieldRef): ViaPosture | undefined;
113
+ /** Per-collection { field → effectivePosture } overlay the pipeline consumes (Task 3). */
114
+ taintedPostures(collection: string): ReadonlyMap<string, ViaPosture>;
115
+ /** Materialized (`grain !== 'virtual'`) derived fields on `collection` whose effective
116
+ * encryptedAtRest resolves to 'sealed' — the taint-seal set (Task 3). #638 Task 7
117
+ * makes the `grain !== 'virtual'` filter meaningful: a `computed(fn, { mode: 'virtual' })`
118
+ * field is never stored (rides the `present` phase, seam map Part 4's money-Formatted/
119
+ * i18n-Label precedent), so it is EXCLUDED here even when its effective `encryptedAtRest`
120
+ * folds to `'sealed'` — there is no envelope slot to seal. It still surfaces in
121
+ * {@link taintedPostures} (query refusal via `postureFor`'s `queryable` clamp above, and
122
+ * export refusal via `exportable`) — only the AT-REST SEALING ACTION is skipped. */
123
+ taintSealedFields(collection: string): ReadonlySet<string>;
124
+ /** Fields on `collection` whose registered edge is `grain === 'virtual'` (#638 Task 7) —
125
+ * `via/graph-wiring.ts#applyTaintOverlay` intersects this with `exportable === false`
126
+ * postures to know which virtual fields need PRESENT-TIME (not just export-time)
127
+ * redaction, since a virtual field's value is only ever materialized inside `present()`. */
128
+ virtualFields(collection: string): ReadonlySet<string>;
129
+ /** Per-collection { field → immediate source field names that forced its
130
+ * effective posture away from `DEFAULT_POSTURE` } — `describe()`'s
131
+ * provenance (Task 3). Only the DIRECT declared sources are named (not the
132
+ * ultimate origin several hops up a transitive chain); a source absent
133
+ * from the result contributed nothing restrictive. */
134
+ taintProvenance(collection: string): ReadonlyMap<string, readonly string[]>;
135
+ private _targetsDependingOn;
136
+ /** Dispatch (Task 4): every derived target triggered by a write to `collection`. Excludes
137
+ * `'ref'` edges (#650 Task 5 review, folded Minor) — a `'ref'` edge is consulted only by the
138
+ * delete/forget-time restrict/cascade/nullify path ({@link referencingEdgesOf}), never by the
139
+ * sync/cutover/restore dispatch wave (`runGraphDispatchWave`); counting it here defeated that
140
+ * wave's zero-cost early-continue, costing every write to a referenced backing collection an
141
+ * unconditional decrypt + two no-op dispatch passes. {@link derivedArtifactsOf} (erasure
142
+ * fanout) still includes `'ref'` edges — the forget path genuinely needs them. */
143
+ dependentsOf(collection: string): ReadonlyArray<{
144
+ readonly target: FieldRef;
145
+ readonly kind: EdgeKind;
146
+ readonly grain: Grain;
147
+ }>;
148
+ /** Erasure (Task 6): derived artifacts of a forgotten record whose source is `collection`. */
149
+ derivedArtifactsOf(collection: string): ReadonlyArray<{
150
+ readonly target: FieldRef;
151
+ readonly kind: EdgeKind;
152
+ readonly grain: Grain;
153
+ }>;
154
+ /** Referencing edges pointing AT a backing dimension (delete/forget-time restrict/cascade/
155
+ * nullify, #650 Task 5) — an O(1) reverse lookup via the existing `_out` map (keyed at the
156
+ * dimension's wildcard `field:'*'` node, the same convention every whole-collection source
157
+ * already uses), NEVER a scan across collections or records. `backing` is the collection name
158
+ * a lookup field's edge was registered against (a reserved dimension's `_dict_<name>`/
159
+ * `_lookup_<name>` collection name, or a matrix dimension's own collection name). */
160
+ referencingEdgesOf(backing: string): ReadonlyArray<{
161
+ readonly referencing: FieldRef;
162
+ readonly onDelete: OnDelete;
163
+ readonly keyField: string;
164
+ }>;
165
+ }