@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
@@ -1,766 +0,0 @@
1
- import {
2
- isDeleteMarker,
3
- isTombstone
4
- } from "./chunk-PVC2FBCQ.js";
5
- import {
6
- blindedEqual,
7
- openVdigPayload,
8
- sealVdigPayload
9
- } from "./chunk-5UOPIPZC.js";
10
- import {
11
- dualReadSealedSlot,
12
- parseSealedSlot
13
- } from "./chunk-UWZ7O4NR.js";
14
- import {
15
- NOYDB_FORMAT_VERSION,
16
- SealedHandle
17
- } from "./chunk-REWTMYSF.js";
18
- import {
19
- mintBidxTag
20
- } from "./chunk-VFQOE76I.js";
21
- import {
22
- VDIG_ITERATIONS,
23
- normalizeForVerify,
24
- pbkdf2VerifyDigest
25
- } from "./chunk-LP7BEXCT.js";
26
- import {
27
- base64ToBuffer,
28
- bufferToBase64,
29
- decrypt,
30
- deriveDeterministicKey,
31
- deriveSealedFieldKey,
32
- deriveSealedFieldKeyFromCek,
33
- encrypt,
34
- encryptDeterministic,
35
- generateDEK,
36
- generateSalt,
37
- unwrapCek,
38
- wrapCek
39
- } from "./chunk-5HZULLHE.js";
40
- import {
41
- ClassifiedConfigError,
42
- ClassifiedRotationError,
43
- DebugReservedFieldError,
44
- RecordCekNotFoundError,
45
- SchemaValidationError,
46
- TamperedError,
47
- ValidationError
48
- } from "./chunk-OJ64XMPJ.js";
49
-
50
- // src/kernel/enclave/record-keys/lifecycle.ts
51
- async function resolveStableCek(deps, id) {
52
- const cached = deps.cache?.get(id);
53
- if (cached) return cached;
54
- const live = await deps.getLive(id);
55
- if (live?._cek !== void 0) {
56
- const cek = await unwrapCek(live._cek, await deps.getDEK());
57
- deps.cache?.set(id, cek, 1);
58
- return cek;
59
- }
60
- const fresh = await generateDEK();
61
- deps.cache?.set(id, fresh, 1);
62
- return fresh;
63
- }
64
- async function rewrapBodyToDek(envelope, fromDek, toDek) {
65
- if (envelope._cek !== void 0) {
66
- const cek = await unwrapCek(envelope._cek, fromDek);
67
- const plaintext2 = await decrypt(envelope._iv, envelope._data, cek);
68
- const { iv: iv2, data: data2 } = await encrypt(plaintext2, cek);
69
- return { _iv: iv2, _data: data2, _cek: await wrapCek(cek, toDek), cek };
70
- }
71
- const plaintext = await decrypt(envelope._iv, envelope._data, fromDek);
72
- const { iv, data } = await encrypt(plaintext, toDek);
73
- return { _iv: iv, _data: data, cek: null };
74
- }
75
-
76
- // src/kernel/enclave/classify/write.ts
77
- async function mintVdigSlot(rawValue, policy, prevBlob, cek, collection, recordId, field) {
78
- const normalized = normalizeForVerify(policy.normalize, rawValue);
79
- let prev = null;
80
- if (prevBlob !== void 0) {
81
- try {
82
- prev = await openVdigPayload(prevBlob, cek, collection, recordId, field);
83
- } catch {
84
- throw new TamperedError();
85
- }
86
- if (!Number.isInteger(prev.iter) || prev.iter < 1) {
87
- throw new TamperedError();
88
- }
89
- }
90
- if (prev !== null && policy.notLastN > 0) {
91
- const history = [prev.cur, ...prev.ring ?? []];
92
- for (const entry of history) {
93
- const digest = await pbkdf2VerifyDigest(normalized, base64ToBuffer(entry.salt), prev.iter);
94
- if (await blindedEqual(digest, base64ToBuffer(entry.hash))) {
95
- throw new ClassifiedRotationError(collection, field, "password was used recently");
96
- }
97
- }
98
- }
99
- const salt = generateSalt();
100
- const hash = await pbkdf2VerifyDigest(normalized, salt, VDIG_ITERATIONS);
101
- const ring = prev !== null && policy.notLastN > 0 ? [...prev.ring ?? [], { salt: prev.cur.salt, hash: prev.cur.hash }].slice(-policy.notLastN) : void 0;
102
- const payload = {
103
- v: 1,
104
- alg: "PBKDF2-SHA256",
105
- iter: VDIG_ITERATIONS,
106
- cur: { salt: bufferToBase64(salt), hash: bufferToBase64(hash), at: (/* @__PURE__ */ new Date()).toISOString() },
107
- ...ring !== void 0 && ring.length > 0 ? { ring } : {}
108
- };
109
- return sealVdigPayload(payload, cek, collection, recordId, field);
110
- }
111
-
112
- // src/kernel/schema.ts
113
- async function validateSchemaInput(schema, value, context) {
114
- const result = await schema["~standard"].validate(value);
115
- if (result.issues !== void 0 && result.issues.length > 0) {
116
- throw new SchemaValidationError(
117
- `Schema validation failed on ${context}: ${summarizeIssues(result.issues)}`,
118
- result.issues,
119
- "input"
120
- );
121
- }
122
- return result.value;
123
- }
124
- async function validateSchemaOutput(schema, value, context) {
125
- const result = await schema["~standard"].validate(value);
126
- if (result.issues !== void 0 && result.issues.length > 0) {
127
- throw new SchemaValidationError(
128
- `Stored data for ${context} does not match the current schema \u2014 schema drift? ${summarizeIssues(result.issues)}`,
129
- result.issues,
130
- "output"
131
- );
132
- }
133
- return result.value;
134
- }
135
- function summarizeIssues(issues) {
136
- const shown = issues.slice(0, 3).map((issue) => {
137
- const pathStr = formatPath(issue.path);
138
- return `${pathStr}: ${issue.message}`;
139
- });
140
- const suffix = issues.length > 3 ? ` (+${issues.length - 3} more)` : "";
141
- return shown.join("; ") + suffix;
142
- }
143
- function formatPath(path) {
144
- if (!path || path.length === 0) return "root";
145
- return path.map(
146
- (segment) => typeof segment === "object" && segment !== null ? String(segment.key) : String(segment)
147
- ).join(".");
148
- }
149
-
150
- // src/kernel/enclave/record-keys/record-codec.ts
151
- var RecordCodec = class _RecordCodec {
152
- constructor(ctx) {
153
- this.ctx = ctx;
154
- }
155
- ctx;
156
- // ──────────────────────────────────────────────────────────────────────
157
- // Low-level literal builders
158
- // ──────────────────────────────────────────────────────────────────────
159
- /**
160
- * Assemble a canonical ciphertext body envelope literal from already-computed
161
- * parts. Pure, no crypto. Each call stamps its own `_ts` — provenance carries
162
- * a SEPARATE timestamp (computed by the caller), so the two never share one.
163
- */
164
- static buildEnvelope(p) {
165
- return {
166
- _noydb: NOYDB_FORMAT_VERSION,
167
- _v: p.version,
168
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
169
- _iv: p.iv,
170
- _data: p.data,
171
- ...p.by !== void 0 ? { _by: p.by } : {},
172
- ...p.cek !== void 0 ? { _cek: p.cek } : {},
173
- ...p.provenance !== void 0 ? { _source: p.provenance.source, _sourceTs: p.provenance.sourceTs } : {},
174
- ...p.extra ?? {}
175
- };
176
- }
177
- /** Plaintext (`_iv:''`) body envelope — the `!storeCiphertext` shape. */
178
- static buildPlaintextEnvelope(p) {
179
- return {
180
- _noydb: NOYDB_FORMAT_VERSION,
181
- _v: p.version,
182
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
183
- _iv: "",
184
- _data: p.data,
185
- ...p.by !== void 0 ? { _by: p.by } : {},
186
- ...p.provenance !== void 0 ? { _source: p.provenance.source, _sourceTs: p.provenance.sourceTs } : {}
187
- };
188
- }
189
- // ──────────────────────────────────────────────────────────────────────
190
- // Write path
191
- // ──────────────────────────────────────────────────────────────────────
192
- /**
193
- * Build a debug-plaintext envelope: the record's own fields inlined as
194
- * top-level keys beside the reserved `_`-metadata, with `_debug: 1` and an
195
- * empty `_data`. Lets native store tooling read the record without
196
- * unwrapping. Only reached for user collections under `debugPlaintext`
197
- * (see {@link encryptRecord}). Rejects `_`-prefixed record fields, which
198
- * would collide with the reserved metadata namespace.
199
- */
200
- buildDebugEnvelope(record, version, source, sourceTs) {
201
- const rec = record;
202
- for (const key of Object.keys(rec)) {
203
- if (key.startsWith("_")) throw new DebugReservedFieldError(this.ctx.name, key);
204
- }
205
- return {
206
- _noydb: NOYDB_FORMAT_VERSION,
207
- _v: version,
208
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
209
- _iv: "",
210
- _data: "",
211
- _by: this.ctx.actor,
212
- _debug: NOYDB_FORMAT_VERSION,
213
- ...this.ctx.provenance && source !== void 0 ? { _source: source, _sourceTs: sourceTs ?? (/* @__PURE__ */ new Date()).toISOString() } : {},
214
- ...rec
215
- };
216
- }
217
- /**
218
- * Encrypt a JSON body into an envelope.
219
- *
220
- * When `cek` is supplied (per-record CEK collections), the body is
221
- * encrypted under the CEK and the CEK is AES-KW-wrapped under the
222
- * collection DEK and stamped on `_cek`. When `cek` is omitted, the legacy
223
- * path encrypts the body directly under the collection DEK — byte-identical
224
- * to pre-CEK behaviour, so non-adopting collections pay nothing.
225
- */
226
- async encryptJsonString(json, version, cek, source, sourceTs) {
227
- const by = this.ctx.actor;
228
- const provenance = this.ctx.provenance && source !== void 0 ? { source, sourceTs: sourceTs ?? (/* @__PURE__ */ new Date()).toISOString() } : void 0;
229
- if (!this.ctx.storeCiphertext) {
230
- return _RecordCodec.buildPlaintextEnvelope({ version, data: json, by, provenance });
231
- }
232
- const dek = await this.ctx.getDEK();
233
- if (cek !== void 0) {
234
- const { iv: iv2, data: data2 } = await encrypt(json, cek);
235
- const wrapped = await wrapCek(cek, dek);
236
- return _RecordCodec.buildEnvelope({ version, iv: iv2, data: data2, by, cek: wrapped, provenance });
237
- }
238
- const { iv, data } = await encrypt(json, dek);
239
- return _RecordCodec.buildEnvelope({ version, iv, data, by, provenance });
240
- }
241
- async encryptRecord(record, version, cek, source, sourceTs, vdig) {
242
- if (!this.ctx.storeCiphertext && this.ctx.debugPlaintext && !this.ctx.name.startsWith("_")) {
243
- return this.buildDebugEnvelope(record, version, source, sourceTs);
244
- }
245
- if (this.ctx.storeCiphertext) {
246
- const declared = this.ctx.vdigFields;
247
- const storedClassified = /* @__PURE__ */ new Set();
248
- if (vdig?.prev?._vdig) for (const k of Object.keys(vdig.prev._vdig)) storedClassified.add(k);
249
- if (vdig?.prev?._bidx) for (const k of Object.keys(vdig.prev._bidx)) storedClassified.add(k);
250
- if (this.ctx.classifiedMarkerDigestOnly !== void 0) {
251
- for (const k of await this.ctx.classifiedMarkerDigestOnly()) storedClassified.add(k);
252
- }
253
- let undeclared;
254
- for (const field of storedClassified) {
255
- if (declared === null || !declared.has(field)) {
256
- undeclared = field;
257
- break;
258
- }
259
- }
260
- if (undeclared !== void 0) {
261
- throw new ClassifiedConfigError(
262
- this.ctx.name,
263
- `this collection has classified digest-only field "${undeclared}" but this handle does not declare it \u2014 refusing to write (would drop its tag or serialize the secret as plaintext)`
264
- );
265
- }
266
- }
267
- let openRecord = record;
268
- let sealed;
269
- if (this.ctx.storeCiphertext && this.ctx.sensitiveFields.size > 0) {
270
- const src = record;
271
- const dek2 = await this.ctx.getDEK();
272
- const open = { ...src };
273
- const slots = {};
274
- for (const field of this.ctx.sensitiveFields) {
275
- if (!(field in src)) continue;
276
- const value = src[field];
277
- if (value === void 0) continue;
278
- const fieldKey = cek !== void 0 ? await deriveSealedFieldKeyFromCek(cek, this.ctx.name, field) : await deriveSealedFieldKey(dek2, this.ctx.name, field);
279
- const { iv, data } = await encrypt(JSON.stringify(value), fieldKey);
280
- slots[field] = `${iv}:${data}`;
281
- delete open[field];
282
- }
283
- if (Object.keys(slots).length > 0) {
284
- sealed = slots;
285
- openRecord = open;
286
- }
287
- }
288
- let vdigOut;
289
- let bidxOutMap;
290
- if (this.ctx.vdigFields !== null && this.ctx.vdigFields.size > 0 && this.ctx.storeCiphertext) {
291
- if (vdig === void 0) {
292
- throw new Error(
293
- `RecordCodec.encryptRecord: collection "${this.ctx.name}" declares digest-only classified fields but this write path supplied no { id, prev } context \u2014 it would silently destroy _vdig (C6). Caller bug.`
294
- );
295
- }
296
- if (cek === void 0) {
297
- throw new Error(
298
- `RecordCodec.encryptRecord: digest-only fields require a per-record CEK (R1 invariant) \u2014 collection "${this.ctx.name}" wrote without one. Caller bug.`
299
- );
300
- }
301
- const open = { ...openRecord };
302
- const out = {};
303
- const bidxOut = {};
304
- let bidxDek;
305
- for (const [field, policy] of this.ctx.vdigFields) {
306
- const value = open[field];
307
- const prevBlob = vdig.prev?._vdig?.[field];
308
- if (vdig.prev?._sealed?.[field] !== void 0) {
309
- throw new ClassifiedConfigError(
310
- this.ctx.name,
311
- `field "${field}" carries a recoverable _sealed slot from a previous storage form \u2014 recoverable \u2194 digest-only transitions are refused (R6); migrate explicitly`
312
- );
313
- }
314
- if (value === void 0) {
315
- if (prevBlob !== void 0) {
316
- out[field] = prevBlob;
317
- const prevTag = vdig.prev?._bidx?.[field];
318
- if (prevTag !== void 0) bidxOut[field] = prevTag;
319
- }
320
- continue;
321
- }
322
- if (value === null) {
323
- delete open[field];
324
- continue;
325
- }
326
- if (typeof value !== "string") {
327
- throw new ValidationError(
328
- `digest-only classified field "${field}" in "${this.ctx.name}" must be a string (rotate) or null (clear), got ${typeof value}`
329
- );
330
- }
331
- out[field] = await mintVdigSlot(value, policy, prevBlob, cek, this.ctx.name, vdig.id, field);
332
- if (policy.equatable === true) {
333
- if (bidxDek === void 0) bidxDek = await this.ctx.getDEK();
334
- const normalized = normalizeForVerify(policy.normalize, value);
335
- bidxOut[field] = await mintBidxTag(normalized, bidxDek, this.ctx.name, field);
336
- }
337
- delete open[field];
338
- }
339
- openRecord = open;
340
- if (Object.keys(out).length > 0) vdigOut = out;
341
- if (Object.keys(bidxOut).length > 0) bidxOutMap = bidxOut;
342
- }
343
- const base = await this.encryptJsonString(JSON.stringify(openRecord), version, cek, source, sourceTs);
344
- const withSealed = sealed ? { ...base, _sealed: sealed } : base;
345
- const withVdig = vdigOut ? { ...withSealed, _vdig: vdigOut } : withSealed;
346
- const withBidx = bidxOutMap ? { ...withVdig, _bidx: bidxOutMap } : withVdig;
347
- if (!this.ctx.deterministicFields || !this.ctx.storeCiphertext) return withBidx;
348
- const dek = await this.ctx.getDEK();
349
- const detKey = await deriveDeterministicKey(dek);
350
- const rec = record;
351
- const det = {};
352
- for (const field of this.ctx.deterministicFields) {
353
- if (this.ctx.sensitiveFields.has(field)) continue;
354
- if (this.ctx.vdigFields?.has(field)) continue;
355
- const value = rec[field];
356
- if (value === void 0 || value === null) continue;
357
- const plaintext = typeof value === "string" ? value : JSON.stringify(value);
358
- const { iv, data } = await encryptDeterministic(plaintext, detKey, `${this.ctx.name}/${field}`);
359
- det[field] = `${iv}:${data}`;
360
- }
361
- if (Object.keys(det).length === 0) return withBidx;
362
- return { ...withBidx, _det: det };
363
- }
364
- // ──────────────────────────────────────────────────────────────────────
365
- // Read path
366
- // ──────────────────────────────────────────────────────────────────────
367
- /**
368
- * Resolve the per-record CEK for a stored envelope, or `undefined` for a
369
- * legacy (`_cek`-absent) envelope. Unwraps `_cek` under the collection DEK and
370
- * memoises it in the CEK cache under `id` (when supplied) so repeated reads of
371
- * the same record skip the unwrap. Shared by the body-decrypt path
372
- * ({@link decryptJsonString}) and the sealed-field path ({@link decryptRecord}
373
- * / {@link toCacheRecord}) so both agree on the record's key.
374
- */
375
- async resolveEnvelopeCek(envelope, id) {
376
- if (envelope._cek === void 0) return void 0;
377
- const cached = id !== void 0 ? this.ctx.cekCache?.get(id) : void 0;
378
- if (cached !== void 0) return cached;
379
- const dek = await this.ctx.getDEK();
380
- const cek = await unwrapCek(envelope._cek, dek);
381
- if (id !== void 0) this.ctx.cekCache?.set(id, cek, 1);
382
- return cek;
383
- }
384
- /**
385
- * Low-level: decrypt an envelope and return the raw JSON string.
386
- *
387
- * `_cek` presence is the format discriminant (NOT `this.perRecordCek`),
388
- * so a mixed vault — and a recipient that never opted into
389
- * `perRecordKeys` — decrypts both legacy and CEK records:
390
- * - `_cek` present → unwrap the CEK under the collection DEK, decrypt the
391
- * body under the CEK (cache the unwrapped CEK so repeated reads skip it).
392
- * - `_cek` absent → legacy path, body decrypts directly under the
393
- * collection DEK.
394
- *
395
- * The optional `id` lets reads populate the CEK cache; it is omitted by
396
- * callers (history, conflict merge) that have only the envelope.
397
- */
398
- async decryptJsonString(envelope, id) {
399
- if (isTombstone(envelope, this.ctx.storeCiphertext) || isDeleteMarker(envelope)) return null;
400
- if (!this.ctx.storeCiphertext) {
401
- if (envelope._debug !== void 0) {
402
- const rec = {};
403
- for (const [key, value] of Object.entries(envelope)) {
404
- if (!key.startsWith("_")) rec[key] = value;
405
- }
406
- return JSON.stringify(rec);
407
- }
408
- return envelope._data === "" ? null : envelope._data;
409
- }
410
- const cek = await this.resolveEnvelopeCek(envelope, id);
411
- if (cek !== void 0) return decrypt(envelope._iv, envelope._data, cek);
412
- const dek = await this.ctx.getDEK();
413
- return decrypt(envelope._iv, envelope._data, dek);
414
- }
415
- /**
416
- * Unseal a single `_sealed[field]` slot to its plaintext value: derive the
417
- * per-field key off the collection DEK, AES-GCM-decrypt the `iv:data` blob,
418
- * and JSON-parse the result. Shared by both the inline-decrypt path and a
419
- * {@link Sealed} handle's `reveal()` — so the on-demand reveal and the eager
420
- * materialisation always agree byte-for-byte.
421
- */
422
- async unsealField(field, blob, cek) {
423
- const dek = await this.ctx.getDEK();
424
- return JSON.parse(await dualReadSealedSlot(blob, field, this.ctx.name, cek, dek));
425
- }
426
- /**
427
- * Classify a live envelope's `_sealed` slots for crypto-shred completeness.
428
- * `forget()` drops `_cek`/`_sealed` but
429
- * RETAINS the collection DEK, so only a slot keyed off the per-record CEK is
430
- * genuinely shredded by the tombstone; a legacy slot keyed off the
431
- * collection DEK survives in any synced/backup copy.
432
- *
433
- * Mirrors {@link unsealField}'s dual-read split: try the CEK-derived key per
434
- * slot — success → `shreddable`, AES-GCM auth failure → `dekResidue`. With no
435
- * `_cek` (pure legacy collection-DEK sealing) ALL slots are residue.
436
- */
437
- async classifySealedShred(live) {
438
- const slots = [];
439
- if (live._vdig !== void 0 && live._cek !== void 0) {
440
- for (const field of Object.keys(live._vdig)) {
441
- slots.push({
442
- field,
443
- class: live._bidx?.[field] !== void 0 ? "live-shreddable+dekResidue-in-backups" : "shreddable"
444
- });
445
- }
446
- }
447
- const sealed = live._sealed;
448
- if (sealed === void 0) return { slots };
449
- const cek = await this.resolveEnvelopeCek(live);
450
- for (const [field, blob] of Object.entries(sealed)) {
451
- if (cek === void 0) {
452
- slots.push({ field, class: "dekResidue" });
453
- continue;
454
- }
455
- const { iv, data } = parseSealedSlot(blob);
456
- try {
457
- await decrypt(iv, data, await deriveSealedFieldKeyFromCek(cek, this.ctx.name, field));
458
- slots.push({ field, class: "shreddable" });
459
- } catch {
460
- slots.push({ field, class: "dekResidue" });
461
- }
462
- }
463
- return { slots };
464
- }
465
- /**
466
- * Build a non-leaking {@link Sealed} handle over a sealed field's ciphertext.
467
- * The handle captures only the ciphertext `blob` and a closure to
468
- * {@link unsealField}; the plaintext is never stored on it — so the handle
469
- * may sit in the working-set cache (or be logged/serialised) without
470
- * exposing the value, which decrypts only on `reveal()`.
471
- */
472
- makeSealedHandle(field, blob, cek) {
473
- return new SealedHandle(() => this.unsealField(field, blob, cek));
474
- }
475
- /**
476
- * Replace a record's declared sensitive fields with {@link Sealed} handles
477
- * built from the just-written envelope's `_sealed` slots, leaving every
478
- * other field as its plaintext value. Used to populate the cache on the
479
- * write path without ever materialising sealed plaintext into it. Returns
480
- * `record` untouched when the collection seals nothing.
481
- */
482
- async toCacheRecord(record, envelope, id) {
483
- const sealed = envelope._sealed;
484
- if (sealed === void 0 || !this.ctx.storeCiphertext || this.ctx.sensitiveFields.size === 0) {
485
- return record;
486
- }
487
- const cek = await this.resolveEnvelopeCek(envelope, id);
488
- const clone = { ...record };
489
- for (const [field, blob] of Object.entries(sealed)) {
490
- clone[field] = this.makeSealedHandle(field, blob, cek);
491
- }
492
- return clone;
493
- }
494
- /**
495
- * Decrypt an envelope into a record of type `T`.
496
- *
497
- * When a schema is attached, the decrypted value is validated before
498
- * being returned. A divergence between the stored bytes and the
499
- * current schema throws `SchemaValidationError` with
500
- * `direction: 'output'` — silently returning drifted data would
501
- * propagate garbage into the UI and break the whole point of having
502
- * a schema.
503
- *
504
- * `skipValidation` exists for history reads: when calling
505
- * `getVersion()` the caller is explicitly asking for an old snapshot
506
- * that may predate a schema change, so validating it would be a
507
- * false positive. Every non-history read leaves this flag `false`.
508
- */
509
- async decryptRecord(envelope, opts = {}) {
510
- const json = await this.decryptJsonString(envelope, opts.id);
511
- if (json === null) return null;
512
- let parsed = JSON.parse(json);
513
- if (this.ctx.crdtMode && parsed !== null && typeof parsed === "object" && "_crdt" in parsed) {
514
- parsed = this.ctx.crdtStrategy.resolveCrdtSnapshot(parsed);
515
- }
516
- let record = parsed;
517
- if (envelope._sealed !== void 0 && this.ctx.storeCiphertext) {
518
- const sealedCek = await this.resolveEnvelopeCek(envelope, opts.id);
519
- const target = record;
520
- for (const [field, blob] of Object.entries(envelope._sealed)) {
521
- target[field] = opts.sealedAsHandles ? this.makeSealedHandle(field, blob, sealedCek) : await this.unsealField(field, blob, sealedCek);
522
- }
523
- }
524
- const sealedAsHandles = opts.sealedAsHandles === true && envelope._sealed !== void 0;
525
- if (this.ctx.schema !== void 0 && !opts.skipValidation && !sealedAsHandles) {
526
- record = await validateSchemaOutput(
527
- this.ctx.schema,
528
- record,
529
- `${this.ctx.name}@v${envelope._v}`
530
- );
531
- }
532
- return record;
533
- }
534
- };
535
-
536
- // src/kernel/enclave/record-keys/sealing.ts
537
- var subtle = globalThis.crypto.subtle;
538
- var SEALED_CEK_NS = "_sealed_cek";
539
- async function sealRecordToHost(ctx, collection, id, hostSealer, opts) {
540
- if (collection.includes("/")) throw new ValidationError(`sealRecordToHost: collection "${collection}" must not contain "/"`);
541
- if (id.includes("/")) throw new ValidationError(`sealRecordToHost: id "${id}" must not contain "/"`);
542
- if (Number.isNaN(Date.parse(opts.expiresAt))) {
543
- throw new ValidationError(`sealRecordToHost: expiresAt "${opts.expiresAt}" is not a valid ISO 8601 timestamp`);
544
- }
545
- const live = await ctx.adapter.get(ctx.vault, collection, id);
546
- if (!live || live._cek === void 0) {
547
- throw new RecordCekNotFoundError(collection, id);
548
- }
549
- const dek = await ctx.getDEK(collection);
550
- const cek = await unwrapCek(live._cek, dek);
551
- const rawCek = await subtle.exportKey("raw", cek);
552
- const cekB64 = bufferToBase64(rawCek);
553
- const hint = await hostSealer.publishRecipientHint();
554
- if (hint.pid.includes("/")) throw new ValidationError(`sealRecordToHost: recipient pid "${hint.pid}" must not contain "/"`);
555
- const binding = {
556
- collection,
557
- id,
558
- cek: cekB64,
559
- expiresAt: opts.expiresAt
560
- };
561
- const sealed = await hostSealer.sealForRecipient(
562
- new TextEncoder().encode(JSON.stringify(binding)),
563
- hint
564
- );
565
- const delivery = {
566
- v: 1,
567
- _noydb_sealed_cek: 1,
568
- pid: hint.pid,
569
- payload: bufferToBase64(sealed),
570
- expiresAt: opts.expiresAt
571
- };
572
- const envelopeKey = `${collection}/${id}/${hint.pid}`;
573
- const prior = await ctx.adapter.get(ctx.vault, SEALED_CEK_NS, envelopeKey);
574
- const env = {
575
- _noydb: NOYDB_FORMAT_VERSION,
576
- _v: (prior?._v ?? 0) + 1,
577
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
578
- // AES-GCM bypassed — the sealing layer is the security boundary, exactly
579
- // like the managed-passphrase `_meta/sealed-passphrase` envelope.
580
- _iv: "",
581
- _data: JSON.stringify(delivery),
582
- ...ctx.actor ? { _by: ctx.actor } : {}
583
- };
584
- await ctx.adapter.put(ctx.vault, SEALED_CEK_NS, envelopeKey, env);
585
- return { pid: hint.pid, envelopeKey };
586
- }
587
- async function revokeSealedRecord(ctx, collection, id, pid, opts) {
588
- if (opts?.hard === true) {
589
- await rotateRecordCek(ctx, collection, id);
590
- return;
591
- }
592
- await ctx.adapter.delete(ctx.vault, SEALED_CEK_NS, `${collection}/${id}/${pid}`);
593
- }
594
- async function rotateRecordCek(ctx, collection, id) {
595
- const live = await ctx.adapter.get(ctx.vault, collection, id);
596
- if (!live || live._cek === void 0) {
597
- throw new RecordCekNotFoundError(collection, id);
598
- }
599
- const dek = await ctx.getDEK(collection);
600
- const oldCek = await unwrapCek(live._cek, dek);
601
- const json = await decrypt(live._iv, live._data, oldCek);
602
- const newCek = await generateDEK();
603
- const { iv, data } = await encrypt(json, newCek);
604
- let sealedOut;
605
- if (live._sealed !== void 0) {
606
- const out = {};
607
- for (const [field, slot] of Object.entries(live._sealed)) {
608
- const plaintext = await dualReadSealedSlot(slot, field, collection, oldCek, dek);
609
- const resealed = await encrypt(plaintext, await deriveSealedFieldKeyFromCek(newCek, collection, field));
610
- out[field] = `${resealed.iv}:${resealed.data}`;
611
- }
612
- sealedOut = out;
613
- }
614
- let vdigOut;
615
- if (live._vdig !== void 0) {
616
- const out = {};
617
- for (const [field, blob] of Object.entries(live._vdig)) {
618
- const payload = await openVdigPayload(blob, oldCek, collection, id, field);
619
- out[field] = await sealVdigPayload(payload, newCek, collection, id, field);
620
- }
621
- vdigOut = out;
622
- }
623
- const env = {
624
- _noydb: NOYDB_FORMAT_VERSION,
625
- _v: live._v + 1,
626
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
627
- _iv: iv,
628
- _data: data,
629
- _cek: await wrapCek(newCek, dek),
630
- ...ctx.actor ? { _by: ctx.actor } : {},
631
- ...live._tier !== void 0 ? { _tier: live._tier } : {},
632
- ...live._det !== void 0 ? { _det: live._det } : {},
633
- // `_bidx` (equality-index tag) is DEK-rooted and CEK-independent, so it is
634
- // carried forward VERBATIM — not recomputed — unlike `_vdig`/`_sealed`
635
- // below, which are CEK-bound and must be re-sealed under the new CEK.
636
- // Dropping this line would silently orphan the equality index on rotation
637
- // (the #306 Slice-A data-loss bug, replayed on the index).
638
- ...live._bidx !== void 0 ? { _bidx: live._bidx } : {},
639
- // Re-encrypt sealed (`sensitive`) fields under the new CEK. Sealed
640
- // keys derive off the per-record CEK, so the rotated record's old CEK is
641
- // destroyed here — carrying the old `_sealed` slots forward verbatim would
642
- // orphan them (unreadable under the new CEK). `sealedOut` holds the slots
643
- // dual-read from the old CEK (or the legacy DEK) and re-sealed under newCek.
644
- ...sealedOut !== void 0 ? { _sealed: sealedOut } : {},
645
- ...vdigOut !== void 0 ? { _vdig: vdigOut } : {}
646
- };
647
- await ctx.adapter.put(ctx.vault, collection, id, env);
648
- await ctx.invalidateRecordCaches(collection, id);
649
- const prefix = `${collection}/${id}/`;
650
- const keys = await ctx.adapter.list(ctx.vault, SEALED_CEK_NS);
651
- for (const key of keys) {
652
- if (key.startsWith(prefix)) {
653
- await ctx.adapter.delete(ctx.vault, SEALED_CEK_NS, key);
654
- }
655
- }
656
- }
657
-
658
- // src/kernel/enclave/record-keys/deterministic.ts
659
- async function detTargets(ctx, field, value) {
660
- const dek = await ctx.getDEK();
661
- const detKey = await deriveDeterministicKey(dek);
662
- const plaintext = typeof value === "string" ? value : JSON.stringify(value);
663
- const context = `${ctx.name}/${field}`;
664
- const [current, legacy] = await Promise.all([
665
- encryptDeterministic(plaintext, detKey, context),
666
- encryptDeterministic(plaintext, dek, context)
667
- ]);
668
- return [`${current.iv}:${current.data}`, `${legacy.iv}:${legacy.data}`];
669
- }
670
- function assertDetField(ctx, field, method) {
671
- if (!ctx.deterministicFields || !ctx.deterministicFields.has(field)) {
672
- throw new Error(
673
- `Collection "${ctx.name}": field "${field}" is not declared in deterministicFields`
674
- );
675
- }
676
- if (!ctx.storeCiphertext) {
677
- throw new Error(
678
- `Collection "${ctx.name}": ${method} is only meaningful on encrypted collections`
679
- );
680
- }
681
- }
682
- async function findByDet(ctx, field, value) {
683
- assertDetField(ctx, field, "findByDet");
684
- const [target, legacyTarget] = await detTargets(ctx, field, value);
685
- const ids = await ctx.adapter.list(ctx.vault, ctx.name);
686
- for (const id of ids) {
687
- const env = await ctx.adapter.get(ctx.vault, ctx.name, id);
688
- if (!env || !env._det) continue;
689
- if (env._det[field] === target || env._det[field] === legacyTarget) {
690
- return ctx.codec.decryptRecord(env);
691
- }
692
- }
693
- return null;
694
- }
695
- async function queryByDet(ctx, field, value) {
696
- assertDetField(ctx, field, "queryByDet");
697
- const [target, legacyTarget] = await detTargets(ctx, field, value);
698
- const ids = await ctx.adapter.list(ctx.vault, ctx.name);
699
- const matches = [];
700
- for (const id of ids) {
701
- const env = await ctx.adapter.get(ctx.vault, ctx.name, id);
702
- if (!env || !env._det) continue;
703
- if (env._det[field] === target || env._det[field] === legacyTarget) {
704
- const rec = await ctx.codec.decryptRecord(env);
705
- if (rec !== null) matches.push(rec);
706
- }
707
- }
708
- return matches;
709
- }
710
-
711
- // src/kernel/enclave/record-keys/envelope-body.ts
712
- async function openEnvelopeJson(env, key, opts) {
713
- if (opts?.encrypted === false) return env._data;
714
- if (env._cek !== void 0) {
715
- const cek = await unwrapCek(env._cek, key);
716
- return decrypt(env._iv, env._data, cek);
717
- }
718
- return decrypt(env._iv, env._data, key);
719
- }
720
- async function writeEnvelopeBody(json, key, opts) {
721
- if (opts?.encrypted === false) return { _iv: "", _data: json };
722
- if (opts?.perRecordKey === true) {
723
- const cek = await generateDEK();
724
- const { iv: iv2, data: data2 } = await encrypt(json, cek);
725
- const wrapped = await wrapCek(cek, key);
726
- return { _iv: iv2, _data: data2, _cek: wrapped };
727
- }
728
- const { iv, data } = await encrypt(json, key);
729
- return { _iv: iv, _data: data };
730
- }
731
- function hasPerRecordKey(env) {
732
- return env._cek !== void 0;
733
- }
734
- function envelopeBodyForHash(env) {
735
- if (env._sealed === void 0 && env._vdig === void 0 && env._bidx === void 0) return env._data;
736
- const mapPart = (key, map) => {
737
- const parts = Object.keys(map).sort().map(
738
- (k) => `${JSON.stringify(k)}:${JSON.stringify(map[k])}`
739
- );
740
- return `${JSON.stringify(key)}:{${parts.join(",")}}`;
741
- };
742
- const segments = [`"_data":${JSON.stringify(env._data)}`];
743
- if (env._sealed !== void 0) segments.push(mapPart("_sealed", env._sealed));
744
- if (env._vdig !== void 0) segments.push(mapPart("_vdig", env._vdig));
745
- if (env._bidx !== void 0) segments.push(mapPart("_bidx", env._bidx));
746
- return `{${segments.join(",")}}`;
747
- }
748
-
749
- export {
750
- resolveStableCek,
751
- rewrapBodyToDek,
752
- validateSchemaInput,
753
- validateSchemaOutput,
754
- RecordCodec,
755
- SEALED_CEK_NS,
756
- sealRecordToHost,
757
- revokeSealedRecord,
758
- rotateRecordCek,
759
- findByDet,
760
- queryByDet,
761
- openEnvelopeJson,
762
- writeEnvelopeBody,
763
- hasPerRecordKey,
764
- envelopeBodyForHash
765
- };
766
- //# sourceMappingURL=chunk-7TAV3BFQ.js.map