@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,38 @@
1
+ /**
2
+ * Transitive-closure FK walker. Computes the set of
3
+ * (collection, id) tuples reachable from seed predicates, so a
4
+ * partition extraction ships a referentially-complete subset.
5
+ *
6
+ * Two-phase, plaintext, read-only (runs inside the unlocked vault
7
+ * session — see foundation §13.4 / spec invariant 7):
8
+ * 1. INBOUND expansion: from selected records, pull every record
9
+ * that references them (children travel with parents), to a
10
+ * fixed point.
11
+ * 2. OUTBOUND completion: pull every parent the selected set
12
+ * references (no dangling FKs), transitively, WITHOUT
13
+ * re-expanding inbound from those parents (bounds the closure).
14
+ *
15
+ * The FK graph is auto-derived from the vault's existing RefRegistry
16
+ * (the `ref('target')` declarations on collections) — no hand-written
17
+ * edge list.
18
+ *
19
+ * @module
20
+ */
21
+ import type { Vault } from '../kernel/vault.js';
22
+ /** Seed predicate per collection. Records that return true become roots. */
23
+ export interface WalkClosureOptions {
24
+ readonly seeds: Record<string, (record: Record<string, unknown>) => boolean | Promise<boolean>>;
25
+ /** Max fixed-point iterations before throwing. Default 16. */
26
+ readonly maxDepth?: number;
27
+ }
28
+ export interface ClosureResult {
29
+ /** collection → set of record ids that travel together. */
30
+ readonly closure: Map<string, Set<string>>;
31
+ readonly graph: {
32
+ /** Fixed-point iterations the walk needed to converge. */
33
+ readonly depth: number;
34
+ /** True if an edge pointed back to an already-selected node. */
35
+ readonly cyclesDetected: boolean;
36
+ };
37
+ }
38
+ export declare function walkClosure(vault: Vault, opts: WalkClosureOptions): Promise<ClosureResult>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Active CRDT strategy factory. Calling `withCrdt()` returns a
3
+ * `CrdtStrategy` whose methods delegate to the real LWW-Map / RGA /
4
+ * merge / snapshot helpers in `./crdt.ts`. Only reachable through
5
+ * the `@noy-db/hub/crdt` subpath.
6
+ */
7
+ import type { CrdtStrategy } from './strategy.js';
8
+ /**
9
+ * Build the default CRDT strategy. Pass into
10
+ * `createNoydb({ crdtStrategy: withCrdt() })` to enable collections
11
+ * declared with `crdt: 'lww-map' | 'rga' | 'yjs'`.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { createNoydb } from '@noy-db/hub'
16
+ * import { withCrdt } from '@noy-db/hub/crdt'
17
+ *
18
+ * const db = await createNoydb({
19
+ * store, user, secret,
20
+ * crdtStrategy: withCrdt(),
21
+ * })
22
+ * const notes = vault.collection('notes', { crdt: 'lww-map' })
23
+ * ```
24
+ */
25
+ export declare function withCrdt(): CrdtStrategy;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * CRDT state types, merge logic, and build helpers.
3
+ * per-collection CRDT mode: 'lww-map' | 'rga' | 'yjs'
4
+ *
5
+ * The encrypted envelope wraps the CRDT state (not the resolved snapshot).
6
+ * Adapters only ever see ciphertext. `collection.get(id)` returns the
7
+ * resolved snapshot; `collection.getRaw(id)` returns the full CRDT state.
8
+ */
9
+ import type { CrdtState, LwwMapState, RgaState } from '../../kernel/types.js';
10
+ export type { CrdtMode, CrdtState, LwwMapState, RgaState, YjsState } from '../../kernel/types.js';
11
+ /**
12
+ * Resolve a CRDT state into the end-user record snapshot.
13
+ *
14
+ * - `lww-map` → `Record<string, unknown>` (field values extracted from registers)
15
+ * - `rga` → `unknown[]` (non-tombstoned items in insertion order)
16
+ * - `yjs` → `string` (base64 update blob; use @noy-db/yjs for a Y.Doc)
17
+ */
18
+ export declare function resolveCrdtSnapshot(state: CrdtState): unknown;
19
+ /**
20
+ * Merge two CRDT states produced by concurrent writes.
21
+ * Called by the collection-level conflict resolver registered with SyncEngine.
22
+ *
23
+ * For `yjs`: core cannot merge Yjs without importing the `yjs` package.
24
+ * The caller must handle that case by falling back to the higher-`_v` envelope.
25
+ */
26
+ export declare function mergeCrdtStates(a: CrdtState, b: CrdtState): CrdtState;
27
+ /**
28
+ * Build (or update) an lww-map state from a new record.
29
+ *
30
+ * All fields in the new record win at timestamp `now`.
31
+ * Fields present in the existing state but absent from the new record
32
+ * are preserved (they were written by another device).
33
+ */
34
+ export declare function buildLwwMapState(record: Record<string, unknown>, existing: LwwMapState | undefined, now: string): LwwMapState;
35
+ /**
36
+ * Build (or update) an RGA state from a new array.
37
+ *
38
+ * Existing items are matched to new elements by deep-equality of their `v`.
39
+ * Unmatched existing items are tombstoned. New elements that have no existing
40
+ * match get a fresh NID via `generateNid()`.
41
+ */
42
+ export declare function buildRgaState(arr: unknown[], existing: RgaState | undefined, generateNid: () => string): RgaState;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @noy-db/hub/crdt — opt-in CRDT (conflict-free replicated data type)
3
+ * service.
4
+ *
5
+ * @category capability
6
+ *
7
+ * Collaborative-editing primitives: LWW-Map, RGA (sequence CRDT), and
8
+ * a Yjs bridge state shape. Enabled per-collection via
9
+ * `collection(name, { crdt: 'lww-map' | 'rga' | 'yjs' })`. Apps that
10
+ * stick to plain record-level last-write-wins can omit this subpath
11
+ * and save ~221 LOC of state / merge / snapshot helpers.
12
+ */
13
+ export { withCrdt } from './active.js';
14
+ export type { CrdtStrategy } from './strategy.js';
15
+ export { resolveCrdtSnapshot, mergeCrdtStates, buildLwwMapState, buildRgaState, } from './crdt.js';
16
+ export type { CrdtMode, CrdtState, LwwMapState, RgaState, YjsState, } from './crdt.js';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Strategy seam between core Collection and the optional CRDT
3
+ * service. Core imports `CrdtStrategy` as a TYPE-ONLY symbol and
4
+ * `NO_CRDT` as a minimal runtime stub.
5
+ *
6
+ * The state-construction / merge / snapshot-resolution helpers —
7
+ * `buildLwwMapState`, `buildRgaState`, `mergeCrdtStates`,
8
+ * `resolveCrdtSnapshot` — are only reachable from `withCrdt()` in
9
+ * `./active.ts`, which is only exported through the `@noy-db/hub/crdt`
10
+ * subpath. Consumers without CRDT mode configured never pull the
11
+ * ~221 LOC into their bundle.
12
+ *
13
+ * @internal
14
+ */
15
+ import type { CrdtStrategy } from '../../kernel/types.js';
16
+ export type { CrdtStrategy } from '../../kernel/types.js';
17
+ /**
18
+ * No-CRDT stub. Every method throws with a pointer at the subpath.
19
+ * If a Collection declares `crdt: '...'` without this strategy wired,
20
+ * the first put/sync-merge/read that hits the CRDT path surfaces the
21
+ * error immediately.
22
+ *
23
+ * @internal
24
+ */
25
+ export declare const NO_CRDT: CrdtStrategy;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Active history strategy — `withHistory()` returns the real
3
+ * implementation that wires per-record snapshots, the hash-chained
4
+ * audit ledger, JSON-patch deltas, and time-machine reads into the
5
+ * core write/read paths.
6
+ *
7
+ * Consumers opt in by:
8
+ *
9
+ * ```ts
10
+ * import { createNoydb } from '@noy-db/hub'
11
+ * import { withHistory } from '@noy-db/hub/history'
12
+ *
13
+ * const db = await createNoydb({
14
+ * store: ...,
15
+ * user: ...,
16
+ * historyStrategy: withHistory(),
17
+ * })
18
+ * ```
19
+ *
20
+ * The factory is a thin wrapper that delegates to the existing
21
+ * `history.ts`, `diff.ts`, `ledger/store.ts`, `ledger/patch.ts`, and
22
+ * `time-machine.ts` modules. Splitting the import chain through this
23
+ * file is what lets `tsup` tree-shake the heavy modules out of the
24
+ * default `@noy-db/hub` bundle when no `withHistory()` import is
25
+ * present in the consumer.
26
+ *
27
+ * @public
28
+ */
29
+ import type { HistoryStrategy } from './strategy.js';
30
+ /**
31
+ * Build the active history strategy. Today the factory takes no
32
+ * options; per-collection retention tuning still flows through
33
+ * `HistoryConfig` on `Vault.collection()` / `vault.openVault()`.
34
+ *
35
+ * Future option slots (kept off the LTS surface for now):
36
+ * - global maxVersions cap
37
+ * - global beforeDate prune cadence
38
+ * - ledger encryption toggle (today inferred from vault.encrypted)
39
+ */
40
+ export declare function withHistory(): HistoryStrategy;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Zero-dependency JSON diff.
3
+ * Produces a flat list of changes between two plain objects.
4
+ */
5
+ export type ChangeType = 'added' | 'removed' | 'changed';
6
+ export interface DiffEntry {
7
+ /** Dot-separated path to the changed field (e.g. "address.city"). */
8
+ readonly path: string;
9
+ /** Type of change. */
10
+ readonly type: ChangeType;
11
+ /** Previous value (undefined for 'added'). */
12
+ readonly from?: unknown;
13
+ /** New value (undefined for 'removed'). */
14
+ readonly to?: unknown;
15
+ }
16
+ /**
17
+ * Compute differences between two objects.
18
+ * Returns an array of DiffEntry describing each changed field.
19
+ * Returns empty array if objects are identical.
20
+ */
21
+ export declare function diff(oldObj: unknown, newObj: unknown, basePath?: string): DiffEntry[];
22
+ /** Format a diff as a human-readable string. */
23
+ export declare function formatDiff(changes: DiffEntry[]): string;
@@ -0,0 +1,27 @@
1
+ import type { NoydbStore, EncryptedEnvelope, HistoryOptions, PruneOptions } from '../../kernel/types.js';
2
+ /** Save a history entry (a complete encrypted envelope snapshot). */
3
+ export declare function saveHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, envelope: EncryptedEnvelope): Promise<void>;
4
+ /** Get history entries for a record, sorted newest-first. */
5
+ export declare function getHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, options?: HistoryOptions): Promise<EncryptedEnvelope[]>;
6
+ /** Get a specific version's envelope from history. */
7
+ export declare function getVersionEnvelope(adapter: NoydbStore, vault: string, collection: string, recordId: string, version: number): Promise<EncryptedEnvelope | null>;
8
+ /** Prune history entries. Returns the number of entries deleted. */
9
+ export declare function pruneHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string | undefined, options: PruneOptions): Promise<number>;
10
+ /** Clear all history for a vault, optionally scoped to a collection or record. */
11
+ export declare function clearHistory(adapter: NoydbStore, vault: string, collection?: string, recordId?: string): Promise<number>;
12
+ /**
13
+ * Crypto-shred every `_history` version of a record. Each non-tombstone
14
+ * history envelope is OVERWRITTEN in place with a tombstone
15
+ * `{ _noydb, _v, _ts: now, _by: actor, _iv: '', _data: '' }` — dropping
16
+ * `_iv`/`_data`/`_cek`/`_det`, so the prior ciphertext (and the wrapped CEK
17
+ * that could decrypt it) is gone everywhere this store reaches. The version
18
+ * counter (`_v`) is preserved so the audit trail still shows "N versions
19
+ * existed and were erased."
20
+ *
21
+ * Overwrite — NOT delete — so the history key itself survives as proof the
22
+ * version existed. Already-tombstoned versions (re-run / idempotent forget)
23
+ * are left untouched and not counted.
24
+ *
25
+ * Returns the number of history versions newly tombstoned.
26
+ */
27
+ export declare function tombstoneHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, actor: string, encrypted: boolean): Promise<number>;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * `@noy-db/hub/history` — subpath export for record-history / diff /
3
+ * ledger-based audit trail + point-in-time primitives.
4
+ *
5
+ * Solo apps that don't track versioning, don't need a hash-chained
6
+ * audit log, and don't restore to earlier points in time can exclude
7
+ * this entire surface. Bundle savings ~1,880 LOC.
8
+ *
9
+ * The strategy seam is `withHistory()` — pass the returned
10
+ * strategy to `createNoydb({ historyStrategy: ... })`. Without it,
11
+ * the core `NO_HISTORY` stub no-ops snapshots/prune/clear and throws
12
+ * on read APIs (`history`, `getVersion`, `diff`, `vault.at`,
13
+ * `vault.ledger`).
14
+ *
15
+ * Named re-exports (not `export *`) so tsup keeps the barrel
16
+ * populated even with `sideEffects: false`.
17
+ */
18
+ export { withHistory } from './active.js';
19
+ export type { HistoryStrategy } from './strategy.js';
20
+ export { saveHistory, getHistory, getVersionEnvelope, pruneHistory, clearHistory, } from './history.js';
21
+ export { diff, formatDiff } from './diff.js';
22
+ export type { ChangeType, DiffEntry } from './diff.js';
23
+ export { LedgerStore, LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION, envelopePayloadHash, } from './ledger/store.js';
24
+ export type { AppendInput, VerifyResult } from './ledger/store.js';
25
+ export { canonicalJson, sha256Hex, hashEntry, paddedIndex, parseIndex, } from './ledger/entry.js';
26
+ export type { LedgerEntry } from './ledger/entry.js';
27
+ export { computePatch, applyPatch } from './ledger/patch.js';
28
+ export type { JsonPatch, JsonPatchOp } from './ledger/patch.js';
29
+ export { VaultInstant, CollectionInstant } from './time-machine.js';
30
+ export type { VaultEngine } from './time-machine.js';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Ledger storage constants — pinned in their own leaf module so
3
+ * always-on core code (vault.ts, dictionary.ts) can import them
4
+ * without dragging the `LedgerStore` class into the bundle.
5
+ *
6
+ * `splitting: true` in tsup is not enough on its own: when a
7
+ * source file exports both pure constants and a heavyweight class,
8
+ * the bundler keeps the entire chunk reachable from any importer.
9
+ * Extracting the constants lets the floor scenario import them
10
+ * without paying for the class.
11
+ *
12
+ * @internal
13
+ */
14
+ /** The internal collection name used for ledger entry storage. */
15
+ export declare const LEDGER_COLLECTION = "_ledger";
16
+ /**
17
+ * The internal collection name used for delta payload storage.
18
+ *
19
+ * Deltas live in a sibling collection (not inside `_ledger`) for two
20
+ * reasons:
21
+ *
22
+ * 1. **Listing efficiency.** `ledger.loadAllEntries()` calls
23
+ * `adapter.list(_ledger)` which would otherwise return every
24
+ * delta key alongside every entry key. Splitting them keeps the
25
+ * list small (one key per ledger entry) and the delta reads
26
+ * keyed by the entry's index.
27
+ *
28
+ * 2. **Prune-friendliness.** A future `pruneHistory()` will delete
29
+ * old deltas while keeping the ledger chain intact (folding old
30
+ * deltas into a base snapshot). Separating the storage makes
31
+ * that deletion a targeted operation on one collection instead
32
+ * of a filter across a mixed list.
33
+ *
34
+ * Both collections share the same ledger DEK — one DEK, two
35
+ * internal collections, same zero-knowledge guarantees.
36
+ */
37
+ export declare const LEDGER_DELTAS_COLLECTION = "_ledger_deltas";
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Ledger entry shape + canonical JSON + sha256 helpers.
3
+ *
4
+ * This file holds the PURE primitives used by the hash-chained ledger:
5
+ * the entry type, the deterministic (sort-stable) JSON encoder, and
6
+ * the sha256 hasher that produces `prevHash` and `ledger.head()`.
7
+ *
8
+ * Everything here is validator-free and side-effect free — the only
9
+ * runtime dep is Web Crypto's `subtle.digest` for the sha256 call,
10
+ * which we already use for every other hashing operation in the core.
11
+ *
12
+ * The hash chain property works like this:
13
+ *
14
+ * hash(entry[i]) = sha256(canonicalJSON(entry[i]))
15
+ * entry[i+1].prevHash = hash(entry[i])
16
+ *
17
+ * Any modification to `entry[i]` (field values, field order, whitespace)
18
+ * produces a different `hash(entry[i])`, which means `entry[i+1]`'s
19
+ * stored `prevHash` no longer matches the recomputed hash, which means
20
+ * `verify()` returns `{ ok: false, divergedAt: i + 1 }`. The chain is
21
+ * append-only and tamper-evident without external anchoring.
22
+ */
23
+ export interface LedgerEntry {
24
+ /**
25
+ * Zero-based sequential position of this entry in the chain. The
26
+ * canonical adapter key is this number zero-padded to 10 digits
27
+ * (`"0000000001"`) so lexicographic ordering matches numeric order.
28
+ */
29
+ readonly index: number;
30
+ /**
31
+ * Hex-encoded sha256 of the canonical JSON of the PREVIOUS entry.
32
+ * The genesis entry (index 0) has `prevHash === ''` — the first
33
+ * entry in a fresh vault has nothing to point back to.
34
+ */
35
+ readonly prevHash: string;
36
+ /**
37
+ * Which kind of mutation this entry records. only supports
38
+ * data operations (`put`, `delete`, `amendment`). Access-control
39
+ * operations (`grant`, `revoke`, `rotate`) will be added in a
40
+ * follow-up once the keyring write path is instrumented — that's
41
+ * tracked in the epic issue.
42
+ *
43
+ * `'amendment'` is the multi-record audit entry written by the
44
+ * guards service when an admin/owner uses `withTransactions(...)`
45
+ * to repair a constraint-violating state. See `amendment` field
46
+ * below for the structured payload.
47
+ *
48
+ * `'lifecycle'` records a non-data audit event (e.g. partition
49
+ * handover) — `collection`/`id` are empty and the event detail
50
+ * lives in `reason` (e.g. `'partition-handed-over:<sealId>'`). Like
51
+ * `amendment`, it carries no data envelope, so `verifyBackupIntegrity`
52
+ * skips it in the data cross-check (it still participates in the
53
+ * tamper-evident chain).
54
+ *
55
+ * `'forget'` is the single summary entry written by `vault.forget()`
56
+ * (GDPR crypto-shred). `collection`/`id` are empty and `version`
57
+ * is 0 — a forget is not scoped to one record. `payloadHash` carries
58
+ * `sha256Hex(subjectId)` so the ledger PROVES "subject X existed and
59
+ * was erased on date D" without retaining the subject id or any
60
+ * plaintext; `reason` holds a JSON summary of the shred counts. Like
61
+ * `amendment`/`lifecycle` it carries no data envelope and is skipped
62
+ * by the reconstruct walker (it still participates in the chain, so
63
+ * `verify()` passes after a shred).
64
+ */
65
+ readonly op: 'put' | 'delete' | 'amendment' | 'lifecycle' | 'migration' | 'forget';
66
+ /** The collection the mutation targeted. */
67
+ readonly collection: string;
68
+ /** The record id the mutation targeted. */
69
+ readonly id: string;
70
+ /**
71
+ * The record version AFTER this mutation. For `put` this is the
72
+ * newly assigned version; for `delete` this is the version that
73
+ * was deleted (the last version visible to reads).
74
+ */
75
+ readonly version: number;
76
+ /** ISO timestamp of the mutation. */
77
+ readonly ts: string;
78
+ /** User id of the actor who performed the mutation. */
79
+ readonly actor: string;
80
+ /**
81
+ * Hex-encoded sha256 over the encrypted envelope's `_data` field, plus its
82
+ * sealed-field ciphertext map (`_sealed`) when the record carries one —
83
+ * so the ledger attests to both the open body and every sealed
84
+ * value. A record with no `_sealed` hashes `_data` alone.
85
+ * For `put`, this is the hash of the new ciphertext. For `delete`,
86
+ * it's the hash of the last visible ciphertext at deletion time, or the empty
87
+ * string if nothing was there to delete. Hashing the ciphertext (not the
88
+ * plaintext) preserves zero-knowledge — see the file docstring. The exact
89
+ * recipe lives in `envelopePayloadHash` (`hash.ts`).
90
+ */
91
+ readonly payloadHash: string;
92
+ /**
93
+ * Optional human-readable tag describing why this mutation happened.
94
+ * Threaded through `collection.put(_, _, { reason })`. Common
95
+ * values include `'import:csv'`, `'import:json'`, `'import:xlsx'` from
96
+ * `as-*` ImportPlan.apply(), but consumers can use any string for
97
+ * domain-specific audit filtering. Auto-strip via `canonicalJson` —
98
+ * absent on the wire, never serialized as `null`.
99
+ *
100
+ * Audit consumers filter: `entries.filter(e => e.reason?.startsWith('import:'))`.
101
+ */
102
+ readonly reason?: string;
103
+ /**
104
+ * Optional hex-encoded sha256 of the encrypted JSON Patch delta
105
+ * blob stored alongside this entry in `_ledger_deltas/`. Present
106
+ * only for `put` operations that had a previous version — the
107
+ * genesis put of a new record, and every `delete`, leave this
108
+ * field undefined.
109
+ *
110
+ * The delta payload itself lives in a sibling internal collection
111
+ * (`_ledger_deltas/<paddedIndex>`) and is encrypted with the
112
+ * ledger DEK. Callers use `ledger.loadDelta(index)` to decrypt and
113
+ * deserialize it when reconstructing a historical version.
114
+ *
115
+ * Why optional instead of always-present: the first put of a
116
+ * record has no previous version to diff against, so storing an
117
+ * empty patch would be noise. For deletes there's no "next" state
118
+ * to describe with a delta. Both cases set this field to undefined.
119
+ *
120
+ * Note: the canonical-JSON hasher treats `undefined` as invalid
121
+ * (it's one of the guard rails), so on the wire this field is
122
+ * either `{ deltaHash: '<hex>' }` or absent from the JSON
123
+ * entirely — never `{ deltaHash: undefined }`.
124
+ */
125
+ readonly deltaHash?: string;
126
+ /**
127
+ * Present only when `op === 'amendment'`. Records the human reason,
128
+ * the role of the actor, the (collection, id, vBefore, vAfter) tuple
129
+ * for every record touched, and which guard invariants passed.
130
+ *
131
+ * See docs/superpowers/specs/2026-05-18-guards-design.md.
132
+ */
133
+ readonly amendment?: {
134
+ readonly reason: string;
135
+ readonly role: 'admin' | 'owner';
136
+ readonly changes: ReadonlyArray<{
137
+ readonly collection: string;
138
+ readonly id: string;
139
+ readonly vBefore: number;
140
+ readonly vAfter: number;
141
+ }>;
142
+ readonly invariantsPassed: ReadonlyArray<string>;
143
+ };
144
+ }
145
+ /**
146
+ * Canonical (sort-stable) JSON encoder.
147
+ *
148
+ * This function is the load-bearing primitive of the hash chain:
149
+ * `sha256(canonicalJSON(entry))` must produce the same hex string
150
+ * every time, on every machine, for the same logical entry — otherwise
151
+ * `verify()` would return `{ ok: false }` on cross-platform reads.
152
+ *
153
+ * JavaScript's `JSON.stringify` is almost canonical, but NOT quite:
154
+ * it preserves the insertion order of object keys, which means
155
+ * `{a:1,b:2}` and `{b:2,a:1}` serialize differently. We fix this by
156
+ * recursively walking objects and sorting their keys before
157
+ * concatenation.
158
+ *
159
+ * Arrays keep their original order (reordering them would change
160
+ * semantics). Numbers, strings, booleans, and `null` use the default
161
+ * JSON encoding. `undefined` and functions are rejected — ledger
162
+ * entries are plain data, and silently dropping `undefined` would
163
+ * break the "same input → same hash" property if a caller forgot to
164
+ * omit a field.
165
+ *
166
+ * Performance: one pass per nesting level; O(n log n) for key sorting
167
+ * at each object. Entries are small (< 1 KB) so this is negligible
168
+ * compared to the sha256 call.
169
+ */
170
+ export declare function canonicalJson(value: unknown): string;
171
+ /**
172
+ * Compute a hex-encoded sha256 of a string via Web Crypto's subtle API.
173
+ *
174
+ * We use hex (not base64) for hashes because hex is case-insensitive,
175
+ * fixed-length (64 chars), and easier to compare visually in debug
176
+ * output. Base64 would save a few bytes in storage but every encrypted
177
+ * ledger entry is already much larger than the hash itself.
178
+ */
179
+ export declare function sha256Hex(input: string): Promise<string>;
180
+ /**
181
+ * Compute the canonical hash of a ledger entry. Short wrapper around
182
+ * `canonicalJson` + `sha256Hex`; callers use this instead of composing
183
+ * the two functions every time, so any future change to the hashing
184
+ * pipeline (e.g., adding a domain-separation prefix) lives in one place.
185
+ */
186
+ export declare function hashEntry(entry: LedgerEntry): Promise<string>;
187
+ /**
188
+ * Pad an index to the canonical 10-digit form used as the adapter key.
189
+ * Ten digits is enough for ~10 billion ledger entries per vault
190
+ * — far beyond any realistic use case, but cheap enough that the extra
191
+ * digits don't hurt storage.
192
+ */
193
+ export declare function paddedIndex(index: number): string;
194
+ /** Parse a padded adapter key back into a number. Returns NaN on malformed input. */
195
+ export declare function parseIndex(key: string): number;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Envelope payload hash — pinned in its own leaf module so consumers
3
+ * (DictionaryHandle, the active history strategy) can import it
4
+ * without dragging in the `LedgerStore` class.
5
+ *
6
+ * see `constants.ts` for the broader rationale.
7
+ *
8
+ * @internal
9
+ */
10
+ import type { EncryptedEnvelope } from '../../../kernel/types.js';
11
+ /**
12
+ * Compute the `payloadHash` value for an encrypted envelope. Used by
13
+ * `LedgerStore.append` for both put (hash the new envelope) and
14
+ * delete (hash the previous envelope) paths, and by
15
+ * `DictionaryHandle` so its ledger entries match the same contract.
16
+ *
17
+ * Hashes the open `_data` ciphertext, plus the sealed-field ciphertext
18
+ * map (`_sealed`) when a record carries one — so the ledger attests to
19
+ * both the open body AND every sealed value … and the verify-digest
20
+ * ciphertext map (`_vdig`), each bound only when present — the `_vdig`
21
+ * binding is the temporal-rollback detector for the C1 splice class.
22
+ * `rotateRecordCek` rewrites `_vdig` with no ledger entry, the same
23
+ * pre-existing rotation property `_sealed`/`_cek` already have
24
+ * (`verifyBackupIntegrity` flags rotated records until re-anchored).
25
+ *
26
+ * Returns the empty string when there is no envelope (delete of a
27
+ * never-existed record). The empty string tolerated by the ledger
28
+ * entry's `payloadHash` field as the canonical "nothing here" value.
29
+ */
30
+ export declare function envelopePayloadHash(envelope: EncryptedEnvelope | null): Promise<string>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Public surface of the ledger module.
3
+ *
4
+ * Consumers import these symbols via `@noy-db/core`:
5
+ *
6
+ * ```ts
7
+ * import { LedgerStore, canonicalJson, hashEntry } from '@noy-db/hub'
8
+ * import type { LedgerEntry, VerifyResult } from '@noy-db/hub'
9
+ * ```
10
+ *
11
+ * The LedgerStore class itself is exported so test code and advanced
12
+ * users can construct one directly, but the recommended entry point is
13
+ * `vault.ledger()` which takes care of wiring the DEK resolver
14
+ * and actor id from the active keyring.
15
+ */
16
+ export { LedgerStore, LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION, envelopePayloadHash, type AppendInput, type VerifyResult, } from './store.js';
17
+ export { canonicalJson, sha256Hex, hashEntry, paddedIndex, parseIndex, type LedgerEntry, } from './entry.js';
18
+ export { computePatch, applyPatch } from './patch.js';
19
+ export type { JsonPatch, JsonPatchOp } from './patch.js';
@@ -0,0 +1,99 @@
1
+ /**
2
+ * RFC 6902 JSON Patch — compute + apply.
3
+ *
4
+ * This module is the "delta history" primitive: instead of
5
+ * snapshotting the full record on every put (the behavior),
6
+ * `Collection.put` computes a JSON Patch from the previous version to
7
+ * the new version and stores only the patch in the ledger. To
8
+ * reconstruct version N, we walk from the genesis snapshot forward
9
+ * applying patches. Storage scales with **edit size**, not record
10
+ * size — a 10 KB record edited 1000 times costs ~10 KB of deltas
11
+ * instead of ~10 MB of snapshots.
12
+ *
13
+ * ## Why hand-roll instead of using a library?
14
+ *
15
+ * RFC 6902 has good libraries (`fast-json-patch`, `rfc6902`) but every
16
+ * single one of them adds a runtime dependency to `@noy-db/core`. The
17
+ * "zero runtime dependencies" promise is one of the core's load-bearing
18
+ * features, and the patch surface we actually need is small enough
19
+ * (~150 LoC) that vendoring is the right call.
20
+ *
21
+ * What we implement:
22
+ * - `add` — insert a value at a path
23
+ * - `remove` — delete the value at a path
24
+ * - `replace` — overwrite the value at a path
25
+ *
26
+ * What we deliberately skip (out of scope for the ledger use):
27
+ * - `move` and `copy` — optimizations; the diff algorithm doesn't
28
+ * emit them, so the apply path doesn't need them
29
+ * - `test` — used for transactional patches; we already have
30
+ * optimistic concurrency via `_v` at the envelope layer
31
+ * - Sophisticated array diffing (LCS, edit distance) — we treat
32
+ * arrays as atomic values and emit a single `replace` op when
33
+ * they differ. The accounting domain has small arrays where this
34
+ * is fine; if we ever need patch-level array diffing we can add
35
+ * it without changing the storage format.
36
+ *
37
+ * ## Path encoding (RFC 6902 §3)
38
+ *
39
+ * Paths look like `/foo/bar/0`. Each path segment is either an object
40
+ * key or a numeric array index. Two characters need escaping inside
41
+ * keys: `~` becomes `~0` and `/` becomes `~1`. We implement both.
42
+ *
43
+ * Empty path (`""`) refers to the root document. Only `replace` makes
44
+ * sense at the root, and our diff function emits it as a top-level
45
+ * `replace` when `prev` and `next` differ in shape (object vs array,
46
+ * primitive vs object, etc.).
47
+ */
48
+ /** A single JSON Patch operation. Subset of RFC 6902 — see file docstring. */
49
+ export type JsonPatchOp = {
50
+ readonly op: 'add';
51
+ readonly path: string;
52
+ readonly value: unknown;
53
+ } | {
54
+ readonly op: 'remove';
55
+ readonly path: string;
56
+ } | {
57
+ readonly op: 'replace';
58
+ readonly path: string;
59
+ readonly value: unknown;
60
+ };
61
+ /** A complete JSON Patch document — an array of operations. */
62
+ export type JsonPatch = readonly JsonPatchOp[];
63
+ /**
64
+ * Compute a JSON Patch that, when applied to `prev`, produces `next`.
65
+ *
66
+ * The algorithm is a straightforward recursive object walk:
67
+ *
68
+ * 1. If both inputs are plain objects (and not arrays/null):
69
+ * - For each key in `prev`, recurse if `next` has it, else emit `remove`
70
+ * - For each key in `next` not in `prev`, emit `add`
71
+ * 2. If both inputs are arrays AND structurally equal, no-op.
72
+ * Otherwise emit a single `replace` for the whole array.
73
+ * 3. If both inputs are deeply equal primitives, no-op.
74
+ * 4. Otherwise emit a `replace` at the current path.
75
+ *
76
+ * We do not minimize patches across move-like rearrangements — every
77
+ * generated patch is straightforward enough to apply by hand if you
78
+ * had to debug it.
79
+ */
80
+ export declare function computePatch(prev: unknown, next: unknown): JsonPatch;
81
+ /**
82
+ * Apply a JSON Patch to a base document and return the result.
83
+ *
84
+ * The base document is **not mutated** — every op clones the parent
85
+ * container before writing to it, so the caller's reference to `base`
86
+ * stays untouched. This costs an extra allocation per op but makes
87
+ * the apply pipeline reorderable and safe to interrupt.
88
+ *
89
+ * Throws on:
90
+ * - Removing a path that doesn't exist
91
+ * - Adding to a path whose parent doesn't exist
92
+ * - A path component that doesn't match the document shape (e.g.,
93
+ * trying to step into a primitive)
94
+ *
95
+ * Throwing is the right behavior for the ledger use case: a failed
96
+ * apply means the chain is corrupted, which should be loud rather
97
+ * than silently producing a wrong reconstruction.
98
+ */
99
+ export declare function applyPatch<T = unknown>(base: T, patch: JsonPatch): T;