@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,301 @@
1
+ /**
2
+ * RecordCodec — the per-record envelope build + encrypt/decrypt + per-record-CEK
3
+ * + sealed-field crypto.
4
+ *
5
+ * `Collection` holds one `RecordCodec` instance and delegates the crypto write
6
+ * path (`encryptRecord` / `encryptJsonString` / `buildDebugEnvelope`), the read
7
+ * path (`decryptRecord` / `decryptJsonString` / `resolveEnvelopeCek`), and the
8
+ * sealed-field helpers (`unsealField` / `makeSealedHandle` / `toCacheRecord` /
9
+ * `classifySealedShred`) to it. The codec receives every `this.*` dependency
10
+ * it needs via {@link RecordCodecContext}.
11
+ *
12
+ * The crux is `cekCache`: it is the SAME `Lru` reference `Collection` owns (not
13
+ * a copy). `resolveEnvelopeCek` reads/writes it, and tier methods +
14
+ * `vault.invalidateRecordCaches` keep mutating that same object — a copy would
15
+ * silently break the "single CEK delete kills the version chain" invariant.
16
+ *
17
+ * Internal service — not exported as a `@noy-db/hub/*` subpath.
18
+ */
19
+ import { type EnclaveKey } from '../crypto.js';
20
+ import { type EncryptedEnvelope, type CrdtMode, type CrdtStrategy, type VdigFieldPolicy, type SealedHandle } from '../../types.js';
21
+ import { type StandardSchemaV1 } from '../../schema.js';
22
+ import type { Lru } from '../../cache/index.js';
23
+ import type { ViaCryptoCtx } from '../../via/index.js';
24
+ import type { ViaPipeline } from '../../via/pipeline.js';
25
+ /**
26
+ * One classified per-slot verdict from {@link RecordCodec.classifySealedShred}.
27
+ * `shreddable` — CEK-only, tombstone makes it undecryptable. `dekResidue` —
28
+ * collection-DEK-keyed, survives in synced/backup copies. The third class is
29
+ * BOTH: a `_bidx` blind-index tag is live-dropped by the tombstone yet retained
30
+ * under the surviving DEK in any pre-forget backup (honest dual accounting).
31
+ */
32
+ export type SealedShredSlot = {
33
+ readonly field: string;
34
+ readonly class: 'shreddable' | 'dekResidue' | 'live-shreddable+dekResidue-in-backups';
35
+ };
36
+ /** Everything the moving crypto methods touched on `this.*`, as a flat context. */
37
+ export interface RecordCodecContext<T> {
38
+ /** Collection name — the crypto AAD scope and schema-error context. */
39
+ readonly name: string;
40
+ /** Actor id stamped on `_by` (the collection's keyring.userId). */
41
+ readonly actor: string;
42
+ /** False on plaintext collections — selects the no-ciphertext envelope branch. */
43
+ readonly storeCiphertext: boolean;
44
+ /** keyring.debugPlaintext — debug-inline envelope on user collections. */
45
+ readonly debugPlaintext: boolean;
46
+ /** Emit `_source`/`_sourceTs` provenance fields when a source is supplied. */
47
+ readonly provenance: boolean;
48
+ /** Declared `sensitive` fields → sealed into `_sealed[field]`. */
49
+ readonly sensitiveFields: ReadonlySet<string>;
50
+ /** Declared deterministic-index fields, or null. */
51
+ readonly deterministicFields: ReadonlySet<string> | null;
52
+ /** Digest-only classified fields → verify policy (stage 2). Null when none. */
53
+ readonly vdigFields: ReadonlyMap<string, VdigFieldPolicy> | null;
54
+ /**
55
+ * C-A / R10 config-drift signal: the persisted `x-classified` marker's
56
+ * declared digest-only field set (empty when the collection carries no
57
+ * marker). Lazy, memoized (O(1) per handle after the first call). The R10
58
+ * superset guard refuses whenever a field in this set is absent from
59
+ * `vdigFields`. Consulted once per handle on any encrypted write path — the
60
+ * cross-session, prev-free signal a fully-naive create has no `prev` for.
61
+ * Undefined on codecs with no store access (direct-construction tests).
62
+ */
63
+ classifiedMarkerDigestOnly?(): Promise<readonly string[]>;
64
+ /** CRDT mode (decrypt resolves CrdtState→snapshot when set). */
65
+ readonly crdtMode: CrdtMode | undefined;
66
+ /** CRDT strategy seam (resolveCrdtSnapshot). */
67
+ readonly crdtStrategy: CrdtStrategy;
68
+ /** Output-schema validator, or undefined. */
69
+ readonly schema: StandardSchemaV1<unknown, T> | undefined;
70
+ /**
71
+ * Resolve a collection's DEK. Called with no argument for `this.name`'s
72
+ * own DEK (every ordinary codec use); `viaCryptoCtx`'s `reservedEnvelopes`
73
+ * door passes an explicit OTHER collection name (e.g. a reserved
74
+ * `_dict_status` collection) so a binding's at-rest hook can address a
75
+ * different collection's DEK without ever holding the resolver itself.
76
+ */
77
+ getDEK(collection?: string): Promise<EnclaveKey>;
78
+ /**
79
+ * The collection's per-record CEK cache (SHARED reference, not a copy).
80
+ * Ownership/lifetime stays on Collection; codec reads+writes it in
81
+ * resolveEnvelopeCek exactly as the inline code did. `null` → no caching.
82
+ */
83
+ readonly cekCache: Lru<string, EnclaveKey> | null;
84
+ /**
85
+ * Compiled Via pipeline (money, i18n, …), or undefined for a collection
86
+ * with none declared. `encryptRecord`/`decryptRecord` consult
87
+ * `via?.hasAtRestHooks` at the sealed-slot sub-step to choose between a
88
+ * binding's `encodeAtRest`/`decodeAtRest` hooks and today's inline path.
89
+ * The zero-via fast path (`via` undefined, or no binding declares an
90
+ * at-rest hook) stays byte/behavior-identical (#629 Task 3).
91
+ *
92
+ * Mutable (not `readonly`, #638 Task 3): `Collection.via` can be
93
+ * reassigned post-construction (the taint overlay, `via/graph-wiring.ts#
94
+ * applyTaintOverlay`) — `RecordCodec.setVia` below keeps this in sync so
95
+ * at-rest hooks read the LIVE pipeline, not a stale construction-time
96
+ * snapshot.
97
+ */
98
+ via: ViaPipeline | undefined;
99
+ }
100
+ export declare class RecordCodec<T> {
101
+ private readonly ctx;
102
+ constructor(ctx: RecordCodecContext<T>);
103
+ /**
104
+ * @internal Update the live Via pipeline this codec's at-rest hooks read
105
+ * (#638 Task 3) — called by `via/graph-wiring.ts#applyTaintOverlay` right
106
+ * after it reassigns `Collection.via`, so `hasAtRestHooks`/`encodeAtRest`/
107
+ * `decodeAtRest` see the newly-added `taint` binding instead of the
108
+ * pipeline snapshot captured when this codec was constructed.
109
+ */
110
+ setVia(via: ViaPipeline | undefined): void;
111
+ /** Sealed-slot key material for this codec's collection, for a given per-record CEK (or none). */
112
+ private sealKeyMaterial;
113
+ /**
114
+ * Build the `ViaCryptoCtx` handed to a binding's `encodeAtRest`/
115
+ * `decodeAtRest` hook: `sealedSlots` pre-bound to `(this.ctx.name,
116
+ * recordId)` — always threading `cek` when the caller has one, so the
117
+ * capability's record-binding stays cryptographic rather than degrading
118
+ * to collection-scope. `reservedEnvelopes`'s DEK resolver forwards its
119
+ * `collection` argument straight to `this.ctx.getDEK` (#629 Task 4) — it
120
+ * resolves the RESERVED collection's own DEK (e.g. `_dict_status`), never
121
+ * `this.ctx.name`'s, matching `Vault.getDEK`'s per-collection-name
122
+ * resolution (the same resolver `DictionaryHandle` used pre-cutover).
123
+ */
124
+ private viaCryptoCtx;
125
+ /**
126
+ * Assemble a canonical ciphertext body envelope literal from already-computed
127
+ * parts. Pure, no crypto. Each call stamps its own `_ts` — provenance carries
128
+ * a SEPARATE timestamp (computed by the caller), so the two never share one.
129
+ */
130
+ static buildEnvelope(p: {
131
+ version: number;
132
+ iv: string;
133
+ data: string;
134
+ by?: string;
135
+ cek?: string;
136
+ provenance?: {
137
+ source: string;
138
+ sourceTs: string;
139
+ } | undefined;
140
+ extra?: Partial<Pick<EncryptedEnvelope, '_tier' | '_det' | '_sealed'>>;
141
+ }): EncryptedEnvelope;
142
+ /** Plaintext (`_iv:''`) body envelope — the `!storeCiphertext` shape. */
143
+ static buildPlaintextEnvelope(p: {
144
+ version: number;
145
+ data: string;
146
+ by?: string;
147
+ provenance?: {
148
+ source: string;
149
+ sourceTs: string;
150
+ } | undefined;
151
+ }): EncryptedEnvelope;
152
+ /**
153
+ * Build a debug-plaintext envelope: the record's own fields inlined as
154
+ * top-level keys beside the reserved `_`-metadata, with `_debug: 1` and an
155
+ * empty `_data`. Lets native store tooling read the record without
156
+ * unwrapping. Only reached for user collections under `debugPlaintext`
157
+ * (see {@link encryptRecord}). Rejects `_`-prefixed record fields, which
158
+ * would collide with the reserved metadata namespace.
159
+ */
160
+ buildDebugEnvelope(record: T, version: number, source?: string, sourceTs?: string): EncryptedEnvelope;
161
+ /**
162
+ * Encrypt a JSON body into an envelope.
163
+ *
164
+ * When `cek` is supplied (per-record CEK collections), the body is
165
+ * encrypted under the CEK and the CEK is AES-KW-wrapped under the
166
+ * collection DEK and stamped on `_cek`. When `cek` is omitted, the legacy
167
+ * path encrypts the body directly under the collection DEK — byte-identical
168
+ * to pre-CEK behaviour, so non-adopting collections pay nothing.
169
+ */
170
+ encryptJsonString(json: string, version: number, cek?: EnclaveKey, source?: string, sourceTs?: string): Promise<EncryptedEnvelope>;
171
+ encryptRecord(record: T, version: number, cek?: EnclaveKey, source?: string, sourceTs?: string, vdig?: {
172
+ readonly id: string;
173
+ readonly prev: EncryptedEnvelope | null;
174
+ }, id?: string): Promise<EncryptedEnvelope>;
175
+ /**
176
+ * Resolve the per-record CEK for a stored envelope, or `undefined` for a
177
+ * legacy (`_cek`-absent) envelope. Unwraps `_cek` under the collection DEK and
178
+ * memoises it in the CEK cache under `id` (when supplied) so repeated reads of
179
+ * the same record skip the unwrap. Shared by the body-decrypt path
180
+ * ({@link decryptJsonString}) and the sealed-field path ({@link decryptRecord}
181
+ * / {@link toCacheRecord}) so both agree on the record's key.
182
+ */
183
+ resolveEnvelopeCek(envelope: EncryptedEnvelope, id?: string): Promise<EnclaveKey | undefined>;
184
+ /**
185
+ * Low-level: decrypt an envelope and return the raw JSON string.
186
+ *
187
+ * `_cek` presence is the format discriminant (NOT `this.perRecordCek`),
188
+ * so a mixed vault — and a recipient that never opted into
189
+ * `perRecordKeys` — decrypts both legacy and CEK records:
190
+ * - `_cek` present → unwrap the CEK under the collection DEK, decrypt the
191
+ * body under the CEK (cache the unwrapped CEK so repeated reads skip it).
192
+ * - `_cek` absent → legacy path, body decrypts directly under the
193
+ * collection DEK.
194
+ *
195
+ * The optional `id` lets reads populate the CEK cache; it is omitted by
196
+ * callers (history, conflict merge) that have only the envelope.
197
+ */
198
+ decryptJsonString(envelope: EncryptedEnvelope, id?: string): Promise<string | null>;
199
+ /**
200
+ * Unseal a single `_sealed[field]` slot to its plaintext value: derive the
201
+ * per-field key off the collection DEK, AES-GCM-decrypt the `iv:data` blob,
202
+ * and JSON-parse the result. Shared by both the inline-decrypt path and a
203
+ * {@link Sealed} handle's `reveal()` — so the on-demand reveal and the eager
204
+ * materialisation always agree byte-for-byte.
205
+ */
206
+ unsealField(field: string, blob: string, cek?: EnclaveKey): Promise<unknown>;
207
+ /**
208
+ * Build the `ViaCryptoCtx` for forget()'s per-ref via-erase fold (#629
209
+ * Task 10) — resolves the live envelope's CEK exactly like
210
+ * `decryptRecord` does, then delegates to the same capability factory
211
+ * `encodeAtRest`/`decodeAtRest` use.
212
+ */
213
+ eraseCryptoCtx(id: string, live: EncryptedEnvelope): Promise<ViaCryptoCtx>;
214
+ /**
215
+ * Classify a live envelope's `_sealed` slots for crypto-shred completeness.
216
+ * `forget()` drops `_cek`/`_sealed` but
217
+ * RETAINS the collection DEK, so only a slot keyed off the per-record CEK is
218
+ * genuinely shredded by the tombstone; a legacy slot keyed off the
219
+ * collection DEK survives in any synced/backup copy.
220
+ *
221
+ * Mirrors {@link unsealField}'s dual-read split: try the CEK-derived key per
222
+ * slot — success → `shreddable`, AES-GCM auth failure → `dekResidue`. With no
223
+ * `_cek` (pure legacy collection-DEK sealing) ALL slots are residue.
224
+ */
225
+ classifySealedShred(live: EncryptedEnvelope): Promise<{
226
+ readonly slots: readonly SealedShredSlot[];
227
+ }>;
228
+ /**
229
+ * Build a non-leaking {@link Sealed} handle over a sealed field's ciphertext.
230
+ * The handle captures only the ciphertext `blob` and a closure to
231
+ * {@link unsealField}; the plaintext is never stored on it — so the handle
232
+ * may sit in the working-set cache (or be logged/serialised) without
233
+ * exposing the value, which decrypts only on `reveal()`.
234
+ */
235
+ makeSealedHandle(field: string, blob: string, cek?: EnclaveKey): SealedHandle<unknown>;
236
+ /**
237
+ * Replace every field the just-written envelope actually sealed with a
238
+ * {@link Sealed} handle, leaving every other field as its plaintext value.
239
+ * Used to populate the cache on the write path without ever materialising
240
+ * sealed plaintext into it. Returns `record` untouched when nothing was
241
+ * sealed. Keys off `envelope._sealed` itself (#642 fix) — NOT
242
+ * `this.ctx.sensitiveFields`, which only names the inline `sensitive:[...]`/
243
+ * classified-recoverable field set: a collection whose sealing comes
244
+ * entirely from the `taint` via-binding (a derivation/MV output or rollup
245
+ * target folded sealed from a classified SOURCE collection, #642) declares
246
+ * no local `sensitiveFields` at all, so that stale gate skipped this
247
+ * conversion and left a just-written taint-sealed field as cached
248
+ * plaintext — read back correctly ONLY after a cold cache miss (`get()`'s
249
+ * own `decodeAtRest` call, unaffected by this gate) forced a fresh decrypt.
250
+ */
251
+ toCacheRecord(record: T, envelope: EncryptedEnvelope, id?: string): Promise<T>;
252
+ /**
253
+ * Apply `_sealed`-slot post-processing to an ALREADY-DECRYPTED `record`:
254
+ * restore each `_sealed[field]` blob inline (`sealedAsHandles` falsy) or
255
+ * as an opaque {@link Sealed} handle (`sealedAsHandles: true`), routing
256
+ * through a via pipeline's `decodeAtRest` hook when one is declared.
257
+ * Extracted byte-parity from `decryptRecord`'s inline block (#635) so a
258
+ * caller that resolves its OWN per-record CEK under a DIFFERENT DEK than
259
+ * this codec's `this.ctx.getDEK()` — namely the tier>0 `getAtTier` leg in
260
+ * `with-audit/tiers/index.ts`, whose `_cek` is wrapped under the TIER DEK,
261
+ * not the collection DEK `decryptRecord`/`resolveEnvelopeCek` always
262
+ * unwrap under — can still get correct sealed-slot handling without
263
+ * routing its whole read through `decryptRecord` (which would resolve the
264
+ * wrong DEK for it).
265
+ *
266
+ * Zero-knowledge: takes only the already-resolved per-record `cek` (or
267
+ * `undefined` for a legacy/no-CEK record) — the same shape `makeSealedHandle`
268
+ * already takes above. Never the keyring, never a raw DEK: the legacy
269
+ * fallback key stays fully internal to `sealKeyMaterial`/`viaCryptoCtx`,
270
+ * which close over THIS codec's own `getDEK` (permanently bound to
271
+ * `this.ctx.name`'s tier-0 DEK at construction) — so even when called from
272
+ * a tier>0 context, the legacy-fallback key resolution is correct: sealed
273
+ * fields are always sealed under the CEK or the collection's tier-0 DEK,
274
+ * never a tier DEK (tier writes don't seal fields; `_sealed` reaches a
275
+ * tiered envelope only via a tier-0 write later elevated).
276
+ */
277
+ applySealedSlots(record: T, sealed: Record<string, string>, cek: EnclaveKey | undefined, opts?: {
278
+ id?: string;
279
+ sealedAsHandles?: boolean;
280
+ }): Promise<T>;
281
+ /**
282
+ * Decrypt an envelope into a record of type `T`.
283
+ *
284
+ * When a schema is attached, the decrypted value is validated before
285
+ * being returned. A divergence between the stored bytes and the
286
+ * current schema throws `SchemaValidationError` with
287
+ * `direction: 'output'` — silently returning drifted data would
288
+ * propagate garbage into the UI and break the whole point of having
289
+ * a schema.
290
+ *
291
+ * `skipValidation` exists for history reads: when calling
292
+ * `getVersion()` the caller is explicitly asking for an old snapshot
293
+ * that may predate a schema change, so validating it would be a
294
+ * false positive. Every non-history read leaves this flag `false`.
295
+ */
296
+ decryptRecord(envelope: EncryptedEnvelope, opts?: {
297
+ skipValidation?: boolean;
298
+ id?: string;
299
+ sealedAsHandles?: boolean;
300
+ }): Promise<T | null>;
301
+ }
@@ -0,0 +1,14 @@
1
+ /** Parse an `iv:data` sealed slot (split on the FIRST `:`). */
2
+ export declare function parseSealedSlot(blob: string): {
3
+ iv: string;
4
+ data: string;
5
+ };
6
+ /**
7
+ * Dual-read: decrypt a sealed slot trying the CEK-derived field key first,
8
+ * falling back to the collection-DEK field key. Legacy records
9
+ * (even ones whose body is CEK-encrypted) are sealed under the collection-DEK
10
+ * key; current writes seal under the per-record CEK. Try the CEK key first; on
11
+ * its AES-GCM auth failure, fall back to the DEK key. Throws only if BOTH fail.
12
+ * Returns the plaintext string (callers `JSON.parse` as needed).
13
+ */
14
+ export declare function dualReadSealedSlot(blob: string, field: string, collection: string, cek: CryptoKey | undefined, dek: CryptoKey): Promise<string>;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Sealed-slot sub-step — the "seal these declared fields into their own
3
+ * `iv:data` slots" mechanism, extracted byte-parity from `RecordCodec`
4
+ * (#629 Task 1; see `.superpowers/sdd/seam-map-classified-blobs.md` §2).
5
+ *
6
+ * This is the ONE genuinely separable sub-step `RecordCodec.encryptRecord`/
7
+ * `decryptRecord` perform (the digest-only `_vdig`/`_bidx` mechanism is NOT
8
+ * separable the same way — it needs write-history `prev` context, see the
9
+ * seam map's separability verdict). `sealFields`/`unsealFields` are the
10
+ * natural shape of a `via` `encodeAtRest`/`decodeAtRest` hook for a "seal
11
+ * this field" via-feature, and `makeSealedSlotCapability`/
12
+ * `makeReservedEnvelopes` (below) are the `ViaCryptoCtx` capability
13
+ * factories built on top of them.
14
+ *
15
+ * The capability factories live here (rather than a sibling
16
+ * `kernel/via-crypto.ts`) so they can call `deriveSealedFieldKey`/
17
+ * `deriveSealedFieldKeyFromCek`/`encrypt`/`decrypt` directly — this file IS
18
+ * kernel enclave code (C3), so it is exempt from `enclave-barrel-only` the
19
+ * same way `record-codec.ts`/`sealing.ts` are. A file outside
20
+ * `kernel/enclave/**` would have had to go through the enclave barrel
21
+ * (`kernel/enclave/index.ts`), which does not (yet) export these symbols.
22
+ */
23
+ import { type EnclaveKey } from '../crypto.js';
24
+ import { SealedHandle } from '../../types.js';
25
+ import type { ViaCryptoCtx } from '../../via/index.js';
26
+ /**
27
+ * Key material for one collection's sealed-field derivation. `cek`, when
28
+ * supplied, is preferred (record-scoped); `getDEK` is the fallback (and,
29
+ * for legacy/no-CEK collections, the only key) — mirrors the dual-read
30
+ * `RecordCodec` has always done.
31
+ */
32
+ export interface SealKeyMaterial {
33
+ readonly collection: string;
34
+ readonly cek?: EnclaveKey;
35
+ getDEK(): Promise<EnclaveKey>;
36
+ }
37
+ export interface SealFieldsResult {
38
+ readonly openRecord: Record<string, unknown>;
39
+ readonly sealed: Record<string, string> | undefined;
40
+ }
41
+ /**
42
+ * Peel declared `sensitiveFields` out of `record` BEFORE building `_data`,
43
+ * sealing each into its own `iv:data` slot. Extracted byte-parity from
44
+ * `RecordCodec.encryptRecord` step 2 (pre-#629 `record-codec.ts:261-288`).
45
+ * Returns `record` untouched (and `sealed: undefined`) when no declared
46
+ * field is present with a defined value — the envelope stays byte-identical
47
+ * to legacy output, exactly as before.
48
+ */
49
+ export declare function sealFields(record: Record<string, unknown>, sensitiveFields: ReadonlySet<string>, keyMaterial: SealKeyMaterial): Promise<SealFieldsResult>;
50
+ /**
51
+ * Unseal one `_sealed[field]` slot to its plaintext value: dual-read (try
52
+ * the CEK-derived key, fall back to the DEK-derived key for legacy
53
+ * records), AES-GCM-decrypt the `iv:data` blob, and JSON-parse the result.
54
+ * Extracted byte-parity from `RecordCodec.unsealField`
55
+ * (pre-#629 `record-codec.ts:485-493`).
56
+ */
57
+ export declare function unsealOneField(field: string, blob: string, keyMaterial: SealKeyMaterial): Promise<unknown>;
58
+ /**
59
+ * Build a non-leaking {@link SealedHandle} producer over sealed key
60
+ * material: each call captures only the ciphertext `blob` and a closure to
61
+ * {@link unsealOneField} — the plaintext is never stored on the handle, and
62
+ * (crucially) the DEK is fetched lazily on `reveal()`, never at handle-
63
+ * construction time. Extracted byte-parity from
64
+ * `RecordCodec.makeSealedHandle` (pre-#629 `record-codec.ts:552-554`).
65
+ */
66
+ export declare function makeHandleProducer(keyMaterial: SealKeyMaterial): (field: string, blob: string) => SealedHandle<unknown>;
67
+ /**
68
+ * Restore every `[field]: blob` entry in `sealed` onto `record` (mutated in
69
+ * place, matching the original's mutate-then-return shape): eagerly unseal
70
+ * to plaintext (`opts.asHandles` falsy) or wrap each in a
71
+ * {@link SealedHandle} (`opts.asHandles: true`) so the plaintext is never
72
+ * materialised. Extracted byte-parity from `RecordCodec.decryptRecord`'s
73
+ * sealed-handle block (pre-#629 `record-codec.ts:615-623`).
74
+ */
75
+ export declare function unsealFields(record: Record<string, unknown>, sealed: Record<string, string>, keyMaterial: SealKeyMaterial, opts?: {
76
+ asHandles?: boolean;
77
+ }): Promise<Record<string, unknown>>;
78
+ /** What {@link makeSealedSlotCapability} needs — a subset of `RecordCodecContext`. */
79
+ export interface SealedSlotCapabilityCtx {
80
+ readonly name: string;
81
+ getDEK(): Promise<EnclaveKey>;
82
+ }
83
+ /**
84
+ * Build a `ViaCryptoCtx.sealedSlots` capability pre-bound to one
85
+ * `(collection, recordId)`. The key material (`cek`/DEK resolver) is closed
86
+ * over and never placed on the returned object — `Object.keys`/
87
+ * `Object.values` of the capability expose only the three methods, never a
88
+ * key (zero-knowledge: capabilities never expose keys).
89
+ *
90
+ * `delete(field)` is **advisory and capability-instance-local, not real
91
+ * erasure** — it has no store to reach and never will by itself: it just
92
+ * adds `field` to a `Set` closed over by THIS ONE capability object, so a
93
+ * later `unseal` call on that SAME object refuses. No I/O happens. A fresh
94
+ * capability for the same record (e.g. `seal()`'d again, or a new
95
+ * `makeSealedSlotCapability(...)` call) has an empty set and sees no
96
+ * deletion at all — `seal()` on a given field also clears any prior mark
97
+ * for it. Do not build production logic on `delete()` persisting anything.
98
+ * The real erasure guarantee for a forgotten record is `vault.forget()`'s
99
+ * unconditional `_writeTombstone` call, which replaces the whole live
100
+ * envelope with a fresh, `_sealed`-free tombstone — `_sealed` disappears
101
+ * from the store regardless of what any capability's `delete()` marked.
102
+ * (#629 Task 10 traced this end-to-end; see task-10-report.md "sealedSlots
103
+ * .delete()" section. Removing/changing this method's shape is a phase-E
104
+ * decision, not implied by this comment.)
105
+ */
106
+ export declare function makeSealedSlotCapability(ctx: SealedSlotCapabilityCtx, recordId: string, cek?: EnclaveKey): ViaCryptoCtx['sealedSlots'];
107
+ /** Resolve the DEK for an arbitrary (possibly synthetic, e.g. `_dict_en`) collection name. */
108
+ export type ReservedEnvelopeDekResolver = (collection: string) => Promise<EnclaveKey>;
109
+ /**
110
+ * Build a `ViaCryptoCtx.reservedEnvelopes` capability: a whole-envelope
111
+ * encrypt/decrypt door scoped to collection names under a declared prefix
112
+ * (e.g. `_dict_`) — the shape `via/i18n/dictionary.ts`'s
113
+ * `DictionaryHandle` needs (seam map Part 3): build JSON → encrypt under a
114
+ * DEK → wrap in an `EncryptedEnvelope`; decrypt → JSON text. No per-record
115
+ * CEK — reserved envelopes are whole-DEK-encrypted, same as the dictionary
116
+ * grandfather.
117
+ *
118
+ * `reservedEnvelopes(prefix)` throws `ValidationError` immediately when
119
+ * `prefix` is not in `declaredPrefixes`; each `encrypt`/`decrypt` call
120
+ * throws `ValidationError` when its `collection` argument does not start
121
+ * with `prefix`.
122
+ */
123
+ export declare function makeReservedEnvelopes(dekResolver: ReservedEnvelopeDekResolver, declaredPrefixes: readonly string[]): ViaCryptoCtx['reservedEnvelopes'];
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Record-scoped CEK sealing — grantor side.
3
+ *
4
+ * The **grantor** holds the collection DEK and seals ONE record's CEK to an
5
+ * `at-*` host so that host — and only that host — can decrypt exactly that
6
+ * record, with no access to the vault DEK and no ability to read any other
7
+ * record. This is the counterpart to the host-side `openSealedRecord`
8
+ * (`@noy-db/hub/sealed-record`), which holds no DEK.
9
+ *
10
+ * These functions are the orchestration behind `vault.sealRecordToHost` /
11
+ * `vault.revokeSealedRecord` / `vault.rotateRecordCek`, lifted off `Vault`
12
+ * behind a narrow {@link SealingContext} so the kernel file delegates. They
13
+ * live in `record-keys/` (the vault-side CEK policy layer), NOT in
14
+ * `sealed-record/`, so the host-side subpath stays DEK-free — the wire
15
+ * *types* they share are spine-owned (`kernel/types.ts`), not imported from
16
+ * `sealed-record/` directly.
17
+ */
18
+ import { type EnclaveKey } from '../crypto.js';
19
+ import { type NoydbStore, type RecipientSealer } from '../../types.js';
20
+ /** The `_sealed_cek` delivery namespace (one envelope per `collection/id/pid`). */
21
+ export declare const SEALED_CEK_NS = "_sealed_cek";
22
+ /** What the grantor functions need from their `Vault`. */
23
+ export interface SealingContext {
24
+ readonly adapter: NoydbStore;
25
+ /** Vault id (the adapter's first coordinate). */
26
+ readonly vault: string;
27
+ /** Resolve the DEK a record's CEK is wrapped under. */
28
+ getDEK(collection: string): Promise<EnclaveKey>;
29
+ /** Actor id stamped on `_by` (empty string → omit). */
30
+ readonly actor: string;
31
+ /** Evict the per-record CEK cache + decrypted-record cache after a rotation. */
32
+ invalidateRecordCaches(collection: string, id: string): Promise<void>;
33
+ }
34
+ /**
35
+ * Seal a record's CEK to a host. See `vault.sealRecordToHost` for the contract.
36
+ * Returns `{ pid, envelopeKey }`.
37
+ */
38
+ export declare function sealRecordToHost(ctx: SealingContext, collection: string, id: string, hostSealer: RecipientSealer, opts: {
39
+ expiresAt: string;
40
+ }): Promise<{
41
+ pid: string;
42
+ envelopeKey: string;
43
+ }>;
44
+ /**
45
+ * Revoke one sealed-CEK grant.
46
+ *
47
+ * **Default (`{ hard: false }`) is SOFT** — it only deletes the delivery
48
+ * envelope from the store. A host that already fetched (or cached the unsealed
49
+ * CEK from) that envelope KEEPS decrypt capability for the record; soft revoke
50
+ * is a "stop new fetches" control, not a cryptographic cutoff.
51
+ *
52
+ * **`{ hard: true }`** additionally rotates the record's CEK (via
53
+ * {@link rotateRecordCek}): the live body is re-encrypted under a fresh CEK and
54
+ * EVERY sealed-CEK delivery envelope for the record (all pids) is deleted, so
55
+ * any previously-sealed CEK fails the AES-GCM auth tag on the rotated body —
56
+ * future opens are cryptographically denied. (PRE-rotation history versions,
57
+ * which keep their old `_cek`, remain openable — same semantics as
58
+ * `rotateRecordCek`.)
59
+ */
60
+ export declare function revokeSealedRecord(ctx: SealingContext, collection: string, id: string, pid: string, opts?: {
61
+ hard?: boolean;
62
+ }): Promise<void>;
63
+ /**
64
+ * HARD-rotate a record's CEK: re-encrypt the live body under a fresh CEK, evict
65
+ * caches, and delete EVERY sealed-CEK delivery envelope for the record. See
66
+ * `vault.rotateRecordCek` for why this bypasses `Collection.put` (no guards, no
67
+ * history bump — a key rotation must not re-encrypt prior history under the new
68
+ * CEK).
69
+ */
70
+ export declare function rotateRecordCek(ctx: SealingContext, collection: string, id: string): Promise<void>;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Tombstone shape + predicate for the per-record-key (CEK) layer.
3
+ *
4
+ * A *tombstone* is the residue a GDPR crypto-shred (`vault.forget()`)
5
+ * leaves on disk: the live envelope rewritten to `{ _noydb, _v, _ts, _by,
6
+ * _iv:'', _data:'' }`, dropping `_iv`/`_data`/`_cek`/`_det`. With the wrapped
7
+ * per-record CEK gone, the body — and every history version under the same
8
+ * CEK — is permanently undecryptable, while the record KEY survives so the
9
+ * version counter and "record existed and was erased" persist for the audit
10
+ * ledger.
11
+ *
12
+ * These two helpers are the pure, collection-independent core of that
13
+ * contract: {@link buildTombstone} mints the shape, {@link isTombstone}
14
+ * recognises it on the read path. The orchestration that *writes* a tombstone
15
+ * (`_writeTombstone`) and drives `vault.forget()` lives with the collection /
16
+ * vault; it calls into these.
17
+ */
18
+ import { type EncryptedEnvelope } from '../../types.js';
19
+ /**
20
+ * Shape-only tombstone recognition for layers that have no per-collection
21
+ * context (the sync engine, #590): a tombstone carries an empty `_data` and
22
+ * no wrapped CEK. No live envelope can match — record bodies never serialize
23
+ * to the empty string (the `_sync` meta envelope carries non-empty `_data`,
24
+ * and legacy migration envelopes carry non-empty `_iv`/`_data`).
25
+ */
26
+ export declare function isTombstoneShape(envelope: EncryptedEnvelope): boolean;
27
+ /**
28
+ * Is this envelope a crypto-shred tombstone?
29
+ *
30
+ * A tombstone carries no body (`_data` empty) and no wrapped CEK (`_cek`
31
+ * absent) — decrypting it would call `decrypt('', '', dek)` → an AES-GCM
32
+ * throw, so every read choke point must short-circuit to `null` instead.
33
+ *
34
+ * `encrypted` is the collection's encryption flag: on an unencrypted
35
+ * collection there are no envelopes to shred, so nothing is ever a tombstone.
36
+ * (Legacy migration envelopes carry non-empty `_iv`/`_data`, so they are not
37
+ * tombstones and stay readable.)
38
+ */
39
+ export declare function isTombstone(envelope: EncryptedEnvelope, encrypted: boolean): boolean;
40
+ /**
41
+ * Mint a tombstone envelope from a record's live version + actor.
42
+ *
43
+ * Keeps `_v` (the displaced version) so the counter is monotonic across the
44
+ * shred, stamps a fresh `_ts`, and records `_by` when an actor is supplied.
45
+ * Deliberately omits `_iv`/`_data`/`_cek`/`_det` — that omission *is* the
46
+ * erasure.
47
+ */
48
+ export declare function buildTombstone(version: number, actor: string): EncryptedEnvelope;
49
+ /** #589: is this envelope an ordinary-delete marker (version-ordered, reads as absent)? */
50
+ export declare function isDeleteMarker(envelope: EncryptedEnvelope): boolean;
51
+ /**
52
+ * Mint a delete marker from the deleted record's next version + actor (#589).
53
+ * Minted at the NEXT version (`existing._v + 1`) — unlike `buildTombstone`, which
54
+ * keeps the displaced `_v` — so it wins convergence over the pre-delete copy and a
55
+ * re-create can still win over it at a higher version.
56
+ */
57
+ export declare function buildDeleteMarker(version: number, actor: string): EncryptedEnvelope;
@@ -0,0 +1 @@
1
+ declare function checkEnvironment(): void;