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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (958) hide show
  1. package/dist/aggregate/index.js +5 -5
  2. package/dist/api-ZGS6LCOF.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/backup-BJ57IKAO.js +242 -0
  6. package/dist/backup-BJ57IKAO.js.map +1 -0
  7. package/dist/blobs/index.js +13 -11
  8. package/dist/blobs/index.js.map +1 -1
  9. package/dist/broker/index.js +92 -0
  10. package/dist/broker/index.js.map +1 -0
  11. package/dist/bundle/index.js +25 -22
  12. package/dist/bundle/index.js.map +1 -1
  13. package/dist/by/index.js +2 -2
  14. package/dist/cargo/index.js +31 -32
  15. package/dist/chunk-2NVOWNI3.js +167 -0
  16. package/dist/chunk-2NVOWNI3.js.map +1 -0
  17. package/dist/chunk-3B5VVCNY.js +71 -0
  18. package/dist/chunk-3LQ2YKO4.js +230 -0
  19. package/dist/chunk-3QCRBHCY.js +54 -0
  20. package/dist/chunk-454JXE57.js +1697 -0
  21. package/dist/chunk-454JXE57.js.map +1 -0
  22. package/dist/chunk-4CTHCN4J.js +480 -0
  23. package/dist/chunk-4CTHCN4J.js.map +1 -0
  24. package/dist/chunk-4GPE63GU.js +111 -0
  25. package/dist/chunk-4GPE63GU.js.map +1 -0
  26. package/dist/chunk-4JBYV75E.js +150 -0
  27. package/dist/chunk-4NXKCLLQ.js +97 -0
  28. package/dist/chunk-4VNQOLML.js +29 -0
  29. package/dist/chunk-4VNQOLML.js.map +1 -0
  30. package/dist/chunk-5M5DVGV7.js +69 -0
  31. package/dist/chunk-5O3XF4DV.js +150 -0
  32. package/dist/chunk-5O3XF4DV.js.map +1 -0
  33. package/dist/chunk-5YOLBEQ6.js +30 -0
  34. package/dist/chunk-6CRIV7DE.js +129 -0
  35. package/dist/chunk-6JTIAGHD.js +621 -0
  36. package/dist/chunk-6JTIAGHD.js.map +1 -0
  37. package/dist/chunk-6QTNZJBS.js +255 -0
  38. package/dist/chunk-6T2SCQRU.js +86 -0
  39. package/dist/chunk-7DSTRQIJ.js +45 -0
  40. package/dist/chunk-AUSTCW2X.js +589 -0
  41. package/dist/chunk-B3HJYUOF.js +209 -0
  42. package/dist/chunk-BDVFPG6Y.js +164 -0
  43. package/dist/chunk-BIOUI4HL.js +1554 -0
  44. package/dist/chunk-BIOUI4HL.js.map +1 -0
  45. package/dist/chunk-CAF6WOK7.js +36 -0
  46. package/dist/chunk-CDUQTA3Z.js +381 -0
  47. package/dist/chunk-CDUQTA3Z.js.map +1 -0
  48. package/dist/chunk-CIE2BASH.js +404 -0
  49. package/dist/chunk-CRI4OUV4.js +42 -0
  50. package/dist/chunk-DLG74CNB.js +91 -0
  51. package/dist/chunk-E5ZQT5KX.js +30 -0
  52. package/dist/chunk-E5ZQT5KX.js.map +1 -0
  53. package/dist/chunk-EQO2UVP4.js +247 -0
  54. package/dist/chunk-EQO2UVP4.js.map +1 -0
  55. package/dist/chunk-ERJ7FU55.js +367 -0
  56. package/dist/chunk-EVVGJDRQ.js +205 -0
  57. package/dist/chunk-EVX47VBM.js +74 -0
  58. package/dist/chunk-EVX47VBM.js.map +1 -0
  59. package/dist/chunk-EXK7QRWF.js +59 -0
  60. package/dist/chunk-EYZ6IQ6X.js +202 -0
  61. package/dist/chunk-F64IRYG3.js +45 -0
  62. package/dist/chunk-FHS2HQSH.js +823 -0
  63. package/dist/chunk-FM3G3NOY.js +206 -0
  64. package/dist/chunk-FM3G3NOY.js.map +1 -0
  65. package/dist/chunk-FUG4SFN3.js +36 -0
  66. package/dist/chunk-FUG4SFN3.js.map +1 -0
  67. package/dist/chunk-GKEWXIV5.js +80 -0
  68. package/dist/chunk-GTGPO5KW.js +59 -0
  69. package/dist/chunk-HB3RFQSC.js +95 -0
  70. package/dist/chunk-HDMEGAQE.js +957 -0
  71. package/dist/chunk-HDMEGAQE.js.map +1 -0
  72. package/dist/chunk-HDQIIUPH.js +135 -0
  73. package/dist/chunk-HDQIIUPH.js.map +1 -0
  74. package/dist/chunk-HTJQYHZP.js +344 -0
  75. package/dist/chunk-HTJQYHZP.js.map +1 -0
  76. package/dist/chunk-I6GALP6E.js +99 -0
  77. package/dist/chunk-IGJCYUT5.js +99 -0
  78. package/dist/chunk-IGJCYUT5.js.map +1 -0
  79. package/dist/chunk-IL6POWCW.js +130 -0
  80. package/dist/chunk-IU6SNYX6.js +117 -0
  81. package/dist/chunk-J2ZX2XUV.js +778 -0
  82. package/dist/chunk-JIF24JPM.js +495 -0
  83. package/dist/chunk-JIF24JPM.js.map +1 -0
  84. package/dist/chunk-JK733I5V.js +23 -0
  85. package/dist/chunk-JK733I5V.js.map +1 -0
  86. package/dist/chunk-JKJOGPZN.js +29 -0
  87. package/dist/chunk-JNAI2HN2.js +32 -0
  88. package/dist/chunk-JNAI2HN2.js.map +1 -0
  89. package/dist/chunk-JZUV47FZ.js +41 -0
  90. package/dist/chunk-K5IMOGHB.js +30 -0
  91. package/dist/chunk-KPZS5QAQ.js +151 -0
  92. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  93. package/dist/chunk-KSKBRKGJ.js +291 -0
  94. package/dist/chunk-KSKBRKGJ.js.map +1 -0
  95. package/dist/chunk-LASZKVMO.js +382 -0
  96. package/dist/chunk-LXEXBTKL.js +515 -0
  97. package/dist/chunk-LXEXBTKL.js.map +1 -0
  98. package/dist/chunk-M4CV6BRT.js +524 -0
  99. package/dist/chunk-M4CV6BRT.js.map +1 -0
  100. package/dist/chunk-MEFJPTZ4.js +371 -0
  101. package/dist/chunk-MEFJPTZ4.js.map +1 -0
  102. package/dist/chunk-MV43JSJF.js +265 -0
  103. package/dist/chunk-MV43JSJF.js.map +1 -0
  104. package/dist/chunk-NJ4EOKMB.js +392 -0
  105. package/dist/chunk-NJ4EOKMB.js.map +1 -0
  106. package/dist/chunk-NR5LT5RY.js +135 -0
  107. package/dist/chunk-NWSGI5C7.js +261 -0
  108. package/dist/chunk-OSDB5WW3.js +739 -0
  109. package/dist/chunk-OSDB5WW3.js.map +1 -0
  110. package/dist/chunk-PN2XMATY.js +37 -0
  111. package/dist/chunk-PN2XMATY.js.map +1 -0
  112. package/dist/chunk-Q5VNKNE5.js +70 -0
  113. package/dist/chunk-QLWMEXCT.js +21 -0
  114. package/dist/chunk-QRB7NAOJ.js +123 -0
  115. package/dist/chunk-R4ROFEYC.js +74 -0
  116. package/dist/chunk-RCVJZMFE.js +164 -0
  117. package/dist/chunk-RCVJZMFE.js.map +1 -0
  118. package/dist/chunk-RIX4V2TB.js +367 -0
  119. package/dist/chunk-RYCTDFUX.js +40 -0
  120. package/dist/chunk-RZ5SVOYR.js +155 -0
  121. package/dist/chunk-SLFHQTTW.js +99 -0
  122. package/dist/chunk-SNZ6URZZ.js +2782 -0
  123. package/dist/chunk-SNZ6URZZ.js.map +1 -0
  124. package/dist/chunk-T2FFWNPK.js +75 -0
  125. package/dist/chunk-UNFPPVNI.js +23 -0
  126. package/dist/chunk-VFUPHI2Z.js +333 -0
  127. package/dist/chunk-VFUPHI2Z.js.map +1 -0
  128. package/dist/chunk-VLFCJYTL.js +235 -0
  129. package/dist/chunk-VN3DBQAU.js +124 -0
  130. package/dist/chunk-VYYM3MEN.js +98 -0
  131. package/dist/chunk-VYYM3MEN.js.map +1 -0
  132. package/dist/chunk-VZRODIM3.js +49 -0
  133. package/dist/chunk-W22IKJE2.js +94 -0
  134. package/dist/chunk-X3YYQWOQ.js +155 -0
  135. package/dist/chunk-X7QBD67R.js +14405 -0
  136. package/dist/chunk-X7QBD67R.js.map +1 -0
  137. package/dist/chunk-XDYREZWE.js +1128 -0
  138. package/dist/chunk-XDYREZWE.js.map +1 -0
  139. package/dist/chunk-XWZVFISC.js +720 -0
  140. package/dist/chunk-XWZVFISC.js.map +1 -0
  141. package/dist/chunk-YFXZEAYK.js +85 -0
  142. package/dist/chunk-ZAJAVEXY.js +50 -0
  143. package/dist/chunk-ZICD77GM.js +34 -0
  144. package/dist/chunk-ZJ2AK4V7.js +38 -0
  145. package/dist/chunk-ZUODRVHY.js +14 -0
  146. package/dist/classified/index.js +5 -5
  147. package/dist/classified-marker-CZKA6ITE.js +28 -0
  148. package/dist/classified-marker-CZKA6ITE.js.map +1 -0
  149. package/dist/collection-facade-TLWIPI76.js +44 -0
  150. package/dist/computed-ZIQTYTDI.js +11 -0
  151. package/dist/consent/index.js +9 -9
  152. package/dist/crdt/index.js +1 -1
  153. package/dist/dead-filter-ESOBZZP5.js +28 -0
  154. package/dist/delegation-W7ZV2322.js +25 -0
  155. package/dist/derivations/index.js +12 -12
  156. package/dist/derive-H2BJTLUI.js +21 -0
  157. package/dist/enclave-AP3I5W7O.js +141 -0
  158. package/dist/executor-KGWTNEQD.js +9 -0
  159. package/dist/executor-OVEXR6RT.js +9 -0
  160. package/dist/executor-UNEH5ZYH.js +25 -0
  161. package/dist/export-accessible-PCMXSUZS.js +23 -0
  162. package/dist/extract-partition-SWHFSYJO.js +38 -0
  163. package/dist/fanout-sidecar-A765THMX.js +74 -0
  164. package/dist/find-N6345CNT.js +11 -0
  165. package/dist/forget/index.js +10 -10
  166. package/dist/forget/index.js.map +1 -1
  167. package/dist/guards/index.js +6 -6
  168. package/dist/history/index.js +14 -11
  169. package/dist/history/index.js.map +1 -1
  170. package/dist/i18n/index.js +21 -19
  171. package/dist/i18n/index.js.map +1 -1
  172. package/dist/index.d.ts +307 -1493
  173. package/dist/index.js +309 -190
  174. package/dist/index.js.map +1 -1
  175. package/dist/indexing/index.js +7 -7
  176. package/dist/indexing/index.js.map +1 -1
  177. package/dist/issue-5OKB6I2R.js +19 -0
  178. package/dist/kernel/best-effort-revert.d.ts +52 -0
  179. package/dist/kernel/cache/index.d.ts +10 -0
  180. package/dist/kernel/cache/lru.d.ts +97 -0
  181. package/dist/kernel/cache/policy.d.ts +32 -0
  182. package/dist/kernel/collection-config.d.ts +809 -0
  183. package/dist/kernel/collection.d.ts +1522 -0
  184. package/dist/kernel/constants.d.ts +18 -0
  185. package/dist/kernel/debug.d.ts +25 -0
  186. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  187. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  188. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  189. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  190. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  191. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  192. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  193. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  194. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  195. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  196. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  197. package/dist/kernel/enclave/crypto.d.ts +263 -0
  198. package/dist/kernel/enclave/index.d.ts +79 -0
  199. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  200. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  201. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  202. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  203. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  204. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  205. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  206. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  207. package/dist/kernel/env-check.d.ts +1 -0
  208. package/dist/kernel/errors.d.ts +1922 -0
  209. package/dist/kernel/events.d.ts +11 -0
  210. package/dist/kernel/lazy-count.d.ts +13 -0
  211. package/dist/kernel/memory-store.d.ts +17 -0
  212. package/dist/kernel/mutation.d.ts +14 -0
  213. package/dist/kernel/noydb.d.ts +826 -0
  214. package/dist/kernel/paths.d.ts +25 -0
  215. package/dist/kernel/query/builder.d.ts +520 -0
  216. package/dist/kernel/query/index.d.ts +31 -0
  217. package/dist/kernel/query/join.d.ts +205 -0
  218. package/dist/kernel/query/live.d.ts +111 -0
  219. package/dist/kernel/query/predicate.d.ts +139 -0
  220. package/dist/kernel/query/scan-builder.d.ts +334 -0
  221. package/dist/kernel/refs.d.ts +205 -0
  222. package/dist/kernel/schema.d.ts +134 -0
  223. package/dist/kernel/sync-policy.d.ts +188 -0
  224. package/dist/kernel/tier-visibility.d.ts +54 -0
  225. package/dist/kernel/types.d.ts +3239 -0
  226. package/dist/kernel/util/discriminant.d.ts +58 -0
  227. package/dist/kernel/util/index.d.ts +14 -0
  228. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  229. package/dist/kernel/validation.d.ts +130 -0
  230. package/dist/kernel/vault.d.ts +1740 -0
  231. package/dist/kernel/via/compose.d.ts +144 -0
  232. package/dist/kernel/via/dispatch.d.ts +195 -0
  233. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  234. package/dist/kernel/via/graph.d.ts +166 -0
  235. package/dist/kernel/via/index.d.ts +200 -0
  236. package/dist/kernel/via/pipeline.d.ts +266 -0
  237. package/dist/kernel/via/reconcile.d.ts +153 -0
  238. package/dist/kernel/via/taint-binding.d.ts +66 -0
  239. package/dist/kernel/write-queue.d.ts +46 -0
  240. package/dist/ledger-GFBKVPV4.js +42 -0
  241. package/dist/legacy/bundle.d.ts +30 -0
  242. package/dist/legacy/kernel.d.ts +33 -0
  243. package/dist/liberate-3VDOT4KO.js +24 -0
  244. package/dist/link-set-Z7Q2ASFX.js +31 -0
  245. package/dist/materialized-views/index.js +19 -17
  246. package/dist/noydb-ZCJOYBDI.js +68 -0
  247. package/dist/on/index.js +9 -9
  248. package/dist/overlay-views/index.js +4 -4
  249. package/dist/periods/index.js +12 -12
  250. package/dist/pod/index.js +11 -11
  251. package/dist/policy-Z3RUAIY2.js +41 -0
  252. package/dist/port/as/index.d.ts +26 -0
  253. package/dist/port/at/index.d.ts +18 -0
  254. package/dist/port/by/default-provider.d.ts +9 -0
  255. package/dist/port/by/index.d.ts +17 -0
  256. package/dist/port/by/types.d.ts +86 -0
  257. package/dist/port/in/index.d.ts +21 -0
  258. package/dist/port/on/index.d.ts +27 -0
  259. package/dist/port/to/index.d.ts +19 -0
  260. package/dist/port/ui/index.d.ts +21 -0
  261. package/dist/port/with/blob-strategy.d.ts +98 -0
  262. package/dist/port/with/broker-strategy.d.ts +84 -0
  263. package/dist/port/with/capabilities.d.ts +31 -0
  264. package/dist/port/with/classified-marker.d.ts +9 -0
  265. package/dist/port/with/classified-strategy.d.ts +62 -0
  266. package/dist/port/with/computed-strategy.d.ts +19 -0
  267. package/dist/port/with/i18n-strategy.d.ts +175 -0
  268. package/dist/port/with/index.d.ts +18 -0
  269. package/dist/port/with/lazy-strategy.d.ts +48 -0
  270. package/dist/port/with/lookup-strategy.d.ts +129 -0
  271. package/dist/port/with/service-bus.d.ts +156 -0
  272. package/dist/port/with/team-strategy.d.ts +36 -0
  273. package/dist/port/with/write-hooks.d.ts +34 -0
  274. package/dist/portability/index.js +8 -8
  275. package/dist/post-register-JTH76BLY.js +60 -0
  276. package/dist/post-register-JTH76BLY.js.map +1 -0
  277. package/dist/public-envelope-B4KNWVUA.js +32 -0
  278. package/dist/purge-scope-FGNNLWHD.js +24 -0
  279. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  280. package/dist/query/index.js +7 -7
  281. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  282. package/dist/register-VAHONCID.js +23 -0
  283. package/dist/registry-7MLVD3VO.js +19 -0
  284. package/dist/registry-EPKPD5SM.js +18 -0
  285. package/dist/registry-P5T7PS2U.js +9 -0
  286. package/dist/request-withdrawal-TI3A5WPS.js +31 -0
  287. package/dist/reveal-DIBHLUZX.js +38 -0
  288. package/dist/reveal-DIBHLUZX.js.map +1 -0
  289. package/dist/revoke-FDRD6GRW.js +24 -0
  290. package/dist/satellites/index.js +1 -1
  291. package/dist/sealed-record/index.js +12 -12
  292. package/dist/seed-Q6M2IZFL.js +231 -0
  293. package/dist/seed-Q6M2IZFL.js.map +1 -0
  294. package/dist/session/index.js +9 -9
  295. package/dist/shadow/index.js +2 -2
  296. package/dist/signer-MUWEIUI6.js +25 -0
  297. package/dist/snapshots/index.js +10 -10
  298. package/dist/stale-OSQ7J3AA.js +29 -0
  299. package/dist/storage-MVFCGEQE.js +23 -0
  300. package/dist/store-coordination-provider-64OEZFGS.js +142 -0
  301. package/dist/sync/index.js +9 -9
  302. package/dist/team/index.js +15 -15
  303. package/dist/tiers/index.js +14 -10
  304. package/dist/to/index.js +1 -2
  305. package/dist/tx/index.js +3 -3
  306. package/dist/util/index.js +1 -1
  307. package/dist/verify-ZASTRNPR.js +140 -0
  308. package/dist/verify-ZASTRNPR.js.map +1 -0
  309. package/dist/via/blob/active.d.ts +34 -0
  310. package/dist/via/blob/binding.d.ts +86 -0
  311. package/dist/via/blob/index.d.ts +34 -0
  312. package/dist/via/classified/active.d.ts +3 -0
  313. package/dist/via/classified/binding.d.ts +83 -0
  314. package/dist/via/classified/config-drift.d.ts +34 -0
  315. package/dist/via/classified/descriptor.d.ts +66 -0
  316. package/dist/via/classified/errors.d.ts +19 -0
  317. package/dist/via/classified/guards.d.ts +23 -0
  318. package/dist/via/classified/index.d.ts +11 -0
  319. package/dist/via/classified/presets.d.ts +65 -0
  320. package/dist/via/classified/resolve.d.ts +9 -0
  321. package/dist/via/classified/strategy.d.ts +11 -0
  322. package/dist/via/classified/validators.d.ts +3 -0
  323. package/dist/via/classified/write.d.ts +4 -0
  324. package/dist/via/computed/binding.d.ts +34 -0
  325. package/dist/via/computed/descriptor.d.ts +35 -0
  326. package/dist/via/i18n/active.d.ts +28 -0
  327. package/dist/via/i18n/binding.d.ts +36 -0
  328. package/dist/via/i18n/core.d.ts +267 -0
  329. package/dist/via/i18n/densify.d.ts +24 -0
  330. package/dist/via/i18n/dictionary.d.ts +200 -0
  331. package/dist/via/i18n/index.d.ts +21 -0
  332. package/dist/via/i18n/policy.d.ts +44 -0
  333. package/dist/via/i18n/script.d.ts +26 -0
  334. package/dist/via/i18n/strategy.d.ts +13 -0
  335. package/dist/via/lookup/active.d.ts +19 -0
  336. package/dist/via/lookup/binding.d.ts +99 -0
  337. package/dist/via/lookup/descriptor.d.ts +123 -0
  338. package/dist/via/lookup/handle.d.ts +220 -0
  339. package/dist/via/lookup/index.d.ts +17 -0
  340. package/dist/via/lookup/registry.d.ts +228 -0
  341. package/dist/via/lookup/snapshot.d.ts +67 -0
  342. package/dist/via/money/arith.d.ts +68 -0
  343. package/dist/via/money/binding.d.ts +21 -0
  344. package/dist/via/money/branded.d.ts +61 -0
  345. package/dist/via/money/descriptor.d.ts +73 -0
  346. package/dist/via/money/fixed-point.d.ts +51 -0
  347. package/dist/via/money/index.d.ts +15 -0
  348. package/dist/via/money/iso4217.d.ts +6 -0
  349. package/dist/via/money/money-reducer.d.ts +33 -0
  350. package/dist/via/money/normalize.d.ts +105 -0
  351. package/dist/via/money/paths.d.ts +61 -0
  352. package/dist/via/money/where.d.ts +127 -0
  353. package/dist/walk-SVNDIZ62.js +241 -0
  354. package/dist/with/index.js +11 -11
  355. package/dist/with-audit/attestation/active.d.ts +10 -0
  356. package/dist/with-audit/attestation/index.d.ts +16 -0
  357. package/dist/with-audit/attestation/issue.d.ts +29 -0
  358. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  359. package/dist/with-audit/attestation/signer.d.ts +33 -0
  360. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  361. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  362. package/dist/with-audit/consent/active.d.ts +14 -0
  363. package/dist/with-audit/consent/consent.d.ts +114 -0
  364. package/dist/with-audit/consent/index.d.ts +14 -0
  365. package/dist/with-audit/consent/strategy.d.ts +36 -0
  366. package/dist/with-audit/forget/active.d.ts +31 -0
  367. package/dist/with-audit/forget/index.d.ts +28 -0
  368. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  369. package/dist/with-audit/forget/strategy.d.ts +199 -0
  370. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  371. package/dist/with-audit/guards/executor.d.ts +26 -0
  372. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  373. package/dist/with-audit/guards/index.d.ts +10 -0
  374. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  375. package/dist/with-audit/guards/registry.d.ts +83 -0
  376. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  377. package/dist/with-audit/guards/types.d.ts +134 -0
  378. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  379. package/dist/with-audit/periods/active.d.ts +11 -0
  380. package/dist/with-audit/periods/index.d.ts +18 -0
  381. package/dist/with-audit/periods/periods.d.ts +417 -0
  382. package/dist/with-audit/periods/strategy.d.ts +32 -0
  383. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  384. package/dist/with-audit/portability/active.d.ts +11 -0
  385. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  386. package/dist/with-audit/portability/index.d.ts +18 -0
  387. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  388. package/dist/with-audit/portability/strategy.d.ts +31 -0
  389. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  390. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  391. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  392. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  393. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  394. package/dist/with-audit/tiers/active.d.ts +9 -0
  395. package/dist/with-audit/tiers/index.d.ts +394 -0
  396. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  397. package/dist/with-cargo/active.d.ts +11 -0
  398. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  399. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  400. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  401. package/dist/with-cargo/extract-partition.d.ts +155 -0
  402. package/dist/with-cargo/index.d.ts +33 -0
  403. package/dist/with-cargo/strategy.d.ts +30 -0
  404. package/dist/with-cargo/vault-diff.d.ts +144 -0
  405. package/dist/with-cargo/walk-closure.d.ts +67 -0
  406. package/dist/with-commit/crdt/active.d.ts +25 -0
  407. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  408. package/dist/with-commit/crdt/index.d.ts +16 -0
  409. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  410. package/dist/with-commit/history/active.d.ts +40 -0
  411. package/dist/with-commit/history/diff.d.ts +23 -0
  412. package/dist/with-commit/history/history.d.ts +73 -0
  413. package/dist/with-commit/history/index.d.ts +30 -0
  414. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  415. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  416. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  417. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  418. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  419. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  420. package/dist/with-commit/history/strategy.d.ts +136 -0
  421. package/dist/with-commit/history/time-machine.d.ts +202 -0
  422. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  423. package/dist/with-commit/numbering/index.d.ts +69 -0
  424. package/dist/with-commit/sequence/active.d.ts +10 -0
  425. package/dist/with-commit/sequence/index.d.ts +150 -0
  426. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  427. package/dist/with-commit/tx/active.d.ts +27 -0
  428. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  429. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  430. package/dist/with-commit/tx/index.d.ts +13 -0
  431. package/dist/with-commit/tx/invariants.d.ts +68 -0
  432. package/dist/with-commit/tx/strategy.d.ts +23 -0
  433. package/dist/with-commit/tx/transaction.d.ts +212 -0
  434. package/dist/with-fork/archive/engine.d.ts +71 -0
  435. package/dist/with-fork/archive/index.d.ts +23 -0
  436. package/dist/with-fork/shadow/active.d.ts +6 -0
  437. package/dist/with-fork/shadow/index.d.ts +14 -0
  438. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  439. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  440. package/dist/with-fork/snapshots/active.d.ts +20 -0
  441. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  442. package/dist/with-fork/snapshots/index.d.ts +5 -0
  443. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  444. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  445. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  446. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  447. package/dist/with-formula/computed/index.d.ts +48 -0
  448. package/dist/with-formula/computed/lazy.d.ts +13 -0
  449. package/dist/with-formula/derivations/executor.d.ts +61 -0
  450. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  451. package/dist/with-formula/derivations/index.d.ts +6 -0
  452. package/dist/with-formula/derivations/registry.d.ts +67 -0
  453. package/dist/with-formula/derivations/stale.d.ts +39 -0
  454. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  455. package/dist/with-formula/derivations/types.d.ts +248 -0
  456. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  457. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  458. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  459. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  460. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  461. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  462. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  463. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  464. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  465. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  466. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  467. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  468. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  469. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  470. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  471. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  472. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  473. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  474. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  475. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  476. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  477. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  478. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  479. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  480. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  481. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  482. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  483. package/dist/with-lookup/indexing/active.d.ts +30 -0
  484. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  485. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  486. package/dist/with-lookup/indexing/index.d.ts +27 -0
  487. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  488. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  489. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  490. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  491. package/dist/with-lookup/search/active.d.ts +10 -0
  492. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  493. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  494. package/dist/with-lookup/search/fuse.d.ts +22 -0
  495. package/dist/with-lookup/search/index-store.d.ts +19 -0
  496. package/dist/with-lookup/search/index.d.ts +19 -0
  497. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  498. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  499. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  500. package/dist/with-lookup/search/scan.d.ts +28 -0
  501. package/dist/with-lookup/search/segment.d.ts +15 -0
  502. package/dist/with-lookup/search/serialize.d.ts +4 -0
  503. package/dist/with-lookup/search/snippet.d.ts +5 -0
  504. package/dist/with-lookup/search/strategy.d.ts +41 -0
  505. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  506. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  507. package/dist/with-party/broker/active.d.ts +23 -0
  508. package/dist/with-party/broker/index.d.ts +28 -0
  509. package/dist/with-party/broker/seed.d.ts +77 -0
  510. package/dist/with-party/custody/active.d.ts +10 -0
  511. package/dist/with-party/custody/index.d.ts +69 -0
  512. package/dist/with-party/custody/liberate.d.ts +64 -0
  513. package/dist/with-party/custody/strategy.d.ts +48 -0
  514. package/dist/with-party/directory/index.d.ts +11 -0
  515. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  516. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  517. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  518. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  519. package/dist/with-party/directory/storage.d.ts +33 -0
  520. package/dist/with-party/directory/types.d.ts +43 -0
  521. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  522. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  523. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  524. package/dist/with-party/directory/visibility.d.ts +47 -0
  525. package/dist/with-party/policy/engine.d.ts +60 -0
  526. package/dist/with-party/policy/index.d.ts +15 -0
  527. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  528. package/dist/with-party/policy/presets.d.ts +38 -0
  529. package/dist/with-party/policy/storage.d.ts +31 -0
  530. package/dist/with-party/session/active.d.ts +34 -0
  531. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  532. package/dist/with-party/session/index.d.ts +23 -0
  533. package/dist/with-party/session/session-policy.d.ts +92 -0
  534. package/dist/with-party/session/session.d.ts +131 -0
  535. package/dist/with-party/session/strategy.d.ts +42 -0
  536. package/dist/with-party/session/unlock-state.d.ts +47 -0
  537. package/dist/with-party/sync/index.d.ts +31 -0
  538. package/dist/with-party/tab-coordination.d.ts +73 -0
  539. package/dist/with-party/tab-write-relay.d.ts +39 -0
  540. package/dist/with-party/team/active.d.ts +13 -0
  541. package/dist/with-party/team/authenticators.d.ts +95 -0
  542. package/dist/with-party/team/deed.d.ts +97 -0
  543. package/dist/with-party/team/delegation.d.ts +88 -0
  544. package/dist/with-party/team/index.d.ts +38 -0
  545. package/dist/with-party/team/keyring.d.ts +318 -0
  546. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  547. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  548. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  549. package/dist/with-party/team/peer-recover.d.ts +81 -0
  550. package/dist/with-party/team/presence.d.ts +81 -0
  551. package/dist/with-party/team/recovery.d.ts +191 -0
  552. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  553. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  554. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  555. package/dist/with-party/team/strategy.d.ts +9 -0
  556. package/dist/with-party/team/sync-active.d.ts +33 -0
  557. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  558. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  559. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  560. package/dist/with-party/team/sync.d.ts +174 -0
  561. package/dist/with-party/team/tiers.d.ts +39 -0
  562. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  563. package/dist/with-pod/backup.d.ts +74 -0
  564. package/dist/with-pod/bundle.d.ts +414 -0
  565. package/dist/with-pod/format.d.ts +203 -0
  566. package/dist/with-pod/index.d.ts +20 -0
  567. package/dist/with-pod/pod-store.d.ts +54 -0
  568. package/dist/with-pod/ulid.d.ts +64 -0
  569. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  570. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  571. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  572. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  573. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  574. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  575. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  576. package/dist/with-shape/introspection/describe.d.ts +237 -0
  577. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  578. package/dist/with-shape/introspection/fields.d.ts +14 -0
  579. package/dist/with-shape/introspection/index.d.ts +12 -0
  580. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  581. package/dist/with-shape/introspection/meta.d.ts +22 -0
  582. package/dist/with-shape/introspection/projection.d.ts +13 -0
  583. package/dist/with-shape/introspection/types.d.ts +154 -0
  584. package/dist/with-shape/introspection/walk.d.ts +50 -0
  585. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  586. package/dist/with-shape/links/link-set.d.ts +67 -0
  587. package/dist/with-shape/links/names.d.ts +65 -0
  588. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  589. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  590. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  591. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  592. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  593. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  594. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  595. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  596. package/dist/with-shape/satellites/declare.d.ts +60 -0
  597. package/dist/with-shape/satellites/existence.d.ts +5 -0
  598. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  599. package/dist/with-shape/satellites/forget.d.ts +47 -0
  600. package/dist/with-shape/satellites/index.d.ts +3 -0
  601. package/dist/with-shape/satellites/joined.d.ts +19 -0
  602. package/dist/with-shape/satellites/marker.d.ts +10 -0
  603. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  604. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  605. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  606. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  607. package/dist/with-shape/satellites/registry.d.ts +19 -0
  608. package/dist/with-shape/satellites/types.d.ts +37 -0
  609. package/dist/with-shape/satellites/validate.d.ts +17 -0
  610. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  611. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  612. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  613. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  614. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  615. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  616. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  617. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  618. package/dist/with-shape/schema-update/index.d.ts +6 -0
  619. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  620. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  621. package/dist/with-shape/schema-update/types.d.ts +53 -0
  622. package/dist/with-store/index.d.ts +15 -0
  623. package/dist/with-store/lazy/active.d.ts +12 -0
  624. package/dist/with-store/lazy/index.d.ts +14 -0
  625. package/dist/with-store/lazy/strategy.d.ts +9 -0
  626. package/dist/with-store/route-store.d.ts +259 -0
  627. package/dist/with-store/store-middleware.d.ts +189 -0
  628. package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
  629. package/package.json +47 -55
  630. package/dist/adapter/index.d.ts +0 -4
  631. package/dist/adapter/index.js +0 -15
  632. package/dist/aggregate/index.d.ts +0 -41
  633. package/dist/api-HV4PDUWF.js +0 -20
  634. package/dist/as/index.d.ts +0 -6
  635. package/dist/at/index.d.ts +0 -4
  636. package/dist/attestation/index.d.ts +0 -19
  637. package/dist/backup-ODXO7OGA.js +0 -225
  638. package/dist/backup-ODXO7OGA.js.map +0 -1
  639. package/dist/blobs/index.d.ts +0 -43
  640. package/dist/bundle/index.d.ts +0 -121
  641. package/dist/bundle-DlSxo31R.d.ts +0 -548
  642. package/dist/by/index.d.ts +0 -1
  643. package/dist/cargo/index.d.ts +0 -8
  644. package/dist/chunk-2644KEGW.js +0 -247
  645. package/dist/chunk-2644KEGW.js.map +0 -1
  646. package/dist/chunk-2HVUKRNE.js +0 -21
  647. package/dist/chunk-2KOSJTMU.js +0 -69
  648. package/dist/chunk-2UQ4RMHV.js +0 -167
  649. package/dist/chunk-2UQ4RMHV.js.map +0 -1
  650. package/dist/chunk-2XE6LIXT.js +0 -515
  651. package/dist/chunk-2XE6LIXT.js.map +0 -1
  652. package/dist/chunk-34RRRIC3.js +0 -71
  653. package/dist/chunk-3C5CKXFI.js +0 -621
  654. package/dist/chunk-3C5CKXFI.js.map +0 -1
  655. package/dist/chunk-3I4KYWNP.js +0 -30
  656. package/dist/chunk-42KVY3OC.js +0 -86
  657. package/dist/chunk-4C4WBS4V.js +0 -13822
  658. package/dist/chunk-4C4WBS4V.js.map +0 -1
  659. package/dist/chunk-4G3IT7J7.js +0 -280
  660. package/dist/chunk-4G3IT7J7.js.map +0 -1
  661. package/dist/chunk-4RQ62VSR.js +0 -53
  662. package/dist/chunk-4RQ62VSR.js.map +0 -1
  663. package/dist/chunk-4ZSGSRBI.js +0 -1221
  664. package/dist/chunk-4ZSGSRBI.js.map +0 -1
  665. package/dist/chunk-5GAX2QOH.js +0 -132
  666. package/dist/chunk-5GAX2QOH.js.map +0 -1
  667. package/dist/chunk-5SAZMBW7.js +0 -202
  668. package/dist/chunk-5TZZUL5X.js +0 -30
  669. package/dist/chunk-6CU3FN74.js +0 -777
  670. package/dist/chunk-6G2SCQYS.js +0 -29
  671. package/dist/chunk-6G2SCQYS.js.map +0 -1
  672. package/dist/chunk-6MWUANRF.js +0 -29
  673. package/dist/chunk-6S7T6WC4.js +0 -111
  674. package/dist/chunk-6S7T6WC4.js.map +0 -1
  675. package/dist/chunk-6ULCYCMU.js +0 -74
  676. package/dist/chunk-7HAPHVRJ.js +0 -1695
  677. package/dist/chunk-7HAPHVRJ.js.map +0 -1
  678. package/dist/chunk-7IZQTCTR.js +0 -382
  679. package/dist/chunk-7ZANJ6JZ.js +0 -265
  680. package/dist/chunk-7ZANJ6JZ.js.map +0 -1
  681. package/dist/chunk-A2APWS32.js +0 -150
  682. package/dist/chunk-A2APWS32.js.map +0 -1
  683. package/dist/chunk-A4MAD6PO.js +0 -99
  684. package/dist/chunk-ANDBBA2P.js +0 -36
  685. package/dist/chunk-ANDBBA2P.js.map +0 -1
  686. package/dist/chunk-AUR7MRHA.js +0 -404
  687. package/dist/chunk-AYGZMQP5.js +0 -75
  688. package/dist/chunk-BGIZAFY7.js +0 -1
  689. package/dist/chunk-CJEMA2Z6.js +0 -230
  690. package/dist/chunk-CTSFKDGA.js +0 -40
  691. package/dist/chunk-CU62BBRB.js +0 -1465
  692. package/dist/chunk-CU62BBRB.js.map +0 -1
  693. package/dist/chunk-CWCCYH34.js +0 -23
  694. package/dist/chunk-DEYAO3N6.js +0 -589
  695. package/dist/chunk-DFIBOSOQ.js +0 -85
  696. package/dist/chunk-E5AHO65E.js +0 -150
  697. package/dist/chunk-FC3XK5JT.js +0 -99
  698. package/dist/chunk-FGOGS7CE.js +0 -662
  699. package/dist/chunk-FGOGS7CE.js.map +0 -1
  700. package/dist/chunk-GX2BYNCT.js +0 -117
  701. package/dist/chunk-GZ2MOPVX.js +0 -291
  702. package/dist/chunk-GZ2MOPVX.js.map +0 -1
  703. package/dist/chunk-H57P2SJB.js +0 -126
  704. package/dist/chunk-H57P2SJB.js.map +0 -1
  705. package/dist/chunk-HBTT7YQX.js +0 -94
  706. package/dist/chunk-HOCEGVGQ.js +0 -36
  707. package/dist/chunk-ICV32FPK.js +0 -50
  708. package/dist/chunk-IIP5WFVT.js +0 -462
  709. package/dist/chunk-IIP5WFVT.js.map +0 -1
  710. package/dist/chunk-IUKGIB2Q.js +0 -91
  711. package/dist/chunk-IWTYFS3D.js +0 -129
  712. package/dist/chunk-JC5R7P44.js +0 -355
  713. package/dist/chunk-JC5R7P44.js.map +0 -1
  714. package/dist/chunk-K2WCO3NX.js +0 -1
  715. package/dist/chunk-KBBWY46Y.js +0 -14
  716. package/dist/chunk-KBF5GSGX.js +0 -367
  717. package/dist/chunk-KCG3BHFG.js +0 -99
  718. package/dist/chunk-KCG3BHFG.js.map +0 -1
  719. package/dist/chunk-KNXN47MO.js +0 -155
  720. package/dist/chunk-KWLD2D75.js +0 -38
  721. package/dist/chunk-KXKLKJW4.js +0 -49
  722. package/dist/chunk-KYC4LIEU.js +0 -123
  723. package/dist/chunk-LEOXZY36.js +0 -130
  724. package/dist/chunk-M5I354EE.js +0 -235
  725. package/dist/chunk-MK2BSS44.js +0 -34
  726. package/dist/chunk-MSVY7ULZ.js +0 -70
  727. package/dist/chunk-NNWK3PSY.js +0 -135
  728. package/dist/chunk-NSZ6J5DF.js +0 -59
  729. package/dist/chunk-NUEFXLZU.js +0 -59
  730. package/dist/chunk-NYVQCZ54.js +0 -261
  731. package/dist/chunk-OQAODTYR.js +0 -45
  732. package/dist/chunk-OV4CMJGR.js +0 -164
  733. package/dist/chunk-PEDZFFKW.js +0 -41
  734. package/dist/chunk-PF3FQCCF.js +0 -164
  735. package/dist/chunk-PF3FQCCF.js.map +0 -1
  736. package/dist/chunk-Q2KVKTC2.js +0 -823
  737. package/dist/chunk-QJR3W3MF.js +0 -23
  738. package/dist/chunk-QJR3W3MF.js.map +0 -1
  739. package/dist/chunk-QTXQ6RNZ.js +0 -255
  740. package/dist/chunk-RJ5522XX.js +0 -453
  741. package/dist/chunk-RJ5522XX.js.map +0 -1
  742. package/dist/chunk-RMUXPHIH.js +0 -930
  743. package/dist/chunk-RMUXPHIH.js.map +0 -1
  744. package/dist/chunk-S6AQXDN4.js +0 -155
  745. package/dist/chunk-SSFC3IYA.js +0 -275
  746. package/dist/chunk-SSFC3IYA.js.map +0 -1
  747. package/dist/chunk-SZCHEDML.js +0 -209
  748. package/dist/chunk-TDPEJINP.js +0 -188
  749. package/dist/chunk-TDPEJINP.js.map +0 -1
  750. package/dist/chunk-TQ3REHVF.js +0 -95
  751. package/dist/chunk-TQ3REHVF.js.map +0 -1
  752. package/dist/chunk-UNJU345Q.js +0 -32
  753. package/dist/chunk-UNJU345Q.js.map +0 -1
  754. package/dist/chunk-V7RNIND6.js +0 -265
  755. package/dist/chunk-V7RNIND6.js.map +0 -1
  756. package/dist/chunk-VJ3NQK4K.js +0 -205
  757. package/dist/chunk-WNA6T3MA.js +0 -686
  758. package/dist/chunk-WNA6T3MA.js.map +0 -1
  759. package/dist/chunk-WVCQ75OK.js +0 -124
  760. package/dist/chunk-X66MXMR5.js +0 -42
  761. package/dist/chunk-XHD3L3JO.js +0 -930
  762. package/dist/chunk-XHD3L3JO.js.map +0 -1
  763. package/dist/chunk-XJK2WIYN.js +0 -430
  764. package/dist/chunk-XJK2WIYN.js.map +0 -1
  765. package/dist/chunk-XQ7UYPVN.js +0 -95
  766. package/dist/chunk-Y2OCKFZ3.js +0 -80
  767. package/dist/chunk-YBFOBRTO.js +0 -367
  768. package/dist/chunk-YLN33ADH.js +0 -97
  769. package/dist/chunk-Z5YFRMG5.js +0 -45
  770. package/dist/chunk-ZWQFOXBR.js +0 -54
  771. package/dist/classified/index.d.ts +0 -16
  772. package/dist/classified-marker-IO5EBW7Q.js +0 -24
  773. package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
  774. package/dist/collection-facade-3RAXG2OU.js +0 -38
  775. package/dist/computed-R62HGCO4.js +0 -11
  776. package/dist/consent/index.d.ts +0 -22
  777. package/dist/crdt/index.d.ts +0 -33
  778. package/dist/dead-filter-VNA4M3GP.js +0 -28
  779. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  780. package/dist/delegation-ZKII5UBI.js +0 -25
  781. package/dist/derivations/index.d.ts +0 -69
  782. package/dist/derive-5D2C3WG4.js +0 -21
  783. package/dist/describe/index.d.ts +0 -4
  784. package/dist/describe/index.js +0 -1
  785. package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
  786. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  787. package/dist/enclave-EUBEJGPG.js +0 -125
  788. package/dist/executor-IL7SRNUZ.js +0 -23
  789. package/dist/executor-OUA2Y6YC.js +0 -9
  790. package/dist/executor-WAEI6PDV.js +0 -9
  791. package/dist/export-accessible-O55RKAGC.js +0 -23
  792. package/dist/extract-partition-VBGCBA6Q.js +0 -36
  793. package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
  794. package/dist/find-FISGUWSK.js +0 -11
  795. package/dist/forget/index.d.ts +0 -36
  796. package/dist/guards/index.d.ts +0 -34
  797. package/dist/hash-DBkZfIBW.d.ts +0 -72
  798. package/dist/history/index.d.ts +0 -60
  799. package/dist/i18n/index.d.ts +0 -56
  800. package/dist/in/index.d.ts +0 -4
  801. package/dist/index-B9QdHytu.d.ts +0 -123
  802. package/dist/index-CyclmyDr.d.ts +0 -122
  803. package/dist/index-DzhNI2vE.d.ts +0 -23260
  804. package/dist/indexing/index.d.ts +0 -38
  805. package/dist/issue-EQAWIYFQ.js +0 -19
  806. package/dist/kernel/index.d.ts +0 -31
  807. package/dist/kernel/index.js +0 -60
  808. package/dist/lazy/index.d.ts +0 -20
  809. package/dist/ledger-AJA2SR3C.js +0 -42
  810. package/dist/liberate-SEGR4JLY.js +0 -24
  811. package/dist/link-set-YBAC2DQT.js +0 -31
  812. package/dist/materialized-views/index.d.ts +0 -182
  813. package/dist/mime-magic-CbV1quyp.d.ts +0 -103
  814. package/dist/noydb-AMEOU456.js +0 -65
  815. package/dist/on/index.d.ts +0 -4
  816. package/dist/overlay-views/index.d.ts +0 -97
  817. package/dist/periods/index.d.ts +0 -19
  818. package/dist/pod/index.d.ts +0 -62
  819. package/dist/policy-SDGRWVIL.js +0 -41
  820. package/dist/portability/index.d.ts +0 -19
  821. package/dist/post-register-MROIUA5O.js +0 -55
  822. package/dist/post-register-MROIUA5O.js.map +0 -1
  823. package/dist/public-envelope-J5PLQOW2.js +0 -32
  824. package/dist/query/index.d.ts +0 -4
  825. package/dist/read-only-facade-UCYNRE56.js +0 -8
  826. package/dist/register-OVJKW7BS.js +0 -23
  827. package/dist/registry-5RJSK5AJ.js +0 -9
  828. package/dist/registry-DQRNTWRL.js +0 -18
  829. package/dist/registry-LTGLERS7.js +0 -19
  830. package/dist/request-withdrawal-27O77D2V.js +0 -31
  831. package/dist/reveal-LT3I2K4P.js +0 -38
  832. package/dist/reveal-LT3I2K4P.js.map +0 -1
  833. package/dist/revoke-4N45G7D2.js +0 -24
  834. package/dist/revoke-4N45G7D2.js.map +0 -1
  835. package/dist/satellites/index.d.ts +0 -4
  836. package/dist/sealed-record/index.d.ts +0 -68
  837. package/dist/session/index.d.ts +0 -43
  838. package/dist/shadow/index.d.ts +0 -14
  839. package/dist/signer-XJCOV7JD.js +0 -25
  840. package/dist/signer-XJCOV7JD.js.map +0 -1
  841. package/dist/snapshots/index.d.ts +0 -25
  842. package/dist/stale-IYYXEH3U.js +0 -14
  843. package/dist/stale-IYYXEH3U.js.map +0 -1
  844. package/dist/storage-Y44CAPE6.js +0 -23
  845. package/dist/storage-Y44CAPE6.js.map +0 -1
  846. package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
  847. package/dist/subject-index-CyOgGMJL.d.ts +0 -380
  848. package/dist/sync/index.d.ts +0 -40
  849. package/dist/team/index.d.ts +0 -154
  850. package/dist/tiers/index.d.ts +0 -4
  851. package/dist/to/index.d.ts +0 -4
  852. package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
  853. package/dist/tx/index.d.ts +0 -34
  854. package/dist/ui/index.d.ts +0 -4
  855. package/dist/ulid-DRH25k3y.d.ts +0 -66
  856. package/dist/util/index.d.ts +0 -79
  857. package/dist/validators-B3SalxlJ.d.ts +0 -101
  858. package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
  859. package/dist/verify-GH6CWVSW.js +0 -139
  860. package/dist/verify-GH6CWVSW.js.map +0 -1
  861. package/dist/walk-76UCFXYV.js +0 -241
  862. package/dist/with/index.d.ts +0 -37
  863. package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
  864. package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
  865. package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
  866. package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
  867. package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
  868. /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
  869. /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
  870. /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
  871. /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
  872. /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
  873. /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
  874. /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
  875. /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
  876. /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
  877. /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
  878. /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
  879. /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
  880. /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
  881. /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
  882. /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
  883. /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
  884. /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
  885. /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
  886. /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
  887. /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
  888. /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
  889. /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
  890. /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
  891. /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
  892. /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
  893. /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
  894. /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
  895. /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
  896. /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
  897. /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
  898. /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
  899. /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
  900. /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
  901. /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
  902. /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
  903. /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
  904. /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
  905. /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
  906. /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
  907. /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
  908. /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
  909. /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
  910. /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
  911. /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
  912. /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
  913. /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
  914. /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
  915. /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
  916. /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
  917. /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
  918. /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
  919. /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
  920. /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
  921. /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
  922. /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
  923. /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
  924. /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
  925. /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
  926. /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
  927. /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
  928. /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
  929. /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
  930. /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
  931. /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
  932. /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
  933. /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
  934. /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
  935. /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
  936. /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
  937. /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
  938. /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
  939. /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
  940. /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
  941. /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
  942. /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
  943. /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
  944. /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
  945. /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
  946. /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  947. /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
  948. /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
  949. /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
  950. /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
  951. /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
  952. /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
  953. /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
  954. /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
  955. /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
  956. /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
  957. /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
  958. /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
