@noy-db/hub 0.3.0-pre.9 → 0.3.0

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 (958) hide show
  1. package/dist/aggregate/index.js +5 -5
  2. package/dist/api-ZGS6LCOF.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/backup-BJ57IKAO.js +242 -0
  6. package/dist/backup-BJ57IKAO.js.map +1 -0
  7. package/dist/blobs/index.js +13 -11
  8. package/dist/blobs/index.js.map +1 -1
  9. package/dist/broker/index.js +92 -0
  10. package/dist/broker/index.js.map +1 -0
  11. package/dist/bundle/index.js +25 -22
  12. package/dist/bundle/index.js.map +1 -1
  13. package/dist/by/index.js +2 -2
  14. package/dist/cargo/index.js +31 -32
  15. package/dist/chunk-2NVOWNI3.js +167 -0
  16. package/dist/chunk-2NVOWNI3.js.map +1 -0
  17. package/dist/chunk-3B5VVCNY.js +71 -0
  18. package/dist/chunk-3LQ2YKO4.js +230 -0
  19. package/dist/chunk-3QCRBHCY.js +54 -0
  20. package/dist/chunk-454JXE57.js +1697 -0
  21. package/dist/chunk-454JXE57.js.map +1 -0
  22. package/dist/chunk-4CTHCN4J.js +480 -0
  23. package/dist/chunk-4CTHCN4J.js.map +1 -0
  24. package/dist/chunk-4GPE63GU.js +111 -0
  25. package/dist/chunk-4GPE63GU.js.map +1 -0
  26. package/dist/chunk-4JBYV75E.js +150 -0
  27. package/dist/chunk-4NXKCLLQ.js +97 -0
  28. package/dist/chunk-4VNQOLML.js +29 -0
  29. package/dist/chunk-4VNQOLML.js.map +1 -0
  30. package/dist/chunk-5M5DVGV7.js +69 -0
  31. package/dist/chunk-5O3XF4DV.js +150 -0
  32. package/dist/chunk-5O3XF4DV.js.map +1 -0
  33. package/dist/chunk-5YOLBEQ6.js +30 -0
  34. package/dist/chunk-6CRIV7DE.js +129 -0
  35. package/dist/chunk-6JTIAGHD.js +621 -0
  36. package/dist/chunk-6JTIAGHD.js.map +1 -0
  37. package/dist/chunk-6QTNZJBS.js +255 -0
  38. package/dist/chunk-6T2SCQRU.js +86 -0
  39. package/dist/chunk-7DSTRQIJ.js +45 -0
  40. package/dist/chunk-AUSTCW2X.js +589 -0
  41. package/dist/chunk-B3HJYUOF.js +209 -0
  42. package/dist/chunk-BDVFPG6Y.js +164 -0
  43. package/dist/chunk-BIOUI4HL.js +1554 -0
  44. package/dist/chunk-BIOUI4HL.js.map +1 -0
  45. package/dist/chunk-CAF6WOK7.js +36 -0
  46. package/dist/chunk-CDUQTA3Z.js +381 -0
  47. package/dist/chunk-CDUQTA3Z.js.map +1 -0
  48. package/dist/chunk-CIE2BASH.js +404 -0
  49. package/dist/chunk-CRI4OUV4.js +42 -0
  50. package/dist/chunk-DLG74CNB.js +91 -0
  51. package/dist/chunk-E5ZQT5KX.js +30 -0
  52. package/dist/chunk-E5ZQT5KX.js.map +1 -0
  53. package/dist/chunk-EQO2UVP4.js +247 -0
  54. package/dist/chunk-EQO2UVP4.js.map +1 -0
  55. package/dist/chunk-ERJ7FU55.js +367 -0
  56. package/dist/chunk-EVVGJDRQ.js +205 -0
  57. package/dist/chunk-EVX47VBM.js +74 -0
  58. package/dist/chunk-EVX47VBM.js.map +1 -0
  59. package/dist/chunk-EXK7QRWF.js +59 -0
  60. package/dist/chunk-EYZ6IQ6X.js +202 -0
  61. package/dist/chunk-F64IRYG3.js +45 -0
  62. package/dist/chunk-FHS2HQSH.js +823 -0
  63. package/dist/chunk-FM3G3NOY.js +206 -0
  64. package/dist/chunk-FM3G3NOY.js.map +1 -0
  65. package/dist/chunk-FUG4SFN3.js +36 -0
  66. package/dist/chunk-FUG4SFN3.js.map +1 -0
  67. package/dist/chunk-GKEWXIV5.js +80 -0
  68. package/dist/chunk-GTGPO5KW.js +59 -0
  69. package/dist/chunk-HB3RFQSC.js +95 -0
  70. package/dist/chunk-HDMEGAQE.js +957 -0
  71. package/dist/chunk-HDMEGAQE.js.map +1 -0
  72. package/dist/chunk-HDQIIUPH.js +135 -0
  73. package/dist/chunk-HDQIIUPH.js.map +1 -0
  74. package/dist/chunk-HTJQYHZP.js +344 -0
  75. package/dist/chunk-HTJQYHZP.js.map +1 -0
  76. package/dist/chunk-I6GALP6E.js +99 -0
  77. package/dist/chunk-IGJCYUT5.js +99 -0
  78. package/dist/chunk-IGJCYUT5.js.map +1 -0
  79. package/dist/chunk-IL6POWCW.js +130 -0
  80. package/dist/chunk-IU6SNYX6.js +117 -0
  81. package/dist/chunk-J2ZX2XUV.js +778 -0
  82. package/dist/chunk-JIF24JPM.js +495 -0
  83. package/dist/chunk-JIF24JPM.js.map +1 -0
  84. package/dist/chunk-JK733I5V.js +23 -0
  85. package/dist/chunk-JK733I5V.js.map +1 -0
  86. package/dist/chunk-JKJOGPZN.js +29 -0
  87. package/dist/chunk-JNAI2HN2.js +32 -0
  88. package/dist/chunk-JNAI2HN2.js.map +1 -0
  89. package/dist/chunk-JZUV47FZ.js +41 -0
  90. package/dist/chunk-K5IMOGHB.js +30 -0
  91. package/dist/chunk-KPZS5QAQ.js +151 -0
  92. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  93. package/dist/chunk-KSKBRKGJ.js +291 -0
  94. package/dist/chunk-KSKBRKGJ.js.map +1 -0
  95. package/dist/chunk-LASZKVMO.js +382 -0
  96. package/dist/chunk-LXEXBTKL.js +515 -0
  97. package/dist/chunk-LXEXBTKL.js.map +1 -0
  98. package/dist/chunk-M4CV6BRT.js +524 -0
  99. package/dist/chunk-M4CV6BRT.js.map +1 -0
  100. package/dist/chunk-MEFJPTZ4.js +371 -0
  101. package/dist/chunk-MEFJPTZ4.js.map +1 -0
  102. package/dist/chunk-MV43JSJF.js +265 -0
  103. package/dist/chunk-MV43JSJF.js.map +1 -0
  104. package/dist/chunk-NJ4EOKMB.js +392 -0
  105. package/dist/chunk-NJ4EOKMB.js.map +1 -0
  106. package/dist/chunk-NR5LT5RY.js +135 -0
  107. package/dist/chunk-NWSGI5C7.js +261 -0
  108. package/dist/chunk-OSDB5WW3.js +739 -0
  109. package/dist/chunk-OSDB5WW3.js.map +1 -0
  110. package/dist/chunk-PN2XMATY.js +37 -0
  111. package/dist/chunk-PN2XMATY.js.map +1 -0
  112. package/dist/chunk-Q5VNKNE5.js +70 -0
  113. package/dist/chunk-QLWMEXCT.js +21 -0
  114. package/dist/chunk-QRB7NAOJ.js +123 -0
  115. package/dist/chunk-R4ROFEYC.js +74 -0
  116. package/dist/chunk-RCVJZMFE.js +164 -0
  117. package/dist/chunk-RCVJZMFE.js.map +1 -0
  118. package/dist/chunk-RIX4V2TB.js +367 -0
  119. package/dist/chunk-RYCTDFUX.js +40 -0
  120. package/dist/chunk-RZ5SVOYR.js +155 -0
  121. package/dist/chunk-SLFHQTTW.js +99 -0
  122. package/dist/chunk-SNZ6URZZ.js +2782 -0
  123. package/dist/chunk-SNZ6URZZ.js.map +1 -0
  124. package/dist/chunk-T2FFWNPK.js +75 -0
  125. package/dist/chunk-UNFPPVNI.js +23 -0
  126. package/dist/chunk-VFUPHI2Z.js +333 -0
  127. package/dist/chunk-VFUPHI2Z.js.map +1 -0
  128. package/dist/chunk-VLFCJYTL.js +235 -0
  129. package/dist/chunk-VN3DBQAU.js +124 -0
  130. package/dist/chunk-VYYM3MEN.js +98 -0
  131. package/dist/chunk-VYYM3MEN.js.map +1 -0
  132. package/dist/chunk-VZRODIM3.js +49 -0
  133. package/dist/chunk-W22IKJE2.js +94 -0
  134. package/dist/chunk-X3YYQWOQ.js +155 -0
  135. package/dist/chunk-X7QBD67R.js +14405 -0
  136. package/dist/chunk-X7QBD67R.js.map +1 -0
  137. package/dist/chunk-XDYREZWE.js +1128 -0
  138. package/dist/chunk-XDYREZWE.js.map +1 -0
  139. package/dist/chunk-XWZVFISC.js +720 -0
  140. package/dist/chunk-XWZVFISC.js.map +1 -0
  141. package/dist/chunk-YFXZEAYK.js +85 -0
  142. package/dist/chunk-ZAJAVEXY.js +50 -0
  143. package/dist/chunk-ZICD77GM.js +34 -0
  144. package/dist/chunk-ZJ2AK4V7.js +38 -0
  145. package/dist/chunk-ZUODRVHY.js +14 -0
  146. package/dist/classified/index.js +5 -5
  147. package/dist/classified-marker-CZKA6ITE.js +28 -0
  148. package/dist/classified-marker-CZKA6ITE.js.map +1 -0
  149. package/dist/collection-facade-TLWIPI76.js +44 -0
  150. package/dist/computed-ZIQTYTDI.js +11 -0
  151. package/dist/consent/index.js +9 -9
  152. package/dist/crdt/index.js +1 -1
  153. package/dist/dead-filter-ESOBZZP5.js +28 -0
  154. package/dist/delegation-W7ZV2322.js +25 -0
  155. package/dist/derivations/index.js +12 -12
  156. package/dist/derive-H2BJTLUI.js +21 -0
  157. package/dist/enclave-AP3I5W7O.js +141 -0
  158. package/dist/executor-KGWTNEQD.js +9 -0
  159. package/dist/executor-OVEXR6RT.js +9 -0
  160. package/dist/executor-UNEH5ZYH.js +25 -0
  161. package/dist/export-accessible-PCMXSUZS.js +23 -0
  162. package/dist/extract-partition-SWHFSYJO.js +38 -0
  163. package/dist/fanout-sidecar-A765THMX.js +74 -0
  164. package/dist/find-N6345CNT.js +11 -0
  165. package/dist/forget/index.js +10 -10
  166. package/dist/forget/index.js.map +1 -1
  167. package/dist/guards/index.js +6 -6
  168. package/dist/history/index.js +14 -11
  169. package/dist/history/index.js.map +1 -1
  170. package/dist/i18n/index.js +21 -19
  171. package/dist/i18n/index.js.map +1 -1
  172. package/dist/index.d.ts +307 -1493
  173. package/dist/index.js +309 -190
  174. package/dist/index.js.map +1 -1
  175. package/dist/indexing/index.js +7 -7
  176. package/dist/indexing/index.js.map +1 -1
  177. package/dist/issue-5OKB6I2R.js +19 -0
  178. package/dist/kernel/best-effort-revert.d.ts +52 -0
  179. package/dist/kernel/cache/index.d.ts +10 -0
  180. package/dist/kernel/cache/lru.d.ts +97 -0
  181. package/dist/kernel/cache/policy.d.ts +32 -0
  182. package/dist/kernel/collection-config.d.ts +809 -0
  183. package/dist/kernel/collection.d.ts +1522 -0
  184. package/dist/kernel/constants.d.ts +18 -0
  185. package/dist/kernel/debug.d.ts +25 -0
  186. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  187. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  188. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  189. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  190. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  191. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  192. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  193. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  194. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  195. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  196. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  197. package/dist/kernel/enclave/crypto.d.ts +263 -0
  198. package/dist/kernel/enclave/index.d.ts +79 -0
  199. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  200. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  201. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  202. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  203. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  204. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  205. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  206. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  207. package/dist/kernel/env-check.d.ts +1 -0
  208. package/dist/kernel/errors.d.ts +1922 -0
  209. package/dist/kernel/events.d.ts +11 -0
  210. package/dist/kernel/lazy-count.d.ts +13 -0
  211. package/dist/kernel/memory-store.d.ts +17 -0
  212. package/dist/kernel/mutation.d.ts +14 -0
  213. package/dist/kernel/noydb.d.ts +826 -0
  214. package/dist/kernel/paths.d.ts +25 -0
  215. package/dist/kernel/query/builder.d.ts +520 -0
  216. package/dist/kernel/query/index.d.ts +31 -0
  217. package/dist/kernel/query/join.d.ts +205 -0
  218. package/dist/kernel/query/live.d.ts +111 -0
  219. package/dist/kernel/query/predicate.d.ts +139 -0
  220. package/dist/kernel/query/scan-builder.d.ts +334 -0
  221. package/dist/kernel/refs.d.ts +205 -0
  222. package/dist/kernel/schema.d.ts +134 -0
  223. package/dist/kernel/sync-policy.d.ts +188 -0
  224. package/dist/kernel/tier-visibility.d.ts +54 -0
  225. package/dist/kernel/types.d.ts +3239 -0
  226. package/dist/kernel/util/discriminant.d.ts +58 -0
  227. package/dist/kernel/util/index.d.ts +14 -0
  228. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  229. package/dist/kernel/validation.d.ts +130 -0
  230. package/dist/kernel/vault.d.ts +1740 -0
  231. package/dist/kernel/via/compose.d.ts +144 -0
  232. package/dist/kernel/via/dispatch.d.ts +195 -0
  233. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  234. package/dist/kernel/via/graph.d.ts +166 -0
  235. package/dist/kernel/via/index.d.ts +200 -0
  236. package/dist/kernel/via/pipeline.d.ts +266 -0
  237. package/dist/kernel/via/reconcile.d.ts +153 -0
  238. package/dist/kernel/via/taint-binding.d.ts +66 -0
  239. package/dist/kernel/write-queue.d.ts +46 -0
  240. package/dist/ledger-GFBKVPV4.js +42 -0
  241. package/dist/legacy/bundle.d.ts +30 -0
  242. package/dist/legacy/kernel.d.ts +33 -0
  243. package/dist/liberate-3VDOT4KO.js +24 -0
  244. package/dist/link-set-Z7Q2ASFX.js +31 -0
  245. package/dist/materialized-views/index.js +19 -17
  246. package/dist/noydb-ZCJOYBDI.js +68 -0
  247. package/dist/on/index.js +9 -9
  248. package/dist/overlay-views/index.js +4 -4
  249. package/dist/periods/index.js +12 -12
  250. package/dist/pod/index.js +11 -11
  251. package/dist/policy-Z3RUAIY2.js +41 -0
  252. package/dist/port/as/index.d.ts +26 -0
  253. package/dist/port/at/index.d.ts +18 -0
  254. package/dist/port/by/default-provider.d.ts +9 -0
  255. package/dist/port/by/index.d.ts +17 -0
  256. package/dist/port/by/types.d.ts +86 -0
  257. package/dist/port/in/index.d.ts +21 -0
  258. package/dist/port/on/index.d.ts +27 -0
  259. package/dist/port/to/index.d.ts +19 -0
  260. package/dist/port/ui/index.d.ts +21 -0
  261. package/dist/port/with/blob-strategy.d.ts +98 -0
  262. package/dist/port/with/broker-strategy.d.ts +84 -0
  263. package/dist/port/with/capabilities.d.ts +31 -0
  264. package/dist/port/with/classified-marker.d.ts +9 -0
  265. package/dist/port/with/classified-strategy.d.ts +62 -0
  266. package/dist/port/with/computed-strategy.d.ts +19 -0
  267. package/dist/port/with/i18n-strategy.d.ts +175 -0
  268. package/dist/port/with/index.d.ts +18 -0
  269. package/dist/port/with/lazy-strategy.d.ts +48 -0
  270. package/dist/port/with/lookup-strategy.d.ts +129 -0
  271. package/dist/port/with/service-bus.d.ts +156 -0
  272. package/dist/port/with/team-strategy.d.ts +36 -0
  273. package/dist/port/with/write-hooks.d.ts +34 -0
  274. package/dist/portability/index.js +8 -8
  275. package/dist/post-register-JTH76BLY.js +60 -0
  276. package/dist/post-register-JTH76BLY.js.map +1 -0
  277. package/dist/public-envelope-B4KNWVUA.js +32 -0
  278. package/dist/purge-scope-FGNNLWHD.js +24 -0
  279. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  280. package/dist/query/index.js +7 -7
  281. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  282. package/dist/register-VAHONCID.js +23 -0
  283. package/dist/registry-7MLVD3VO.js +19 -0
  284. package/dist/registry-EPKPD5SM.js +18 -0
  285. package/dist/registry-P5T7PS2U.js +9 -0
  286. package/dist/request-withdrawal-TI3A5WPS.js +31 -0
  287. package/dist/reveal-DIBHLUZX.js +38 -0
  288. package/dist/reveal-DIBHLUZX.js.map +1 -0
  289. package/dist/revoke-FDRD6GRW.js +24 -0
  290. package/dist/satellites/index.js +1 -1
  291. package/dist/sealed-record/index.js +12 -12
  292. package/dist/seed-Q6M2IZFL.js +231 -0
  293. package/dist/seed-Q6M2IZFL.js.map +1 -0
  294. package/dist/session/index.js +9 -9
  295. package/dist/shadow/index.js +2 -2
  296. package/dist/signer-MUWEIUI6.js +25 -0
  297. package/dist/snapshots/index.js +10 -10
  298. package/dist/stale-OSQ7J3AA.js +29 -0
  299. package/dist/storage-MVFCGEQE.js +23 -0
  300. package/dist/store-coordination-provider-64OEZFGS.js +142 -0
  301. package/dist/sync/index.js +9 -9
  302. package/dist/team/index.js +15 -15
  303. package/dist/tiers/index.js +14 -10
  304. package/dist/to/index.js +1 -2
  305. package/dist/tx/index.js +3 -3
  306. package/dist/util/index.js +1 -1
  307. package/dist/verify-ZASTRNPR.js +140 -0
  308. package/dist/verify-ZASTRNPR.js.map +1 -0
  309. package/dist/via/blob/active.d.ts +34 -0
  310. package/dist/via/blob/binding.d.ts +86 -0
  311. package/dist/via/blob/index.d.ts +34 -0
  312. package/dist/via/classified/active.d.ts +3 -0
  313. package/dist/via/classified/binding.d.ts +83 -0
  314. package/dist/via/classified/config-drift.d.ts +34 -0
  315. package/dist/via/classified/descriptor.d.ts +66 -0
  316. package/dist/via/classified/errors.d.ts +19 -0
  317. package/dist/via/classified/guards.d.ts +23 -0
  318. package/dist/via/classified/index.d.ts +11 -0
  319. package/dist/via/classified/presets.d.ts +65 -0
  320. package/dist/via/classified/resolve.d.ts +9 -0
  321. package/dist/via/classified/strategy.d.ts +11 -0
  322. package/dist/via/classified/validators.d.ts +3 -0
  323. package/dist/via/classified/write.d.ts +4 -0
  324. package/dist/via/computed/binding.d.ts +34 -0
  325. package/dist/via/computed/descriptor.d.ts +35 -0
  326. package/dist/via/i18n/active.d.ts +28 -0
  327. package/dist/via/i18n/binding.d.ts +36 -0
  328. package/dist/via/i18n/core.d.ts +267 -0
  329. package/dist/via/i18n/densify.d.ts +24 -0
  330. package/dist/via/i18n/dictionary.d.ts +200 -0
  331. package/dist/via/i18n/index.d.ts +21 -0
  332. package/dist/via/i18n/policy.d.ts +44 -0
  333. package/dist/via/i18n/script.d.ts +26 -0
  334. package/dist/via/i18n/strategy.d.ts +13 -0
  335. package/dist/via/lookup/active.d.ts +19 -0
  336. package/dist/via/lookup/binding.d.ts +99 -0
  337. package/dist/via/lookup/descriptor.d.ts +123 -0
  338. package/dist/via/lookup/handle.d.ts +220 -0
  339. package/dist/via/lookup/index.d.ts +17 -0
  340. package/dist/via/lookup/registry.d.ts +228 -0
  341. package/dist/via/lookup/snapshot.d.ts +67 -0
  342. package/dist/via/money/arith.d.ts +68 -0
  343. package/dist/via/money/binding.d.ts +21 -0
  344. package/dist/via/money/branded.d.ts +61 -0
  345. package/dist/via/money/descriptor.d.ts +73 -0
  346. package/dist/via/money/fixed-point.d.ts +51 -0
  347. package/dist/via/money/index.d.ts +15 -0
  348. package/dist/via/money/iso4217.d.ts +6 -0
  349. package/dist/via/money/money-reducer.d.ts +33 -0
  350. package/dist/via/money/normalize.d.ts +105 -0
  351. package/dist/via/money/paths.d.ts +61 -0
  352. package/dist/via/money/where.d.ts +127 -0
  353. package/dist/walk-SVNDIZ62.js +241 -0
  354. package/dist/with/index.js +11 -11
  355. package/dist/with-audit/attestation/active.d.ts +10 -0
  356. package/dist/with-audit/attestation/index.d.ts +16 -0
  357. package/dist/with-audit/attestation/issue.d.ts +29 -0
  358. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  359. package/dist/with-audit/attestation/signer.d.ts +33 -0
  360. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  361. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  362. package/dist/with-audit/consent/active.d.ts +14 -0
  363. package/dist/with-audit/consent/consent.d.ts +114 -0
  364. package/dist/with-audit/consent/index.d.ts +14 -0
  365. package/dist/with-audit/consent/strategy.d.ts +36 -0
  366. package/dist/with-audit/forget/active.d.ts +31 -0
  367. package/dist/with-audit/forget/index.d.ts +28 -0
  368. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  369. package/dist/with-audit/forget/strategy.d.ts +199 -0
  370. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  371. package/dist/with-audit/guards/executor.d.ts +26 -0
  372. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  373. package/dist/with-audit/guards/index.d.ts +10 -0
  374. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  375. package/dist/with-audit/guards/registry.d.ts +83 -0
  376. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  377. package/dist/with-audit/guards/types.d.ts +134 -0
  378. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  379. package/dist/with-audit/periods/active.d.ts +11 -0
  380. package/dist/with-audit/periods/index.d.ts +18 -0
  381. package/dist/with-audit/periods/periods.d.ts +417 -0
  382. package/dist/with-audit/periods/strategy.d.ts +32 -0
  383. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  384. package/dist/with-audit/portability/active.d.ts +11 -0
  385. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  386. package/dist/with-audit/portability/index.d.ts +18 -0
  387. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  388. package/dist/with-audit/portability/strategy.d.ts +31 -0
  389. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  390. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  391. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  392. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  393. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  394. package/dist/with-audit/tiers/active.d.ts +9 -0
  395. package/dist/with-audit/tiers/index.d.ts +394 -0
  396. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  397. package/dist/with-cargo/active.d.ts +11 -0
  398. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  399. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  400. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  401. package/dist/with-cargo/extract-partition.d.ts +155 -0
  402. package/dist/with-cargo/index.d.ts +33 -0
  403. package/dist/with-cargo/strategy.d.ts +30 -0
  404. package/dist/with-cargo/vault-diff.d.ts +144 -0
  405. package/dist/with-cargo/walk-closure.d.ts +67 -0
  406. package/dist/with-commit/crdt/active.d.ts +25 -0
  407. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  408. package/dist/with-commit/crdt/index.d.ts +16 -0
  409. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  410. package/dist/with-commit/history/active.d.ts +40 -0
  411. package/dist/with-commit/history/diff.d.ts +23 -0
  412. package/dist/with-commit/history/history.d.ts +73 -0
  413. package/dist/with-commit/history/index.d.ts +30 -0
  414. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  415. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  416. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  417. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  418. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  419. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  420. package/dist/with-commit/history/strategy.d.ts +136 -0
  421. package/dist/with-commit/history/time-machine.d.ts +202 -0
  422. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  423. package/dist/with-commit/numbering/index.d.ts +69 -0
  424. package/dist/with-commit/sequence/active.d.ts +10 -0
  425. package/dist/with-commit/sequence/index.d.ts +150 -0
  426. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  427. package/dist/with-commit/tx/active.d.ts +27 -0
  428. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  429. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  430. package/dist/with-commit/tx/index.d.ts +13 -0
  431. package/dist/with-commit/tx/invariants.d.ts +68 -0
  432. package/dist/with-commit/tx/strategy.d.ts +23 -0
  433. package/dist/with-commit/tx/transaction.d.ts +212 -0
  434. package/dist/with-fork/archive/engine.d.ts +71 -0
  435. package/dist/with-fork/archive/index.d.ts +23 -0
  436. package/dist/with-fork/shadow/active.d.ts +6 -0
  437. package/dist/with-fork/shadow/index.d.ts +14 -0
  438. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  439. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  440. package/dist/with-fork/snapshots/active.d.ts +20 -0
  441. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  442. package/dist/with-fork/snapshots/index.d.ts +5 -0
  443. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  444. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  445. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  446. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  447. package/dist/with-formula/computed/index.d.ts +48 -0
  448. package/dist/with-formula/computed/lazy.d.ts +13 -0
  449. package/dist/with-formula/derivations/executor.d.ts +61 -0
  450. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  451. package/dist/with-formula/derivations/index.d.ts +6 -0
  452. package/dist/with-formula/derivations/registry.d.ts +67 -0
  453. package/dist/with-formula/derivations/stale.d.ts +39 -0
  454. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  455. package/dist/with-formula/derivations/types.d.ts +248 -0
  456. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  457. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  458. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  459. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  460. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  461. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  462. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  463. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  464. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  465. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  466. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  467. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  468. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  469. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  470. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  471. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  472. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  473. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  474. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  475. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  476. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  477. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  478. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  479. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  480. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  481. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  482. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  483. package/dist/with-lookup/indexing/active.d.ts +30 -0
  484. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  485. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  486. package/dist/with-lookup/indexing/index.d.ts +27 -0
  487. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  488. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  489. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  490. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  491. package/dist/with-lookup/search/active.d.ts +10 -0
  492. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  493. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  494. package/dist/with-lookup/search/fuse.d.ts +22 -0
  495. package/dist/with-lookup/search/index-store.d.ts +19 -0
  496. package/dist/with-lookup/search/index.d.ts +19 -0
  497. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  498. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  499. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  500. package/dist/with-lookup/search/scan.d.ts +28 -0
  501. package/dist/with-lookup/search/segment.d.ts +15 -0
  502. package/dist/with-lookup/search/serialize.d.ts +4 -0
  503. package/dist/with-lookup/search/snippet.d.ts +5 -0
  504. package/dist/with-lookup/search/strategy.d.ts +41 -0
  505. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  506. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  507. package/dist/with-party/broker/active.d.ts +23 -0
  508. package/dist/with-party/broker/index.d.ts +28 -0
  509. package/dist/with-party/broker/seed.d.ts +77 -0
  510. package/dist/with-party/custody/active.d.ts +10 -0
  511. package/dist/with-party/custody/index.d.ts +69 -0
  512. package/dist/with-party/custody/liberate.d.ts +64 -0
  513. package/dist/with-party/custody/strategy.d.ts +48 -0
  514. package/dist/with-party/directory/index.d.ts +11 -0
  515. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  516. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  517. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  518. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  519. package/dist/with-party/directory/storage.d.ts +33 -0
  520. package/dist/with-party/directory/types.d.ts +43 -0
  521. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  522. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  523. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  524. package/dist/with-party/directory/visibility.d.ts +47 -0
  525. package/dist/with-party/policy/engine.d.ts +60 -0
  526. package/dist/with-party/policy/index.d.ts +15 -0
  527. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  528. package/dist/with-party/policy/presets.d.ts +38 -0
  529. package/dist/with-party/policy/storage.d.ts +31 -0
  530. package/dist/with-party/session/active.d.ts +34 -0
  531. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  532. package/dist/with-party/session/index.d.ts +23 -0
  533. package/dist/with-party/session/session-policy.d.ts +92 -0
  534. package/dist/with-party/session/session.d.ts +131 -0
  535. package/dist/with-party/session/strategy.d.ts +42 -0
  536. package/dist/with-party/session/unlock-state.d.ts +47 -0
  537. package/dist/with-party/sync/index.d.ts +31 -0
  538. package/dist/with-party/tab-coordination.d.ts +73 -0
  539. package/dist/with-party/tab-write-relay.d.ts +39 -0
  540. package/dist/with-party/team/active.d.ts +13 -0
  541. package/dist/with-party/team/authenticators.d.ts +95 -0
  542. package/dist/with-party/team/deed.d.ts +97 -0
  543. package/dist/with-party/team/delegation.d.ts +88 -0
  544. package/dist/with-party/team/index.d.ts +38 -0
  545. package/dist/with-party/team/keyring.d.ts +318 -0
  546. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  547. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  548. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  549. package/dist/with-party/team/peer-recover.d.ts +81 -0
  550. package/dist/with-party/team/presence.d.ts +81 -0
  551. package/dist/with-party/team/recovery.d.ts +191 -0
  552. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  553. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  554. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  555. package/dist/with-party/team/strategy.d.ts +9 -0
  556. package/dist/with-party/team/sync-active.d.ts +33 -0
  557. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  558. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  559. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  560. package/dist/with-party/team/sync.d.ts +174 -0
  561. package/dist/with-party/team/tiers.d.ts +39 -0
  562. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  563. package/dist/with-pod/backup.d.ts +74 -0
  564. package/dist/with-pod/bundle.d.ts +414 -0
  565. package/dist/with-pod/format.d.ts +203 -0
  566. package/dist/with-pod/index.d.ts +20 -0
  567. package/dist/with-pod/pod-store.d.ts +54 -0
  568. package/dist/with-pod/ulid.d.ts +64 -0
  569. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  570. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  571. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  572. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  573. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  574. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  575. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  576. package/dist/with-shape/introspection/describe.d.ts +237 -0
  577. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  578. package/dist/with-shape/introspection/fields.d.ts +14 -0
  579. package/dist/with-shape/introspection/index.d.ts +12 -0
  580. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  581. package/dist/with-shape/introspection/meta.d.ts +22 -0
  582. package/dist/with-shape/introspection/projection.d.ts +13 -0
  583. package/dist/with-shape/introspection/types.d.ts +154 -0
  584. package/dist/with-shape/introspection/walk.d.ts +50 -0
  585. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  586. package/dist/with-shape/links/link-set.d.ts +67 -0
  587. package/dist/with-shape/links/names.d.ts +65 -0
  588. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  589. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  590. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  591. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  592. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  593. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  594. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  595. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  596. package/dist/with-shape/satellites/declare.d.ts +60 -0
  597. package/dist/with-shape/satellites/existence.d.ts +5 -0
  598. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  599. package/dist/with-shape/satellites/forget.d.ts +47 -0
  600. package/dist/with-shape/satellites/index.d.ts +3 -0
  601. package/dist/with-shape/satellites/joined.d.ts +19 -0
  602. package/dist/with-shape/satellites/marker.d.ts +10 -0
  603. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  604. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  605. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  606. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  607. package/dist/with-shape/satellites/registry.d.ts +19 -0
  608. package/dist/with-shape/satellites/types.d.ts +37 -0
  609. package/dist/with-shape/satellites/validate.d.ts +17 -0
  610. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  611. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  612. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  613. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  614. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  615. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  616. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  617. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  618. package/dist/with-shape/schema-update/index.d.ts +6 -0
  619. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  620. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  621. package/dist/with-shape/schema-update/types.d.ts +53 -0
  622. package/dist/with-store/index.d.ts +15 -0
  623. package/dist/with-store/lazy/active.d.ts +12 -0
  624. package/dist/with-store/lazy/index.d.ts +14 -0
  625. package/dist/with-store/lazy/strategy.d.ts +9 -0
  626. package/dist/with-store/route-store.d.ts +259 -0
  627. package/dist/with-store/store-middleware.d.ts +189 -0
  628. package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
  629. package/package.json +47 -55
  630. package/dist/adapter/index.d.ts +0 -4
  631. package/dist/adapter/index.js +0 -15
  632. package/dist/aggregate/index.d.ts +0 -41
  633. package/dist/api-HV4PDUWF.js +0 -20
  634. package/dist/as/index.d.ts +0 -6
  635. package/dist/at/index.d.ts +0 -4
  636. package/dist/attestation/index.d.ts +0 -19
  637. package/dist/backup-ODXO7OGA.js +0 -225
  638. package/dist/backup-ODXO7OGA.js.map +0 -1
  639. package/dist/blobs/index.d.ts +0 -43
  640. package/dist/bundle/index.d.ts +0 -121
  641. package/dist/bundle-DlSxo31R.d.ts +0 -548
  642. package/dist/by/index.d.ts +0 -1
  643. package/dist/cargo/index.d.ts +0 -8
  644. package/dist/chunk-2644KEGW.js +0 -247
  645. package/dist/chunk-2644KEGW.js.map +0 -1
  646. package/dist/chunk-2HVUKRNE.js +0 -21
  647. package/dist/chunk-2KOSJTMU.js +0 -69
  648. package/dist/chunk-2UQ4RMHV.js +0 -167
  649. package/dist/chunk-2UQ4RMHV.js.map +0 -1
  650. package/dist/chunk-2XE6LIXT.js +0 -515
  651. package/dist/chunk-2XE6LIXT.js.map +0 -1
  652. package/dist/chunk-34RRRIC3.js +0 -71
  653. package/dist/chunk-3C5CKXFI.js +0 -621
  654. package/dist/chunk-3C5CKXFI.js.map +0 -1
  655. package/dist/chunk-3I4KYWNP.js +0 -30
  656. package/dist/chunk-42KVY3OC.js +0 -86
  657. package/dist/chunk-4C4WBS4V.js +0 -13822
  658. package/dist/chunk-4C4WBS4V.js.map +0 -1
  659. package/dist/chunk-4G3IT7J7.js +0 -280
  660. package/dist/chunk-4G3IT7J7.js.map +0 -1
  661. package/dist/chunk-4RQ62VSR.js +0 -53
  662. package/dist/chunk-4RQ62VSR.js.map +0 -1
  663. package/dist/chunk-4ZSGSRBI.js +0 -1221
  664. package/dist/chunk-4ZSGSRBI.js.map +0 -1
  665. package/dist/chunk-5GAX2QOH.js +0 -132
  666. package/dist/chunk-5GAX2QOH.js.map +0 -1
  667. package/dist/chunk-5SAZMBW7.js +0 -202
  668. package/dist/chunk-5TZZUL5X.js +0 -30
  669. package/dist/chunk-6CU3FN74.js +0 -777
  670. package/dist/chunk-6G2SCQYS.js +0 -29
  671. package/dist/chunk-6G2SCQYS.js.map +0 -1
  672. package/dist/chunk-6MWUANRF.js +0 -29
  673. package/dist/chunk-6S7T6WC4.js +0 -111
  674. package/dist/chunk-6S7T6WC4.js.map +0 -1
  675. package/dist/chunk-6ULCYCMU.js +0 -74
  676. package/dist/chunk-7HAPHVRJ.js +0 -1695
  677. package/dist/chunk-7HAPHVRJ.js.map +0 -1
  678. package/dist/chunk-7IZQTCTR.js +0 -382
  679. package/dist/chunk-7ZANJ6JZ.js +0 -265
  680. package/dist/chunk-7ZANJ6JZ.js.map +0 -1
  681. package/dist/chunk-A2APWS32.js +0 -150
  682. package/dist/chunk-A2APWS32.js.map +0 -1
  683. package/dist/chunk-A4MAD6PO.js +0 -99
  684. package/dist/chunk-ANDBBA2P.js +0 -36
  685. package/dist/chunk-ANDBBA2P.js.map +0 -1
  686. package/dist/chunk-AUR7MRHA.js +0 -404
  687. package/dist/chunk-AYGZMQP5.js +0 -75
  688. package/dist/chunk-BGIZAFY7.js +0 -1
  689. package/dist/chunk-CJEMA2Z6.js +0 -230
  690. package/dist/chunk-CTSFKDGA.js +0 -40
  691. package/dist/chunk-CU62BBRB.js +0 -1465
  692. package/dist/chunk-CU62BBRB.js.map +0 -1
  693. package/dist/chunk-CWCCYH34.js +0 -23
  694. package/dist/chunk-DEYAO3N6.js +0 -589
  695. package/dist/chunk-DFIBOSOQ.js +0 -85
  696. package/dist/chunk-E5AHO65E.js +0 -150
  697. package/dist/chunk-FC3XK5JT.js +0 -99
  698. package/dist/chunk-FGOGS7CE.js +0 -662
  699. package/dist/chunk-FGOGS7CE.js.map +0 -1
  700. package/dist/chunk-GX2BYNCT.js +0 -117
  701. package/dist/chunk-GZ2MOPVX.js +0 -291
  702. package/dist/chunk-GZ2MOPVX.js.map +0 -1
  703. package/dist/chunk-H57P2SJB.js +0 -126
  704. package/dist/chunk-H57P2SJB.js.map +0 -1
  705. package/dist/chunk-HBTT7YQX.js +0 -94
  706. package/dist/chunk-HOCEGVGQ.js +0 -36
  707. package/dist/chunk-ICV32FPK.js +0 -50
  708. package/dist/chunk-IIP5WFVT.js +0 -462
  709. package/dist/chunk-IIP5WFVT.js.map +0 -1
  710. package/dist/chunk-IUKGIB2Q.js +0 -91
  711. package/dist/chunk-IWTYFS3D.js +0 -129
  712. package/dist/chunk-JC5R7P44.js +0 -355
  713. package/dist/chunk-JC5R7P44.js.map +0 -1
  714. package/dist/chunk-K2WCO3NX.js +0 -1
  715. package/dist/chunk-KBBWY46Y.js +0 -14
  716. package/dist/chunk-KBF5GSGX.js +0 -367
  717. package/dist/chunk-KCG3BHFG.js +0 -99
  718. package/dist/chunk-KCG3BHFG.js.map +0 -1
  719. package/dist/chunk-KNXN47MO.js +0 -155
  720. package/dist/chunk-KWLD2D75.js +0 -38
  721. package/dist/chunk-KXKLKJW4.js +0 -49
  722. package/dist/chunk-KYC4LIEU.js +0 -123
  723. package/dist/chunk-LEOXZY36.js +0 -130
  724. package/dist/chunk-M5I354EE.js +0 -235
  725. package/dist/chunk-MK2BSS44.js +0 -34
  726. package/dist/chunk-MSVY7ULZ.js +0 -70
  727. package/dist/chunk-NNWK3PSY.js +0 -135
  728. package/dist/chunk-NSZ6J5DF.js +0 -59
  729. package/dist/chunk-NUEFXLZU.js +0 -59
  730. package/dist/chunk-NYVQCZ54.js +0 -261
  731. package/dist/chunk-OQAODTYR.js +0 -45
  732. package/dist/chunk-OV4CMJGR.js +0 -164
  733. package/dist/chunk-PEDZFFKW.js +0 -41
  734. package/dist/chunk-PF3FQCCF.js +0 -164
  735. package/dist/chunk-PF3FQCCF.js.map +0 -1
  736. package/dist/chunk-Q2KVKTC2.js +0 -823
  737. package/dist/chunk-QJR3W3MF.js +0 -23
  738. package/dist/chunk-QJR3W3MF.js.map +0 -1
  739. package/dist/chunk-QTXQ6RNZ.js +0 -255
  740. package/dist/chunk-RJ5522XX.js +0 -453
  741. package/dist/chunk-RJ5522XX.js.map +0 -1
  742. package/dist/chunk-RMUXPHIH.js +0 -930
  743. package/dist/chunk-RMUXPHIH.js.map +0 -1
  744. package/dist/chunk-S6AQXDN4.js +0 -155
  745. package/dist/chunk-SSFC3IYA.js +0 -275
  746. package/dist/chunk-SSFC3IYA.js.map +0 -1
  747. package/dist/chunk-SZCHEDML.js +0 -209
  748. package/dist/chunk-TDPEJINP.js +0 -188
  749. package/dist/chunk-TDPEJINP.js.map +0 -1
  750. package/dist/chunk-TQ3REHVF.js +0 -95
  751. package/dist/chunk-TQ3REHVF.js.map +0 -1
  752. package/dist/chunk-UNJU345Q.js +0 -32
  753. package/dist/chunk-UNJU345Q.js.map +0 -1
  754. package/dist/chunk-V7RNIND6.js +0 -265
  755. package/dist/chunk-V7RNIND6.js.map +0 -1
  756. package/dist/chunk-VJ3NQK4K.js +0 -205
  757. package/dist/chunk-WNA6T3MA.js +0 -686
  758. package/dist/chunk-WNA6T3MA.js.map +0 -1
  759. package/dist/chunk-WVCQ75OK.js +0 -124
  760. package/dist/chunk-X66MXMR5.js +0 -42
  761. package/dist/chunk-XHD3L3JO.js +0 -930
  762. package/dist/chunk-XHD3L3JO.js.map +0 -1
  763. package/dist/chunk-XJK2WIYN.js +0 -430
  764. package/dist/chunk-XJK2WIYN.js.map +0 -1
  765. package/dist/chunk-XQ7UYPVN.js +0 -95
  766. package/dist/chunk-Y2OCKFZ3.js +0 -80
  767. package/dist/chunk-YBFOBRTO.js +0 -367
  768. package/dist/chunk-YLN33ADH.js +0 -97
  769. package/dist/chunk-Z5YFRMG5.js +0 -45
  770. package/dist/chunk-ZWQFOXBR.js +0 -54
  771. package/dist/classified/index.d.ts +0 -16
  772. package/dist/classified-marker-IO5EBW7Q.js +0 -24
  773. package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
  774. package/dist/collection-facade-3RAXG2OU.js +0 -38
  775. package/dist/computed-R62HGCO4.js +0 -11
  776. package/dist/consent/index.d.ts +0 -22
  777. package/dist/crdt/index.d.ts +0 -33
  778. package/dist/dead-filter-VNA4M3GP.js +0 -28
  779. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  780. package/dist/delegation-ZKII5UBI.js +0 -25
  781. package/dist/derivations/index.d.ts +0 -69
  782. package/dist/derive-5D2C3WG4.js +0 -21
  783. package/dist/describe/index.d.ts +0 -4
  784. package/dist/describe/index.js +0 -1
  785. package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
  786. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  787. package/dist/enclave-EUBEJGPG.js +0 -125
  788. package/dist/executor-IL7SRNUZ.js +0 -23
  789. package/dist/executor-OUA2Y6YC.js +0 -9
  790. package/dist/executor-WAEI6PDV.js +0 -9
  791. package/dist/export-accessible-O55RKAGC.js +0 -23
  792. package/dist/extract-partition-VBGCBA6Q.js +0 -36
  793. package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
  794. package/dist/find-FISGUWSK.js +0 -11
  795. package/dist/forget/index.d.ts +0 -36
  796. package/dist/guards/index.d.ts +0 -34
  797. package/dist/hash-DBkZfIBW.d.ts +0 -72
  798. package/dist/history/index.d.ts +0 -60
  799. package/dist/i18n/index.d.ts +0 -56
  800. package/dist/in/index.d.ts +0 -4
  801. package/dist/index-B9QdHytu.d.ts +0 -123
  802. package/dist/index-CyclmyDr.d.ts +0 -122
  803. package/dist/index-DzhNI2vE.d.ts +0 -23260
  804. package/dist/indexing/index.d.ts +0 -38
  805. package/dist/issue-EQAWIYFQ.js +0 -19
  806. package/dist/kernel/index.d.ts +0 -31
  807. package/dist/kernel/index.js +0 -60
  808. package/dist/lazy/index.d.ts +0 -20
  809. package/dist/ledger-AJA2SR3C.js +0 -42
  810. package/dist/liberate-SEGR4JLY.js +0 -24
  811. package/dist/link-set-YBAC2DQT.js +0 -31
  812. package/dist/materialized-views/index.d.ts +0 -182
  813. package/dist/mime-magic-CbV1quyp.d.ts +0 -103
  814. package/dist/noydb-AMEOU456.js +0 -65
  815. package/dist/on/index.d.ts +0 -4
  816. package/dist/overlay-views/index.d.ts +0 -97
  817. package/dist/periods/index.d.ts +0 -19
  818. package/dist/pod/index.d.ts +0 -62
  819. package/dist/policy-SDGRWVIL.js +0 -41
  820. package/dist/portability/index.d.ts +0 -19
  821. package/dist/post-register-MROIUA5O.js +0 -55
  822. package/dist/post-register-MROIUA5O.js.map +0 -1
  823. package/dist/public-envelope-J5PLQOW2.js +0 -32
  824. package/dist/query/index.d.ts +0 -4
  825. package/dist/read-only-facade-UCYNRE56.js +0 -8
  826. package/dist/register-OVJKW7BS.js +0 -23
  827. package/dist/registry-5RJSK5AJ.js +0 -9
  828. package/dist/registry-DQRNTWRL.js +0 -18
  829. package/dist/registry-LTGLERS7.js +0 -19
  830. package/dist/request-withdrawal-27O77D2V.js +0 -31
  831. package/dist/reveal-LT3I2K4P.js +0 -38
  832. package/dist/reveal-LT3I2K4P.js.map +0 -1
  833. package/dist/revoke-4N45G7D2.js +0 -24
  834. package/dist/revoke-4N45G7D2.js.map +0 -1
  835. package/dist/satellites/index.d.ts +0 -4
  836. package/dist/sealed-record/index.d.ts +0 -68
  837. package/dist/session/index.d.ts +0 -43
  838. package/dist/shadow/index.d.ts +0 -14
  839. package/dist/signer-XJCOV7JD.js +0 -25
  840. package/dist/signer-XJCOV7JD.js.map +0 -1
  841. package/dist/snapshots/index.d.ts +0 -25
  842. package/dist/stale-IYYXEH3U.js +0 -14
  843. package/dist/stale-IYYXEH3U.js.map +0 -1
  844. package/dist/storage-Y44CAPE6.js +0 -23
  845. package/dist/storage-Y44CAPE6.js.map +0 -1
  846. package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
  847. package/dist/subject-index-CyOgGMJL.d.ts +0 -380
  848. package/dist/sync/index.d.ts +0 -40
  849. package/dist/team/index.d.ts +0 -154
  850. package/dist/tiers/index.d.ts +0 -4
  851. package/dist/to/index.d.ts +0 -4
  852. package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
  853. package/dist/tx/index.d.ts +0 -34
  854. package/dist/ui/index.d.ts +0 -4
  855. package/dist/ulid-DRH25k3y.d.ts +0 -66
  856. package/dist/util/index.d.ts +0 -79
  857. package/dist/validators-B3SalxlJ.d.ts +0 -101
  858. package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
  859. package/dist/verify-GH6CWVSW.js +0 -139
  860. package/dist/verify-GH6CWVSW.js.map +0 -1
  861. package/dist/walk-76UCFXYV.js +0 -241
  862. package/dist/with/index.d.ts +0 -37
  863. package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
  864. package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
  865. package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
  866. package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
  867. package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
  868. /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
  869. /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
  870. /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
  871. /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
  872. /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
  873. /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
  874. /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
  875. /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
  876. /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
  877. /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
  878. /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
  879. /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
  880. /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
  881. /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
  882. /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
  883. /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
  884. /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
  885. /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
  886. /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
  887. /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
  888. /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
  889. /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
  890. /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
  891. /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
  892. /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
  893. /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
  894. /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
  895. /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
  896. /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
  897. /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
  898. /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
  899. /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
  900. /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
  901. /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
  902. /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
  903. /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
  904. /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
  905. /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
  906. /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
  907. /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
  908. /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
  909. /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
  910. /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
  911. /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
  912. /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
  913. /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
  914. /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
  915. /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
  916. /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
  917. /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
  918. /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
  919. /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
  920. /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
  921. /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
  922. /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
  923. /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
  924. /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
  925. /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
  926. /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
  927. /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
  928. /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
  929. /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
  930. /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
  931. /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
  932. /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
  933. /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
  934. /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
  935. /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
  936. /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
  937. /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
  938. /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
  939. /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
  940. /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
  941. /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
  942. /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
  943. /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
  944. /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
  945. /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
  946. /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  947. /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
  948. /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
  949. /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
  950. /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
  951. /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
  952. /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
  953. /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
  954. /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
  955. /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
  956. /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
  957. /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
  958. /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
