@noy-db/hub 0.3.0-pre.10 → 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 (885) hide show
  1. package/dist/aggregate/index.js +4 -4
  2. package/dist/api-YGMINAET.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/backup-XA5STIYQ.js +225 -0
  6. package/dist/blobs/index.js +10 -10
  7. package/dist/broker/index.js +92 -0
  8. package/dist/broker/index.js.map +1 -0
  9. package/dist/bundle/index.js +20 -20
  10. package/dist/by/index.js +2 -2
  11. package/dist/cargo/index.js +30 -30
  12. package/dist/chunk-25NDNMQ7.js +70 -0
  13. package/dist/chunk-2JMMY7HZ.js +188 -0
  14. package/dist/chunk-3CNQ7FQ3.js +430 -0
  15. package/dist/chunk-3G4KMVUN.js +291 -0
  16. package/dist/chunk-3MSQLQNZ.js +74 -0
  17. package/dist/chunk-45ZZLTFH.js +38 -0
  18. package/dist/chunk-4GPE63GU.js +111 -0
  19. package/dist/chunk-4GPE63GU.js.map +1 -0
  20. package/dist/chunk-4N5QFSNQ.js +150 -0
  21. package/dist/chunk-4R4Q64W5.js +34 -0
  22. package/dist/chunk-57V5S7PW.js +130 -0
  23. package/dist/chunk-5JB73NMC.js +202 -0
  24. package/dist/chunk-5XIPOCQC.js +155 -0
  25. package/dist/chunk-5ZOSG3RJ.js +778 -0
  26. package/dist/chunk-67TNU77I.js +36 -0
  27. package/dist/chunk-6QILBDZU.js +205 -0
  28. package/dist/chunk-7E67FJ33.js +155 -0
  29. package/dist/chunk-7ITPJFGC.js +50 -0
  30. package/dist/chunk-7NS43EXZ.js +117 -0
  31. package/dist/chunk-7QIXUSDQ.js +341 -0
  32. package/dist/chunk-7VSGW5KJ.js +74 -0
  33. package/dist/chunk-A2QF4JUE.js +14073 -0
  34. package/dist/chunk-A2QF4JUE.js.map +1 -0
  35. package/dist/chunk-A2Y6YFVN.js +209 -0
  36. package/dist/chunk-AOVDSIL3.js +1221 -0
  37. package/dist/chunk-ARSAMO24.js +29 -0
  38. package/dist/chunk-AWB5JZW6.js +41 -0
  39. package/dist/chunk-BCYQA5BK.js +45 -0
  40. package/dist/chunk-BE7N3AXA.js +621 -0
  41. package/dist/chunk-BEIRE5K4.js +164 -0
  42. package/dist/chunk-BZO4WCJI.js +86 -0
  43. package/dist/chunk-C3YH34IL.js +75 -0
  44. package/dist/chunk-C7NTK5I3.js +49 -0
  45. package/dist/chunk-CB25ONKC.js +129 -0
  46. package/dist/chunk-CIKY6I4W.js +21 -0
  47. package/dist/chunk-CKZW6P5V.js +32 -0
  48. package/dist/chunk-CKZW6P5V.js.map +1 -0
  49. package/dist/chunk-D26JB3LZ.js +54 -0
  50. package/dist/chunk-D3EFFFOL.js +59 -0
  51. package/dist/chunk-DGH65E7Q.js +466 -0
  52. package/dist/chunk-DIRRS7WP.js +42 -0
  53. package/dist/chunk-DJ3VKYFA.js +150 -0
  54. package/dist/chunk-DJ3VKYFA.js.map +1 -0
  55. package/dist/chunk-DMFNPHCX.js +247 -0
  56. package/dist/chunk-ELNBMFOS.js +392 -0
  57. package/dist/chunk-FH542DDY.js +1505 -0
  58. package/dist/chunk-FH542DDY.js.map +1 -0
  59. package/dist/chunk-FQQF23MC.js +45 -0
  60. package/dist/chunk-FXK4X4BL.js +91 -0
  61. package/dist/chunk-GA2QHD6P.js +235 -0
  62. package/dist/chunk-H44ZE4IE.js +355 -0
  63. package/dist/chunk-H6CZSDWK.js +1697 -0
  64. package/dist/chunk-H6HM6CVR.js +279 -0
  65. package/dist/chunk-HFJIGWJC.js +382 -0
  66. package/dist/chunk-HUS3J5WM.js +404 -0
  67. package/dist/chunk-IDIV5NVH.js +99 -0
  68. package/dist/chunk-IGJHJYM6.js +515 -0
  69. package/dist/chunk-IP2QBAGS.js +589 -0
  70. package/dist/chunk-JOQ53DMI.js +255 -0
  71. package/dist/chunk-K62IUKOD.js +823 -0
  72. package/dist/chunk-KPGX66PM.js +230 -0
  73. package/dist/chunk-L2SNBIV7.js +453 -0
  74. package/dist/chunk-MCEKIAO4.js +367 -0
  75. package/dist/chunk-MELR46EF.js +280 -0
  76. package/dist/chunk-MSPNM2OM.js +95 -0
  77. package/dist/chunk-O2DYPAZY.js +23 -0
  78. package/dist/chunk-ODJWBC5I.js +30 -0
  79. package/dist/chunk-OEAATWH5.js +686 -0
  80. package/dist/chunk-OFJ5GPNA.js +71 -0
  81. package/dist/chunk-OOLO4LQG.js +99 -0
  82. package/dist/chunk-P5RY4ZWD.js +662 -0
  83. package/dist/chunk-PR5LC5YX.js +265 -0
  84. package/dist/chunk-PXWVF7MC.js +135 -0
  85. package/dist/chunk-Q3XSMOZM.js +40 -0
  86. package/dist/chunk-QLLKLFE2.js +94 -0
  87. package/dist/chunk-QQJXBZCO.js +1056 -0
  88. package/dist/chunk-QQJXBZCO.js.map +1 -0
  89. package/dist/chunk-QYPKGVT4.js +261 -0
  90. package/dist/chunk-RKRGDAS7.js +59 -0
  91. package/dist/chunk-SRVQHVNX.js +164 -0
  92. package/dist/chunk-SYMS4546.js +29 -0
  93. package/dist/chunk-TPH5EO6L.js +54 -0
  94. package/dist/chunk-UFILRICG.js +14 -0
  95. package/dist/chunk-UTLEAJXC.js +97 -0
  96. package/dist/chunk-VA4ZWLFY.js +123 -0
  97. package/dist/chunk-VR24ILCR.js +367 -0
  98. package/dist/chunk-W5D62AQD.js +944 -0
  99. package/dist/chunk-WGV4CUZT.js +167 -0
  100. package/dist/chunk-WTUNZACT.js +30 -0
  101. package/dist/chunk-WTUNZACT.js.map +1 -0
  102. package/dist/chunk-X6CMGUAG.js +69 -0
  103. package/dist/chunk-XFXUTFWQ.js +85 -0
  104. package/dist/chunk-XHV25KBM.js +30 -0
  105. package/dist/chunk-YSXEFGND.js +124 -0
  106. package/dist/chunk-YXOUQ2H7.js +36 -0
  107. package/dist/chunk-ZP5PL65C.js +80 -0
  108. package/dist/classified/index.js +5 -5
  109. package/dist/classified-marker-LQWWQNIJ.js +24 -0
  110. package/dist/collection-facade-YE2O4J4O.js +39 -0
  111. package/dist/computed-W6MVAMWZ.js +11 -0
  112. package/dist/consent/index.js +9 -9
  113. package/dist/crdt/index.js +1 -1
  114. package/dist/dead-filter-4KXZEB3X.js +28 -0
  115. package/dist/delegation-OPUU3R2E.js +25 -0
  116. package/dist/derivations/index.js +12 -12
  117. package/dist/derive-BGUHU663.js +21 -0
  118. package/dist/enclave-VXAQD4XJ.js +135 -0
  119. package/dist/executor-GTVSUUBX.js +25 -0
  120. package/dist/executor-GZWMTOXB.js +9 -0
  121. package/dist/executor-XXGS4S3K.js +9 -0
  122. package/dist/export-accessible-BMULIOYB.js +23 -0
  123. package/dist/extract-partition-JUQTWDXR.js +36 -0
  124. package/dist/fanout-sidecar-CKYFH33E.js +74 -0
  125. package/dist/find-XRGCNGNN.js +11 -0
  126. package/dist/forget/index.js +10 -10
  127. package/dist/forget/index.js.map +1 -1
  128. package/dist/guards/index.js +3 -3
  129. package/dist/history/index.js +11 -11
  130. package/dist/i18n/index.js +15 -15
  131. package/dist/index.d.ts +303 -1492
  132. package/dist/index.js +172 -171
  133. package/dist/index.js.map +1 -1
  134. package/dist/indexing/index.js +2 -2
  135. package/dist/issue-UB6AA5M6.js +19 -0
  136. package/dist/kernel/cache/index.d.ts +10 -0
  137. package/dist/kernel/cache/lru.d.ts +97 -0
  138. package/dist/kernel/cache/policy.d.ts +32 -0
  139. package/dist/kernel/collection-config.d.ts +781 -0
  140. package/dist/kernel/collection.d.ts +1505 -0
  141. package/dist/kernel/constants.d.ts +18 -0
  142. package/dist/kernel/debug.d.ts +25 -0
  143. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  144. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  145. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  146. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  147. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  148. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  149. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  150. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  151. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  152. package/dist/kernel/enclave/classify/verify.d.ts +33 -0
  153. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  154. package/dist/kernel/enclave/crypto.d.ts +263 -0
  155. package/dist/kernel/enclave/index.d.ts +78 -0
  156. package/dist/kernel/enclave/record-keys/deterministic.d.ts +54 -0
  157. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  158. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +57 -0
  159. package/dist/kernel/enclave/record-keys/record-codec.d.ts +301 -0
  160. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  161. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  162. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  163. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  164. package/dist/kernel/env-check.d.ts +1 -0
  165. package/dist/kernel/errors.d.ts +1848 -0
  166. package/dist/kernel/events.d.ts +11 -0
  167. package/dist/kernel/memory-store.d.ts +17 -0
  168. package/dist/kernel/mutation.d.ts +14 -0
  169. package/dist/kernel/noydb.d.ts +818 -0
  170. package/dist/kernel/paths.d.ts +25 -0
  171. package/dist/kernel/query/builder.d.ts +520 -0
  172. package/dist/kernel/query/index.d.ts +31 -0
  173. package/dist/kernel/query/join.d.ts +205 -0
  174. package/dist/kernel/query/live.d.ts +111 -0
  175. package/dist/kernel/query/predicate.d.ts +139 -0
  176. package/dist/kernel/query/scan-builder.d.ts +334 -0
  177. package/dist/kernel/refs.d.ts +205 -0
  178. package/dist/kernel/schema.d.ts +134 -0
  179. package/dist/kernel/sync-policy.d.ts +188 -0
  180. package/dist/kernel/types.d.ts +3147 -0
  181. package/dist/kernel/util/discriminant.d.ts +58 -0
  182. package/dist/kernel/util/index.d.ts +14 -0
  183. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  184. package/dist/kernel/validation.d.ts +130 -0
  185. package/dist/kernel/vault.d.ts +1723 -0
  186. package/dist/kernel/via/compose.d.ts +144 -0
  187. package/dist/kernel/via/dispatch.d.ts +185 -0
  188. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  189. package/dist/kernel/via/graph.d.ts +165 -0
  190. package/dist/kernel/via/index.d.ts +200 -0
  191. package/dist/kernel/via/pipeline.d.ts +266 -0
  192. package/dist/kernel/via/reconcile.d.ts +153 -0
  193. package/dist/kernel/via/taint-binding.d.ts +66 -0
  194. package/dist/kernel/write-queue.d.ts +46 -0
  195. package/dist/ledger-FU6GH5EH.js +42 -0
  196. package/dist/legacy/bundle.d.ts +30 -0
  197. package/dist/legacy/kernel.d.ts +33 -0
  198. package/dist/liberate-YUN7W5QG.js +24 -0
  199. package/dist/link-set-MNADSH5M.js +31 -0
  200. package/dist/materialized-views/index.js +19 -19
  201. package/dist/noydb-6JLBZU4U.js +67 -0
  202. package/dist/on/index.js +9 -9
  203. package/dist/overlay-views/index.js +4 -4
  204. package/dist/periods/index.js +12 -12
  205. package/dist/pod/index.js +11 -11
  206. package/dist/policy-JTFOPPUU.js +41 -0
  207. package/dist/port/as/index.d.ts +26 -0
  208. package/dist/port/at/index.d.ts +18 -0
  209. package/dist/port/by/default-provider.d.ts +9 -0
  210. package/dist/port/by/index.d.ts +17 -0
  211. package/dist/port/by/types.d.ts +86 -0
  212. package/dist/port/in/index.d.ts +21 -0
  213. package/dist/port/on/index.d.ts +27 -0
  214. package/dist/port/to/index.d.ts +19 -0
  215. package/dist/port/ui/index.d.ts +21 -0
  216. package/dist/port/with/blob-strategy.d.ts +81 -0
  217. package/dist/port/with/broker-strategy.d.ts +84 -0
  218. package/dist/port/with/capabilities.d.ts +31 -0
  219. package/dist/port/with/classified-marker.d.ts +9 -0
  220. package/dist/port/with/classified-strategy.d.ts +62 -0
  221. package/dist/port/with/computed-strategy.d.ts +19 -0
  222. package/dist/port/with/i18n-strategy.d.ts +175 -0
  223. package/dist/port/with/index.d.ts +18 -0
  224. package/dist/port/with/lazy-strategy.d.ts +48 -0
  225. package/dist/port/with/lookup-strategy.d.ts +128 -0
  226. package/dist/port/with/service-bus.d.ts +156 -0
  227. package/dist/port/with/team-strategy.d.ts +36 -0
  228. package/dist/port/with/write-hooks.d.ts +34 -0
  229. package/dist/portability/index.js +8 -8
  230. package/dist/post-register-HAWO3O7O.js +55 -0
  231. package/dist/public-envelope-NJVB7LPA.js +32 -0
  232. package/dist/purge-scope-FGNNLWHD.js +24 -0
  233. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  234. package/dist/query/index.js +5 -5
  235. package/dist/register-VCKOBWKT.js +23 -0
  236. package/dist/registry-72UKJ2L4.js +9 -0
  237. package/dist/registry-BZFLJNEH.js +18 -0
  238. package/dist/registry-YJEYSYI5.js +19 -0
  239. package/dist/request-withdrawal-6MJRMFHF.js +31 -0
  240. package/dist/reveal-BOY7XYFH.js +38 -0
  241. package/dist/revoke-4KUNSVJC.js +24 -0
  242. package/dist/satellites/index.js +1 -1
  243. package/dist/sealed-record/index.js +12 -12
  244. package/dist/seed-4RRXT42N.js +231 -0
  245. package/dist/seed-4RRXT42N.js.map +1 -0
  246. package/dist/session/index.js +9 -9
  247. package/dist/shadow/index.js +2 -2
  248. package/dist/signer-DDDXP5JD.js +25 -0
  249. package/dist/snapshots/index.js +10 -10
  250. package/dist/stale-NXPT56JA.js +14 -0
  251. package/dist/storage-IR6EEAV2.js +23 -0
  252. package/dist/store-coordination-provider-HPYVFJCV.js +142 -0
  253. package/dist/sync/index.js +9 -9
  254. package/dist/team/index.js +15 -15
  255. package/dist/tiers/index.js +10 -10
  256. package/dist/to/index.js +1 -1
  257. package/dist/tx/index.js +3 -3
  258. package/dist/util/index.js +1 -1
  259. package/dist/verify-66RHOW7N.js +139 -0
  260. package/dist/via/blob/active.d.ts +34 -0
  261. package/dist/via/blob/binding.d.ts +86 -0
  262. package/dist/via/blob/index.d.ts +34 -0
  263. package/dist/via/classified/active.d.ts +3 -0
  264. package/dist/via/classified/binding.d.ts +83 -0
  265. package/dist/via/classified/config-drift.d.ts +34 -0
  266. package/dist/via/classified/descriptor.d.ts +66 -0
  267. package/dist/via/classified/errors.d.ts +19 -0
  268. package/dist/via/classified/guards.d.ts +23 -0
  269. package/dist/via/classified/index.d.ts +11 -0
  270. package/dist/via/classified/presets.d.ts +65 -0
  271. package/dist/via/classified/resolve.d.ts +9 -0
  272. package/dist/via/classified/strategy.d.ts +11 -0
  273. package/dist/via/classified/validators.d.ts +3 -0
  274. package/dist/via/classified/write.d.ts +4 -0
  275. package/dist/via/computed/binding.d.ts +34 -0
  276. package/dist/via/computed/descriptor.d.ts +35 -0
  277. package/dist/via/i18n/active.d.ts +28 -0
  278. package/dist/via/i18n/binding.d.ts +36 -0
  279. package/dist/via/i18n/core.d.ts +267 -0
  280. package/dist/via/i18n/densify.d.ts +24 -0
  281. package/dist/via/i18n/dictionary.d.ts +200 -0
  282. package/dist/via/i18n/index.d.ts +21 -0
  283. package/dist/via/i18n/policy.d.ts +44 -0
  284. package/dist/via/i18n/script.d.ts +26 -0
  285. package/dist/via/i18n/strategy.d.ts +13 -0
  286. package/dist/via/lookup/active.d.ts +19 -0
  287. package/dist/via/lookup/binding.d.ts +99 -0
  288. package/dist/via/lookup/descriptor.d.ts +123 -0
  289. package/dist/via/lookup/handle.d.ts +220 -0
  290. package/dist/via/lookup/index.d.ts +17 -0
  291. package/dist/via/lookup/registry.d.ts +219 -0
  292. package/dist/via/lookup/snapshot.d.ts +67 -0
  293. package/dist/via/money/arith.d.ts +68 -0
  294. package/dist/via/money/binding.d.ts +21 -0
  295. package/dist/via/money/branded.d.ts +61 -0
  296. package/dist/via/money/descriptor.d.ts +73 -0
  297. package/dist/via/money/fixed-point.d.ts +51 -0
  298. package/dist/via/money/index.d.ts +15 -0
  299. package/dist/via/money/iso4217.d.ts +6 -0
  300. package/dist/via/money/money-reducer.d.ts +33 -0
  301. package/dist/via/money/normalize.d.ts +105 -0
  302. package/dist/via/money/paths.d.ts +61 -0
  303. package/dist/via/money/where.d.ts +106 -0
  304. package/dist/walk-2RWEOCAS.js +241 -0
  305. package/dist/with/index.js +11 -11
  306. package/dist/with-audit/attestation/active.d.ts +10 -0
  307. package/dist/with-audit/attestation/index.d.ts +16 -0
  308. package/dist/with-audit/attestation/issue.d.ts +29 -0
  309. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  310. package/dist/with-audit/attestation/signer.d.ts +33 -0
  311. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  312. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  313. package/dist/with-audit/consent/active.d.ts +14 -0
  314. package/dist/with-audit/consent/consent.d.ts +114 -0
  315. package/dist/with-audit/consent/index.d.ts +14 -0
  316. package/dist/with-audit/consent/strategy.d.ts +36 -0
  317. package/dist/with-audit/forget/active.d.ts +31 -0
  318. package/dist/with-audit/forget/index.d.ts +28 -0
  319. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  320. package/dist/with-audit/forget/strategy.d.ts +177 -0
  321. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  322. package/dist/with-audit/guards/executor.d.ts +26 -0
  323. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  324. package/dist/with-audit/guards/index.d.ts +10 -0
  325. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  326. package/dist/with-audit/guards/registry.d.ts +83 -0
  327. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  328. package/dist/with-audit/guards/types.d.ts +134 -0
  329. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  330. package/dist/with-audit/periods/active.d.ts +11 -0
  331. package/dist/with-audit/periods/index.d.ts +18 -0
  332. package/dist/with-audit/periods/periods.d.ts +417 -0
  333. package/dist/with-audit/periods/strategy.d.ts +32 -0
  334. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  335. package/dist/with-audit/portability/active.d.ts +11 -0
  336. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  337. package/dist/with-audit/portability/index.d.ts +18 -0
  338. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  339. package/dist/with-audit/portability/strategy.d.ts +31 -0
  340. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  341. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  342. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  343. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  344. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  345. package/dist/with-audit/tiers/active.d.ts +9 -0
  346. package/dist/with-audit/tiers/index.d.ts +122 -0
  347. package/dist/with-audit/tiers/strategy.d.ts +35 -0
  348. package/dist/with-cargo/active.d.ts +11 -0
  349. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  350. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  351. package/dist/with-cargo/describe-extraction.d.ts +33 -0
  352. package/dist/with-cargo/extract-partition.d.ts +147 -0
  353. package/dist/with-cargo/index.d.ts +33 -0
  354. package/dist/with-cargo/strategy.d.ts +30 -0
  355. package/dist/with-cargo/vault-diff.d.ts +144 -0
  356. package/dist/with-cargo/walk-closure.d.ts +38 -0
  357. package/dist/with-commit/crdt/active.d.ts +25 -0
  358. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  359. package/dist/with-commit/crdt/index.d.ts +16 -0
  360. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  361. package/dist/with-commit/history/active.d.ts +40 -0
  362. package/dist/with-commit/history/diff.d.ts +23 -0
  363. package/dist/with-commit/history/history.d.ts +27 -0
  364. package/dist/with-commit/history/index.d.ts +30 -0
  365. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  366. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  367. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  368. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  369. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  370. package/dist/with-commit/history/ledger/store.d.ts +335 -0
  371. package/dist/with-commit/history/strategy.d.ts +126 -0
  372. package/dist/with-commit/history/time-machine.d.ts +179 -0
  373. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  374. package/dist/with-commit/numbering/index.d.ts +69 -0
  375. package/dist/with-commit/sequence/active.d.ts +10 -0
  376. package/dist/with-commit/sequence/index.d.ts +150 -0
  377. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  378. package/dist/with-commit/tx/active.d.ts +27 -0
  379. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  380. package/dist/with-commit/tx/elevated-handle.d.ts +58 -0
  381. package/dist/with-commit/tx/index.d.ts +13 -0
  382. package/dist/with-commit/tx/invariants.d.ts +68 -0
  383. package/dist/with-commit/tx/strategy.d.ts +23 -0
  384. package/dist/with-commit/tx/transaction.d.ts +207 -0
  385. package/dist/with-fork/archive/engine.d.ts +71 -0
  386. package/dist/with-fork/archive/index.d.ts +23 -0
  387. package/dist/with-fork/shadow/active.d.ts +6 -0
  388. package/dist/with-fork/shadow/index.d.ts +14 -0
  389. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  390. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  391. package/dist/with-fork/snapshots/active.d.ts +20 -0
  392. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  393. package/dist/with-fork/snapshots/index.d.ts +5 -0
  394. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  395. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  396. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  397. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  398. package/dist/with-formula/computed/index.d.ts +48 -0
  399. package/dist/with-formula/computed/lazy.d.ts +13 -0
  400. package/dist/with-formula/derivations/executor.d.ts +61 -0
  401. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  402. package/dist/with-formula/derivations/index.d.ts +6 -0
  403. package/dist/with-formula/derivations/registry.d.ts +67 -0
  404. package/dist/with-formula/derivations/stale.d.ts +39 -0
  405. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  406. package/dist/with-formula/derivations/types.d.ts +248 -0
  407. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  408. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  409. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  410. package/dist/with-formula/materialized-views/executor.d.ts +71 -0
  411. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  412. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  413. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  414. package/dist/with-formula/materialized-views/stale.d.ts +62 -0
  415. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  416. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  417. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  418. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  419. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  420. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  421. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  422. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  423. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  424. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  425. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  426. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  427. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  428. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  429. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  430. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  431. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  432. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  433. package/dist/with-lookup/indexing/active.d.ts +30 -0
  434. package/dist/with-lookup/indexing/collection-facade.d.ts +120 -0
  435. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  436. package/dist/with-lookup/indexing/index.d.ts +27 -0
  437. package/dist/with-lookup/indexing/lazy-builder.d.ts +69 -0
  438. package/dist/with-lookup/indexing/persisted-indexes.d.ts +186 -0
  439. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  440. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  441. package/dist/with-lookup/search/active.d.ts +10 -0
  442. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  443. package/dist/with-lookup/search/collection-facade.d.ts +123 -0
  444. package/dist/with-lookup/search/fuse.d.ts +22 -0
  445. package/dist/with-lookup/search/index-store.d.ts +19 -0
  446. package/dist/with-lookup/search/index.d.ts +19 -0
  447. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  448. package/dist/with-lookup/search/persisted-index-store.d.ts +41 -0
  449. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  450. package/dist/with-lookup/search/scan.d.ts +28 -0
  451. package/dist/with-lookup/search/segment.d.ts +15 -0
  452. package/dist/with-lookup/search/serialize.d.ts +4 -0
  453. package/dist/with-lookup/search/snippet.d.ts +5 -0
  454. package/dist/with-lookup/search/strategy.d.ts +37 -0
  455. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  456. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  457. package/dist/with-party/broker/active.d.ts +23 -0
  458. package/dist/with-party/broker/index.d.ts +28 -0
  459. package/dist/with-party/broker/seed.d.ts +77 -0
  460. package/dist/with-party/custody/active.d.ts +10 -0
  461. package/dist/with-party/custody/index.d.ts +69 -0
  462. package/dist/with-party/custody/liberate.d.ts +64 -0
  463. package/dist/with-party/custody/strategy.d.ts +48 -0
  464. package/dist/with-party/directory/index.d.ts +11 -0
  465. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  466. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  467. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  468. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  469. package/dist/with-party/directory/storage.d.ts +33 -0
  470. package/dist/with-party/directory/types.d.ts +43 -0
  471. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  472. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  473. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  474. package/dist/with-party/directory/visibility.d.ts +47 -0
  475. package/dist/with-party/policy/engine.d.ts +60 -0
  476. package/dist/with-party/policy/index.d.ts +15 -0
  477. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  478. package/dist/with-party/policy/presets.d.ts +38 -0
  479. package/dist/with-party/policy/storage.d.ts +31 -0
  480. package/dist/with-party/session/active.d.ts +34 -0
  481. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  482. package/dist/with-party/session/index.d.ts +23 -0
  483. package/dist/with-party/session/session-policy.d.ts +92 -0
  484. package/dist/with-party/session/session.d.ts +131 -0
  485. package/dist/with-party/session/strategy.d.ts +42 -0
  486. package/dist/with-party/session/unlock-state.d.ts +47 -0
  487. package/dist/with-party/sync/index.d.ts +31 -0
  488. package/dist/with-party/tab-coordination.d.ts +73 -0
  489. package/dist/with-party/tab-write-relay.d.ts +39 -0
  490. package/dist/with-party/team/active.d.ts +13 -0
  491. package/dist/with-party/team/authenticators.d.ts +95 -0
  492. package/dist/with-party/team/deed.d.ts +97 -0
  493. package/dist/with-party/team/delegation.d.ts +88 -0
  494. package/dist/with-party/team/index.d.ts +38 -0
  495. package/dist/with-party/team/keyring.d.ts +318 -0
  496. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  497. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  498. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  499. package/dist/with-party/team/peer-recover.d.ts +81 -0
  500. package/dist/with-party/team/presence.d.ts +81 -0
  501. package/dist/with-party/team/recovery.d.ts +191 -0
  502. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  503. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  504. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  505. package/dist/with-party/team/strategy.d.ts +9 -0
  506. package/dist/with-party/team/sync-active.d.ts +33 -0
  507. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  508. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  509. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  510. package/dist/with-party/team/sync.d.ts +165 -0
  511. package/dist/with-party/team/tiers.d.ts +39 -0
  512. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  513. package/dist/with-pod/backup.d.ts +74 -0
  514. package/dist/with-pod/bundle.d.ts +414 -0
  515. package/dist/with-pod/format.d.ts +203 -0
  516. package/dist/with-pod/index.d.ts +20 -0
  517. package/dist/with-pod/pod-store.d.ts +54 -0
  518. package/dist/with-pod/ulid.d.ts +64 -0
  519. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  520. package/dist/with-shape/blobs/blob-set.d.ts +342 -0
  521. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  522. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  523. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  524. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  525. package/dist/with-shape/introspection/describe.d.ts +237 -0
  526. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  527. package/dist/with-shape/introspection/fields.d.ts +14 -0
  528. package/dist/with-shape/introspection/index.d.ts +12 -0
  529. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  530. package/dist/with-shape/introspection/meta.d.ts +22 -0
  531. package/dist/with-shape/introspection/projection.d.ts +13 -0
  532. package/dist/with-shape/introspection/types.d.ts +154 -0
  533. package/dist/with-shape/introspection/walk.d.ts +50 -0
  534. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  535. package/dist/with-shape/links/link-set.d.ts +67 -0
  536. package/dist/with-shape/links/names.d.ts +65 -0
  537. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  538. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  539. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  540. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  541. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  542. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  543. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  544. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  545. package/dist/with-shape/satellites/declare.d.ts +60 -0
  546. package/dist/with-shape/satellites/existence.d.ts +5 -0
  547. package/dist/with-shape/satellites/fanout.d.ts +37 -0
  548. package/dist/with-shape/satellites/forget.d.ts +47 -0
  549. package/dist/with-shape/satellites/index.d.ts +3 -0
  550. package/dist/with-shape/satellites/joined.d.ts +19 -0
  551. package/dist/with-shape/satellites/marker.d.ts +10 -0
  552. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  553. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  554. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  555. package/dist/with-shape/satellites/registry.d.ts +19 -0
  556. package/dist/with-shape/satellites/types.d.ts +26 -0
  557. package/dist/with-shape/satellites/validate.d.ts +17 -0
  558. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  559. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  560. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  561. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  562. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  563. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  564. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  565. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  566. package/dist/with-shape/schema-update/index.d.ts +6 -0
  567. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  568. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  569. package/dist/with-shape/schema-update/types.d.ts +53 -0
  570. package/dist/with-store/index.d.ts +15 -0
  571. package/dist/with-store/lazy/active.d.ts +12 -0
  572. package/dist/with-store/lazy/index.d.ts +14 -0
  573. package/dist/with-store/lazy/strategy.d.ts +9 -0
  574. package/dist/with-store/route-store.d.ts +259 -0
  575. package/dist/with-store/store-middleware.d.ts +189 -0
  576. package/dist/withdraw-accessible-CLMZEHQT.js +28 -0
  577. package/package.json +47 -43
  578. package/dist/aggregate/index.d.ts +0 -41
  579. package/dist/api-TX2EX2FX.js +0 -20
  580. package/dist/as/index.d.ts +0 -6
  581. package/dist/at/index.d.ts +0 -4
  582. package/dist/attestation/index.d.ts +0 -19
  583. package/dist/backup-R7NTDFKY.js +0 -225
  584. package/dist/blobs/index.d.ts +0 -43
  585. package/dist/bundle/index.d.ts +0 -121
  586. package/dist/bundle-D6GxiUfq.d.ts +0 -548
  587. package/dist/by/index.d.ts +0 -1
  588. package/dist/cargo/index.d.ts +0 -7
  589. package/dist/chunk-2OV5NVE7.js +0 -95
  590. package/dist/chunk-2OZXVKVP.js +0 -367
  591. package/dist/chunk-2REPHKET.js +0 -54
  592. package/dist/chunk-3JXPAHOZ.js +0 -686
  593. package/dist/chunk-3MATJ6O4.js +0 -367
  594. package/dist/chunk-3OPY6MK2.js +0 -404
  595. package/dist/chunk-3QSIU3UT.js +0 -291
  596. package/dist/chunk-4OMCIY6F.js +0 -99
  597. package/dist/chunk-5I35DOHK.js +0 -94
  598. package/dist/chunk-5VG4IJR7.js +0 -235
  599. package/dist/chunk-5YESYH2C.js +0 -155
  600. package/dist/chunk-6G5ORS5D.js +0 -202
  601. package/dist/chunk-6P5XCKSD.js +0 -71
  602. package/dist/chunk-6S7T6WC4.js +0 -111
  603. package/dist/chunk-6S7T6WC4.js.map +0 -1
  604. package/dist/chunk-7BWJHO2A.js +0 -34
  605. package/dist/chunk-7P2SDJG3.js +0 -279
  606. package/dist/chunk-ANB77BVV.js +0 -150
  607. package/dist/chunk-ANB77BVV.js.map +0 -1
  608. package/dist/chunk-BKARNZJN.js +0 -382
  609. package/dist/chunk-BQISD5ZV.js +0 -261
  610. package/dist/chunk-BUAQ7YI3.js +0 -1697
  611. package/dist/chunk-CB7CWSKW.js +0 -430
  612. package/dist/chunk-DFVUTGT2.js +0 -515
  613. package/dist/chunk-DJ7KIPLV.js +0 -23
  614. package/dist/chunk-DSKDQP3G.js +0 -14066
  615. package/dist/chunk-DSKDQP3G.js.map +0 -1
  616. package/dist/chunk-DV4HUP5G.js +0 -99
  617. package/dist/chunk-EOXAAJTY.js +0 -621
  618. package/dist/chunk-ET67AY6B.js +0 -74
  619. package/dist/chunk-F4CEK5YM.js +0 -123
  620. package/dist/chunk-FORYWFN6.js +0 -130
  621. package/dist/chunk-FRP6D2DM.js +0 -91
  622. package/dist/chunk-FUOE7UUV.js +0 -341
  623. package/dist/chunk-G4JYND6L.js +0 -42
  624. package/dist/chunk-G6XV4H65.js +0 -59
  625. package/dist/chunk-GNMXXTMN.js +0 -85
  626. package/dist/chunk-HPWKV3YB.js +0 -21
  627. package/dist/chunk-HY3AUMFI.js +0 -41
  628. package/dist/chunk-HYR4WZZ3.js +0 -69
  629. package/dist/chunk-ICXIFFYZ.js +0 -355
  630. package/dist/chunk-IVLTXX4W.js +0 -280
  631. package/dist/chunk-J4LPNIGK.js +0 -777
  632. package/dist/chunk-JJZ2LW6T.js +0 -36
  633. package/dist/chunk-KJ2BCBTL.js +0 -589
  634. package/dist/chunk-KNZB6JMR.js +0 -129
  635. package/dist/chunk-LEJIKBBB.js +0 -124
  636. package/dist/chunk-LL2NIVUR.js +0 -188
  637. package/dist/chunk-MCHVVJIA.js +0 -968
  638. package/dist/chunk-MCHVVJIA.js.map +0 -1
  639. package/dist/chunk-NUEQU36L.js +0 -392
  640. package/dist/chunk-O45M6LDB.js +0 -38
  641. package/dist/chunk-OBKWYKYC.js +0 -117
  642. package/dist/chunk-OHHKHSJP.js +0 -209
  643. package/dist/chunk-OT76OZL6.js +0 -45
  644. package/dist/chunk-OVYRLHPE.js +0 -150
  645. package/dist/chunk-OXCSVM3B.js +0 -155
  646. package/dist/chunk-P33LUIML.js +0 -205
  647. package/dist/chunk-PLS64NCS.js +0 -59
  648. package/dist/chunk-PS2NEWEX.js +0 -36
  649. package/dist/chunk-QA2KUPCP.js +0 -45
  650. package/dist/chunk-QOC3VYL2.js +0 -30
  651. package/dist/chunk-QSFOZUYL.js +0 -823
  652. package/dist/chunk-RHK32N73.js +0 -30
  653. package/dist/chunk-RW3Y22MW.js +0 -97
  654. package/dist/chunk-S7VFUQM2.js +0 -1484
  655. package/dist/chunk-S7VFUQM2.js.map +0 -1
  656. package/dist/chunk-T7WSLRAU.js +0 -49
  657. package/dist/chunk-TAKWLZZX.js +0 -944
  658. package/dist/chunk-TMBXVJKT.js +0 -75
  659. package/dist/chunk-TWKKOM55.js +0 -54
  660. package/dist/chunk-U3WZCU7E.js +0 -14
  661. package/dist/chunk-UF362QVH.js +0 -70
  662. package/dist/chunk-UN4FVIBH.js +0 -135
  663. package/dist/chunk-VEAVKDDB.js +0 -29
  664. package/dist/chunk-VEPTFUJY.js +0 -29
  665. package/dist/chunk-VJV7GKQK.js +0 -662
  666. package/dist/chunk-VQRAIPYF.js +0 -50
  667. package/dist/chunk-VRIYFLBA.js +0 -74
  668. package/dist/chunk-VWM3DAVB.js +0 -265
  669. package/dist/chunk-VWRRVE6D.js +0 -80
  670. package/dist/chunk-WBJIQSLL.js +0 -167
  671. package/dist/chunk-WIGQB62E.js +0 -164
  672. package/dist/chunk-WZSCE6RM.js +0 -466
  673. package/dist/chunk-XGDAPN6M.js +0 -255
  674. package/dist/chunk-XH7XP3OL.js +0 -1221
  675. package/dist/chunk-XREOISSI.js +0 -40
  676. package/dist/chunk-XUBPSPKD.js +0 -164
  677. package/dist/chunk-Y3A5CB5G.js +0 -247
  678. package/dist/chunk-YCXCR7VG.js +0 -230
  679. package/dist/chunk-YMVQD5Q5.js +0 -453
  680. package/dist/chunk-YN5IAHN6.js +0 -32
  681. package/dist/chunk-YN5IAHN6.js.map +0 -1
  682. package/dist/chunk-ZYJ55N7N.js +0 -86
  683. package/dist/classified/index.d.ts +0 -16
  684. package/dist/classified-marker-H6YSHYNK.js +0 -24
  685. package/dist/collection-facade-LVD22JLM.js +0 -39
  686. package/dist/computed-EXDMQODG.js +0 -11
  687. package/dist/consent/index.d.ts +0 -22
  688. package/dist/crdt/index.d.ts +0 -33
  689. package/dist/dead-filter-HQIE2YG7.js +0 -28
  690. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  691. package/dist/delegation-BJP73GAP.js +0 -25
  692. package/dist/derivations/index.d.ts +0 -69
  693. package/dist/derive-BME7HDWO.js +0 -21
  694. package/dist/dev-unlock-Bmm2pgJ0.d.ts +0 -263
  695. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  696. package/dist/enclave-NHORSWSF.js +0 -125
  697. package/dist/executor-FE6X4LFX.js +0 -9
  698. package/dist/executor-KSHKRJXP.js +0 -25
  699. package/dist/executor-ZHTJJICG.js +0 -9
  700. package/dist/export-accessible-DACHM5VT.js +0 -23
  701. package/dist/extract-partition-RNENZZ4T.js +0 -36
  702. package/dist/fanout-sidecar-OFWN3NM7.js +0 -74
  703. package/dist/find-BNGBJNKP.js +0 -11
  704. package/dist/forget/index.d.ts +0 -36
  705. package/dist/guards/index.d.ts +0 -34
  706. package/dist/hash-DAJjMsCE.d.ts +0 -72
  707. package/dist/history/index.d.ts +0 -60
  708. package/dist/i18n/index.d.ts +0 -56
  709. package/dist/in/index.d.ts +0 -4
  710. package/dist/index-B9QdHytu.d.ts +0 -123
  711. package/dist/index-DjWbxsjb.d.ts +0 -23579
  712. package/dist/index-qwuNvO2B.d.ts +0 -144
  713. package/dist/indexing/index.d.ts +0 -38
  714. package/dist/issue-NDI4CVZU.js +0 -19
  715. package/dist/lazy/index.d.ts +0 -20
  716. package/dist/ledger-6NDS2EO4.js +0 -42
  717. package/dist/liberate-HN3RIGIP.js +0 -24
  718. package/dist/link-set-SJB2MVJV.js +0 -31
  719. package/dist/materialized-views/index.d.ts +0 -189
  720. package/dist/mime-magic-bBj5OgUC.d.ts +0 -103
  721. package/dist/noydb-BWF6EPIR.js +0 -66
  722. package/dist/on/index.d.ts +0 -4
  723. package/dist/overlay-views/index.d.ts +0 -97
  724. package/dist/periods/index.d.ts +0 -19
  725. package/dist/pod/index.d.ts +0 -62
  726. package/dist/policy-WGNAG5H6.js +0 -41
  727. package/dist/portability/index.d.ts +0 -19
  728. package/dist/post-register-CWKBQRC7.js +0 -55
  729. package/dist/public-envelope-EJLVIFX7.js +0 -32
  730. package/dist/query/index.d.ts +0 -4
  731. package/dist/register-SBIX7TVV.js +0 -23
  732. package/dist/registry-3EQG6OOE.js +0 -18
  733. package/dist/registry-CA327ACV.js +0 -9
  734. package/dist/registry-E7OXOTSV.js +0 -19
  735. package/dist/request-withdrawal-KAH2AAXC.js +0 -31
  736. package/dist/reveal-R3JLHMUF.js +0 -38
  737. package/dist/revoke-IXLOJ3IH.js +0 -24
  738. package/dist/satellites/index.d.ts +0 -4
  739. package/dist/sealed-record/index.d.ts +0 -68
  740. package/dist/session/index.d.ts +0 -43
  741. package/dist/shadow/index.d.ts +0 -14
  742. package/dist/signer-Y46N2GJ3.js +0 -25
  743. package/dist/snapshots/index.d.ts +0 -25
  744. package/dist/stale-Z7IW6RIL.js +0 -14
  745. package/dist/storage-ADNP2UWI.js +0 -23
  746. package/dist/store-coordination-provider-DTDMI6VL.js +0 -142
  747. package/dist/subject-index-CyOgGMJL.d.ts +0 -380
  748. package/dist/sync/index.d.ts +0 -40
  749. package/dist/team/index.d.ts +0 -154
  750. package/dist/tiers/index.d.ts +0 -4
  751. package/dist/to/index.d.ts +0 -4
  752. package/dist/transition-guard-DI-krBsZ.d.ts +0 -165
  753. package/dist/tx/index.d.ts +0 -34
  754. package/dist/ui/index.d.ts +0 -4
  755. package/dist/ulid-DRH25k3y.d.ts +0 -66
  756. package/dist/util/index.d.ts +0 -79
  757. package/dist/validators-BUcli5Nh.d.ts +0 -101
  758. package/dist/vault-diff-Z2DUayMe.d.ts +0 -147
  759. package/dist/verify-JPF2YR5E.js +0 -139
  760. package/dist/walk-XYA2O3LW.js +0 -241
  761. package/dist/with/index.d.ts +0 -37
  762. package/dist/with-materialized-view-BUmzlXue.d.ts +0 -27
  763. package/dist/with-overlayed-view-m4FaXXTO.d.ts +0 -12
  764. package/dist/with-rollup-DEKGI9vb.d.ts +0 -47
  765. package/dist/withdraw-accessible-WLV4MTEN.js +0 -28
  766. /package/dist/{api-TX2EX2FX.js.map → api-YGMINAET.js.map} +0 -0
  767. /package/dist/{backup-R7NTDFKY.js.map → backup-XA5STIYQ.js.map} +0 -0
  768. /package/dist/{chunk-UF362QVH.js.map → chunk-25NDNMQ7.js.map} +0 -0
  769. /package/dist/{chunk-LL2NIVUR.js.map → chunk-2JMMY7HZ.js.map} +0 -0
  770. /package/dist/{chunk-CB7CWSKW.js.map → chunk-3CNQ7FQ3.js.map} +0 -0
  771. /package/dist/{chunk-3QSIU3UT.js.map → chunk-3G4KMVUN.js.map} +0 -0
  772. /package/dist/{chunk-VRIYFLBA.js.map → chunk-3MSQLQNZ.js.map} +0 -0
  773. /package/dist/{chunk-O45M6LDB.js.map → chunk-45ZZLTFH.js.map} +0 -0
  774. /package/dist/{chunk-OVYRLHPE.js.map → chunk-4N5QFSNQ.js.map} +0 -0
  775. /package/dist/{chunk-7BWJHO2A.js.map → chunk-4R4Q64W5.js.map} +0 -0
  776. /package/dist/{chunk-FORYWFN6.js.map → chunk-57V5S7PW.js.map} +0 -0
  777. /package/dist/{chunk-6G5ORS5D.js.map → chunk-5JB73NMC.js.map} +0 -0
  778. /package/dist/{chunk-OXCSVM3B.js.map → chunk-5XIPOCQC.js.map} +0 -0
  779. /package/dist/{chunk-J4LPNIGK.js.map → chunk-5ZOSG3RJ.js.map} +0 -0
  780. /package/dist/{chunk-JJZ2LW6T.js.map → chunk-67TNU77I.js.map} +0 -0
  781. /package/dist/{chunk-P33LUIML.js.map → chunk-6QILBDZU.js.map} +0 -0
  782. /package/dist/{chunk-5YESYH2C.js.map → chunk-7E67FJ33.js.map} +0 -0
  783. /package/dist/{chunk-VQRAIPYF.js.map → chunk-7ITPJFGC.js.map} +0 -0
  784. /package/dist/{chunk-OBKWYKYC.js.map → chunk-7NS43EXZ.js.map} +0 -0
  785. /package/dist/{chunk-FUOE7UUV.js.map → chunk-7QIXUSDQ.js.map} +0 -0
  786. /package/dist/{chunk-ET67AY6B.js.map → chunk-7VSGW5KJ.js.map} +0 -0
  787. /package/dist/{chunk-OHHKHSJP.js.map → chunk-A2Y6YFVN.js.map} +0 -0
  788. /package/dist/{chunk-XH7XP3OL.js.map → chunk-AOVDSIL3.js.map} +0 -0
  789. /package/dist/{chunk-VEAVKDDB.js.map → chunk-ARSAMO24.js.map} +0 -0
  790. /package/dist/{chunk-HY3AUMFI.js.map → chunk-AWB5JZW6.js.map} +0 -0
  791. /package/dist/{chunk-OT76OZL6.js.map → chunk-BCYQA5BK.js.map} +0 -0
  792. /package/dist/{chunk-EOXAAJTY.js.map → chunk-BE7N3AXA.js.map} +0 -0
  793. /package/dist/{chunk-XUBPSPKD.js.map → chunk-BEIRE5K4.js.map} +0 -0
  794. /package/dist/{chunk-ZYJ55N7N.js.map → chunk-BZO4WCJI.js.map} +0 -0
  795. /package/dist/{chunk-TMBXVJKT.js.map → chunk-C3YH34IL.js.map} +0 -0
  796. /package/dist/{chunk-T7WSLRAU.js.map → chunk-C7NTK5I3.js.map} +0 -0
  797. /package/dist/{chunk-KNZB6JMR.js.map → chunk-CB25ONKC.js.map} +0 -0
  798. /package/dist/{chunk-HPWKV3YB.js.map → chunk-CIKY6I4W.js.map} +0 -0
  799. /package/dist/{chunk-TWKKOM55.js.map → chunk-D26JB3LZ.js.map} +0 -0
  800. /package/dist/{chunk-PLS64NCS.js.map → chunk-D3EFFFOL.js.map} +0 -0
  801. /package/dist/{chunk-WZSCE6RM.js.map → chunk-DGH65E7Q.js.map} +0 -0
  802. /package/dist/{chunk-G4JYND6L.js.map → chunk-DIRRS7WP.js.map} +0 -0
  803. /package/dist/{chunk-Y3A5CB5G.js.map → chunk-DMFNPHCX.js.map} +0 -0
  804. /package/dist/{chunk-NUEQU36L.js.map → chunk-ELNBMFOS.js.map} +0 -0
  805. /package/dist/{chunk-QA2KUPCP.js.map → chunk-FQQF23MC.js.map} +0 -0
  806. /package/dist/{chunk-FRP6D2DM.js.map → chunk-FXK4X4BL.js.map} +0 -0
  807. /package/dist/{chunk-5VG4IJR7.js.map → chunk-GA2QHD6P.js.map} +0 -0
  808. /package/dist/{chunk-ICXIFFYZ.js.map → chunk-H44ZE4IE.js.map} +0 -0
  809. /package/dist/{chunk-BUAQ7YI3.js.map → chunk-H6CZSDWK.js.map} +0 -0
  810. /package/dist/{chunk-7P2SDJG3.js.map → chunk-H6HM6CVR.js.map} +0 -0
  811. /package/dist/{chunk-BKARNZJN.js.map → chunk-HFJIGWJC.js.map} +0 -0
  812. /package/dist/{chunk-3OPY6MK2.js.map → chunk-HUS3J5WM.js.map} +0 -0
  813. /package/dist/{chunk-DV4HUP5G.js.map → chunk-IDIV5NVH.js.map} +0 -0
  814. /package/dist/{chunk-DFVUTGT2.js.map → chunk-IGJHJYM6.js.map} +0 -0
  815. /package/dist/{chunk-KJ2BCBTL.js.map → chunk-IP2QBAGS.js.map} +0 -0
  816. /package/dist/{chunk-XGDAPN6M.js.map → chunk-JOQ53DMI.js.map} +0 -0
  817. /package/dist/{chunk-QSFOZUYL.js.map → chunk-K62IUKOD.js.map} +0 -0
  818. /package/dist/{chunk-YCXCR7VG.js.map → chunk-KPGX66PM.js.map} +0 -0
  819. /package/dist/{chunk-YMVQD5Q5.js.map → chunk-L2SNBIV7.js.map} +0 -0
  820. /package/dist/{chunk-2OZXVKVP.js.map → chunk-MCEKIAO4.js.map} +0 -0
  821. /package/dist/{chunk-IVLTXX4W.js.map → chunk-MELR46EF.js.map} +0 -0
  822. /package/dist/{chunk-2OV5NVE7.js.map → chunk-MSPNM2OM.js.map} +0 -0
  823. /package/dist/{chunk-DJ7KIPLV.js.map → chunk-O2DYPAZY.js.map} +0 -0
  824. /package/dist/{chunk-RHK32N73.js.map → chunk-ODJWBC5I.js.map} +0 -0
  825. /package/dist/{chunk-3JXPAHOZ.js.map → chunk-OEAATWH5.js.map} +0 -0
  826. /package/dist/{chunk-6P5XCKSD.js.map → chunk-OFJ5GPNA.js.map} +0 -0
  827. /package/dist/{chunk-4OMCIY6F.js.map → chunk-OOLO4LQG.js.map} +0 -0
  828. /package/dist/{chunk-VJV7GKQK.js.map → chunk-P5RY4ZWD.js.map} +0 -0
  829. /package/dist/{chunk-VWM3DAVB.js.map → chunk-PR5LC5YX.js.map} +0 -0
  830. /package/dist/{chunk-UN4FVIBH.js.map → chunk-PXWVF7MC.js.map} +0 -0
  831. /package/dist/{chunk-XREOISSI.js.map → chunk-Q3XSMOZM.js.map} +0 -0
  832. /package/dist/{chunk-5I35DOHK.js.map → chunk-QLLKLFE2.js.map} +0 -0
  833. /package/dist/{chunk-BQISD5ZV.js.map → chunk-QYPKGVT4.js.map} +0 -0
  834. /package/dist/{chunk-G6XV4H65.js.map → chunk-RKRGDAS7.js.map} +0 -0
  835. /package/dist/{chunk-WIGQB62E.js.map → chunk-SRVQHVNX.js.map} +0 -0
  836. /package/dist/{chunk-VEPTFUJY.js.map → chunk-SYMS4546.js.map} +0 -0
  837. /package/dist/{chunk-2REPHKET.js.map → chunk-TPH5EO6L.js.map} +0 -0
  838. /package/dist/{chunk-U3WZCU7E.js.map → chunk-UFILRICG.js.map} +0 -0
  839. /package/dist/{chunk-RW3Y22MW.js.map → chunk-UTLEAJXC.js.map} +0 -0
  840. /package/dist/{chunk-F4CEK5YM.js.map → chunk-VA4ZWLFY.js.map} +0 -0
  841. /package/dist/{chunk-3MATJ6O4.js.map → chunk-VR24ILCR.js.map} +0 -0
  842. /package/dist/{chunk-TAKWLZZX.js.map → chunk-W5D62AQD.js.map} +0 -0
  843. /package/dist/{chunk-WBJIQSLL.js.map → chunk-WGV4CUZT.js.map} +0 -0
  844. /package/dist/{chunk-HYR4WZZ3.js.map → chunk-X6CMGUAG.js.map} +0 -0
  845. /package/dist/{chunk-GNMXXTMN.js.map → chunk-XFXUTFWQ.js.map} +0 -0
  846. /package/dist/{chunk-QOC3VYL2.js.map → chunk-XHV25KBM.js.map} +0 -0
  847. /package/dist/{chunk-LEJIKBBB.js.map → chunk-YSXEFGND.js.map} +0 -0
  848. /package/dist/{chunk-PS2NEWEX.js.map → chunk-YXOUQ2H7.js.map} +0 -0
  849. /package/dist/{chunk-VWRRVE6D.js.map → chunk-ZP5PL65C.js.map} +0 -0
  850. /package/dist/{classified-marker-H6YSHYNK.js.map → classified-marker-LQWWQNIJ.js.map} +0 -0
  851. /package/dist/{collection-facade-LVD22JLM.js.map → collection-facade-YE2O4J4O.js.map} +0 -0
  852. /package/dist/{computed-EXDMQODG.js.map → computed-W6MVAMWZ.js.map} +0 -0
  853. /package/dist/{dead-filter-HQIE2YG7.js.map → dead-filter-4KXZEB3X.js.map} +0 -0
  854. /package/dist/{delegation-BJP73GAP.js.map → delegation-OPUU3R2E.js.map} +0 -0
  855. /package/dist/{derive-BME7HDWO.js.map → derive-BGUHU663.js.map} +0 -0
  856. /package/dist/{enclave-NHORSWSF.js.map → enclave-VXAQD4XJ.js.map} +0 -0
  857. /package/dist/{executor-FE6X4LFX.js.map → executor-GTVSUUBX.js.map} +0 -0
  858. /package/dist/{executor-KSHKRJXP.js.map → executor-GZWMTOXB.js.map} +0 -0
  859. /package/dist/{executor-ZHTJJICG.js.map → executor-XXGS4S3K.js.map} +0 -0
  860. /package/dist/{export-accessible-DACHM5VT.js.map → export-accessible-BMULIOYB.js.map} +0 -0
  861. /package/dist/{extract-partition-RNENZZ4T.js.map → extract-partition-JUQTWDXR.js.map} +0 -0
  862. /package/dist/{fanout-sidecar-OFWN3NM7.js.map → fanout-sidecar-CKYFH33E.js.map} +0 -0
  863. /package/dist/{find-BNGBJNKP.js.map → find-XRGCNGNN.js.map} +0 -0
  864. /package/dist/{issue-NDI4CVZU.js.map → issue-UB6AA5M6.js.map} +0 -0
  865. /package/dist/{ledger-6NDS2EO4.js.map → ledger-FU6GH5EH.js.map} +0 -0
  866. /package/dist/{liberate-HN3RIGIP.js.map → liberate-YUN7W5QG.js.map} +0 -0
  867. /package/dist/{link-set-SJB2MVJV.js.map → link-set-MNADSH5M.js.map} +0 -0
  868. /package/dist/{noydb-BWF6EPIR.js.map → noydb-6JLBZU4U.js.map} +0 -0
  869. /package/dist/{policy-WGNAG5H6.js.map → policy-JTFOPPUU.js.map} +0 -0
  870. /package/dist/{post-register-CWKBQRC7.js.map → post-register-HAWO3O7O.js.map} +0 -0
  871. /package/dist/{public-envelope-EJLVIFX7.js.map → public-envelope-NJVB7LPA.js.map} +0 -0
  872. /package/dist/{register-SBIX7TVV.js.map → register-VCKOBWKT.js.map} +0 -0
  873. /package/dist/{registry-3EQG6OOE.js.map → registry-72UKJ2L4.js.map} +0 -0
  874. /package/dist/{registry-CA327ACV.js.map → registry-BZFLJNEH.js.map} +0 -0
  875. /package/dist/{registry-E7OXOTSV.js.map → registry-YJEYSYI5.js.map} +0 -0
  876. /package/dist/{request-withdrawal-KAH2AAXC.js.map → request-withdrawal-6MJRMFHF.js.map} +0 -0
  877. /package/dist/{reveal-R3JLHMUF.js.map → reveal-BOY7XYFH.js.map} +0 -0
  878. /package/dist/{revoke-IXLOJ3IH.js.map → revoke-4KUNSVJC.js.map} +0 -0
  879. /package/dist/{signer-Y46N2GJ3.js.map → signer-DDDXP5JD.js.map} +0 -0
  880. /package/dist/{stale-Z7IW6RIL.js.map → stale-NXPT56JA.js.map} +0 -0
  881. /package/dist/{storage-ADNP2UWI.js.map → storage-IR6EEAV2.js.map} +0 -0
  882. /package/dist/{store-coordination-provider-DTDMI6VL.js.map → store-coordination-provider-HPYVFJCV.js.map} +0 -0
  883. /package/dist/{verify-JPF2YR5E.js.map → verify-66RHOW7N.js.map} +0 -0
  884. /package/dist/{walk-XYA2O3LW.js.map → walk-2RWEOCAS.js.map} +0 -0
  885. /package/dist/{withdraw-accessible-WLV4MTEN.js.map → withdraw-accessible-CLMZEHQT.js.map} +0 -0