@@ -0,0 +1,33 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import { type EnclaveKey } from '../../kernel/enclave/index.js';
3
+ export declare const ATTESTATIONS_COLLECTION = "_attestations";
4
+ export declare const SIGNER_RECORD_ID = "_signer";
5
+ export declare const REVOKED_RECORD_ID = "_revoked";
6
+ export interface DocSigner {
7
+ readonly keyId: string;
8
+ readonly publicKeyB64: string;
9
+ readonly privateKeyPkcs8B64: string;
10
+ }
11
+ /**
12
+ * Pure read: return the firm's persisted document-signing keypair, or `null`
13
+ * if none has been minted yet. Never writes — callers that must NOT mint
14
+ * (e.g. an ungated public-key getter) use this instead of `loadOrCreateSigner`.
15
+ *
16
+ * Stored as an encrypted record `_attestations/_signer` under the
17
+ * `_attestations` collection DEK (resolved via `getDEK`, which is
18
+ * AES-KW-wrapped under the owner KEK + persisted by the keyring). The KEK
19
+ * itself is AES-KW-only and cannot AES-GCM-encrypt these bytes — hence
20
+ * storage under a normal collection DEK.
21
+ */
22
+ export declare function loadSigner(store: NoydbStore, vault: string, getDEK: (collection: string) => Promise<EnclaveKey>): Promise<DocSigner | null>;
23
+ /**
24
+ * Lazily mint (or load) the firm's Ed25519 document-signing keypair.
25
+ *
26
+ * On a concurrent first-mint, two callers can both read `null` and both mint
27
+ * distinct keypairs. The `put(…, expectedVersion: 0)` ("must not already
28
+ * exist") lets exactly one win; the loser catches `ConflictError`, re-reads,
29
+ * and returns the winner's signer — converging on a single keypair rather than
30
+ * clobbering it or surfacing a raw conflict. (All real stores treat a missing
31
+ * record + `ev: 0` as a no-conflict write, so the catch fires on lost-race only.)
32
+ */
33
+ export declare function loadOrCreateSigner(store: NoydbStore, vault: string, getDEK: (collection: string) => Promise<EnclaveKey>): Promise<DocSigner>;
@@ -0,0 +1,44 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
3
+ import type { RevocationList } from '@noy-db/attestation';
4
+ import type { IssueContext, IssueArgs, IssueResult } from './issue.js';
5
+ import type { RevokeContext } from './revoke.js';
6
+ /**
7
+ * Deps the signing-public-key lookup needs. Unlike issue/revoke there is no
8
+ * per-call context object for it, so the vault facade assembles this at call
9
+ * time (reading `role` fresh).
10
+ */
11
+ export interface SignerLookupDeps {
12
+ readonly adapter: NoydbStore;
13
+ readonly vault: string;
14
+ /** The invoking keyring's role, read fresh by the caller per call. */
15
+ readonly role: string;
16
+ /** Per-collection DEK resolver (bound `vault.getDEK`). */
17
+ readonly getDEK: (collection: string) => Promise<EnclaveKey>;
18
+ }
19
+ /**
20
+ * Attestation capability strategy — the six on-demand methods the vault's
21
+ * attestation delegators route through. The active engine ({@link withAttestation})
22
+ * dynamically imports the issue/revoke/signer cores (keeping them out of the floor
23
+ * bundle); {@link NO_ATTESTATION} throws. The vault-side {@link VaultAttestation}
24
+ * facade holds the per-collection field-schema registry and builds the per-call
25
+ * contexts, then delegates here.
26
+ * @internal
27
+ */
28
+ export interface AttestationStrategy {
29
+ issueAttestation(ctx: IssueContext, args: IssueArgs): Promise<IssueResult>;
30
+ getDocumentSigningPublicKey(deps: SignerLookupDeps): Promise<{
31
+ keyId: string;
32
+ publicKeyB64: string;
33
+ }>;
34
+ revokeAttestation(ctx: RevokeContext, docId: string): Promise<void>;
35
+ unrevokeAttestation(ctx: RevokeContext, docId: string): Promise<void>;
36
+ getRevokedDocIds(ctx: RevokeContext): Promise<string[]>;
37
+ publishRevocationList(ctx: RevokeContext): Promise<RevocationList>;
38
+ }
39
+ /**
40
+ * No-op stub — the floor default. Every capability method throws
41
+ * {@link AttestationNotEnabledError}; opt in with
42
+ * `attestationStrategy: withAttestation()` in createNoydb. @internal
43
+ */
44
+ export declare const NO_ATTESTATION: AttestationStrategy;
@@ -0,0 +1,62 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
3
+ import type { AttestationFieldSchema, RevocationList } from '@noy-db/attestation';
4
+ import type { AttestationStrategy } from './strategy.js';
5
+ export { NO_ATTESTATION, type AttestationStrategy } from './strategy.js';
6
+ /** Everything the moving attestation methods touched on the vault's `this.*`. */
7
+ export interface VaultAttestationDeps {
8
+ /** The ciphertext store. */
9
+ readonly adapter: NoydbStore;
10
+ /** Vault namespace name. */
11
+ readonly vault: string;
12
+ /** Per-collection DEK resolver (bound `vault.getDEK`). */
13
+ readonly getDEK: (collection: string) => Promise<EnclaveKey>;
14
+ /** The invoking keyring's role (read fresh per call). */
15
+ role(): string;
16
+ /** Decrypt a collection record at `locale: 'raw'` (issue side reads the live record). */
17
+ getRawRecord(collection: string, id: string): Promise<Record<string, unknown> | null>;
18
+ }
19
+ export declare class VaultAttestation {
20
+ private readonly deps;
21
+ /**
22
+ * Opt-in capability gate. `NO_ATTESTATION` when
23
+ * `createNoydb({ attestationStrategy })` was omitted — every issue/revoke/
24
+ * signer call then throws `AttestationNotEnabledError`. The facade always
25
+ * exists (it holds the per-collection field-schema registry populated at
26
+ * `collection()` time); only the capability methods are gated.
27
+ */
28
+ private readonly strategy;
29
+ /**
30
+ * Per-collection attestation field-schema (issue side). Populated on
31
+ * `collection({ attestation })` via {@link register} and read by
32
+ * {@link issue}. Indexed by collection name.
33
+ */
34
+ private readonly registry;
35
+ constructor(deps: VaultAttestationDeps,
36
+ /**
37
+ * Opt-in capability gate. `NO_ATTESTATION` when
38
+ * `createNoydb({ attestationStrategy })` was omitted — every issue/revoke/
39
+ * signer call then throws `AttestationNotEnabledError`. The facade always
40
+ * exists (it holds the per-collection field-schema registry populated at
41
+ * `collection()` time); only the capability methods are gated.
42
+ */
43
+ strategy: AttestationStrategy);
44
+ /** Register a collection's attestation field-schema (from `vault.collection`). */
45
+ register(collection: string, schema: AttestationFieldSchema): void;
46
+ issue(collectionName: string, id: string): Promise<{
47
+ docId: string;
48
+ qr: string;
49
+ keyId: string;
50
+ publicKeyB64: string;
51
+ }>;
52
+ getDocumentSigningPublicKey(): Promise<{
53
+ keyId: string;
54
+ publicKeyB64: string;
55
+ }>;
56
+ private makeIssueContext;
57
+ revoke(docId: string): Promise<void>;
58
+ unrevoke(docId: string): Promise<void>;
59
+ getRevokedDocIds(): Promise<string[]>;
60
+ publishRevocationList(): Promise<RevocationList>;
61
+ private makeRevokeContext;
62
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Active consent strategy. Calling `withConsent()` returns a
3
+ * `ConsentStrategy` that delegates to the real
4
+ * `writeConsentEntry` / `loadConsentEntries` functions. Only
5
+ * reachable through the `@noy-db/hub/consent` subpath.
6
+ */
7
+ import type { ConsentStrategy } from './strategy.js';
8
+ /**
9
+ * Build the default consent strategy. Pass into
10
+ * `createNoydb({ consentStrategy: withConsent() })` to enable
11
+ * per-operation audit writes into the reserved `_consent_audit`
12
+ * collection.
13
+ */
14
+ export declare function withConsent(): ConsentStrategy;
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Consent boundaries — per-access audit log.
3
+ *
4
+ * ```ts
5
+ * const audit = await vault.withConsent(
6
+ * { purpose: 'quarterly-review', consentHash: '7f3a...' },
7
+ * async () => {
8
+ * const invoices = await vault.collection<Invoice>('invoices').list()
9
+ * return invoices
10
+ * },
11
+ * )
12
+ *
13
+ * const log = await vault.consentAudit({ since: '2026-01-01T00:00:00Z' })
14
+ * // → entries: { actor, purpose, consentHash, ts, op, collection, id }
15
+ * ```
16
+ *
17
+ * ## Contract
18
+ *
19
+ * Every `get` / `put` / `delete` that happens inside a `withConsent`
20
+ * callback writes one entry to the reserved `_consent_audit`
21
+ * collection. Entries are encrypted with the vault's consent-audit
22
+ * DEK (separate from per-user-collection DEKs so access-log queries
23
+ * don't require unwrapping individual collection keys). Outside a
24
+ * `withConsent` scope, no entries are written — consent is
25
+ * opt-in by design (GDPR Art. 7: *demonstrable*, *specific*
26
+ * consent).
27
+ *
28
+ * ## Why store the hash, not the consent text?
29
+ *
30
+ * The `consentHash` is the sha256 of whatever consent receipt the
31
+ * actor presented (a signed GDPR banner click, a HIPAA authorisation
32
+ * PDF, an API-level `X-Consent-Hash` header). Storing only the hash:
33
+ *
34
+ * 1. Keeps the audit log small and indexable.
35
+ * 2. Preserves zero-knowledge at the adapter — adapters see
36
+ * ciphertext envelopes of `{ actor, purpose, consentHash, ts,
37
+ * op, collection, id }`, never the consent record itself.
38
+ * 3. Lets the regulator verify a presented consent doc matches
39
+ * the logged hash at audit time without the system ever
40
+ * possessing the doc.
41
+ *
42
+ * ## Concurrency
43
+ *
44
+ * The consent context lives on the {@link Vault} instance. Two
45
+ * concurrent `withConsent` calls on the same Vault would stomp each
46
+ * other — documented limitation; adopters needing per-flight scope
47
+ * should use separate Vault instances or an AsyncLocalStorage shim.
48
+ *
49
+ * @module
50
+ */
51
+ import type { NoydbStore } from '../../kernel/types.js';
52
+ import { type EnclaveKey } from '../../kernel/enclave/index.js';
53
+ /** Reserved collection for consent-audit entries. */
54
+ export declare const CONSENT_AUDIT_COLLECTION = "_consent_audit";
55
+ /**
56
+ * The consent scope active for a block of work. Set via
57
+ * `vault.withConsent()`; observed by the collection's access hooks.
58
+ */
59
+ export interface ConsentContext {
60
+ /**
61
+ * What this access is for. Used by the audit query (`consentAudit
62
+ * ({ purpose })`) and carried in the stored entry. Free-form; the
63
+ * regulator or compliance tooling decides the vocabulary.
64
+ */
65
+ readonly purpose: string;
66
+ /**
67
+ * Hex-encoded sha256 of whatever consent artefact the actor
68
+ * presented. Stored as-is in each entry.
69
+ */
70
+ readonly consentHash: string;
71
+ }
72
+ /**
73
+ * Access operation recorded in an audit entry.
74
+ *
75
+ * Union-widening checklist (I-2) — these three sites widen together or a
76
+ * downstream exhaustive switch breaks at its next in-range minor:
77
+ * 1. `ConsentOp` here (public, re-exported at `index.ts`).
78
+ * 2. `onAccess` op union on `kernel/collection-config.ts`.
79
+ * 3. classified ctx `onAccess` op union on `port/with/classified-strategy.ts`
80
+ * (the `ClassifiedVerifyCtx` one — the `ClassifiedRevealCtx` one stays `'reveal'`-only).
81
+ */
82
+ export type ConsentOp = 'get' | 'put' | 'delete' | 'reveal' | 'verify' | 'find';
83
+ /** One consent-audit record, as decrypted for the caller. */
84
+ export interface ConsentAuditEntry {
85
+ /** ULID — stable insertion-order key. */
86
+ readonly id: string;
87
+ readonly timestamp: string;
88
+ readonly actor: string;
89
+ readonly purpose: string;
90
+ readonly consentHash: string;
91
+ readonly op: ConsentOp;
92
+ readonly collection: string;
93
+ readonly recordId: string;
94
+ }
95
+ /** Filter passed to `vault.consentAudit()`. */
96
+ export interface ConsentAuditFilter {
97
+ /** Only entries at or after this ISO timestamp. */
98
+ readonly since?: string;
99
+ /** Only entries at or before this ISO timestamp. */
100
+ readonly until?: string;
101
+ /** Match entries targeting this collection. */
102
+ readonly collection?: string;
103
+ /** Match entries written by this actor. */
104
+ readonly actor?: string;
105
+ /** Match entries with this purpose. */
106
+ readonly purpose?: string;
107
+ }
108
+ /**
109
+ * Write one audit entry. Called by Vault's onAccess hook when a
110
+ * consent context is active.
111
+ */
112
+ export declare function writeConsentEntry(adapter: NoydbStore, vault: string, encrypted: boolean, entry: Omit<ConsentAuditEntry, 'id' | 'timestamp'>, getDEK: (collection: string) => Promise<EnclaveKey>): Promise<void>;
113
+ /** Load + decrypt + filter all entries. */
114
+ export declare function loadConsentEntries(adapter: NoydbStore, vault: string, encrypted: boolean, getDEK: (collection: string) => Promise<EnclaveKey>, filter?: ConsentAuditFilter): Promise<ConsentAuditEntry[]>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @noy-db/hub/consent — opt-in consent-audit service.
3
+ *
4
+ * @category capability
5
+ *
6
+ * Records per-operation consent entries into a reserved
7
+ * `_consent_audit` collection when a consent scope is active.
8
+ * Applications that don't need GDPR-style audit trails can omit this
9
+ * subpath and skip the ~194 LOC.
10
+ */
11
+ export { withConsent } from './active.js';
12
+ export type { ConsentStrategy } from './strategy.js';
13
+ export { CONSENT_AUDIT_COLLECTION, writeConsentEntry, loadConsentEntries, } from './consent.js';
14
+ export type { ConsentContext, ConsentOp, ConsentAuditEntry, ConsentAuditFilter, } from './consent.js';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Strategy seam for the optional consent-audit service. Core
3
+ * imports `ConsentStrategy` as a TYPE-ONLY symbol and `NO_CONSENT`
4
+ * as a tiny runtime stub.
5
+ *
6
+ * `writeConsentEntry` / `loadConsentEntries` are only reachable from
7
+ * `withConsent()` in `./active.ts`, exported through
8
+ * `@noy-db/hub/consent`. Applications without a consent scope ship
9
+ * none of the ~194 LOC.
10
+ *
11
+ * @internal
12
+ */
13
+ import type { NoydbStore } from '../../kernel/types.js';
14
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
15
+ import type { ConsentAuditEntry, ConsentAuditFilter } from './consent.js';
16
+ /**
17
+ * @internal
18
+ */
19
+ export interface ConsentStrategy {
20
+ /**
21
+ * Record one consent audit entry. No-op under NO_CONSENT.
22
+ */
23
+ write(adapter: NoydbStore, vault: string, encrypted: boolean, entry: Omit<ConsentAuditEntry, 'id' | 'timestamp'>, getDEK: (collectionName: string) => Promise<EnclaveKey>): Promise<void>;
24
+ /**
25
+ * Read filtered consent entries. Returns `[]` under NO_CONSENT.
26
+ */
27
+ read(adapter: NoydbStore, vault: string, encrypted: boolean, getDEK: (collectionName: string) => Promise<EnclaveKey>, filter?: ConsentAuditFilter): Promise<ConsentAuditEntry[]>;
28
+ }
29
+ /**
30
+ * No-consent stub. `write` is a no-op (returns a resolved promise);
31
+ * `read` returns `[]`. Consumers get a consistent API surface without
32
+ * pulling the consent module into the bundle.
33
+ *
34
+ * @internal
35
+ */
36
+ export declare const NO_CONSENT: ConsentStrategy;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `withForgetCascade` — the active factory for GDPR right-to-erasure via
3
+ * per-record CEK crypto-shred. Mirrors the canonical
4
+ * `strategy.ts` (type + `NO_FORGET` sentinel) / `active.ts` (factory) split
5
+ * used by the other services.
6
+ *
7
+ * @module
8
+ */
9
+ import type { SubjectDeclaration, ForgetStrategy } from './strategy.js';
10
+ /**
11
+ * Declare GDPR crypto-shred for one or more collections.
12
+ *
13
+ * Each declared collection is forced to `perRecordKeys: true` (a shred can
14
+ * only guarantee erasure of a record whose body is keyed off a per-record
15
+ * CEK). On write, Noydb extracts `record[subjectField]` and maintains an
16
+ * encrypted `_subject_index` mapping `subject → [{collection, id}]`, so
17
+ * `vault.forget(subjectId)` can find every record for a subject and rewrite
18
+ * each to a tombstone (body + history permanently undecryptable) while the
19
+ * collection DEK and every other record stay intact.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * createNoydb({
24
+ * secret, user,
25
+ * forgetStrategy: withForgetCascade({ subjects: { invoices: 'buyerId' } }),
26
+ * })
27
+ * const result = await vault.forget('buyer-123')
28
+ * // → { subject, recordsShredded, historyVersionsShredded, collections, … }
29
+ * ```
30
+ */
31
+ export declare function withForgetCascade(opts: SubjectDeclaration): ForgetStrategy;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * `@noy-db/hub/forget` — GDPR right-to-erasure via per-record CEK crypto-shred.
3
+ * Import `withForgetCascade` and pass it to `createNoydb`:
4
+ *
5
+ * ```ts
6
+ * import { createNoydb } from '@noy-db/hub'
7
+ * import { withForgetCascade } from '@noy-db/hub/forget'
8
+ *
9
+ * const db = createNoydb({
10
+ * secret, user,
11
+ * historyStrategy: withHistory(), // ledger for the erasure proof
12
+ * forgetStrategy: withForgetCascade({ subjects: { invoices: 'buyerId' } }),
13
+ * })
14
+ * const result = await db.vault('main').forget('buyer-123')
15
+ * ```
16
+ *
17
+ * The erasure flow (`vault.forget`), the subject-index maintenance hooks, and
18
+ * the tombstone rewrite live in core (`vault.ts` / `collection.ts`) because
19
+ * they touch the write path directly; this subpath only exposes the
20
+ * declaration factory + result types.
21
+ *
22
+ * @module
23
+ */
24
+ export { withForgetCascade } from './active.js';
25
+ export { NO_FORGET } from './strategy.js';
26
+ export type { SubjectDeclaration, ForgetStrategy, ForgetResult, ScopedPurgeResidueNotice, } from './strategy.js';
27
+ export type { SubjectRef } from './subject-index.js';
28
+ export { SUBJECT_INDEX_COLLECTION } from './subject-index.js';
@@ -0,0 +1,54 @@
1
+ /**
2
+ * #633 — scoped-purge partitioning for the opt-in `scopedPurge` forget-strategy
3
+ * knob (`strategy.ts`'s `SubjectDeclaration.scopedPurge`). Pure helpers only —
4
+ * no store I/O, no `Vault`/`Collection` imports — kept out of `kernel/vault.ts`
5
+ * (exact zero-slack `kernel-surface` ceiling) and free of any circular-import
6
+ * risk with the kernel spine.
7
+ *
8
+ * The two `forget()` purge sites (`_sealed_cek` listing, blob shred) stay
9
+ * UNCONDITIONAL by default (byte-identical to pre-#633 behavior); when
10
+ * `scopedPurge` is `true`, each site calls into this module to decide what to
11
+ * purge vs. what to leave in place + report as residue, keyed off a
12
+ * per-collection declaration signal the caller (vault.ts) resolves itself:
13
+ * - sealed-CEK arm: `coll._via?.hasAtRestHooks === true` — the classified
14
+ * via binding's at-rest hooks (the "richer" declaration; a bare
15
+ * `sensitive` collection with NO classified binder does not count — it can
16
+ * still call `sealRecordToHost()` ad hoc, which is exactly the
17
+ * under-approximation #633 calls out).
18
+ * - blob arm: `this.blobFieldsRegistry.has(ref.collection)` — a collection
19
+ * can call `.blob(id)` regardless of this declaration (same
20
+ * under-approximation), which is why the default stays unconditional.
21
+ *
22
+ * @module
23
+ */
24
+ import type { ScopedPurgeResidueReason } from './strategy.js';
25
+ /**
26
+ * Partitions an already-fetched vault-wide `_sealed_cek` key listing into
27
+ * keys to purge vs. a skipped count, for ONE ref's `<collection>/<id>/`
28
+ * prefix. No new store call — `keys` is the SAME listing the unconditional
29
+ * path already fetched. Default parity: when `scopedPurge` is false, or
30
+ * `declared` is true, every matching key is returned for purge and
31
+ * `skippedCount` is 0 — byte-identical to the unconditional behavior.
32
+ */
33
+ export declare function partitionSealedCekKeys(keys: readonly string[], prefix: string, scopedPurge: boolean, declared: boolean): {
34
+ readonly toPurge: readonly string[];
35
+ readonly skippedCount: number;
36
+ };
37
+ /**
38
+ * True when the blob arm should skip `ref.collection` entirely — no
39
+ * `.blob(id).shredAllForRecord()` call AND no `_blob_slots_<collection>`
40
+ * residue-detection `list()` call either (the perf win: scoped mode never
41
+ * pays for a per-collection scan on a collection that never declared
42
+ * `blobFields`).
43
+ */
44
+ export declare function shouldSkipBlobScan(scopedPurge: boolean, declared: boolean): boolean;
45
+ /** Adds `count` (if positive) to `collection`'s running total in `map` — the
46
+ * per-collection residue accumulator both purge sites share. */
47
+ export declare function bumpResidueCount(map: Map<string, number>, collection: string, count: number): void;
48
+ /** Flattens an accumulated per-collection count map into `ForgetResult.scopedPurgeResidue` notices
49
+ * tagged with `reason`. Empty map → empty array (the unconditional-default case). */
50
+ export declare function residueNoticesFromMap(map: ReadonlyMap<string, number>, reason: ScopedPurgeResidueReason): {
51
+ readonly reason: ScopedPurgeResidueReason;
52
+ readonly collection: string;
53
+ readonly count: number;
54
+ }[];
@@ -0,0 +1,199 @@
1
+ /**
2
+ * `withForgetCascade` — declaration surface for GDPR right-to-erasure via
3
+ * per-record CEK crypto-shred.
4
+ *
5
+ * This file holds only the *declaration* shape and the disabled sentinel.
6
+ * The actual erasure machinery lives in:
7
+ * - `subject-index.ts` — the encrypted `_subject_index` reserved collection
8
+ * - `vault.ts` `forget()` — the per-record tombstone + ledger flow
9
+ * - `collection.ts` `_writeTombstone` — the envelope rewrite
10
+ *
11
+ * A `ForgetStrategy` declares which collections carry erasable subject data
12
+ * and the (dotted-path) field on each record that names the data subject.
13
+ * Declaring a collection here ALSO forces `perRecordKeys: true` for it (a
14
+ * shred can only erase a record whose body is keyed off a per-record CEK),
15
+ * so adopters opt into the CEK foundation transitively.
16
+ *
17
+ * @module
18
+ */
19
+ import type { LedgerEntry } from '../../with-commit/history/ledger/entry.js';
20
+ /**
21
+ * User-supplied declaration passed to {@link withForgetCascade}. Maps a
22
+ * collection name to the record field (dotted path supported, e.g.
23
+ * `'billing.buyerId'`) that identifies the data subject for erasure.
24
+ *
25
+ * ```ts
26
+ * withForgetCascade({ subjects: { invoices: 'buyerId', contacts: 'id' } })
27
+ * ```
28
+ */
29
+ export interface SubjectDeclaration {
30
+ readonly subjects: Record<string, string>;
31
+ /**
32
+ * #633 — opt-in: gate the vault-level `_sealed_cek` and blob purges on
33
+ * per-collection via declarations instead of running them unconditionally
34
+ * for every forgotten ref. Default `false`/absent = today's unconditional
35
+ * behavior (byte-identical). See `purge-scope.ts` for the partition logic
36
+ * and the `scopedPurgeResidue` skip-reporting this enables.
37
+ *
38
+ * **Footgun:** a bare `sensitive: [...]` collection — no `classifiedFields`
39
+ * (no classified via binder compiled in) — counts as UNDECLARED for the
40
+ * sealed-CEK arm. Under `scopedPurge: true`, its `_sealed_cek` host-delivery
41
+ * envelopes are SKIPPED, not purged (reported via `scopedPurgeResidue`,
42
+ * reason `'skipped-undeclared-sealed-cek'`) even if that collection called
43
+ * `sealRecordToHost()` — the sealed CEK stays recoverable by that granted
44
+ * host until purged. Add a `classifiedFields` binding to close the gap, or
45
+ * leave `scopedPurge` off/false for the unconditional (always-purged) default.
46
+ * The declaration signal is session-local: a declared collection never opened
47
+ * (with its config) before `forget()` in this session counts as UNDECLARED —
48
+ * open it first, or its entries are skipped-and-reported.
49
+ */
50
+ readonly scopedPurge?: boolean;
51
+ }
52
+ /**
53
+ * Resolved forget strategy threaded through Noydb → every Vault. Carries
54
+ * the same `subjects` map the user declared. `NO_FORGET` (empty map) is the
55
+ * off-by-default sentinel; `vault.forget()` throws
56
+ * `ForgetStrategyNotConfiguredError` when the map is empty.
57
+ */
58
+ export interface ForgetStrategy {
59
+ /** Collection → subject-field (dotted path). Empty under `NO_FORGET`. */
60
+ readonly subjects: Readonly<Record<string, string>>;
61
+ /** #633 — see {@link SubjectDeclaration.scopedPurge}. */
62
+ readonly scopedPurge?: boolean;
63
+ }
64
+ /**
65
+ * Disabled sentinel — no collections declare a subject field. `vault.forget()`
66
+ * refuses with `ForgetStrategyNotConfiguredError`; no write hooks register; no
67
+ * collection is forced into `perRecordKeys`. Non-adopters pay nothing.
68
+ */
69
+ export declare const NO_FORGET: ForgetStrategy;
70
+ /**
71
+ * The outcome of a `vault.forget(subjectId)` call.
72
+ *
73
+ * `unmigratedRecords` lists `collection:id` pairs that were tombstoned but
74
+ * whose body had NOT been migrated to a per-record CEK at shred time (legacy
75
+ * body still under the shared collection DEK). Those records are tombstoned
76
+ * (live envelope + history stripped) but their pre-shred ciphertext, if it
77
+ * leaked into a backup before migration, remains decryptable under the
78
+ * collection DEK — so erasure-completeness is NOT guaranteed for them. Run
79
+ * the per-record-CEK migration pass, then re-forget, to close the gap.
80
+ *
81
+ * Blob attachments: a shredded record's **erasable** blobs (on a
82
+ * `perRecordKeys` collection) are crypto-shredded inline — `blobsShredded`
83
+ * counts those taken to refCount 0 (BlobObject deleted → chunks permanently
84
+ * undecryptable), `blobsRetainedShared` counts those still referenced by
85
+ * another record (shared content legitimately persists for its other owner).
86
+ * `blobResidueCollections` now lists only collections with blobs that could
87
+ * NOT be crypto-shredded: **legacy** blobs (no per-blob `_cek`, chunks under
88
+ * the shared `_blob` DEK — migrate them), or a session without the blob
89
+ * service loaded. An all-erasable subject yields an empty residue list.
90
+ */
91
+ export interface ForgetResult {
92
+ /** The subject id passed to `forget()`. Echoed for caller convenience. */
93
+ readonly subject: string;
94
+ /** Count of live records rewritten to a tombstone. */
95
+ readonly recordsShredded: number;
96
+ /** Count of `_history` envelopes tombstoned across all shredded records. */
97
+ readonly historyVersionsShredded: number;
98
+ /** Distinct collections that had at least one record shredded. */
99
+ readonly collections: readonly string[];
100
+ /** `collection:id` pairs shredded while still un-migrated (see type docs). */
101
+ readonly unmigratedRecords: readonly string[];
102
+ /** Count of erasable blobs crypto-shredded (refCount → 0, BlobObject deleted). */
103
+ readonly blobsShredded: number;
104
+ /** Count of erasable blobs retained because still referenced elsewhere (shared). */
105
+ readonly blobsRetainedShared: number;
106
+ /** Collections with blobs that could NOT be crypto-shredded — legacy (no `_cek`) or blobs disabled (see type docs). */
107
+ readonly blobResidueCollections: readonly string[];
108
+ /**
109
+ * Count of persisted `_idx/<field>/<recordId>` index side-cars hard-deleted
110
+ * across the shredded records. These live under the retained
111
+ * collection DEK, so crypto-shred alone would leave the indexed field VALUES
112
+ * readable — `forget()` must delete them.
113
+ */
114
+ readonly indexPostingsPurged: number;
115
+ /**
116
+ * `collection:id:field` entries whose persisted `_idx` side-car could NOT be
117
+ * deleted — index residue that still leaks the indexed value under the
118
+ * retained collection DEK. Non-empty means erasure is INCOMPLETE: retry, or
119
+ * purge the side-car out of band.
120
+ */
121
+ readonly indexResidue: readonly string[];
122
+ /**
123
+ * Count of `_sealed[field]` slots dropped from the live store across the
124
+ * shredded records. For slots written under `sensitive` +
125
+ * `perRecordKeys` (the current path), the key derives off the per-record CEK,
126
+ * so tombstoning the record — which drops `_cek` and `_sealed` — also
127
+ * crypto-shreds the value. A legacy slot (written before per-record CEKs) keys
128
+ * off the collection DEK instead, so dropping it removes it from the live store but a
129
+ * pre-forget backup remains recoverable by a DEK holder (same caveat `_data`
130
+ * carries); migrate by re-`put`ting before forgetting for full crypto-shred.
131
+ */
132
+ readonly sealedFieldsShredded: number;
133
+ /** Count of `_sealed_cek` host-delivery envelopes deleted (#H-1). A record sealed to an
134
+ * at-* host via sealRecordToHost persists its raw CEK there; forget() must destroy them. */
135
+ readonly sealedCekEnvelopesPurged: number;
136
+ /** `collection:id` whose `_sealed_cek` purge failed (residue — the host-recoverable CEK may survive). */
137
+ readonly sealedCekResidue: readonly string[];
138
+ /** `collection:id:field` sealed slots that were DEK-derived (legacy, written before per-record CEKs) and thus NOT crypto-shredded
139
+ * by dropping `_cek` — the collection DEK is retained, so synced/backup copies stay decryptable (#M-1). */
140
+ readonly sealedResidue: readonly string[];
141
+ /** Count of `_ledger_deltas` rows hard-deleted across the shredded records (#734) — the
142
+ * erasure twin of #729's elevate-side purge. Entry metadata (that the record was mutated,
143
+ * at which version/timestamp/actor) is retained; only the plaintext delta content is removed. */
144
+ readonly ledgerDeltasPurged: number;
145
+ /** `collection:id` refs whose `_ledger_deltas` purge failed — plaintext delta residue still
146
+ * readable under the retained ledger DEK. Non-empty means erasure is INCOMPLETE. */
147
+ readonly ledgerDeltaResidue: readonly string[];
148
+ /** The single `op:'forget'` ledger entry appended for this erasure. */
149
+ readonly ledgerEntry: LedgerEntry;
150
+ /** #622 — record-grain derived artifacts (MV rows, per-record derived copies) erased
151
+ * because their source subject was forgotten. Overlay outputs are intentionally out of
152
+ * scope here — an overlay is always sourced from an MV, never directly from a subject
153
+ * collection, so the personal-data-bearing MV rows it reads are already erased above. */
154
+ readonly derivedRecordsErased: number;
155
+ /** #622 — aggregate-grain targets (rollups) recomputed without the forgotten contribution. */
156
+ readonly derivedAggregatesRecomputed: number;
157
+ /** #622 — `collection:id` derived writes SKIPPED because the target period is frozen
158
+ * (recompute deferred; the aggregate retains the forgotten contribution — audited). */
159
+ readonly derivedResidueFrozen: readonly string[];
160
+ /** #650 Task 5 (#648) — referencing records tombstoned via a `'ref'` edge's `cascade` policy. */
161
+ readonly lookupReferencesCascaded: number;
162
+ /** #650 Task 5 (#648) — referencing fields cleared via a `'ref'` edge's `nullify` policy. */
163
+ readonly lookupReferencesNullified: number;
164
+ /** #650 Task 5 review (Important fix) — `'ref'` edges whose compare-key could NOT be resolved,
165
+ * even from the LIVE pre-shred backing row — cascade/nullify propagation was SKIPPED for these.
166
+ * Always empty in the ordinary case; non-empty means the skip is reported, never silent. */
167
+ readonly lookupReferencesResidue: readonly string[];
168
+ /** #633 — scoped-purge skip notices (opt-in `scopedPurge`, see {@link SubjectDeclaration}).
169
+ * Always empty under the unconditional default. Non-empty means a `_sealed_cek` entry or a
170
+ * blob scan was skipped for an undeclared collection — reported, never a silent skip. */
171
+ readonly scopedPurgeResidue: readonly ScopedPurgeResidueNotice[];
172
+ /** #776/#782/#785 — `collection:id` MV-output rows that survived erasure invalidation (eager
173
+ * tombstone leg AND lazy/manual `invalidateMVAtRest`) despite belonging to the forgotten
174
+ * subject, because the `_materializedFrom` ownership stamp could NOT be decoded (undecodable
175
+ * under the collection's default DEK — e.g. elevated above tier 0 on a tiered output
176
+ * collection; ownership unconfirmed — could be a plain user record on a same-collection
177
+ * partition MV). Never erased, but surfaced here rather than silently skipped (the #724
178
+ * posture). Non-empty means the row may still hold the forgotten/pre-elevation contribution,
179
+ * decryptable by tier-holders. */
180
+ readonly derivedResidueUndecodable: readonly string[];
181
+ /** #782/#785 — `collection:id` MV-output rows that DID decode and stamp-match via
182
+ * `_materializedFrom`, but whose erasure was declined by the #718 tier-elevation gate
183
+ * (`_internalDelete` returned false). Ownership CONFIRMED here — a real silent survival,
184
+ * not a stamp-mismatch skip — surfaced rather than dropped. Non-empty means a live,
185
+ * tier-holder-decryptable copy of the forgotten contribution was deliberately retained. */
186
+ readonly derivedResidueDeclined: readonly string[];
187
+ }
188
+ /** #633 — the two `scopedPurgeResidue` skip reasons. Single source of truth: `purge-scope.ts`
189
+ * (the port-internal partition helpers) imports this rather than redeclaring it. */
190
+ export type ScopedPurgeResidueReason = 'skipped-undeclared-sealed-cek' | 'skipped-undeclared-blob-scan';
191
+ /** #633 — one `ForgetResult.scopedPurgeResidue` entry: an undeclared collection's sealed-CEK
192
+ * entries left unpurged, or its blob scan skipped entirely, under `scopedPurge`. `count` is the
193
+ * number of `_sealed_cek` entries left in place (sealed-cek reason) or the number of refs whose
194
+ * blob scan was skipped (blob-scan reason) — aggregated per collection across the whole call. */
195
+ export interface ScopedPurgeResidueNotice {
196
+ readonly reason: ScopedPurgeResidueReason;
197
+ readonly collection: string;
198
+ readonly count: number;
199
+ }