@@ -0,0 +1,328 @@
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 under an EXPLICIT `dek` instead of this codec's own
283
+ * `ctx.getDEK()` / cekCache resolution — for a from-tier>0 pre-move decode
284
+ * (`with-audit/tiers/index.ts`'s `putAtTier`/`elevate`/`demote` sites,
285
+ * #722 whole-branch review). Mirrors the manual unwrap-then-decrypt
286
+ * `getAtTier`'s own tier>0 leg performs there (same primitives, same
287
+ * `applySealedSlots` extraction point #635 built for exactly this caller).
288
+ *
289
+ * `decryptRecord` is tier-UNAWARE: `resolveEnvelopeCek` reads the cekCache
290
+ * or falls back to `ctx.getDEK()` — this codec's DEFAULT (tier-0/
291
+ * collection) DEK — never the envelope's OWN tier. That only happens to
292
+ * decrypt a from-tier>0 envelope correctly when some other call in the
293
+ * SAME op already primed the cekCache with this record's CEK (true for an
294
+ * ordinary put()-then-elevate(0→1); NOT true for a `putAtTier`-origin
295
+ * envelope, whose body is encrypted directly under its tier DEK with no
296
+ * `_cek` ever minted, or a non-`perRecordKeys` collection, which has no
297
+ * `_cek` at all) — those throw `TamperedError`. Decrypting under the
298
+ * caller-resolved `dek` is correct regardless of cache state or
299
+ * `perRecordKeys`.
300
+ *
301
+ * No CRDT resolution, no schema validation — same scope as `getAtTier`'s
302
+ * tier>0 branch (the established precedent for a tier-aware read), which
303
+ * skips both for the same reason: a tier>0 read is an internal/derived-
304
+ * output-recompute path, not the public per-record read surface schema
305
+ * validation guards.
306
+ */
307
+ decryptRecordAtDek(envelope: EncryptedEnvelope, dek: EnclaveKey, id?: string): Promise<T | null>;
308
+ /**
309
+ * Decrypt an envelope into a record of type `T`.
310
+ *
311
+ * When a schema is attached, the decrypted value is validated before
312
+ * being returned. A divergence between the stored bytes and the
313
+ * current schema throws `SchemaValidationError` with
314
+ * `direction: 'output'` — silently returning drifted data would
315
+ * propagate garbage into the UI and break the whole point of having
316
+ * a schema.
317
+ *
318
+ * `skipValidation` exists for history reads: when calling
319
+ * `getVersion()` the caller is explicitly asking for an old snapshot
320
+ * that may predate a schema change, so validating it would be a
321
+ * false positive. Every non-history read leaves this flag `false`.
322
+ */
323
+ decryptRecord(envelope: EncryptedEnvelope, opts?: {
324
+ skipValidation?: boolean;
325
+ id?: string;
326
+ sealedAsHandles?: boolean;
327
+ }): Promise<T | null>;
328
+ }
@@ -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;