@@ -0,0 +1,48 @@
1
+ import type { SnapshotPolicy } from './policy.js';
2
+ export interface SnapshotMeta {
3
+ readonly version: string;
4
+ readonly label?: string;
5
+ readonly note?: string;
6
+ readonly exportedAt: string;
7
+ readonly exportedBy: string;
8
+ readonly size: number;
9
+ /**
10
+ * `'verified'` — bundle was produced by `writePod(vault, {})`, which embeds
11
+ * ledgerHead metadata; `vault.load()` runs `verifyBackupIntegrity()` on restore.
12
+ * `'legacy-unverifiable'` — reserved for v2 import paths that read pre-existing bundles
13
+ * lacking a ledgerHead; not produced by the current engine.
14
+ */
15
+ readonly integrity: 'verified' | 'legacy-unverifiable';
16
+ /** `true` for the rolling auto-snapshot; absent on on-demand checkpoints. */
17
+ readonly auto?: true;
18
+ }
19
+ export interface RetentionPolicy {
20
+ readonly keepLast?: number;
21
+ readonly maxAgeDays?: number;
22
+ readonly prune?: boolean;
23
+ }
24
+ /** @internal */
25
+ export interface SnapshotIndex {
26
+ snapshots: SnapshotMeta[];
27
+ nextCounter: number;
28
+ /** Single rolling auto-snapshot slot, separate from the immutable `snapshots` pool. */
29
+ auto?: SnapshotMeta;
30
+ }
31
+ /** @internal */
32
+ export interface SnapshotStrategy {
33
+ snapshot(vault: unknown, by: string, opts?: {
34
+ label?: string;
35
+ note?: string;
36
+ }): Promise<SnapshotMeta>;
37
+ listSnapshots(vaultId: string): Promise<SnapshotMeta[]>;
38
+ restoreSnapshot(vault: unknown, version: string): Promise<void>;
39
+ /** Rolling auto-snapshot to the fixed `<vault>__auto` key. */
40
+ autoSnapshot(vault: unknown, by: string, opts?: {
41
+ label?: string;
42
+ note?: string;
43
+ }): Promise<SnapshotMeta>;
44
+ /** Configured cadence policy. Undefined or `mode:'manual'` ⇒ no scheduler is wired. */
45
+ readonly policy?: SnapshotPolicy;
46
+ }
47
+ /** No-op stub. @internal */
48
+ export declare const NO_SNAPSHOTS: SnapshotStrategy;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Computed scalar fields — schema-owned derived values evaluated on
3
+ * write and materialized onto the record.
4
+ *
5
+ * A `computed` map declares pure, synchronous functions keyed by field
6
+ * path. {@link evalComputedFields} runs them in declaration order — each
7
+ * function sees the record with all prior computed fields already
8
+ * injected, so a later field can read an earlier one (`total` reads
9
+ * `netAmount`). The result is stored like any field: queryable,
10
+ * indexable, and `aggregate(sum())`-able (exactly, when the field is also
11
+ * a `money()` field).
12
+ *
13
+ * Computed evaluation is the FIRST stage of the write pipeline (before
14
+ * schema validation), so the user need not supply computed fields and the
15
+ * schema validates the computed result. Cross-record / async derivation
16
+ * is out of scope here — see the validation service.
17
+ */
18
+ import { NoydbError } from '../../kernel/errors.js';
19
+ export type ComputedFn<T = Record<string, unknown>> = (record: T) => unknown;
20
+ /**
21
+ * #638 Task 7 — the extended per-field entry: `deps` (source field names, feeds
22
+ * `ViaGraph` for taint propagation) and `mode` (`'materialized' | 'virtual'`,
23
+ * default `'materialized'`) alongside `fn`. Lets `computed: { field: {...} }`
24
+ * declare the same `{deps, mode}` shape `via(computed(fn, {...}))` composes —
25
+ * absorbs the old `computedDeps` sibling option (#638 Task 2, retired here).
26
+ */
27
+ export interface ComputedFieldEntry<T = Record<string, unknown>> {
28
+ readonly fn: ComputedFn<T>;
29
+ readonly deps?: readonly string[];
30
+ readonly mode?: 'materialized' | 'virtual';
31
+ }
32
+ /** The plain `Record<string, ComputedFn>` sugar keeps working unchanged (materialized,
33
+ * no deps); a field may alternatively carry the extended `ComputedFieldEntry` shape. */
34
+ export type ComputedFields<T = Record<string, unknown>> = Record<string, ComputedFn<T> | ComputedFieldEntry<T>>;
35
+ /** Raised when a computed function throws during a write. */
36
+ export declare class ComputedFieldError extends NoydbError {
37
+ readonly field: string;
38
+ readonly id: string;
39
+ readonly cause: unknown;
40
+ constructor(field: string, id: string, cause: unknown);
41
+ }
42
+ /**
43
+ * Evaluate every computed field in declaration order, injecting each
44
+ * result into a shallow clone. A computed field overwrites any
45
+ * user-supplied value of the same name — the field is schema-owned.
46
+ * Returns the new record; the input is not mutated.
47
+ */
48
+ export declare function evalComputedFields<T extends Record<string, unknown>>(record: T, computed: ComputedFields, id: string): T;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Lazy loader for the computed-fields engine (#553).
3
+ *
4
+ * The `computed` declaration on `collection({ … })` is the opt-in unit;
5
+ * the engine's only kernel consultation is the (async) write pipeline,
6
+ * so it loads on the first computed-declared put and stays out of the
7
+ * floor bundle otherwise. Cached after first load — mirrors the
8
+ * deferred-load pattern used for guards/derivations.
9
+ */
10
+ import type * as ComputedModule from './index.js';
11
+ type EvalComputedFieldsFn = typeof ComputedModule.evalComputedFields;
12
+ export declare function loadEvalComputedFields(): Promise<EvalComputedFieldsFn>;
13
+ export {};
@@ -0,0 +1,61 @@
1
+ import type { DerivationContext, DerivationStrategy } from './types.js';
2
+ export interface RunResult {
3
+ outputs: Record<string, OutputResult>;
4
+ failed: boolean;
5
+ }
6
+ /**
7
+ * Per-output result of a strategy invocation. Discriminated by
8
+ * `kind`:
9
+ *
10
+ * - `record` — the existing v1 shape: one value (or a "skipped"
11
+ * marker if the output was optional and `derive` returned null).
12
+ * - `array` — a list of `(key, value)` entries.
13
+ * The caller diffs these against the previously-emitted key set
14
+ * (loaded from the fanout sidecar) to compute deletes + upserts.
15
+ */
16
+ export type OutputResult = RecordOutputResult | ArrayOutputResult | FailedOutputResult;
17
+ export interface RecordOutputResult {
18
+ kind: 'record';
19
+ value: Record<string, unknown>;
20
+ ok: true;
21
+ /**
22
+ * `true` when an optional output returned `null` /
23
+ * `undefined`. The caller deletes any previously-emitted output at
24
+ * the same id (mirrors "tombstone for derived data"); a never-emitted
25
+ * output is a silent no-op. `ok: true` because skipping is a
26
+ * successful outcome, not a failure.
27
+ */
28
+ skipped?: boolean;
29
+ }
30
+ export interface ArrayOutputResult {
31
+ kind: 'array';
32
+ ok: true;
33
+ /** One `(key, value)` per derived row. Empty array means "all prior outputs for this source go." */
34
+ entries: ReadonlyArray<{
35
+ readonly key: string;
36
+ readonly value: Record<string, unknown>;
37
+ }>;
38
+ }
39
+ export interface FailedOutputResult {
40
+ kind: 'failed';
41
+ ok: false;
42
+ error: Error;
43
+ /** Always empty on failure; present so consumers don't have to narrow. */
44
+ value: Record<string, unknown>;
45
+ }
46
+ /**
47
+ * Stateless functions that execute a derivation strategy. Persistence
48
+ * (encrypt + store.put) is the caller's job — typically
49
+ * `DerivationRegistry.onSourceWrite` which iterates run() results and
50
+ * writes each output via `Collection.put`.
51
+ */
52
+ export declare const DerivationExecutor: {
53
+ /**
54
+ * Run `derive` once, validate output shape against the spec, stamp
55
+ * `_derivedFrom` onto every output. Returns per-output success or
56
+ * failure; throws only for shape mismatches (a contract violation).
57
+ */
58
+ run<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>>(strategy: DerivationStrategy<TSource, TOutputs>, source: TSource & {
59
+ id: string;
60
+ }, sourceVersion: number, strategyHash: string, ctx: DerivationContext): Promise<RunResult>;
61
+ };
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Per-source-row fanout sidecar for `shape: 'array'` derivations.
3
+ *
4
+ * Each `(sourceCollection, sourceId, outputKey)` triple gets its own
5
+ * envelope at:
6
+ *
7
+ * _meta/derivations-fanout/<sourceCollection>/<sourceId>/<outputKey>
8
+ *
9
+ * The envelope records the last-emitted derived row ids so the
10
+ * dispatcher can compute the diff on every source-row update in O(1):
11
+ * read prior keys, compute `toDelete = prev \ new`, write new, persist
12
+ * back.
13
+ *
14
+ * The body is encrypted (AES-GCM under the `_meta` collection DEK) when
15
+ * the vault is encrypted — the `keys[]` are derived-row ids produced by a
16
+ * user-supplied key extractor and can be content-bearing (SKU, tag, email),
17
+ * so a ciphertext-only store must not read them, the derivation graph, or
18
+ * `emittedAt`. Back-compat: sidecars written before this fix are plaintext
19
+ * (`_iv === ''`); `loadFanoutSidecar` dual-reads them.
20
+ *
21
+ * @module
22
+ */
23
+ import type { NoydbStore } from '../../kernel/types.js';
24
+ import { type EnclaveKey } from '../../kernel/enclave/index.js';
25
+ type GetDEK = (collectionName: string) => Promise<EnclaveKey>;
26
+ /** Magic-prefixed JSON payload at `_meta/<recordId>`. */
27
+ export interface FanoutSidecar {
28
+ readonly _noydb_fanout: 1;
29
+ /** Source collection name. */
30
+ readonly source: string;
31
+ /** Source record id. */
32
+ readonly sourceId: string;
33
+ /** Strategy output key (the key in `strategy.outputs`). */
34
+ readonly outputKey: string;
35
+ /** Output collection name (audit / forensics). */
36
+ readonly outputCollection: string;
37
+ /** Derived-row ids last emitted for this (source, output) pair. */
38
+ readonly keys: ReadonlyArray<string>;
39
+ /** ISO timestamp of last dispatch. */
40
+ readonly emittedAt: string;
41
+ }
42
+ /**
43
+ * Read the sidecar; returns `undefined` only when it's legitimately absent
44
+ * (no envelope at that id) — the correct signal for callers to skip
45
+ * orphan-row reconciliation because there's nothing to reconcile against.
46
+ *
47
+ * A PRESENT envelope that fails to decrypt or parse is a data-integrity
48
+ * problem, not an absence, and is deliberately NOT caught here: swallowing
49
+ * it to `undefined` would look identical to "no sidecar" and make callers
50
+ * (the array-derivation dispatch in `vault.ts`/`collection.ts`) silently
51
+ * skip deleting stale derived rows on a shrink. Let `openEnvelopeJson`'s
52
+ * `DecryptionError`/`TamperedError` and `JSON.parse` failures propagate,
53
+ * matching the no-catch convention of sibling decrypt call-sites (e.g.
54
+ * `with-audit/consent/consent.ts`'s `decryptEntry`).
55
+ *
56
+ * Dual-reads for back-compat: an envelope with `_iv === ''` is a legacy
57
+ * plaintext sidecar (parse `_data` directly); otherwise the body was
58
+ * encrypted under the `_meta` DEK and is decrypted first.
59
+ */
60
+ export declare function loadFanoutSidecar(store: NoydbStore, vault: string, source: string, sourceId: string, outputKey: string, getDEK: GetDEK, encrypted: boolean): Promise<FanoutSidecar | undefined>;
61
+ /**
62
+ * Persist (insert/replace) the sidecar with a fresh key set. The body is
63
+ * encrypted under the `_meta` DEK when the vault is encrypted (the `keys[]`
64
+ * can be content-bearing); plaintext only in debug/unencrypted vaults.
65
+ */
66
+ export declare function saveFanoutSidecar(store: NoydbStore, vault: string, payload: {
67
+ readonly source: string;
68
+ readonly sourceId: string;
69
+ readonly outputKey: string;
70
+ readonly outputCollection: string;
71
+ readonly keys: ReadonlyArray<string>;
72
+ }, getDEK: GetDEK, encrypted: boolean): Promise<void>;
73
+ /** Delete the sidecar (used on source-row delete cascade). */
74
+ export declare function deleteFanoutSidecar(store: NoydbStore, vault: string, source: string, sourceId: string, outputKey: string): Promise<void>;
75
+ export {};
@@ -0,0 +1,6 @@
1
+ export { withDerivation } from './with-derivation.js';
2
+ export { withRollup } from './with-rollup.js';
3
+ export { DerivationRegistry } from './registry.js';
4
+ export { DerivationExecutor } from './executor.js';
5
+ export type { DerivationStrategy, DerivationStrategyHandle, DerivedFromMeta, OutputSpec, RecordOutputSpec, ArrayOutputSpec, } from './types.js';
6
+ export { DerivationCycleError, DerivationDepthError, DerivationOutputUnknownError, DerivationOutputShapeError, DerivationCapExceededError, } from '../../kernel/errors.js';
@@ -0,0 +1,67 @@
1
+ import { ViaGraph, type FieldRef, type EdgeKind, type Grain } from '../../kernel/via/graph.js';
2
+ import type { DerivationStrategy } from './types.js';
3
+ interface RegisteredStrategy {
4
+ spec: DerivationStrategy<any, any>;
5
+ strategyHash: string;
6
+ }
7
+ /**
8
+ * Vault-internal registry of derivation strategies. Owned by `Vault`;
9
+ * not exported.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare class DerivationRegistry {
14
+ private readonly _bySource;
15
+ private readonly _byOutput;
16
+ register(spec: DerivationStrategy<any, any>): Promise<void>;
17
+ strategiesForSource(source: string): ReadonlyArray<RegisteredStrategy>;
18
+ strategiesProducingOutput(collection: string): ReadonlyArray<RegisteredStrategy>;
19
+ /**
20
+ * All registered strategies as a flat, deduplicated array.
21
+ * Each strategy is indexed once per source (not once per output key),
22
+ * so iterating `_bySource.values()` naturally yields each strategy
23
+ * exactly once per source — deduplication is handled by flattening
24
+ * the per-source arrays and collecting into a Set by identity.
25
+ *
26
+ * Used by `dumpSchema()` / `describeDerivations()` in the introspection
27
+ * walker to populate the derivations map.
28
+ */
29
+ all(): ReadonlyArray<RegisteredStrategy>;
30
+ /**
31
+ * Graph edges for #638 Task 2: one `'derivation'`/`'record'` edge per
32
+ * (non-self-write) output key — target = the output collection (a
33
+ * `WHOLE_RECORD` artifact node), sources = every collection that can
34
+ * trigger this strategy (`source`, `sources[]`, `triggerBy[].collection`,
35
+ * and — for a rollup — `rollup.from`), mirroring EXACTLY the trigger keys
36
+ * `register()` indexes under `_bySource`. The self-write reverse-denorm
37
+ * output (`output.collection === source` with `denorm` declared) is
38
+ * skipped — the SAME condition the old local DFS used; it is not a cycle
39
+ * (see the comment `validate()` used to carry, now on this skip).
40
+ * Rollups ADDITIONALLY get a dedicated `'rollup'`/`'aggregate'` edge
41
+ * targeting the real `rollup.field` on the parent (`source`) — the
42
+ * self-write output above only covers the cycle-DFS skip, not
43
+ * dispatch/taint (Tasks 3/4/6), which need the real field.
44
+ */
45
+ edges(): ReadonlyArray<{
46
+ readonly target: FieldRef;
47
+ readonly sources: readonly FieldRef[];
48
+ readonly kind: EdgeKind;
49
+ readonly grain: Grain;
50
+ }>;
51
+ /**
52
+ * Cycle detection, delegated to `ViaGraph.assertAcyclic()` (#638 Task 2 —
53
+ * retires the local DFS). Call after all `register()` calls complete (i.e.
54
+ * at vault open). Throws `DerivationCycleError` on the first cycle found —
55
+ * SAME class/timing as before; the message/path is byte-identical to the
56
+ * pre-#638 shape for a pure record-shape derivation cycle (the
57
+ * `WHOLE_RECORD` artifact suffix is stripped back to a bare collection
58
+ * name before re-throwing).
59
+ *
60
+ * `graph` is the caller's shared per-vault graph, ALREADY carrying this
61
+ * registry's `edges()` (the caller registers them — see `Vault._initDerivations`)
62
+ * — omit it (e.g. this registry's own unit tests) to validate this
63
+ * registry's edges in isolation against a throwaway graph.
64
+ */
65
+ validate(graph?: ViaGraph): void;
66
+ }
67
+ export {};
@@ -0,0 +1,39 @@
1
+ import type { Collection } from '../../kernel/collection.js';
2
+ import type { ReadOnlyVaultFacade } from '../../with-audit/guards/types.js';
3
+ import type { TxContext } from '../../with-commit/tx/transaction.js';
4
+ import type { DerivationRegistry } from './registry.js';
5
+ import type { DerivationStrategy } from './types.js';
6
+ /**
7
+ * Accessor shape passed through from the owning Vault. Provides the
8
+ * registry (used to look up strategies and as the WeakMap key) and a
9
+ * resolver from collection name to the live `Collection` instance.
10
+ * Same shape as `Collection.derivationSource` so callers can pass it
11
+ * through directly.
12
+ */
13
+ export interface DerivationStaleAccessor {
14
+ registry(): DerivationRegistry;
15
+ getCollection(name: string): Collection<any>;
16
+ /**
17
+ * Read-only vault facade handed to `derive(source, ctx)` on the lazy
18
+ * resolve-on-read path. Same instance/shape as the eager path uses.
19
+ */
20
+ getReadOnlyFacade(): ReadOnlyVaultFacade;
21
+ /**
22
+ * Active multi-record TxContext or `null`. The lazy resolve-on-read
23
+ * path uses this to register tombstone deletes on `_executed` so a
24
+ * later rollback restores the prior emission. Mirrors the eager
25
+ * path's rollback tracking; the lazy `put` was historically
26
+ * unregistered but the tombstone delete (a NEW write path)
27
+ * matches the eager registration for symmetry.
28
+ */
29
+ getActiveTxContext(): TxContext | null;
30
+ }
31
+ /** Mark every output of (strategy, sourceId) as stale. */
32
+ export declare function markStale(registry: DerivationRegistry, strategy: DerivationStrategy<any, any>, sourceId: string): Promise<void>;
33
+ /**
34
+ * Called from `Collection.get` on lazy-mode output collections. If the
35
+ * id has a pending stale flag for any strategy producing this output
36
+ * collection, re-derive before returning the record. No-op when there
37
+ * is no pending work — keeps the read fast path negligible.
38
+ */
39
+ export declare function resolveStaleOnRead(accessor: DerivationStaleAccessor, outputCollection: string, id: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function computeStrategyHash(source: string, outputKeys: readonly string[], derive: (...args: any[]) => any, sources?: ReadonlyArray<string>): Promise<string>;
@@ -0,0 +1,248 @@
1
+ import type { ReadOnlyVaultFacade } from '../../with-audit/guards/types.js';
2
+ /**
3
+ * Runtime context handed to `derive(source, ctx)`. Mirrors `GuardContext`'s
4
+ * narrow shape: read-only vault access, no write capability, no
5
+ * transaction handle. Determinism is the consumer's responsibility — the
6
+ * strategy hash includes `derive.toString()`, so the source string fixes
7
+ * the function's inputs; whatever sibling reads `derive` performs must
8
+ * yield the same outputs for the same source.
9
+ */
10
+ export interface DerivationContext {
11
+ vault: ReadOnlyVaultFacade;
12
+ }
13
+ /**
14
+ * Metadata that travels inside the `_data` payload of a derived record.
15
+ * Lives in encrypted payload, not in the unencrypted envelope — the
16
+ * storage backend cannot infer the derivation graph from listing.
17
+ */
18
+ export interface DerivedFromMeta {
19
+ /** Source collection name. */
20
+ readonly source: string;
21
+ /** Source record id. */
22
+ readonly sourceId: string;
23
+ /** `_v` of the source at derivation time. */
24
+ readonly sourceVersion: number;
25
+ /** ISO timestamp when this output was derived. */
26
+ readonly derivedAt: string;
27
+ /**
28
+ * SHA-256 of (source + outputs map keys + derive function source).
29
+ * Changes when the strategy changes → forces `vault.deriveAll` to
30
+ * recompute on next visit.
31
+ */
32
+ readonly strategyHash: string;
33
+ }
34
+ /** Record-shape output — one source row produces (optionally) one output row at the source's id. */
35
+ export interface RecordOutputSpec {
36
+ shape: 'record';
37
+ collection: string;
38
+ /**
39
+ * When `true`, the `derive` function may return `null` (or
40
+ * `undefined`) for this output key. The executor interprets that as
41
+ * "no output for this invocation": a previously-emitted output at
42
+ * the same id is deleted (mirroring the empty-group / empty-aggregate
43
+ * semantics for empty groups); a never-emitted output is a silent
44
+ * no-op. When `false` (default), returning `null` throws
45
+ * `DerivationOutputShapeError` — same as v1.
46
+ */
47
+ optional?: boolean;
48
+ /**
49
+ * Field-level provenance for a **self-write** output — an output
50
+ * whose `collection` equals the strategy's `source`, used by
51
+ * reverse-denormalization (`triggerBy`) to patch a denormalized field
52
+ * back onto the source record.
53
+ *
54
+ * `denorm` names the ONLY top-level fields the derivation owns on that
55
+ * record. The engine merges just those fields from the `derive` return
56
+ * value onto the current stored record (`{ ...current, ...pick(out, denorm) }`)
57
+ * — the rest of the user's record is never clobbered by a stale snapshot.
58
+ * The whole-record `_derivedFrom` provenance tag is NOT applied (the
59
+ * record stays user-owned); the derivation only claims `denorm`.
60
+ *
61
+ * Cycle break is value-level: if the patch changes nothing, no write is
62
+ * issued — so the self-write that re-fires the source-path derivation
63
+ * terminates after one idempotent pass.
64
+ *
65
+ * REQUIRED when `collection === source` (validated at construction);
66
+ * ignored for outputs to a different collection.
67
+ */
68
+ denorm?: readonly string[];
69
+ }
70
+ /**
71
+ * Array-shape output — one source row produces a variable-length
72
+ * list of output rows, each with its own id (from the `key` extractor).
73
+ *
74
+ * On every source-row change, the dispatcher diffs the previously
75
+ * emitted key set against the new one: removed keys are deleted via
76
+ * `_internalDelete`, new and unchanged keys are upserted via
77
+ * `Collection.put`. Strict-mode rollback is preserved via the existing
78
+ * `_executed` tracking.
79
+ *
80
+ * Storage of the per-source-row key set lives at
81
+ * `_meta/derivations-fanout/<source>/<sourceId>/<outputKey>` as a
82
+ * plain JSON sidecar — keeps dispatch cost O(1) per source row.
83
+ *
84
+ * **Slice 1 limitation**: only `lifecycle: 'eager'` is supported.
85
+ * Registering an array-shape output with `lifecycle: 'lazy'` throws
86
+ * at `withDerivation` construction time.
87
+ */
88
+ export interface ArrayOutputSpec {
89
+ shape: 'array';
90
+ collection: string;
91
+ /**
92
+ * Stable identity extractor for each derived row. Called on every
93
+ * row returned by `derive`. The string MUST be unique within a
94
+ * single invocation — duplicate keys throw
95
+ * `DerivationOutputShapeError`.
96
+ *
97
+ * Type is intentionally `(out: Record<string, unknown>) => string`
98
+ * (not generic) because OutputSpec is type-erased at the registry
99
+ * level. Strategy-level inference still produces typed `out`
100
+ * through the strategy's `outputs` map.
101
+ */
102
+ key: (output: Record<string, unknown>) => string;
103
+ /**
104
+ * Cap on derived rows per source-row invocation. Defaults to 64.
105
+ * Raise for carry-forward cases (e.g. monthly expansion of
106
+ * multi-year contracts). Exceeding the cap throws
107
+ * `DerivationCapExceededError` BEFORE any writes — partial fanout
108
+ * is never persisted.
109
+ */
110
+ maxFanout?: number;
111
+ }
112
+ /** Discriminated union — record + array. */
113
+ export type OutputSpec = RecordOutputSpec | ArrayOutputSpec;
114
+ /**
115
+ * Registration shape passed to `withDerivation()`.
116
+ *
117
+ * @typeParam TSource - the source record type
118
+ * @typeParam TOutputs - map of output-key → output record type. An output
119
+ * value may be a single record, or — for `shape: 'array'` outputs — an
120
+ * array of records (the fanout sidecar upserts/deletes each row).
121
+ */
122
+ export interface DerivationStrategy<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>> {
123
+ /** Source collection name. */
124
+ source: string;
125
+ /**
126
+ * Additional collections whose writes ALSO re-fire this derivation.
127
+ * By default only writes to the single declared
128
+ * `source` re-trigger a derivation; a `derive` that reads sibling
129
+ * collections via `ctx.vault` therefore goes stale when those
130
+ * siblings change. Declare those sibling collections here to wire
131
+ * them as extra triggers.
132
+ *
133
+ * **SAME-ID assumption (load-bearing):** when a write lands on one of
134
+ * these declared collections, the derivation re-fires with the
135
+ * PRIMARY `source` record read at the SAME id as the written record
136
+ * — NOT the written sibling record itself. If no primary `source`
137
+ * record exists at that id, the re-fire is a silent no-op (no throw,
138
+ * no output mutation). Model your collections so the sibling and the
139
+ * primary share an id (the common money/accounting case: an
140
+ * `allocations` row and its `payments`/`bills` keyed by the same id),
141
+ * or trigger off a collection you control the id-space of.
142
+ *
143
+ * Declared collections participate in cycle detection and are indexed
144
+ * in the registry's `_bySource` exactly like `source`, so a sibling
145
+ * that is also a derivation output forms a detectable cycle.
146
+ *
147
+ * Each entry must be a non-empty string and must not equal `source`
148
+ * (validated at `withDerivation()` construction time).
149
+ */
150
+ sources?: ReadonlyArray<string>;
151
+ /**
152
+ * Foreign-key-keyed triggers for reverse-denormalization. Unlike
153
+ * `sources[]` (which re-fires at the SAME id), a `triggerBy` entry fans a
154
+ * write to a PARENT collection OUT to every source record whose FK matches
155
+ * the written parent's id.
156
+ *
157
+ * `{ collection, on }`: a write to `collection` (the parent, e.g.
158
+ * `'buyers'`) re-fires this derivation once per source record where
159
+ * `source[on] === writtenParentId` (`on` is the FK field ON the source,
160
+ * e.g. `'buyerId'`). The matched source record — not the parent — is
161
+ * passed to `derive`.
162
+ *
163
+ * Typical use: keep a denormalized field on the source in sync with a
164
+ * parent change (a buyer rename → refresh `buyerName` on all their sales),
165
+ * via a self-write output (`collection === source`) declaring `denorm`.
166
+ *
167
+ * Fan-out runs through `ctx.vault.collection(source).query().where(on,'==',id)`,
168
+ * which uses the FK index when the source declares `withIndexing()` on
169
+ * `on` (O(children)) and otherwise scans (O(N) — fine for small child
170
+ * sets). Set `maxFanout` as a safety rail; exceeding it throws
171
+ * `DerivationCapExceededError` before any write. `triggerBy` collections
172
+ * participate in cycle detection like `source`/`sources`.
173
+ *
174
+ * Each `collection` must be non-empty and not equal `source`; `on` must
175
+ * be a non-empty field name (validated at construction).
176
+ */
177
+ triggerBy?: ReadonlyArray<{
178
+ collection: string;
179
+ on: string;
180
+ maxFanout?: number;
181
+ }>;
182
+ /**
183
+ * @internal — set by `withRollup()`. Marks this strategy as
184
+ * an aggregate-onto-parent rollup: a write OR delete of a `from` (child)
185
+ * record recomputes `compute(children where child[key] === parentId)` and
186
+ * patches it onto `source[field]` of the parent at `parentId` (= child[key]).
187
+ * `source` is the parent (`into`) collection; the synthetic self-write
188
+ * output carries `denorm: [field]`. Dispatch handles rollup specially (it
189
+ * does not run the executor). Eager-only in this slice.
190
+ */
191
+ rollup?: {
192
+ readonly from: string;
193
+ readonly key: string;
194
+ readonly field: string;
195
+ readonly compute: (children: any[]) => unknown;
196
+ };
197
+ /** v1: only deterministic derivations supported. */
198
+ deterministic: true;
199
+ /**
200
+ * Output declarations keyed by name. The `derive` function's return
201
+ * value must have the same keys.
202
+ */
203
+ outputs: {
204
+ [K in keyof TOutputs]: OutputSpec;
205
+ };
206
+ /**
207
+ * Pure function from source to outputs. Runs on plaintext, after DEK
208
+ * unwrap. Returns a map of named outputs. Each output is encrypted +
209
+ * stored via the existing `Collection.put` pipeline.
210
+ *
211
+ * `ctx.vault` is the same `ReadOnlyVaultFacade` guards see — fetch
212
+ * sibling records via `ctx.vault.collection<T>(name).get(id)` /
213
+ * `.list()` / `.query()`. The vault accessor is read-only; there is
214
+ * no path to a writer from `ctx`.
215
+ *
216
+ * **Per-output omission (runtime-supported):** returning `null` or
217
+ * `undefined` for an individual output key is handled at runtime via
218
+ * the `optional: true` flag on the output's `RecordOutputSpec` —
219
+ * the executor deletes any previously-emitted output at that id, or
220
+ * silently no-ops if none exists. For `shape: 'array'` outputs, null
221
+ * / undefined is treated as an empty array (clears all prior rows for
222
+ * that source). The *top-level* return must always be a `TOutputs`
223
+ * object; returning `null` for the whole result is not supported.
224
+ * (MV `unionSources` map drop-row is the analogous feature for
225
+ * materialized views.)
226
+ */
227
+ derive: (source: TSource, ctx: DerivationContext) => Promise<TOutputs> | TOutputs;
228
+ /**
229
+ * `'eager'` runs `derive` synchronously inside the source-write
230
+ * transaction. `'lazy'` marks outputs stale on source-change and
231
+ * derives on first read.
232
+ */
233
+ lifecycle: 'eager' | 'lazy' | {
234
+ mode: 'eager' | 'lazy';
235
+ maxDepth?: number;
236
+ };
237
+ /**
238
+ * `true` = any output failure rolls back the source write (only with
239
+ * `withTransactions`). `false` = isolate per-output failure, log,
240
+ * continue. Default `false`.
241
+ */
242
+ strict?: boolean;
243
+ }
244
+ /** Returned by `withDerivation()` and consumed by `createNoydb`. */
245
+ export interface DerivationStrategyHandle {
246
+ readonly __noydb_strategy: 'derivation';
247
+ readonly spec: DerivationStrategy<any, any>;
248
+ }
@@ -0,0 +1,10 @@
1
+ import type { DerivationStrategy, DerivationStrategyHandle } from './types.js';
2
+ /**
3
+ * Register a deterministic derivation: one source collection → one or
4
+ * more typed outputs, computed by the user's `derive` function on
5
+ * plaintext after DEK unwrap. Outputs are encrypted with the same DEK
6
+ * as the source and written via the standard `Collection.put` path.
7
+ *
8
+ * See docs/superpowers/specs/2026-05-01-dim14-derivation-v1-design.md.
9
+ */
10
+ export declare function withDerivation<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>>(spec: DerivationStrategy<TSource, TOutputs>): DerivationStrategyHandle;
@@ -0,0 +1,34 @@
1
+ import type { DerivationStrategyHandle } from './types.js';
2
+ /**
3
+ * `withRollup` — aggregate many child records onto a single field of their
4
+ * parent. The reverse of a join: instead of reading children
5
+ * on demand, the parent carries a maintained summary.
6
+ *
7
+ * ```ts
8
+ * withRollup<Sale, Buyer>({
9
+ * from: 'sales', // child collection (the trigger)
10
+ * key: 'buyerId', // FK on the child → parent id
11
+ * into: 'buyers', // parent collection
12
+ * field: 'revenueByYear', // field on the parent to maintain
13
+ * compute: (sales) => groupSumByYear(sales, 'total'),
14
+ * })
15
+ * ```
16
+ *
17
+ * On every write OR delete of a `from` record, the parent at id `child[key]`
18
+ * is recomputed: `compute(allChildren where child[key] === parentId)` is
19
+ * patched onto `parent[field]`. A parent write also recomputes its own
20
+ * aggregate (so a parent created after its children still fills in). Only the
21
+ * `field` is touched — the rest of the parent record is never clobbered — and
22
+ * a value-equality guard suppresses no-op writes. The aggregate is gap-free
23
+ * with respect to child inserts, updates, and deletes.
24
+ *
25
+ * Desugars to a `withDerivation` strategy carrying a `rollup` marker; dispatch
26
+ * handles it without invoking the executor. Eager-only in this slice.
27
+ */
28
+ export declare function withRollup<TChild extends Record<string, unknown> = Record<string, unknown>, TParent extends Record<string, unknown> = Record<string, unknown>>(config: {
29
+ from: string;
30
+ key: keyof TChild & string;
31
+ into: string;
32
+ field: keyof TParent & string;
33
+ compute: (children: TChild[]) => unknown;
34
+ }): DerivationStrategyHandle;