@noy-db/hub 0.3.0-pre.8 → 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 (955) hide show
  1. package/dist/aggregate/index.js +9 -8
  2. package/dist/aggregate/index.js.map +1 -1
  3. package/dist/api-ZGS6LCOF.js +20 -0
  4. package/dist/as/index.js +11 -11
  5. package/dist/attestation/index.js +18 -18
  6. package/dist/backup-BJ57IKAO.js +242 -0
  7. package/dist/backup-BJ57IKAO.js.map +1 -0
  8. package/dist/blobs/index.js +13 -11
  9. package/dist/blobs/index.js.map +1 -1
  10. package/dist/broker/index.js +92 -0
  11. package/dist/broker/index.js.map +1 -0
  12. package/dist/bundle/index.js +25 -22
  13. package/dist/bundle/index.js.map +1 -1
  14. package/dist/by/index.js +2 -2
  15. package/dist/cargo/index.js +31 -31
  16. package/dist/chunk-2NVOWNI3.js +167 -0
  17. package/dist/chunk-2NVOWNI3.js.map +1 -0
  18. package/dist/chunk-3B5VVCNY.js +71 -0
  19. package/dist/chunk-3LQ2YKO4.js +230 -0
  20. package/dist/chunk-3QCRBHCY.js +54 -0
  21. package/dist/chunk-454JXE57.js +1697 -0
  22. package/dist/chunk-454JXE57.js.map +1 -0
  23. package/dist/chunk-4CTHCN4J.js +480 -0
  24. package/dist/chunk-4CTHCN4J.js.map +1 -0
  25. package/dist/chunk-4GPE63GU.js +111 -0
  26. package/dist/chunk-4GPE63GU.js.map +1 -0
  27. package/dist/chunk-4JBYV75E.js +150 -0
  28. package/dist/chunk-4NXKCLLQ.js +97 -0
  29. package/dist/chunk-4VNQOLML.js +29 -0
  30. package/dist/chunk-4VNQOLML.js.map +1 -0
  31. package/dist/chunk-5M5DVGV7.js +69 -0
  32. package/dist/chunk-5O3XF4DV.js +150 -0
  33. package/dist/chunk-5O3XF4DV.js.map +1 -0
  34. package/dist/chunk-5YOLBEQ6.js +30 -0
  35. package/dist/chunk-6CRIV7DE.js +129 -0
  36. package/dist/chunk-6JTIAGHD.js +621 -0
  37. package/dist/chunk-6JTIAGHD.js.map +1 -0
  38. package/dist/chunk-6QTNZJBS.js +255 -0
  39. package/dist/chunk-6T2SCQRU.js +86 -0
  40. package/dist/chunk-7DSTRQIJ.js +45 -0
  41. package/dist/chunk-AUSTCW2X.js +589 -0
  42. package/dist/chunk-B3HJYUOF.js +209 -0
  43. package/dist/chunk-BDVFPG6Y.js +164 -0
  44. package/dist/chunk-BIOUI4HL.js +1554 -0
  45. package/dist/chunk-BIOUI4HL.js.map +1 -0
  46. package/dist/chunk-CAF6WOK7.js +36 -0
  47. package/dist/chunk-CDUQTA3Z.js +381 -0
  48. package/dist/chunk-CDUQTA3Z.js.map +1 -0
  49. package/dist/chunk-CIE2BASH.js +404 -0
  50. package/dist/chunk-CRI4OUV4.js +42 -0
  51. package/dist/chunk-DLG74CNB.js +91 -0
  52. package/dist/chunk-E5ZQT5KX.js +30 -0
  53. package/dist/chunk-E5ZQT5KX.js.map +1 -0
  54. package/dist/chunk-EQO2UVP4.js +247 -0
  55. package/dist/chunk-EQO2UVP4.js.map +1 -0
  56. package/dist/chunk-ERJ7FU55.js +367 -0
  57. package/dist/chunk-EVVGJDRQ.js +205 -0
  58. package/dist/chunk-EVX47VBM.js +74 -0
  59. package/dist/chunk-EVX47VBM.js.map +1 -0
  60. package/dist/chunk-EXK7QRWF.js +59 -0
  61. package/dist/chunk-EYZ6IQ6X.js +202 -0
  62. package/dist/chunk-F64IRYG3.js +45 -0
  63. package/dist/chunk-FHS2HQSH.js +823 -0
  64. package/dist/chunk-FM3G3NOY.js +206 -0
  65. package/dist/chunk-FM3G3NOY.js.map +1 -0
  66. package/dist/chunk-FUG4SFN3.js +36 -0
  67. package/dist/chunk-FUG4SFN3.js.map +1 -0
  68. package/dist/chunk-GKEWXIV5.js +80 -0
  69. package/dist/chunk-GTGPO5KW.js +59 -0
  70. package/dist/chunk-HB3RFQSC.js +95 -0
  71. package/dist/chunk-HDMEGAQE.js +957 -0
  72. package/dist/chunk-HDMEGAQE.js.map +1 -0
  73. package/dist/chunk-HDQIIUPH.js +135 -0
  74. package/dist/chunk-HDQIIUPH.js.map +1 -0
  75. package/dist/chunk-HTJQYHZP.js +344 -0
  76. package/dist/chunk-HTJQYHZP.js.map +1 -0
  77. package/dist/chunk-I6GALP6E.js +99 -0
  78. package/dist/chunk-IGJCYUT5.js +99 -0
  79. package/dist/chunk-IGJCYUT5.js.map +1 -0
  80. package/dist/chunk-IL6POWCW.js +130 -0
  81. package/dist/chunk-IU6SNYX6.js +117 -0
  82. package/dist/chunk-J2ZX2XUV.js +778 -0
  83. package/dist/chunk-JIF24JPM.js +495 -0
  84. package/dist/chunk-JIF24JPM.js.map +1 -0
  85. package/dist/chunk-JK733I5V.js +23 -0
  86. package/dist/chunk-JK733I5V.js.map +1 -0
  87. package/dist/chunk-JKJOGPZN.js +29 -0
  88. package/dist/chunk-JNAI2HN2.js +32 -0
  89. package/dist/chunk-JNAI2HN2.js.map +1 -0
  90. package/dist/chunk-JZUV47FZ.js +41 -0
  91. package/dist/chunk-K5IMOGHB.js +30 -0
  92. package/dist/chunk-KPZS5QAQ.js +151 -0
  93. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  94. package/dist/chunk-KSKBRKGJ.js +291 -0
  95. package/dist/chunk-KSKBRKGJ.js.map +1 -0
  96. package/dist/chunk-LASZKVMO.js +382 -0
  97. package/dist/chunk-LXEXBTKL.js +515 -0
  98. package/dist/chunk-LXEXBTKL.js.map +1 -0
  99. package/dist/chunk-M4CV6BRT.js +524 -0
  100. package/dist/chunk-M4CV6BRT.js.map +1 -0
  101. package/dist/chunk-MEFJPTZ4.js +371 -0
  102. package/dist/chunk-MEFJPTZ4.js.map +1 -0
  103. package/dist/chunk-MV43JSJF.js +265 -0
  104. package/dist/chunk-MV43JSJF.js.map +1 -0
  105. package/dist/chunk-NJ4EOKMB.js +392 -0
  106. package/dist/chunk-NJ4EOKMB.js.map +1 -0
  107. package/dist/chunk-NR5LT5RY.js +135 -0
  108. package/dist/chunk-NWSGI5C7.js +261 -0
  109. package/dist/chunk-NWSGI5C7.js.map +1 -0
  110. package/dist/chunk-OSDB5WW3.js +739 -0
  111. package/dist/chunk-OSDB5WW3.js.map +1 -0
  112. package/dist/chunk-PN2XMATY.js +37 -0
  113. package/dist/chunk-PN2XMATY.js.map +1 -0
  114. package/dist/chunk-Q5VNKNE5.js +70 -0
  115. package/dist/chunk-QLWMEXCT.js +21 -0
  116. package/dist/chunk-QRB7NAOJ.js +123 -0
  117. package/dist/chunk-R4ROFEYC.js +74 -0
  118. package/dist/chunk-RCVJZMFE.js +164 -0
  119. package/dist/chunk-RCVJZMFE.js.map +1 -0
  120. package/dist/chunk-RIX4V2TB.js +367 -0
  121. package/dist/chunk-RYCTDFUX.js +40 -0
  122. package/dist/chunk-RZ5SVOYR.js +155 -0
  123. package/dist/chunk-SLFHQTTW.js +99 -0
  124. package/dist/chunk-SNZ6URZZ.js +2782 -0
  125. package/dist/chunk-SNZ6URZZ.js.map +1 -0
  126. package/dist/chunk-T2FFWNPK.js +75 -0
  127. package/dist/chunk-T2FFWNPK.js.map +1 -0
  128. package/dist/chunk-UNFPPVNI.js +23 -0
  129. package/dist/chunk-VFUPHI2Z.js +333 -0
  130. package/dist/chunk-VFUPHI2Z.js.map +1 -0
  131. package/dist/chunk-VLFCJYTL.js +235 -0
  132. package/dist/chunk-VN3DBQAU.js +124 -0
  133. package/dist/chunk-VYYM3MEN.js +98 -0
  134. package/dist/chunk-VYYM3MEN.js.map +1 -0
  135. package/dist/chunk-VZRODIM3.js +49 -0
  136. package/dist/chunk-W22IKJE2.js +94 -0
  137. package/dist/chunk-X3YYQWOQ.js +155 -0
  138. package/dist/chunk-X7QBD67R.js +14405 -0
  139. package/dist/chunk-X7QBD67R.js.map +1 -0
  140. package/dist/chunk-XDYREZWE.js +1128 -0
  141. package/dist/chunk-XDYREZWE.js.map +1 -0
  142. package/dist/chunk-XWZVFISC.js +720 -0
  143. package/dist/chunk-XWZVFISC.js.map +1 -0
  144. package/dist/chunk-YFXZEAYK.js +85 -0
  145. package/dist/chunk-ZAJAVEXY.js +50 -0
  146. package/dist/chunk-ZICD77GM.js +34 -0
  147. package/dist/chunk-ZJ2AK4V7.js +38 -0
  148. package/dist/chunk-ZJ2AK4V7.js.map +1 -0
  149. package/dist/chunk-ZUODRVHY.js +14 -0
  150. package/dist/classified/index.js +5 -3
  151. package/dist/classified-marker-CZKA6ITE.js +28 -0
  152. package/dist/classified-marker-CZKA6ITE.js.map +1 -0
  153. package/dist/collection-facade-TLWIPI76.js +44 -0
  154. package/dist/computed-ZIQTYTDI.js +11 -0
  155. package/dist/consent/index.js +9 -9
  156. package/dist/crdt/index.js +1 -1
  157. package/dist/dead-filter-ESOBZZP5.js +28 -0
  158. package/dist/delegation-W7ZV2322.js +25 -0
  159. package/dist/derivations/index.js +12 -11
  160. package/dist/derive-H2BJTLUI.js +21 -0
  161. package/dist/enclave-AP3I5W7O.js +141 -0
  162. package/dist/executor-KGWTNEQD.js +9 -0
  163. package/dist/executor-OVEXR6RT.js +9 -0
  164. package/dist/executor-UNEH5ZYH.js +25 -0
  165. package/dist/export-accessible-PCMXSUZS.js +23 -0
  166. package/dist/extract-partition-SWHFSYJO.js +38 -0
  167. package/dist/fanout-sidecar-A765THMX.js +74 -0
  168. package/dist/find-N6345CNT.js +11 -0
  169. package/dist/forget/index.js +10 -10
  170. package/dist/forget/index.js.map +1 -1
  171. package/dist/guards/index.js +6 -6
  172. package/dist/history/index.js +14 -11
  173. package/dist/history/index.js.map +1 -1
  174. package/dist/i18n/index.js +50 -37
  175. package/dist/i18n/index.js.map +1 -1
  176. package/dist/index.d.ts +307 -1459
  177. package/dist/index.js +595 -198
  178. package/dist/index.js.map +1 -1
  179. package/dist/indexing/index.js +7 -7
  180. package/dist/indexing/index.js.map +1 -1
  181. package/dist/issue-5OKB6I2R.js +19 -0
  182. package/dist/kernel/best-effort-revert.d.ts +52 -0
  183. package/dist/kernel/cache/index.d.ts +10 -0
  184. package/dist/kernel/cache/lru.d.ts +97 -0
  185. package/dist/kernel/cache/policy.d.ts +32 -0
  186. package/dist/kernel/collection-config.d.ts +809 -0
  187. package/dist/kernel/collection.d.ts +1522 -0
  188. package/dist/kernel/constants.d.ts +18 -0
  189. package/dist/kernel/debug.d.ts +25 -0
  190. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  191. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  192. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  193. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  194. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  195. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  196. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  197. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  198. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  199. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  200. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  201. package/dist/kernel/enclave/crypto.d.ts +263 -0
  202. package/dist/kernel/enclave/index.d.ts +79 -0
  203. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  204. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  205. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  206. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  207. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  208. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  209. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  210. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  211. package/dist/kernel/env-check.d.ts +1 -0
  212. package/dist/kernel/errors.d.ts +1922 -0
  213. package/dist/kernel/events.d.ts +11 -0
  214. package/dist/kernel/lazy-count.d.ts +13 -0
  215. package/dist/kernel/memory-store.d.ts +17 -0
  216. package/dist/kernel/mutation.d.ts +14 -0
  217. package/dist/kernel/noydb.d.ts +826 -0
  218. package/dist/kernel/paths.d.ts +25 -0
  219. package/dist/kernel/query/builder.d.ts +520 -0
  220. package/dist/kernel/query/index.d.ts +31 -0
  221. package/dist/kernel/query/join.d.ts +205 -0
  222. package/dist/kernel/query/live.d.ts +111 -0
  223. package/dist/kernel/query/predicate.d.ts +139 -0
  224. package/dist/kernel/query/scan-builder.d.ts +334 -0
  225. package/dist/kernel/refs.d.ts +205 -0
  226. package/dist/kernel/schema.d.ts +134 -0
  227. package/dist/kernel/sync-policy.d.ts +188 -0
  228. package/dist/kernel/tier-visibility.d.ts +54 -0
  229. package/dist/kernel/types.d.ts +3239 -0
  230. package/dist/kernel/util/discriminant.d.ts +58 -0
  231. package/dist/kernel/util/index.d.ts +14 -0
  232. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  233. package/dist/kernel/validation.d.ts +130 -0
  234. package/dist/kernel/vault.d.ts +1740 -0
  235. package/dist/kernel/via/compose.d.ts +144 -0
  236. package/dist/kernel/via/dispatch.d.ts +195 -0
  237. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  238. package/dist/kernel/via/graph.d.ts +166 -0
  239. package/dist/kernel/via/index.d.ts +200 -0
  240. package/dist/kernel/via/pipeline.d.ts +266 -0
  241. package/dist/kernel/via/reconcile.d.ts +153 -0
  242. package/dist/kernel/via/taint-binding.d.ts +66 -0
  243. package/dist/kernel/write-queue.d.ts +46 -0
  244. package/dist/ledger-GFBKVPV4.js +42 -0
  245. package/dist/legacy/bundle.d.ts +30 -0
  246. package/dist/legacy/kernel.d.ts +33 -0
  247. package/dist/liberate-3VDOT4KO.js +24 -0
  248. package/dist/link-set-Z7Q2ASFX.js +31 -0
  249. package/dist/materialized-views/index.js +19 -15
  250. package/dist/noydb-ZCJOYBDI.js +68 -0
  251. package/dist/on/index.js +9 -9
  252. package/dist/overlay-views/index.js +4 -4
  253. package/dist/periods/index.js +12 -12
  254. package/dist/pod/index.js +11 -11
  255. package/dist/policy-Z3RUAIY2.js +41 -0
  256. package/dist/port/as/index.d.ts +26 -0
  257. package/dist/port/at/index.d.ts +18 -0
  258. package/dist/port/by/default-provider.d.ts +9 -0
  259. package/dist/port/by/index.d.ts +17 -0
  260. package/dist/port/by/types.d.ts +86 -0
  261. package/dist/port/in/index.d.ts +21 -0
  262. package/dist/port/on/index.d.ts +27 -0
  263. package/dist/port/to/index.d.ts +19 -0
  264. package/dist/port/ui/index.d.ts +21 -0
  265. package/dist/port/with/blob-strategy.d.ts +98 -0
  266. package/dist/port/with/broker-strategy.d.ts +84 -0
  267. package/dist/port/with/capabilities.d.ts +31 -0
  268. package/dist/port/with/classified-marker.d.ts +9 -0
  269. package/dist/port/with/classified-strategy.d.ts +62 -0
  270. package/dist/port/with/computed-strategy.d.ts +19 -0
  271. package/dist/port/with/i18n-strategy.d.ts +175 -0
  272. package/dist/port/with/index.d.ts +18 -0
  273. package/dist/port/with/lazy-strategy.d.ts +48 -0
  274. package/dist/port/with/lookup-strategy.d.ts +129 -0
  275. package/dist/port/with/service-bus.d.ts +156 -0
  276. package/dist/port/with/team-strategy.d.ts +36 -0
  277. package/dist/port/with/write-hooks.d.ts +34 -0
  278. package/dist/portability/index.js +8 -8
  279. package/dist/post-register-JTH76BLY.js +60 -0
  280. package/dist/post-register-JTH76BLY.js.map +1 -0
  281. package/dist/public-envelope-B4KNWVUA.js +32 -0
  282. package/dist/purge-scope-FGNNLWHD.js +24 -0
  283. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  284. package/dist/query/index.js +9 -6
  285. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  286. package/dist/register-VAHONCID.js +23 -0
  287. package/dist/registry-7MLVD3VO.js +19 -0
  288. package/dist/registry-EPKPD5SM.js +18 -0
  289. package/dist/registry-P5T7PS2U.js +9 -0
  290. package/dist/request-withdrawal-TI3A5WPS.js +31 -0
  291. package/dist/reveal-DIBHLUZX.js +38 -0
  292. package/dist/reveal-DIBHLUZX.js.map +1 -0
  293. package/dist/revoke-FDRD6GRW.js +24 -0
  294. package/dist/satellites/index.js +1 -1
  295. package/dist/sealed-record/index.js +12 -12
  296. package/dist/seed-Q6M2IZFL.js +231 -0
  297. package/dist/seed-Q6M2IZFL.js.map +1 -0
  298. package/dist/session/index.js +9 -9
  299. package/dist/shadow/index.js +2 -2
  300. package/dist/signer-MUWEIUI6.js +25 -0
  301. package/dist/snapshots/index.js +10 -10
  302. package/dist/stale-OSQ7J3AA.js +29 -0
  303. package/dist/storage-MVFCGEQE.js +23 -0
  304. package/dist/store-coordination-provider-64OEZFGS.js +142 -0
  305. package/dist/sync/index.js +9 -9
  306. package/dist/team/index.js +15 -15
  307. package/dist/tiers/index.js +14 -10
  308. package/dist/to/index.js +1 -2
  309. package/dist/tx/index.js +3 -3
  310. package/dist/util/index.js +1 -1
  311. package/dist/verify-ZASTRNPR.js +140 -0
  312. package/dist/verify-ZASTRNPR.js.map +1 -0
  313. package/dist/via/blob/active.d.ts +34 -0
  314. package/dist/via/blob/binding.d.ts +86 -0
  315. package/dist/via/blob/index.d.ts +34 -0
  316. package/dist/via/classified/active.d.ts +3 -0
  317. package/dist/via/classified/binding.d.ts +83 -0
  318. package/dist/via/classified/config-drift.d.ts +34 -0
  319. package/dist/via/classified/descriptor.d.ts +66 -0
  320. package/dist/via/classified/errors.d.ts +19 -0
  321. package/dist/via/classified/guards.d.ts +23 -0
  322. package/dist/via/classified/index.d.ts +11 -0
  323. package/dist/via/classified/presets.d.ts +65 -0
  324. package/dist/via/classified/resolve.d.ts +9 -0
  325. package/dist/via/classified/strategy.d.ts +11 -0
  326. package/dist/via/classified/validators.d.ts +3 -0
  327. package/dist/via/classified/write.d.ts +4 -0
  328. package/dist/via/computed/binding.d.ts +34 -0
  329. package/dist/via/computed/descriptor.d.ts +35 -0
  330. package/dist/via/i18n/active.d.ts +28 -0
  331. package/dist/via/i18n/binding.d.ts +36 -0
  332. package/dist/via/i18n/core.d.ts +267 -0
  333. package/dist/via/i18n/densify.d.ts +24 -0
  334. package/dist/via/i18n/dictionary.d.ts +200 -0
  335. package/dist/via/i18n/index.d.ts +21 -0
  336. package/dist/via/i18n/policy.d.ts +44 -0
  337. package/dist/via/i18n/script.d.ts +26 -0
  338. package/dist/via/i18n/strategy.d.ts +13 -0
  339. package/dist/via/lookup/active.d.ts +19 -0
  340. package/dist/via/lookup/binding.d.ts +99 -0
  341. package/dist/via/lookup/descriptor.d.ts +123 -0
  342. package/dist/via/lookup/handle.d.ts +220 -0
  343. package/dist/via/lookup/index.d.ts +17 -0
  344. package/dist/via/lookup/registry.d.ts +228 -0
  345. package/dist/via/lookup/snapshot.d.ts +67 -0
  346. package/dist/via/money/arith.d.ts +68 -0
  347. package/dist/via/money/binding.d.ts +21 -0
  348. package/dist/via/money/branded.d.ts +61 -0
  349. package/dist/via/money/descriptor.d.ts +73 -0
  350. package/dist/via/money/fixed-point.d.ts +51 -0
  351. package/dist/via/money/index.d.ts +15 -0
  352. package/dist/via/money/iso4217.d.ts +6 -0
  353. package/dist/via/money/money-reducer.d.ts +33 -0
  354. package/dist/via/money/normalize.d.ts +105 -0
  355. package/dist/via/money/paths.d.ts +61 -0
  356. package/dist/via/money/where.d.ts +127 -0
  357. package/dist/walk-SVNDIZ62.js +241 -0
  358. package/dist/with/index.js +11 -11
  359. package/dist/with-audit/attestation/active.d.ts +10 -0
  360. package/dist/with-audit/attestation/index.d.ts +16 -0
  361. package/dist/with-audit/attestation/issue.d.ts +29 -0
  362. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  363. package/dist/with-audit/attestation/signer.d.ts +33 -0
  364. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  365. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  366. package/dist/with-audit/consent/active.d.ts +14 -0
  367. package/dist/with-audit/consent/consent.d.ts +114 -0
  368. package/dist/with-audit/consent/index.d.ts +14 -0
  369. package/dist/with-audit/consent/strategy.d.ts +36 -0
  370. package/dist/with-audit/forget/active.d.ts +31 -0
  371. package/dist/with-audit/forget/index.d.ts +28 -0
  372. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  373. package/dist/with-audit/forget/strategy.d.ts +199 -0
  374. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  375. package/dist/with-audit/guards/executor.d.ts +26 -0
  376. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  377. package/dist/with-audit/guards/index.d.ts +10 -0
  378. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  379. package/dist/with-audit/guards/registry.d.ts +83 -0
  380. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  381. package/dist/with-audit/guards/types.d.ts +134 -0
  382. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  383. package/dist/with-audit/periods/active.d.ts +11 -0
  384. package/dist/with-audit/periods/index.d.ts +18 -0
  385. package/dist/with-audit/periods/periods.d.ts +417 -0
  386. package/dist/with-audit/periods/strategy.d.ts +32 -0
  387. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  388. package/dist/with-audit/portability/active.d.ts +11 -0
  389. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  390. package/dist/with-audit/portability/index.d.ts +18 -0
  391. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  392. package/dist/with-audit/portability/strategy.d.ts +31 -0
  393. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  394. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  395. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  396. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  397. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  398. package/dist/with-audit/tiers/active.d.ts +9 -0
  399. package/dist/with-audit/tiers/index.d.ts +394 -0
  400. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  401. package/dist/with-cargo/active.d.ts +11 -0
  402. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  403. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  404. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  405. package/dist/with-cargo/extract-partition.d.ts +155 -0
  406. package/dist/with-cargo/index.d.ts +33 -0
  407. package/dist/with-cargo/strategy.d.ts +30 -0
  408. package/dist/with-cargo/vault-diff.d.ts +144 -0
  409. package/dist/with-cargo/walk-closure.d.ts +67 -0
  410. package/dist/with-commit/crdt/active.d.ts +25 -0
  411. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  412. package/dist/with-commit/crdt/index.d.ts +16 -0
  413. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  414. package/dist/with-commit/history/active.d.ts +40 -0
  415. package/dist/with-commit/history/diff.d.ts +23 -0
  416. package/dist/with-commit/history/history.d.ts +73 -0
  417. package/dist/with-commit/history/index.d.ts +30 -0
  418. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  419. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  420. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  421. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  422. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  423. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  424. package/dist/with-commit/history/strategy.d.ts +136 -0
  425. package/dist/with-commit/history/time-machine.d.ts +202 -0
  426. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  427. package/dist/with-commit/numbering/index.d.ts +69 -0
  428. package/dist/with-commit/sequence/active.d.ts +10 -0
  429. package/dist/with-commit/sequence/index.d.ts +150 -0
  430. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  431. package/dist/with-commit/tx/active.d.ts +27 -0
  432. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  433. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  434. package/dist/with-commit/tx/index.d.ts +13 -0
  435. package/dist/with-commit/tx/invariants.d.ts +68 -0
  436. package/dist/with-commit/tx/strategy.d.ts +23 -0
  437. package/dist/with-commit/tx/transaction.d.ts +212 -0
  438. package/dist/with-fork/archive/engine.d.ts +71 -0
  439. package/dist/with-fork/archive/index.d.ts +23 -0
  440. package/dist/with-fork/shadow/active.d.ts +6 -0
  441. package/dist/with-fork/shadow/index.d.ts +14 -0
  442. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  443. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  444. package/dist/with-fork/snapshots/active.d.ts +20 -0
  445. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  446. package/dist/with-fork/snapshots/index.d.ts +5 -0
  447. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  448. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  449. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  450. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  451. package/dist/with-formula/computed/index.d.ts +48 -0
  452. package/dist/with-formula/computed/lazy.d.ts +13 -0
  453. package/dist/with-formula/derivations/executor.d.ts +61 -0
  454. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  455. package/dist/with-formula/derivations/index.d.ts +6 -0
  456. package/dist/with-formula/derivations/registry.d.ts +67 -0
  457. package/dist/with-formula/derivations/stale.d.ts +39 -0
  458. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  459. package/dist/with-formula/derivations/types.d.ts +248 -0
  460. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  461. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  462. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  463. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  464. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  465. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  466. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  467. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  468. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  469. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  470. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  471. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  472. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  473. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  474. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  475. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  476. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  477. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  478. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  479. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  480. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  481. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  482. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  483. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  484. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  485. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  486. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  487. package/dist/with-lookup/indexing/active.d.ts +30 -0
  488. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  489. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  490. package/dist/with-lookup/indexing/index.d.ts +27 -0
  491. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  492. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  493. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  494. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  495. package/dist/with-lookup/search/active.d.ts +10 -0
  496. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  497. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  498. package/dist/with-lookup/search/fuse.d.ts +22 -0
  499. package/dist/with-lookup/search/index-store.d.ts +19 -0
  500. package/dist/with-lookup/search/index.d.ts +19 -0
  501. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  502. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  503. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  504. package/dist/with-lookup/search/scan.d.ts +28 -0
  505. package/dist/with-lookup/search/segment.d.ts +15 -0
  506. package/dist/with-lookup/search/serialize.d.ts +4 -0
  507. package/dist/with-lookup/search/snippet.d.ts +5 -0
  508. package/dist/with-lookup/search/strategy.d.ts +41 -0
  509. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  510. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  511. package/dist/with-party/broker/active.d.ts +23 -0
  512. package/dist/with-party/broker/index.d.ts +28 -0
  513. package/dist/with-party/broker/seed.d.ts +77 -0
  514. package/dist/with-party/custody/active.d.ts +10 -0
  515. package/dist/with-party/custody/index.d.ts +69 -0
  516. package/dist/with-party/custody/liberate.d.ts +64 -0
  517. package/dist/with-party/custody/strategy.d.ts +48 -0
  518. package/dist/with-party/directory/index.d.ts +11 -0
  519. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  520. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  521. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  522. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  523. package/dist/with-party/directory/storage.d.ts +33 -0
  524. package/dist/with-party/directory/types.d.ts +43 -0
  525. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  526. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  527. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  528. package/dist/with-party/directory/visibility.d.ts +47 -0
  529. package/dist/with-party/policy/engine.d.ts +60 -0
  530. package/dist/with-party/policy/index.d.ts +15 -0
  531. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  532. package/dist/with-party/policy/presets.d.ts +38 -0
  533. package/dist/with-party/policy/storage.d.ts +31 -0
  534. package/dist/with-party/session/active.d.ts +34 -0
  535. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  536. package/dist/with-party/session/index.d.ts +23 -0
  537. package/dist/with-party/session/session-policy.d.ts +92 -0
  538. package/dist/with-party/session/session.d.ts +131 -0
  539. package/dist/with-party/session/strategy.d.ts +42 -0
  540. package/dist/with-party/session/unlock-state.d.ts +47 -0
  541. package/dist/with-party/sync/index.d.ts +31 -0
  542. package/dist/with-party/tab-coordination.d.ts +73 -0
  543. package/dist/with-party/tab-write-relay.d.ts +39 -0
  544. package/dist/with-party/team/active.d.ts +13 -0
  545. package/dist/with-party/team/authenticators.d.ts +95 -0
  546. package/dist/with-party/team/deed.d.ts +97 -0
  547. package/dist/with-party/team/delegation.d.ts +88 -0
  548. package/dist/with-party/team/index.d.ts +38 -0
  549. package/dist/with-party/team/keyring.d.ts +318 -0
  550. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  551. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  552. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  553. package/dist/with-party/team/peer-recover.d.ts +81 -0
  554. package/dist/with-party/team/presence.d.ts +81 -0
  555. package/dist/with-party/team/recovery.d.ts +191 -0
  556. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  557. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  558. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  559. package/dist/with-party/team/strategy.d.ts +9 -0
  560. package/dist/with-party/team/sync-active.d.ts +33 -0
  561. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  562. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  563. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  564. package/dist/with-party/team/sync.d.ts +174 -0
  565. package/dist/with-party/team/tiers.d.ts +39 -0
  566. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  567. package/dist/with-pod/backup.d.ts +74 -0
  568. package/dist/with-pod/bundle.d.ts +414 -0
  569. package/dist/with-pod/format.d.ts +203 -0
  570. package/dist/with-pod/index.d.ts +20 -0
  571. package/dist/with-pod/pod-store.d.ts +54 -0
  572. package/dist/with-pod/ulid.d.ts +64 -0
  573. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  574. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  575. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  576. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  577. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  578. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  579. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  580. package/dist/with-shape/introspection/describe.d.ts +237 -0
  581. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  582. package/dist/with-shape/introspection/fields.d.ts +14 -0
  583. package/dist/with-shape/introspection/index.d.ts +12 -0
  584. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  585. package/dist/with-shape/introspection/meta.d.ts +22 -0
  586. package/dist/with-shape/introspection/projection.d.ts +13 -0
  587. package/dist/with-shape/introspection/types.d.ts +154 -0
  588. package/dist/with-shape/introspection/walk.d.ts +50 -0
  589. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  590. package/dist/with-shape/links/link-set.d.ts +67 -0
  591. package/dist/with-shape/links/names.d.ts +65 -0
  592. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  593. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  594. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  595. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  596. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  597. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  598. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  599. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  600. package/dist/with-shape/satellites/declare.d.ts +60 -0
  601. package/dist/with-shape/satellites/existence.d.ts +5 -0
  602. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  603. package/dist/with-shape/satellites/forget.d.ts +47 -0
  604. package/dist/with-shape/satellites/index.d.ts +3 -0
  605. package/dist/with-shape/satellites/joined.d.ts +19 -0
  606. package/dist/with-shape/satellites/marker.d.ts +10 -0
  607. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  608. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  609. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  610. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  611. package/dist/with-shape/satellites/registry.d.ts +19 -0
  612. package/dist/with-shape/satellites/types.d.ts +37 -0
  613. package/dist/with-shape/satellites/validate.d.ts +17 -0
  614. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  615. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  616. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  617. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  618. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  619. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  620. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  621. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  622. package/dist/with-shape/schema-update/index.d.ts +6 -0
  623. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  624. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  625. package/dist/with-shape/schema-update/types.d.ts +53 -0
  626. package/dist/with-store/index.d.ts +15 -0
  627. package/dist/with-store/lazy/active.d.ts +12 -0
  628. package/dist/with-store/lazy/index.d.ts +14 -0
  629. package/dist/with-store/lazy/strategy.d.ts +9 -0
  630. package/dist/with-store/route-store.d.ts +259 -0
  631. package/dist/with-store/store-middleware.d.ts +189 -0
  632. package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
  633. package/package.json +47 -55
  634. package/dist/adapter/index.d.ts +0 -5
  635. package/dist/adapter/index.js +0 -15
  636. package/dist/aggregate/index.d.ts +0 -42
  637. package/dist/api-JDWL67WL.js +0 -20
  638. package/dist/as/index.d.ts +0 -7
  639. package/dist/at/index.d.ts +0 -5
  640. package/dist/attestation/index.d.ts +0 -20
  641. package/dist/backup-WRGNTGJF.js +0 -225
  642. package/dist/backup-WRGNTGJF.js.map +0 -1
  643. package/dist/blobs/index.d.ts +0 -44
  644. package/dist/bundle/index.d.ts +0 -122
  645. package/dist/bundle-DzWtVw7w.d.ts +0 -548
  646. package/dist/by/index.d.ts +0 -1
  647. package/dist/cargo/index.d.ts +0 -9
  648. package/dist/chunk-25G7PUTA.js +0 -235
  649. package/dist/chunk-26FSVNBL.js +0 -34
  650. package/dist/chunk-2PJB6H3H.js +0 -167
  651. package/dist/chunk-2PJB6H3H.js.map +0 -1
  652. package/dist/chunk-37JZR7CY.js +0 -91
  653. package/dist/chunk-3KBK5LU4.js +0 -117
  654. package/dist/chunk-3YKBGS3I.js +0 -686
  655. package/dist/chunk-3YKBGS3I.js.map +0 -1
  656. package/dist/chunk-44DV37ZV.js +0 -75
  657. package/dist/chunk-44DV37ZV.js.map +0 -1
  658. package/dist/chunk-47C4CI7R.js +0 -108
  659. package/dist/chunk-47C4CI7R.js.map +0 -1
  660. package/dist/chunk-4VDFUBTS.js +0 -275
  661. package/dist/chunk-4VDFUBTS.js.map +0 -1
  662. package/dist/chunk-55LSDABW.js +0 -94
  663. package/dist/chunk-56JB2BGI.js +0 -13003
  664. package/dist/chunk-56JB2BGI.js.map +0 -1
  665. package/dist/chunk-5GQE5IDB.js +0 -513
  666. package/dist/chunk-5GQE5IDB.js.map +0 -1
  667. package/dist/chunk-5HRJQSKN.js +0 -202
  668. package/dist/chunk-5HZULLHE.js +0 -404
  669. package/dist/chunk-5JQMX2EH.js +0 -50
  670. package/dist/chunk-5UOPIPZC.js +0 -95
  671. package/dist/chunk-5YBUFCFF.js +0 -135
  672. package/dist/chunk-62APEMF3.js +0 -280
  673. package/dist/chunk-62APEMF3.js.map +0 -1
  674. package/dist/chunk-6P5AJ2ZS.js +0 -120
  675. package/dist/chunk-6P5AJ2ZS.js.map +0 -1
  676. package/dist/chunk-6PALJTC2.js +0 -430
  677. package/dist/chunk-6PALJTC2.js.map +0 -1
  678. package/dist/chunk-6S7T6WC4.js +0 -111
  679. package/dist/chunk-6S7T6WC4.js.map +0 -1
  680. package/dist/chunk-6Z435B6N.js +0 -1656
  681. package/dist/chunk-6Z435B6N.js.map +0 -1
  682. package/dist/chunk-723XB5NX.js +0 -86
  683. package/dist/chunk-7CZ6YXMO.js +0 -124
  684. package/dist/chunk-7KTL4RHZ.js +0 -120
  685. package/dist/chunk-7KTL4RHZ.js.map +0 -1
  686. package/dist/chunk-7TAV3BFQ.js +0 -766
  687. package/dist/chunk-7TAV3BFQ.js.map +0 -1
  688. package/dist/chunk-BASCPHNM.js +0 -380
  689. package/dist/chunk-BASCPHNM.js.map +0 -1
  690. package/dist/chunk-BGIZAFY7.js +0 -1
  691. package/dist/chunk-BJ2XF2RC.js +0 -823
  692. package/dist/chunk-BM6E4MUT.js +0 -881
  693. package/dist/chunk-BM6E4MUT.js.map +0 -1
  694. package/dist/chunk-BTFTHF6Q.js +0 -42
  695. package/dist/chunk-C4NOLA5X.js +0 -132
  696. package/dist/chunk-C4NOLA5X.js.map +0 -1
  697. package/dist/chunk-CHK5VVMI.js +0 -155
  698. package/dist/chunk-DCVVCJVB.js +0 -45
  699. package/dist/chunk-EU7HDMT3.js +0 -54
  700. package/dist/chunk-F3EKFGUS.js +0 -99
  701. package/dist/chunk-FCOZ7DEC.js +0 -355
  702. package/dist/chunk-FCOZ7DEC.js.map +0 -1
  703. package/dist/chunk-FWART3VA.js +0 -205
  704. package/dist/chunk-FZK3JJJK.js +0 -150
  705. package/dist/chunk-GDOOG5YQ.js +0 -382
  706. package/dist/chunk-GLVXQU3E.js +0 -155
  707. package/dist/chunk-HU55NPHZ.js +0 -80
  708. package/dist/chunk-I6JJ6VJS.js +0 -97
  709. package/dist/chunk-I6URUNTD.js +0 -59
  710. package/dist/chunk-IARAK3PK.js +0 -14
  711. package/dist/chunk-II6DLDZM.js +0 -30
  712. package/dist/chunk-J5YUA6JB.js +0 -23
  713. package/dist/chunk-J7OH6R4K.js +0 -49
  714. package/dist/chunk-K2WCO3NX.js +0 -1
  715. package/dist/chunk-L6Q5NA22.js +0 -40
  716. package/dist/chunk-LFGJG4XZ.js +0 -30
  717. package/dist/chunk-M3OYTM5Z.js +0 -85
  718. package/dist/chunk-MOQ5M46U.js +0 -209
  719. package/dist/chunk-NTPWQH4S.js +0 -589
  720. package/dist/chunk-OJ64XMPJ.js +0 -1434
  721. package/dist/chunk-OJ64XMPJ.js.map +0 -1
  722. package/dist/chunk-OWGAXPRE.js +0 -129
  723. package/dist/chunk-P2PEPSPK.js +0 -230
  724. package/dist/chunk-P6TZ3IVN.js +0 -453
  725. package/dist/chunk-P6TZ3IVN.js.map +0 -1
  726. package/dist/chunk-PAJCRV7O.js +0 -123
  727. package/dist/chunk-PMMV5SQC.js +0 -416
  728. package/dist/chunk-PMMV5SQC.js.map +0 -1
  729. package/dist/chunk-PPPZIBKY.js +0 -261
  730. package/dist/chunk-PPPZIBKY.js.map +0 -1
  731. package/dist/chunk-PVC2FBCQ.js +0 -45
  732. package/dist/chunk-PYIUDUGS.js +0 -36
  733. package/dist/chunk-QABECTNN.js +0 -255
  734. package/dist/chunk-QYMMMKOO.js +0 -164
  735. package/dist/chunk-R4IVPJHN.js +0 -130
  736. package/dist/chunk-REWTMYSF.js +0 -32
  737. package/dist/chunk-REWTMYSF.js.map +0 -1
  738. package/dist/chunk-RNYDHIQL.js +0 -367
  739. package/dist/chunk-RUIMKQTA.js +0 -23
  740. package/dist/chunk-RUIMKQTA.js.map +0 -1
  741. package/dist/chunk-TCGVRKOS.js +0 -367
  742. package/dist/chunk-TIAYXOEI.js +0 -99
  743. package/dist/chunk-TQ3REHVF.js +0 -95
  744. package/dist/chunk-TQ3REHVF.js.map +0 -1
  745. package/dist/chunk-TUL5YQWF.js +0 -777
  746. package/dist/chunk-U7LV2DUN.js +0 -74
  747. package/dist/chunk-UB3XHGFG.js +0 -181
  748. package/dist/chunk-UB3XHGFG.js.map +0 -1
  749. package/dist/chunk-UMH35AQV.js +0 -70
  750. package/dist/chunk-UWZ7O4NR.js +0 -29
  751. package/dist/chunk-V76PHWLE.js +0 -41
  752. package/dist/chunk-VFQOE76I.js +0 -69
  753. package/dist/chunk-VIWOGJ2O.js +0 -71
  754. package/dist/chunk-VK6OC22R.js +0 -37
  755. package/dist/chunk-VK6OC22R.js.map +0 -1
  756. package/dist/chunk-VVLOWY74.js +0 -150
  757. package/dist/chunk-VVLOWY74.js.map +0 -1
  758. package/dist/chunk-W3JABOVB.js +0 -53
  759. package/dist/chunk-W3JABOVB.js.map +0 -1
  760. package/dist/chunk-WPNP3NF5.js +0 -1221
  761. package/dist/chunk-WPNP3NF5.js.map +0 -1
  762. package/dist/chunk-X5QZAJDB.js +0 -59
  763. package/dist/chunk-X6VNIRHS.js +0 -239
  764. package/dist/chunk-X6VNIRHS.js.map +0 -1
  765. package/dist/chunk-XBPUVQDO.js +0 -664
  766. package/dist/chunk-XBPUVQDO.js.map +0 -1
  767. package/dist/chunk-XW5LZYV4.js +0 -21
  768. package/dist/chunk-YTCCC6NG.js +0 -320
  769. package/dist/chunk-YTCCC6NG.js.map +0 -1
  770. package/dist/classified/index.d.ts +0 -17
  771. package/dist/collection-facade-EJVIN2BY.js +0 -39
  772. package/dist/computed-6FOFXQPE.js +0 -11
  773. package/dist/config-drift-RFEVGBKR.js +0 -24
  774. package/dist/config-drift-RFEVGBKR.js.map +0 -1
  775. package/dist/consent/index.d.ts +0 -23
  776. package/dist/crdt/index.d.ts +0 -34
  777. package/dist/dead-filter-RHMNYOXP.js +0 -28
  778. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  779. package/dist/delegation-IHXOASHV.js +0 -25
  780. package/dist/derivations/index.d.ts +0 -70
  781. package/dist/derive-CD3ZVIXK.js +0 -21
  782. package/dist/describe/index.d.ts +0 -1
  783. package/dist/describe/index.js +0 -1
  784. package/dist/describe-C6iHNlqJ.d.ts +0 -162
  785. package/dist/dev-unlock-wgQ7Ci5I.d.ts +0 -263
  786. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  787. package/dist/enclave-KGEUW2GL.js +0 -123
  788. package/dist/executor-EUPYHCLU.js +0 -9
  789. package/dist/executor-KZ4B3PRT.js +0 -9
  790. package/dist/executor-MHUM2VZK.js +0 -21
  791. package/dist/export-accessible-Z3NSZZHN.js +0 -23
  792. package/dist/extract-partition-VSKT35JG.js +0 -36
  793. package/dist/fanout-sidecar-NBDKKCHT.js +0 -74
  794. package/dist/find-OH4BEULF.js +0 -11
  795. package/dist/forget/index.d.ts +0 -36
  796. package/dist/guards/index.d.ts +0 -35
  797. package/dist/hash-CwHnoKyW.d.ts +0 -72
  798. package/dist/history/index.d.ts +0 -61
  799. package/dist/i18n/index.d.ts +0 -37
  800. package/dist/in/index.d.ts +0 -5
  801. package/dist/index-B9QdHytu.d.ts +0 -123
  802. package/dist/index-CTvUp94-.d.ts +0 -123
  803. package/dist/index-Dn5GzPg_.d.ts +0 -22138
  804. package/dist/indexing/index.d.ts +0 -39
  805. package/dist/issue-AEOL6RXA.js +0 -19
  806. package/dist/kernel/index.d.ts +0 -32
  807. package/dist/kernel/index.js +0 -59
  808. package/dist/lazy/index.d.ts +0 -21
  809. package/dist/ledger-3LR3YO2W.js +0 -42
  810. package/dist/liberate-XSEPRWEA.js +0 -24
  811. package/dist/link-set-NSUIX6BR.js +0 -31
  812. package/dist/materialized-views/index.d.ts +0 -173
  813. package/dist/mime-magic-CYbFNQ4h.d.ts +0 -103
  814. package/dist/noydb-POVTIVQ6.js +0 -62
  815. package/dist/on/index.d.ts +0 -5
  816. package/dist/overlay-views/index.d.ts +0 -98
  817. package/dist/periods/index.d.ts +0 -20
  818. package/dist/pod/index.d.ts +0 -63
  819. package/dist/policy-Y7HL2KGA.js +0 -41
  820. package/dist/portability/index.d.ts +0 -20
  821. package/dist/post-register-KOFRTCDD.js +0 -55
  822. package/dist/post-register-KOFRTCDD.js.map +0 -1
  823. package/dist/public-envelope-NC7SPNMV.js +0 -32
  824. package/dist/query/index.d.ts +0 -5
  825. package/dist/read-only-facade-5ADRJVTM.js +0 -8
  826. package/dist/register-3D6R2MKN.js +0 -23
  827. package/dist/registry-AI4E46PD.js +0 -19
  828. package/dist/registry-HSNQ4NBP.js +0 -9
  829. package/dist/registry-WIX6QCV5.js +0 -17
  830. package/dist/request-withdrawal-GU4XS2R5.js +0 -31
  831. package/dist/reveal-5Y777N5Q.js +0 -38
  832. package/dist/reveal-5Y777N5Q.js.map +0 -1
  833. package/dist/revoke-ZFETCLYV.js +0 -24
  834. package/dist/revoke-ZFETCLYV.js.map +0 -1
  835. package/dist/satellites/index.d.ts +0 -5
  836. package/dist/sealed-record/index.d.ts +0 -69
  837. package/dist/session/index.d.ts +0 -44
  838. package/dist/shadow/index.d.ts +0 -15
  839. package/dist/signer-GAIMQQ2J.js +0 -25
  840. package/dist/signer-GAIMQQ2J.js.map +0 -1
  841. package/dist/snapshots/index.d.ts +0 -26
  842. package/dist/stale-77LP2EEF.js +0 -14
  843. package/dist/stale-77LP2EEF.js.map +0 -1
  844. package/dist/storage-KEXIXLGM.js +0 -23
  845. package/dist/storage-KEXIXLGM.js.map +0 -1
  846. package/dist/store-coordination-provider-NJDDZ264.js +0 -142
  847. package/dist/subject-index-O75wKshW.d.ts +0 -362
  848. package/dist/sync/index.d.ts +0 -41
  849. package/dist/team/index.d.ts +0 -155
  850. package/dist/tiers/index.d.ts +0 -5
  851. package/dist/to/index.d.ts +0 -5
  852. package/dist/transition-guard-D5RLJv8S.d.ts +0 -165
  853. package/dist/tx/index.d.ts +0 -35
  854. package/dist/ui/index.d.ts +0 -1
  855. package/dist/ulid-DRH25k3y.d.ts +0 -66
  856. package/dist/util/index.d.ts +0 -79
  857. package/dist/validators-C3lrVF-c.d.ts +0 -101
  858. package/dist/vault-diff-_LSIcOMv.d.ts +0 -147
  859. package/dist/verify-CAYGXYNO.js +0 -139
  860. package/dist/verify-CAYGXYNO.js.map +0 -1
  861. package/dist/walk-SMAE4IEI.js +0 -241
  862. package/dist/with/index.d.ts +0 -38
  863. package/dist/with-materialized-view-Xv1-9Bh0.d.ts +0 -27
  864. package/dist/with-overlayed-view-CuWhq_-C.d.ts +0 -12
  865. package/dist/with-rollup-K_iwal4b.d.ts +0 -47
  866. package/dist/withdraw-accessible-Q7BULAN5.js +0 -28
  867. package/dist/withdraw-accessible-Q7BULAN5.js.map +0 -1
  868. /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
  869. /package/dist/{chunk-VIWOGJ2O.js.map → chunk-3B5VVCNY.js.map} +0 -0
  870. /package/dist/{chunk-P2PEPSPK.js.map → chunk-3LQ2YKO4.js.map} +0 -0
  871. /package/dist/{chunk-EU7HDMT3.js.map → chunk-3QCRBHCY.js.map} +0 -0
  872. /package/dist/{chunk-FZK3JJJK.js.map → chunk-4JBYV75E.js.map} +0 -0
  873. /package/dist/{chunk-I6JJ6VJS.js.map → chunk-4NXKCLLQ.js.map} +0 -0
  874. /package/dist/{chunk-VFQOE76I.js.map → chunk-5M5DVGV7.js.map} +0 -0
  875. /package/dist/{chunk-LFGJG4XZ.js.map → chunk-5YOLBEQ6.js.map} +0 -0
  876. /package/dist/{chunk-OWGAXPRE.js.map → chunk-6CRIV7DE.js.map} +0 -0
  877. /package/dist/{chunk-QABECTNN.js.map → chunk-6QTNZJBS.js.map} +0 -0
  878. /package/dist/{chunk-723XB5NX.js.map → chunk-6T2SCQRU.js.map} +0 -0
  879. /package/dist/{chunk-PVC2FBCQ.js.map → chunk-7DSTRQIJ.js.map} +0 -0
  880. /package/dist/{chunk-NTPWQH4S.js.map → chunk-AUSTCW2X.js.map} +0 -0
  881. /package/dist/{chunk-MOQ5M46U.js.map → chunk-B3HJYUOF.js.map} +0 -0
  882. /package/dist/{chunk-QYMMMKOO.js.map → chunk-BDVFPG6Y.js.map} +0 -0
  883. /package/dist/{chunk-PYIUDUGS.js.map → chunk-CAF6WOK7.js.map} +0 -0
  884. /package/dist/{chunk-5HZULLHE.js.map → chunk-CIE2BASH.js.map} +0 -0
  885. /package/dist/{chunk-BTFTHF6Q.js.map → chunk-CRI4OUV4.js.map} +0 -0
  886. /package/dist/{chunk-37JZR7CY.js.map → chunk-DLG74CNB.js.map} +0 -0
  887. /package/dist/{chunk-TCGVRKOS.js.map → chunk-ERJ7FU55.js.map} +0 -0
  888. /package/dist/{chunk-FWART3VA.js.map → chunk-EVVGJDRQ.js.map} +0 -0
  889. /package/dist/{chunk-X5QZAJDB.js.map → chunk-EXK7QRWF.js.map} +0 -0
  890. /package/dist/{chunk-5HRJQSKN.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
  891. /package/dist/{chunk-DCVVCJVB.js.map → chunk-F64IRYG3.js.map} +0 -0
  892. /package/dist/{chunk-BJ2XF2RC.js.map → chunk-FHS2HQSH.js.map} +0 -0
  893. /package/dist/{chunk-HU55NPHZ.js.map → chunk-GKEWXIV5.js.map} +0 -0
  894. /package/dist/{chunk-I6URUNTD.js.map → chunk-GTGPO5KW.js.map} +0 -0
  895. /package/dist/{chunk-5UOPIPZC.js.map → chunk-HB3RFQSC.js.map} +0 -0
  896. /package/dist/{chunk-F3EKFGUS.js.map → chunk-I6GALP6E.js.map} +0 -0
  897. /package/dist/{chunk-R4IVPJHN.js.map → chunk-IL6POWCW.js.map} +0 -0
  898. /package/dist/{chunk-3KBK5LU4.js.map → chunk-IU6SNYX6.js.map} +0 -0
  899. /package/dist/{chunk-TUL5YQWF.js.map → chunk-J2ZX2XUV.js.map} +0 -0
  900. /package/dist/{chunk-UWZ7O4NR.js.map → chunk-JKJOGPZN.js.map} +0 -0
  901. /package/dist/{chunk-V76PHWLE.js.map → chunk-JZUV47FZ.js.map} +0 -0
  902. /package/dist/{chunk-II6DLDZM.js.map → chunk-K5IMOGHB.js.map} +0 -0
  903. /package/dist/{chunk-GDOOG5YQ.js.map → chunk-LASZKVMO.js.map} +0 -0
  904. /package/dist/{chunk-5YBUFCFF.js.map → chunk-NR5LT5RY.js.map} +0 -0
  905. /package/dist/{chunk-UMH35AQV.js.map → chunk-Q5VNKNE5.js.map} +0 -0
  906. /package/dist/{chunk-XW5LZYV4.js.map → chunk-QLWMEXCT.js.map} +0 -0
  907. /package/dist/{chunk-PAJCRV7O.js.map → chunk-QRB7NAOJ.js.map} +0 -0
  908. /package/dist/{chunk-U7LV2DUN.js.map → chunk-R4ROFEYC.js.map} +0 -0
  909. /package/dist/{chunk-RNYDHIQL.js.map → chunk-RIX4V2TB.js.map} +0 -0
  910. /package/dist/{chunk-L6Q5NA22.js.map → chunk-RYCTDFUX.js.map} +0 -0
  911. /package/dist/{chunk-CHK5VVMI.js.map → chunk-RZ5SVOYR.js.map} +0 -0
  912. /package/dist/{chunk-TIAYXOEI.js.map → chunk-SLFHQTTW.js.map} +0 -0
  913. /package/dist/{chunk-J5YUA6JB.js.map → chunk-UNFPPVNI.js.map} +0 -0
  914. /package/dist/{chunk-25G7PUTA.js.map → chunk-VLFCJYTL.js.map} +0 -0
  915. /package/dist/{chunk-7CZ6YXMO.js.map → chunk-VN3DBQAU.js.map} +0 -0
  916. /package/dist/{chunk-J7OH6R4K.js.map → chunk-VZRODIM3.js.map} +0 -0
  917. /package/dist/{chunk-55LSDABW.js.map → chunk-W22IKJE2.js.map} +0 -0
  918. /package/dist/{chunk-GLVXQU3E.js.map → chunk-X3YYQWOQ.js.map} +0 -0
  919. /package/dist/{chunk-M3OYTM5Z.js.map → chunk-YFXZEAYK.js.map} +0 -0
  920. /package/dist/{chunk-5JQMX2EH.js.map → chunk-ZAJAVEXY.js.map} +0 -0
  921. /package/dist/{chunk-26FSVNBL.js.map → chunk-ZICD77GM.js.map} +0 -0
  922. /package/dist/{chunk-IARAK3PK.js.map → chunk-ZUODRVHY.js.map} +0 -0
  923. /package/dist/{api-JDWL67WL.js.map → collection-facade-TLWIPI76.js.map} +0 -0
  924. /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
  925. /package/dist/{dead-filter-RHMNYOXP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
  926. /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
  927. /package/dist/{collection-facade-EJVIN2BY.js.map → derive-H2BJTLUI.js.map} +0 -0
  928. /package/dist/{computed-6FOFXQPE.js.map → enclave-AP3I5W7O.js.map} +0 -0
  929. /package/dist/{delegation-IHXOASHV.js.map → executor-KGWTNEQD.js.map} +0 -0
  930. /package/dist/{derive-CD3ZVIXK.js.map → executor-OVEXR6RT.js.map} +0 -0
  931. /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
  932. /package/dist/{enclave-KGEUW2GL.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
  933. /package/dist/{executor-EUPYHCLU.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
  934. /package/dist/{fanout-sidecar-NBDKKCHT.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
  935. /package/dist/{executor-KZ4B3PRT.js.map → find-N6345CNT.js.map} +0 -0
  936. /package/dist/{executor-MHUM2VZK.js.map → issue-5OKB6I2R.js.map} +0 -0
  937. /package/dist/{export-accessible-Z3NSZZHN.js.map → ledger-GFBKVPV4.js.map} +0 -0
  938. /package/dist/{extract-partition-VSKT35JG.js.map → liberate-3VDOT4KO.js.map} +0 -0
  939. /package/dist/{find-OH4BEULF.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
  940. /package/dist/{issue-AEOL6RXA.js.map → noydb-ZCJOYBDI.js.map} +0 -0
  941. /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
  942. /package/dist/{ledger-3LR3YO2W.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
  943. /package/dist/{liberate-XSEPRWEA.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  944. /package/dist/{link-set-NSUIX6BR.js.map → register-VAHONCID.js.map} +0 -0
  945. /package/dist/{noydb-POVTIVQ6.js.map → registry-7MLVD3VO.js.map} +0 -0
  946. /package/dist/{policy-Y7HL2KGA.js.map → registry-EPKPD5SM.js.map} +0 -0
  947. /package/dist/{public-envelope-NC7SPNMV.js.map → registry-P5T7PS2U.js.map} +0 -0
  948. /package/dist/{read-only-facade-5ADRJVTM.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
  949. /package/dist/{register-3D6R2MKN.js.map → revoke-FDRD6GRW.js.map} +0 -0
  950. /package/dist/{registry-AI4E46PD.js.map → signer-MUWEIUI6.js.map} +0 -0
  951. /package/dist/{registry-HSNQ4NBP.js.map → stale-OSQ7J3AA.js.map} +0 -0
  952. /package/dist/{registry-WIX6QCV5.js.map → storage-MVFCGEQE.js.map} +0 -0
  953. /package/dist/{store-coordination-provider-NJDDZ264.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
  954. /package/dist/{walk-SMAE4IEI.js.map → walk-SVNDIZ62.js.map} +0 -0
  955. /package/dist/{request-withdrawal-GU4XS2R5.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Cryptographic primitives — thin wrappers around the Web Crypto API.
3
+ *
4
+ * ## Design principle
5
+ *
6
+ * **Zero npm crypto dependencies.** Every operation uses `globalThis.crypto.subtle`,
7
+ * which is available natively in Node.js ≥ 18, all modern browsers, and
8
+ * Deno/Bun. This avoids supply-chain risk from third-party crypto packages and
9
+ * ensures the library stays auditable.
10
+ *
11
+ * ## Algorithms
12
+ *
13
+ * | Use case | Algorithm | Parameters |
14
+ * |----------|-----------|------------|
15
+ * | Key derivation | PBKDF2-SHA256 | 600,000 iterations, 32-byte salt |
16
+ * | Record encryption | AES-256-GCM | 12-byte random IV per operation |
17
+ * | DEK wrapping | AES-KW (RFC 3394) | 256-bit KEK |
18
+ * | Binary encrypt | AES-256-GCM | same as record encryption |
19
+ * | Integrity | HMAC-SHA256 | for presence channels |
20
+ * | Content hash | SHA-256 | for ledger and bundle integrity |
21
+ *
22
+ * ## Key lifecycle
23
+ *
24
+ * ```
25
+ * passphrase + salt
26
+ * └─► deriveKey() → KEK (CryptoKey, extractable: false)
27
+ * └─► wrapKey() → wrapped DEK bytes [stored in keyring]
28
+ * └─► unwrapKey() → DEK (CryptoKey) [memory only during session]
29
+ * └─► encrypt() / decrypt() → ciphertext / plaintext
30
+ * ```
31
+ *
32
+ * IVs are generated fresh by {@link generateIV} on every encrypt call.
33
+ * Reusing an IV with the same key would break GCM's authentication guarantee —
34
+ * this function should be the only place IVs are produced.
35
+ *
36
+ * @module
37
+ */
38
+ /**
39
+ * **EnclaveKey** — the opaque key type at the enclave seam.
40
+ *
41
+ * In noy-db's reference enclave this is `CryptoKey` (the Web Crypto API's
42
+ * key handle). A fork's enclave redefines this alias to its own key
43
+ * representation (e.g. `type EnclaveKey = null` for a keyless HSM-backed
44
+ * fork) — outside `kernel/enclave/**`, every consumer must treat it as
45
+ * opaque: never construct, inspect, or serialize it directly, only pass it
46
+ * between barrel functions (`encrypt`/`decrypt`/`wrapKey`/`unwrapKey`/…).
47
+ */
48
+ export type EnclaveKey = CryptoKey;
49
+ /** Derive a KEK from a passphrase and salt using PBKDF2-SHA256. */
50
+ export declare function deriveKey(passphrase: string, salt: Uint8Array): Promise<CryptoKey>;
51
+ /**
52
+ * Which AES algorithm/usage a {@link derivePassphraseKey} result is for:
53
+ * `'aes-kw'` mints a key-wrapping key (`wrapKey`/`unwrapKey`, e.g. for
54
+ * KEK derivation); `'aes-gcm'` mints a direct encrypt/decrypt key (e.g.
55
+ * for the wrap-DEKs primitive in `with-party/team/wrapped-deks.ts`).
56
+ */
57
+ export type PassphraseKeyUsage = 'aes-kw' | 'aes-gcm';
58
+ /**
59
+ * Derive a non-extractable AES key from a passphrase/credential and salt
60
+ * via PBKDF2-SHA256, generalizing {@link deriveKey}'s AES-KW derivation to
61
+ * also cover AES-GCM-usage keys. Callers pin their own `iterations` and
62
+ * `keyUsage` so an existing call site's exact parameters (and thus its
63
+ * derived-key bytes) are preserved verbatim when migrated onto this
64
+ * shared primitive — this is call-site consolidation, not a KDF change.
65
+ */
66
+ export declare function derivePassphraseKey(passphrase: string, salt: Uint8Array, params: {
67
+ iterations: number;
68
+ keyUsage: PassphraseKeyUsage;
69
+ }): Promise<CryptoKey>;
70
+ /** Generate a random AES-256-GCM data encryption key. */
71
+ export declare function generateDEK(): Promise<CryptoKey>;
72
+ /** Wrap (encrypt) a DEK with a KEK using AES-KW. Returns base64 string. */
73
+ export declare function wrapKey(dek: CryptoKey, kek: CryptoKey): Promise<string>;
74
+ /** Unwrap (decrypt) a DEK from base64 string using a KEK. */
75
+ export declare function unwrapKey(wrappedBase64: string, kek: CryptoKey): Promise<CryptoKey>;
76
+ /**
77
+ * AES-KW-wrap a per-record CEK under a collection/tier DEK. Returns base64.
78
+ * Deterministic over `(cek, dek)`.
79
+ */
80
+ export declare function wrapCek(cek: CryptoKey, dek: CryptoKey): Promise<string>;
81
+ /**
82
+ * Unwrap a per-record CEK from base64 under a collection/tier DEK. Throws
83
+ * `InvalidKeyError` if the wrapped bytes do not authenticate under the DEK.
84
+ */
85
+ export declare function unwrapCek(wrappedBase64: string, dek: CryptoKey): Promise<CryptoKey>;
86
+ /**
87
+ * Import a raw 32-byte AES-256-GCM record CEK (e.g. from a sealed-CEK
88
+ * delivery binding). Non-extractable, decrypt-only — the imported key is
89
+ * used solely to open the record's `_iv`/`_data` body under `decrypt()`.
90
+ */
91
+ export declare function importCek(rawKey: Uint8Array): Promise<CryptoKey>;
92
+ export interface EncryptResult {
93
+ iv: string;
94
+ data: string;
95
+ }
96
+ /** Encrypt plaintext JSON string with AES-256-GCM. Fresh IV per call. */
97
+ export declare function encrypt(plaintext: string, dek: CryptoKey): Promise<EncryptResult>;
98
+ /** Decrypt AES-256-GCM ciphertext. Throws on wrong key or tampered data. */
99
+ export declare function decrypt(ivBase64: string, dataBase64: string, dek: CryptoKey): Promise<string>;
100
+ /**
101
+ * Encrypt raw bytes with AES-256-GCM using a fresh random IV.
102
+ * Used by the attachment store so binary blobs avoid double base64 encoding
103
+ * (the existing `encrypt()` function calls `TextEncoder` on a string — here
104
+ * we pass the `Uint8Array` directly to `subtle.encrypt`).
105
+ */
106
+ export declare function encryptBytes(data: Uint8Array, dek: CryptoKey): Promise<EncryptResult>;
107
+ /**
108
+ * Decrypt AES-256-GCM ciphertext back to raw bytes.
109
+ * Counterpart to `encryptBytes`. Throws `TamperedError` on auth-tag failure.
110
+ */
111
+ export declare function decryptBytes(ivBase64: string, dataBase64: string, dek: CryptoKey): Promise<Uint8Array>;
112
+ /**
113
+ * SHA-256 hex digest of raw bytes. Used to derive content-addressed
114
+ * eTags for blob deduplication. Computed on plaintext bytes
115
+ * before compression and encryption so the eTag identifies content, not
116
+ * ciphertext, and survives re-encryption (key rotation, re-upload).
117
+ */
118
+ export declare function sha256Hex(data: Uint8Array): Promise<string>;
119
+ /**
120
+ * Compute HMAC-SHA-256(key, data) and return hex string.
121
+ *
122
+ * Used to derive content-addressed eTags that are opaque to the store:
123
+ * ```
124
+ * eTag = hmacSha256Hex(blobDEK, plaintext)
125
+ * ```
126
+ *
127
+ * Unlike a plain SHA-256, the HMAC is keyed by the vault-shared `_blob` DEK,
128
+ * so an attacker with store access cannot pre-compute eTags for known files.
129
+ * Deduplication still works within a vault (same key + same content = same eTag).
130
+ */
131
+ export declare function hmacSha256Hex(key: CryptoKey, data: Uint8Array): Promise<string>;
132
+ /**
133
+ * Encrypt raw bytes with AES-256-GCM using Additional Authenticated Data.
134
+ *
135
+ * The AAD binds each chunk to its parent blob and position, preventing
136
+ * chunk reorder, substitution, and truncation attacks:
137
+ * ```
138
+ * AAD = UTF-8("{eTag}:{chunkIndex}:{chunkCount}")
139
+ * ```
140
+ *
141
+ * The AAD is NOT stored — the reader reconstructs it from `BlobObject`
142
+ * metadata and passes it to `decryptBytesWithAAD`.
143
+ */
144
+ export declare function encryptBytesWithAAD(data: Uint8Array, dek: CryptoKey, aad: Uint8Array): Promise<EncryptResult>;
145
+ /**
146
+ * Decrypt AES-256-GCM ciphertext with AAD verification.
147
+ *
148
+ * If the AAD does not match the one used at encryption time (e.g. because
149
+ * a chunk was reordered or substituted from another blob), the GCM auth
150
+ * tag fails and this throws `TamperedError`.
151
+ */
152
+ export declare function decryptBytesWithAAD(ivBase64: string, dataBase64: string, dek: CryptoKey, aad: Uint8Array): Promise<Uint8Array>;
153
+ /**
154
+ * Derive an AES-256-GCM presence key from a collection DEK using HKDF-SHA256.
155
+ *
156
+ * The presence key is domain-separated from the data DEK by the fixed salt
157
+ * `'noydb-presence'` and the `info` = collection name. This means:
158
+ * - The adapter never sees the presence key.
159
+ * - Presence payloads rotate automatically when the collection DEK is rotated.
160
+ * - Revoked users cannot derive the new presence key after a DEK rotation.
161
+ *
162
+ * @param dek The collection's AES-256-GCM DEK (extractable).
163
+ * @param collectionName Used as the HKDF `info` parameter for domain separation.
164
+ * @returns A non-extractable AES-256-GCM key suitable for presence payload encryption.
165
+ */
166
+ export declare function derivePresenceKey(dek: CryptoKey, collectionName: string): Promise<CryptoKey>;
167
+ /**
168
+ * Derive a **per-field** AES-256-GCM key from a collection DEK using
169
+ * HKDF-SHA256, used to encrypt a single sensitive field into its own
170
+ * `_sealed[field]` envelope slot (structural group-encryption).
171
+ *
172
+ * Domain-separated from the data DEK (and from the presence/deterministic
173
+ * channels) by the fixed salt `'noydb-sealed'` and an `info` of
174
+ * `JSON.stringify(['noydb-sealed', collectionName, field])`. The JSON-array
175
+ * encoding is injective — each element is separately quoted/escaped — so
176
+ * collection `a/sealed/b` + field `c` cannot collide with collection `a` +
177
+ * field `b/sealed/c`. Each sensitive field gets a **distinct** key, so a
178
+ * `_sealed[a]` ciphertext does not authenticate under field `b`'s key —
179
+ * sealed fields are cryptographically isolated from one another. The
180
+ * collection name keeps the same field name in two collections from sharing a
181
+ * key, mirroring how `derivePresenceKey` / `encryptDeterministic` domain-separate.
182
+ *
183
+ * @param dek The collection's AES-256-GCM DEK (extractable).
184
+ * @param collectionName Part of the HKDF `info` for domain separation.
185
+ * @param field Sensitive field name — the rest of the `info`.
186
+ * @returns A non-extractable AES-256-GCM key for that field's sealed slot.
187
+ */
188
+ export declare function deriveSealedFieldKey(dek: CryptoKey, collectionName: string, field: string): Promise<CryptoKey>;
189
+ /**
190
+ * Derive a per-record sealed-field key from the record's **per-record CEK**
191
+ * rather than the collection DEK. Same HKDF construction as
192
+ * {@link deriveSealedFieldKey} but with salt `'noydb-sealed-cek'` (distinct
193
+ * from `'noydb-sealed'`), so a CEK-derived key can never collide with a
194
+ * DEK-derived one for the same `{collection, field}`.
195
+ *
196
+ * The point: the sealed ciphertext's only key now flows from the record's CEK.
197
+ * Dropping the record's wrapped `_cek` (crypto-shred / `forget`) makes the key
198
+ * — and thus `_sealed[field]` — unrecoverable, giving sealed fields the same
199
+ * erasure guarantee `_data` already has. The CEK must be extractable (it is —
200
+ * `unwrapCek`/`generateDEK` mint extractable keys).
201
+ *
202
+ * @param cek The record's AES-256-GCM CEK (extractable).
203
+ * @param collectionName Part of the HKDF `info` for domain separation.
204
+ * @param field Sensitive field name — the rest of the `info`.
205
+ * @returns A non-extractable AES-256-GCM key for that field's sealed slot.
206
+ */
207
+ export declare function deriveSealedFieldKeyFromCek(cek: CryptoKey, collectionName: string, field: string): Promise<CryptoKey>;
208
+ /**
209
+ * Derive the collection's **dedicated deterministic-index key** from its DEK
210
+ * via HKDF-SHA256 (L-1, #554).
211
+ *
212
+ * `_det` slots previously encrypted under the raw collection DEK — the same
213
+ * key `_data` uses with a *randomized*-IV regime while `_det` uses a
214
+ * *deterministic*-IV regime. Two IV regimes on one key is avoidable hygiene
215
+ * debt (~2^-96 theoretical collision), so the deterministic index now gets its
216
+ * own HKDF-separated key: salt `'noydb-det'`, info
217
+ * `JSON.stringify(['noydb-det'])` (the injective JSON-array domain tag, same
218
+ * convention as {@link deriveSealedFieldKey}). Per-field separation still
219
+ * comes from the `'<collection>/<field>'` context inside
220
+ * {@link encryptDeterministic}, exactly as before.
221
+ *
222
+ * The derived key stays **DEK-derived (collection-level)** on purpose: `_det`
223
+ * is carried verbatim through per-record CEK rotation (see
224
+ * `record-keys/sealing.ts`), so its key must not depend on the CEK. It rotates
225
+ * with the collection DEK, like the presence key.
226
+ *
227
+ * The key is minted **extractable** — {@link encryptDeterministic} derives its
228
+ * per-value IV via HKDF over the raw key bytes (an `exportKey` under the
229
+ * hood), which a non-extractable key would forbid. Same in-memory posture as
230
+ * the DEK itself (`generateDEK` mints extractable keys).
231
+ *
232
+ * @param dek The collection's AES-256-GCM DEK (extractable).
233
+ * @returns A dedicated AES-256-GCM key for the `_det` deterministic index.
234
+ */
235
+ export declare function deriveDeterministicKey(dek: CryptoKey): Promise<CryptoKey>;
236
+ /**
237
+ * Encrypt a plaintext string with AES-256-GCM and a deterministic,
238
+ * HKDF-derived IV.
239
+ *
240
+ * The same `{ dek, context, plaintext }` triple always produces the
241
+ * same `{ iv, data }` — call this twice and you can string-compare the
242
+ * ciphertexts to check equality of the inputs without decrypting them.
243
+ *
244
+ * @param context Domain-separation string — by convention
245
+ * `'<collection>/<field>'`. Different contexts encrypt
246
+ * the same plaintext to different ciphertexts, so
247
+ * `email` in collection `users` does not collide with
248
+ * `email` in collection `customers`.
249
+ */
250
+ export declare function encryptDeterministic(plaintext: string, dek: CryptoKey, context: string): Promise<EncryptResult>;
251
+ /**
252
+ * Counterpart to {@link encryptDeterministic}. The IV is stored
253
+ * alongside the ciphertext (exactly like the randomized path), so
254
+ * decrypt uses the stored IV and verifies the GCM auth tag — a tampered
255
+ * ciphertext throws `TamperedError` just like randomized AES-GCM.
256
+ */
257
+ export declare function decryptDeterministic(ivBase64: string, dataBase64: string, dek: CryptoKey): Promise<string>;
258
+ /** Generate a random 12-byte IV for AES-GCM. */
259
+ export declare function generateIV(): Uint8Array;
260
+ /** Generate a random 32-byte salt for PBKDF2. */
261
+ export declare function generateSalt(): Uint8Array;
262
+ export declare function bufferToBase64(buffer: ArrayBuffer | Uint8Array): string;
263
+ export declare function base64ToBuffer(base64: string): Uint8Array<ArrayBuffer>;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * **kernel/enclave** — the hub's crypto interior, behind one door.
3
+ *
4
+ * This barrel is **the fork-swap contract**: a sister project that wants a
5
+ * different crypto engine (a different KDF, a hardware-backed keystore, a
6
+ * post-quantum wrap algorithm, …) replaces the entire `kernel/enclave/`
7
+ * folder wholesale and only has to honor the exports below. Nothing outside
8
+ * `kernel/enclave/**` may deep-import `crypto.js` or `record-keys/*` directly
9
+ * — `scripts/check-architecture.mjs`'s `enclave-barrel-only` check enforces
10
+ * that mechanically. Import sites inside `kernel/enclave/**` keep their
11
+ * existing relative imports; this door is for everyone else.
12
+ *
13
+ * The export list is the OBSERVED contract — exactly the symbols consumed
14
+ * from outside this folder today — grouped by the module that defines them:
15
+ *
16
+ * - key type — `crypto.ts`: `EnclaveKey`, the opaque key type every
17
+ * barrel-facing signature traffics in (`= CryptoKey` in
18
+ * noy-db's reference enclave; a fork redefines it to its
19
+ * own key representation — see the type's own doc for
20
+ * the fork contract).
21
+ * - crypto ops — `crypto.ts`: AES-256-GCM encrypt/decrypt (+ bytes, AAD,
22
+ * deterministic variants), SHA-256 / HMAC-SHA-256 hashing.
23
+ * - key lifecycle — `crypto.ts` + `record-keys/lifecycle.ts`: KEK/DEK
24
+ * derivation, AES-KW wrap/unwrap, per-record CEK
25
+ * wrap/unwrap/import + resolution/re-wrap, HKDF-derived
26
+ * presence/sealed-field keys, base64 helpers.
27
+ * - record codec — `record-keys/record-codec.ts`: the per-record
28
+ * encode/decode engine.
29
+ * - sealing — `record-keys/sealing.ts`: the sealed-record grantor
30
+ * primitives (seal/revoke/rotate to an `at-*` host).
31
+ * - deterministic — `record-keys/deterministic.ts`: blind-equality lookup
32
+ * over deterministically-encrypted fields.
33
+ * - tombstone — `record-keys/tombstone.ts`: the erased-record residue.
34
+ * - envelope body — `record-keys/envelope-body.ts`: the C1 protected-body
35
+ * access contract (`openEnvelopeJson`,
36
+ * `writeEnvelopeBody`, `hasPerRecordKey`,
37
+ * `envelopeBodyForHash`) — the sanctioned door onto
38
+ * `_iv`/`_data`/`_cek`/`_sealed` for everyone outside
39
+ * this folder.
40
+ * - reserved envelopes — `record-keys/sealed-slots.ts`: `makeReservedEnvelopes`,
41
+ * the whole-envelope encrypt/decrypt door scoped to a
42
+ * declared collection-name prefix (e.g. `_dict_`) —
43
+ * `kernel/vault.ts` binds it for `DictionaryHandle`
44
+ * (#629 Task 4).
45
+ *
46
+ * Additive changes only — removing or renaming an export here is breaking
47
+ * for any fork. Frozen by `__tests__/enclave-surface-golden.test.ts`.
48
+ *
49
+ * **Refusal contract:** the barrel above is frozen — every symbol must
50
+ * exist in any fork — but the optional groups (sealing, deterministic,
51
+ * per-record-key lifecycle) MAY throw `EnclaveNotSupportedError` instead
52
+ * of implementing the reference behavior. The core groups (crypto ops,
53
+ * record codec, tombstone) MUST NOT throw it — they are load-bearing for
54
+ * every consumer regardless of which enclave is wired in. noy-db's own
55
+ * enclave supports every group, so it never throws this error.
56
+ */
57
+ export type { EnclaveKey } from './crypto.js';
58
+ export { encrypt, decrypt, encryptBytes, decryptBytes, encryptBytesWithAAD, decryptBytesWithAAD, encryptDeterministic, decryptDeterministic, sha256Hex, hmacSha256Hex, } from './crypto.js';
59
+ export { deriveKey, derivePassphraseKey, generateDEK, generateSalt, generateIV, wrapKey, unwrapKey, bufferToBase64, base64ToBuffer, derivePresenceKey, deriveDeterministicKey, deriveSealedFieldKey, deriveSealedFieldKeyFromCek, wrapCek, unwrapCek, importCek, } from './crypto.js';
60
+ export type { PassphraseKeyUsage } from './crypto.js';
61
+ export { resolveStableCek, rewrapBodyToDek, rewrapEnvelope, applyRewrappedBody, isRewrappedUnder } from './record-keys/lifecycle.js';
62
+ export type { RewrappedBody } from './record-keys/lifecycle.js';
63
+ export { RecordCodec } from './record-keys/record-codec.js';
64
+ export type { SealedShredSlot } from './record-keys/record-codec.js';
65
+ export { SEALED_CEK_NS, sealRecordToHost, revokeSealedRecord, rotateRecordCek } from './record-keys/sealing.js';
66
+ export type { SealingContext } from './record-keys/sealing.js';
67
+ export { findByDet, queryByDet } from './record-keys/deterministic.js';
68
+ export type { DeterministicContext } from './record-keys/deterministic.js';
69
+ export { isTombstone, isTombstoneShape, buildTombstone, isDeleteMarker, buildDeleteMarker } from './record-keys/tombstone.js';
70
+ export { openEnvelopeJson, writeEnvelopeBody, hasPerRecordKey, envelopeBodyForHash } from './record-keys/envelope-body.js';
71
+ export { makeReservedEnvelopes } from './record-keys/sealed-slots.js';
72
+ export { deriveVdigSlotKey } from './classify/vdig.js';
73
+ export { pbkdf2VerifyDigest } from './classify/digest.js';
74
+ export { ctEqualTags } from './classify/compare.js';
75
+ export { evaluateKofN } from './classify/kofn.js';
76
+ export { deriveClassifyIndexKey, deriveClassifyIndexSalt, mintBidxTag } from './classify/bidx.js';
77
+ export { computeBidxTarget } from './classify/find.js';
78
+ export { deriveBrokerProofBits, deriveBrokerProofKey, computeBrokerProof, issueChallenge, verifyBrokerProof, } from './broker/proof.js';
79
+ export type { BrokerProofCanonicalParts, VerifyBrokerProofArgs, IssuedChallenge } from './broker/proof.js';
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Deterministic-index lookups (`findByDet` / `queryByDet`).
3
+ *
4
+ * A collection that declares `deterministicFields` stamps a deterministic
5
+ * AES-GCM ciphertext for each such field on the envelope's `_det` slot at write
6
+ * time (the encrypt side lives in {@link RecordCodec.encryptRecord}). These
7
+ * helpers are the READ side: recompute the deterministic ciphertext for a query
8
+ * value and scan the adapter for envelopes whose `_det[field]` matches — no
9
+ * record bodies are decrypted during the scan, which is the whole point of a
10
+ * deterministic index.
11
+ *
12
+ * Both functions take a small {@link DeterministicContext} (the exact `this.*`
13
+ * the moving methods touched) instead of `this`, mirroring the `record-keys/`
14
+ * siblings. Behaviour is byte-identical to the inline code they replaced.
15
+ * Elevated records (_tier > 0) are skipped: invisible to tier-0 scans (#691).
16
+ *
17
+ * Internal service — not exported as a `@noy-db/hub/*` subpath.
18
+ */
19
+ import { type EnclaveKey } from '../crypto.js';
20
+ import type { NoydbStore } from '../../types.js';
21
+ import type { RecordCodec } from './record-codec.js';
22
+ /** Everything the moving deterministic-index methods touched on `this.*`. */
23
+ export interface DeterministicContext<T> {
24
+ /** Collection name — the deterministic-encryption AAD scope. */
25
+ readonly name: string;
26
+ /** Vault namespace the records live under. */
27
+ readonly vault: string;
28
+ /** The ciphertext store (scanned envelope-by-envelope). */
29
+ readonly adapter: NoydbStore;
30
+ /** Declared deterministic-index fields, or null when the feature is off. */
31
+ readonly deterministicFields: ReadonlySet<string> | null;
32
+ /** False on plaintext collections — det lookups are encrypted-only. */
33
+ readonly storeCiphertext: boolean;
34
+ /** The collection DEK resolver. */
35
+ getDEK(): Promise<EnclaveKey>;
36
+ /** The record codec — decrypts a matched envelope to T. */
37
+ readonly codec: RecordCodec<T>;
38
+ }
39
+ /**
40
+ * Find the first record whose deterministic field matches the given plaintext.
41
+ * Returns `null` when no match exists.
42
+ *
43
+ * Reads every envelope via the adapter and compares the stored `_det[field]` to
44
+ * a freshly computed deterministic ciphertext — no record bodies are decrypted
45
+ * during the search.
46
+ *
47
+ * Throws when the field is not declared in `deterministicFields`, so a typo
48
+ * fails loudly at the call site rather than silently returning null forever.
49
+ */
50
+ export declare function findByDet<T>(ctx: DeterministicContext<T>, field: string, value: unknown): Promise<T | null>;
51
+ /**
52
+ * Return every record whose deterministic field matches. Same semantics as
53
+ * {@link findByDet} but without the short-circuit.
54
+ */
55
+ export declare function queryByDet<T>(ctx: DeterministicContext<T>, field: string, value: unknown): Promise<T[]>;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Enclave body helpers — the C1 protected-body access contract.
3
+ *
4
+ * `EncryptedEnvelope` splits into a protocol header (family-owned; `_noydb`,
5
+ * `_v`, `_ts`, `_by`, `_source`, `_sourceTs`, `_tier`, `_elevatedBy`) and a
6
+ * protected body (enclave-owned; `_iv`, `_data`, `_cek`, `_det`, `_sealed`,
7
+ * `_debug`). The four helpers below are the ONLY sanctioned way for code
8
+ * outside `kernel/enclave/**` to read or construct the protected body —
9
+ * later migration batches move the ~121 direct `_iv`/`_data`/`_cek`/`_sealed`
10
+ * access sites in `with-*` services onto these.
11
+ *
12
+ * Each helper reproduces an EXISTING behavior byte-for-byte (see the
13
+ * per-function doc for its oracle call site) — this file introduces no new
14
+ * crypto or semantics, only a narrower door onto what already runs.
15
+ */
16
+ import { type EnclaveKey } from '../crypto.js';
17
+ import type { EncryptedEnvelope } from '../../types.js';
18
+ /**
19
+ * Open an envelope's protected body to its JSON text.
20
+ *
21
+ * Mirrors the dominant direct-decrypt call-site shape (e.g.
22
+ * `with-audit/consent/consent.ts`'s `decryptEntry`):
23
+ * - `opts.encrypted === false` (default `true`) → plaintext collection;
24
+ * returns `env._data` as-is, `key` untouched.
25
+ * - `env._cek` present → per-record-key envelope (mirrors
26
+ * `record-codec.ts`'s `resolveEnvelopeCek`): unwrap the CEK under `key`
27
+ * (the collection DEK), decrypt the body under the unwrapped CEK.
28
+ * - `env._cek` absent → legacy path, decrypt the body directly under `key`.
29
+ */
30
+ export declare function openEnvelopeJson(env: EncryptedEnvelope, key: EnclaveKey, opts?: {
31
+ encrypted?: boolean;
32
+ }): Promise<string>;
33
+ /**
34
+ * Produce the protected-body fields (`_iv`/`_data`/`_cek`) for an envelope a
35
+ * caller is assembling.
36
+ *
37
+ * - `opts.encrypted === false` (default `true`) → plaintext collection;
38
+ * emits `{ _iv: '', _data: json }` (today's `buildPlaintextEnvelope`
39
+ * shape), `key` untouched.
40
+ * - `opts.perRecordKey === true` → mints a fresh per-record CEK, encrypts
41
+ * the body under it, and AES-KW-wraps the CEK under `key` (mirrors
42
+ * `encryptJsonString`'s `cek !== undefined` branch, except the CEK is
43
+ * generated here rather than supplied by the caller).
44
+ * - otherwise → legacy path, body encrypted directly under `key`.
45
+ */
46
+ export declare function writeEnvelopeBody(json: string, key: EnclaveKey, opts?: {
47
+ encrypted?: boolean;
48
+ perRecordKey?: boolean;
49
+ }): Promise<Pick<EncryptedEnvelope, '_iv' | '_data' | '_cek'>>;
50
+ /**
51
+ * Discriminant: does this envelope carry a per-record key?
52
+ *
53
+ * Replaces raw `envelope._cek !== undefined` checks scattered across
54
+ * services — `_cek` presence is the format discriminant (see
55
+ * `record-codec.ts`'s `resolveEnvelopeCek` doc).
56
+ */
57
+ export declare function hasPerRecordKey(env: EncryptedEnvelope): boolean;
58
+ /**
59
+ * Canonical body string for the ledger hash chain — the exact bytes
60
+ * `with-commit/history/ledger/hash.ts`'s `envelopePayloadHash` derives from
61
+ * `_data` + `_sealed` + `_vdig` + `_bidx` before hashing:
62
+ * - no `_sealed`, no `_vdig`, no `_bidx` → `_data` alone (back-compat: every
63
+ * pre-existing ledger entry and non-sealed backup hashes byte-identically).
64
+ * - any map present → canonical JSON of `{ _data, _sealed?, _vdig?, _bidx? }`
65
+ * with sorted keys at every level, each map bound ONLY when present, so
66
+ * the result is independent of the maps' field-insertion / store-
67
+ * serialization order. `_bidx` is always the LAST segment, so a legacy
68
+ * `_vdig`-only / `_bidx`-absent envelope hashes byte-identically to its
69
+ * stage-2 value.
70
+ *
71
+ * Deliberately reimplements the two-key-object canonicalization inline
72
+ * rather than importing `with-commit/history/ledger/entry.ts`'s general
73
+ * `canonicalJson` — `kernel/enclave/**` may import only spine types (C3),
74
+ * never a `with-*` service. For this fixed `{ _data: string; _sealed:
75
+ * Record<string, string> }` shape the two produce byte-identical output
76
+ * (verified against that exact call site's oracle expression in
77
+ * `envelope-body.test.ts`).
78
+ */
79
+ export declare function envelopeBodyForHash(env: EncryptedEnvelope): string;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Per-record CEK lifecycle helpers for the WRITE path.
3
+ *
4
+ * These are the collection-coupled CEK operations, lifted off `Collection`
5
+ * behind narrow deps so the kernel file delegates instead of carrying the
6
+ * crypto inline:
7
+ *
8
+ * - {@link resolveStableCek} — the stable-CEK rule: an update or history
9
+ * snapshot reuses the record's existing CEK so a single CEK delete kills
10
+ * the whole version chain; a genuine insert (or legacy record being
11
+ * migrated) mints a fresh one.
12
+ * - {@link rewrapBodyToDek} — move a record body's wrapping from one DEK to
13
+ * another (tier elevate/demote, bundle re-key) WITHOUT changing the body
14
+ * key: unwrap the CEK under the source DEK, re-encrypt the body under the
15
+ * same CEK, re-wrap the CEK under the destination DEK. History-chain
16
+ * identity is preserved because the body key never changes.
17
+ *
18
+ * Both are pure functions over their deps — the `cekCache` ownership stays on
19
+ * the collection (its lifetime is tied to `load()`), so callers cache the
20
+ * returned key themselves.
21
+ */
22
+ import { type EnclaveKey } from '../crypto.js';
23
+ import type { EncryptedEnvelope } from '../../types.js';
24
+ import type { Lru } from '../../cache/index.js';
25
+ /** Dependencies {@link resolveStableCek} needs from its collection. */
26
+ export interface StableCekDeps {
27
+ /** The collection's per-record CEK cache (`null` → no caching). */
28
+ readonly cache: Lru<string, EnclaveKey> | null;
29
+ /** Read the record's live envelope (to recover an existing `_cek`). */
30
+ getLive(id: string): Promise<EncryptedEnvelope | null>;
31
+ /** The DEK the CEK is wrapped under (the collection DEK on the normal path). */
32
+ getDEK(): Promise<EnclaveKey>;
33
+ }
34
+ /**
35
+ * Resolve the stable CEK for a record on the write path. Caches the resolved
36
+ * key under `id` so an update + its history snapshot share one CEK.
37
+ */
38
+ export declare function resolveStableCek(deps: StableCekDeps, id: string): Promise<EnclaveKey>;
39
+ /** Re-wrapped body bytes + the (optional) CEK to cache. */
40
+ export interface RewrappedBody {
41
+ readonly _iv: string;
42
+ readonly _data: string;
43
+ /** Present iff the source envelope carried a CEK (per-record-key record). */
44
+ readonly _cek?: string;
45
+ /** The body key when one exists, so the caller can cache it; `null` for a legacy record. */
46
+ readonly cek: EnclaveKey | null;
47
+ }
48
+ /**
49
+ * Move a record body from `fromDek` to `toDek`.
50
+ *
51
+ * - Per-record-key record (`_cek` present): unwrap the CEK under `fromDek`,
52
+ * re-encrypt the body under the SAME CEK, re-wrap the CEK under `toDek`. The
53
+ * body key is unchanged → history-chain identity preserved.
54
+ * - Legacy record (no `_cek`): decrypt under `fromDek`, re-encrypt under `toDek`
55
+ * directly — byte-for-byte the pre-CEK behaviour.
56
+ */
57
+ export declare function rewrapBodyToDek(envelope: Pick<EncryptedEnvelope, '_iv' | '_data' | '_cek'>, fromDek: EnclaveKey, toDek: EnclaveKey): Promise<RewrappedBody>;
58
+ /**
59
+ * Merge an ALREADY-rewrapped {@link RewrappedBody} into `envelope`, keeping
60
+ * every field but the re-keyed body (`_iv`/`_data`/`_cek`) unchanged.
61
+ *
62
+ * Body-field access (`_iv`/`_data`/`_cek`) is sanctioned inside the enclave;
63
+ * this lets callers outside it get back a ready-to-store envelope without
64
+ * reading those fields themselves. Takes a body the caller has ALREADY
65
+ * computed (vs. {@link rewrapEnvelope}, which also runs `rewrapBodyToDek`)
66
+ * so a caller building a SECOND envelope from the same rewrap — a tier
67
+ * move's live write AND its pre-move `_history` snapshot, #728 — pays the
68
+ * unwrap/decrypt/encrypt/wrap crypto once, not twice.
69
+ */
70
+ export declare function applyRewrappedBody(envelope: EncryptedEnvelope, body: RewrappedBody): EncryptedEnvelope;
71
+ /**
72
+ * Move a FULL stored envelope from `fromDek` to `toDek`, preserving every
73
+ * field other than the re-keyed body (`_iv`/`_data`/`_cek`) unchanged.
74
+ * Mirrors the spread-merge idiom `with-audit/tiers/index.ts`'s
75
+ * `elevate()`/`demote()` use to apply `rewrapBodyToDek`'s result to the live
76
+ * envelope, generalized to any envelope shape (history callers don't bump
77
+ * `_v`/`_ts`/`_tier` the way a tier move does).
78
+ */
79
+ export declare function rewrapEnvelope(envelope: EncryptedEnvelope, fromDek: EnclaveKey, toDek: EnclaveKey): Promise<EncryptedEnvelope>;
80
+ /**
81
+ * Is `envelope` ALREADY wrapped under `dek` (a per-record CEK wrapped under
82
+ * `dek`, or — legacy, no `_cek` — the body itself decryptable under `dek`)?
83
+ *
84
+ * A toDek-first idempotency check for retry-safe rewrap loops (#712 crash
85
+ * atomicity, `with-commit/history/history.ts`'s `rewrapHistory`): a crash
86
+ * mid-rewrap can strand some entries already moved to `toDek` while others
87
+ * remain under `fromDek`. Calling this with `toDek` before attempting the
88
+ * `fromDek` rewrap lets the caller skip an already-migrated entry instead of
89
+ * re-wrapping it (a re-wrap would be a correctness no-op but doubles as an
90
+ * unnecessary write) — and, more importantly, tells a retry loop that this
91
+ * entry needs no `fromDek` unwrap attempt at all, so a crash that landed some
92
+ * entries under `toDek` doesn't wedge on those already-moved entries.
93
+ *
94
+ * AES-KW (CEK unwrap) and AES-GCM (direct decrypt) are both authenticated —
95
+ * unwrap/decrypt under the wrong key throws, never silently returns garbage
96
+ * — so a caught error here reliably means "not wrapped under `dek`", not a
97
+ * corrupt envelope (a genuinely corrupt envelope also throws under the
98
+ * correct key, but callers that reach this helper only do so as a
99
+ * best-effort probe before their own decisive fromDek attempt, which still
100
+ * surfaces real corruption).
101
+ *
102
+ * Body-field access (`_iv`/`_data`/`_cek`) is sanctioned inside the enclave —
103
+ * this is the sanctioned door so callers outside it (history.ts) never read
104
+ * those fields themselves, preserving the check-architecture body-access
105
+ * ratchet.
106
+ */
107
+ export declare function isRewrappedUnder(envelope: Pick<EncryptedEnvelope, '_iv' | '_data' | '_cek'>, dek: EnclaveKey): Promise<boolean>;