@noy-db/hub 0.7.1-pre.0 → 0.8.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 (812) hide show
  1. package/CHANGELOG.md +147 -14
  2. package/LICENSE +202 -21
  3. package/NOTICE +1 -0
  4. package/README.md +5 -5
  5. package/codemods/0.8.0-pre.json +61 -0
  6. package/dist/api-OS747DS4.js +18 -0
  7. package/dist/as/index.js +11 -12
  8. package/dist/as/index.js.map +1 -1
  9. package/dist/at/index.js +9 -10
  10. package/dist/attestation/index.js +37 -26
  11. package/dist/attestation/index.js.map +1 -1
  12. package/dist/{backup-XKCXVKV3.js → backup-YE2VQ26S.js} +15 -16
  13. package/dist/backup-YE2VQ26S.js.map +1 -0
  14. package/dist/blobs/index.js +13 -14
  15. package/dist/blobs/index.js.map +1 -1
  16. package/dist/broker/index.js +12 -13
  17. package/dist/broker/index.js.map +1 -1
  18. package/dist/by/index.js +2 -2
  19. package/dist/capsule/contract.d.ts +159 -0
  20. package/dist/capsule/contract.js +95 -0
  21. package/dist/capsule/enclave-aes/bound.d.ts +52 -0
  22. package/dist/capsule/enclave-aes/capabilities.d.ts +2 -0
  23. package/dist/capsule/enclave-aes/classify/compare.d.ts +20 -0
  24. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/find.d.ts +1 -1
  25. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/reveal.d.ts +1 -1
  26. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/verify.d.ts +2 -2
  27. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/write.d.ts +1 -1
  28. package/dist/{kernel/enclave → capsule/enclave-aes}/crypto.d.ts +33 -129
  29. package/dist/capsule/enclave-aes/index.d.ts +113 -0
  30. package/dist/capsule/enclave-aes/index.js +335 -0
  31. package/dist/capsule/enclave-aes/index.js.map +1 -0
  32. package/dist/capsule/enclave-aes/primitives.d.ts +29 -0
  33. package/dist/capsule/index.d.ts +27 -0
  34. package/dist/capsule/plumbing/ct-equal.d.ts +11 -0
  35. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/deterministic.d.ts +8 -21
  36. package/dist/capsule/plumbing/digest.d.ts +122 -0
  37. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/envelope-body.d.ts +44 -48
  38. package/dist/capsule/plumbing/index.d.ts +100 -0
  39. package/dist/capsule/plumbing/lifecycle.d.ts +50 -0
  40. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/record-codec.d.ts +80 -20
  41. package/dist/{kernel/enclave → capsule/plumbing}/record-envelope.d.ts +1 -1
  42. package/dist/capsule/plumbing/rekey-blob.d.ts +33 -0
  43. package/dist/capsule/plumbing/rekey.d.ts +44 -0
  44. package/dist/capsule/plumbing/sealed-slot.d.ts +22 -0
  45. package/dist/capsule/plumbing/sealed-slots.d.ts +37 -0
  46. package/dist/capsule/plumbing/sealing.d.ts +29 -0
  47. package/dist/capsule/plumbing/sign.d.ts +9 -0
  48. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/tombstone.d.ts +2 -2
  49. package/dist/capsule-VOLX3QRQ.js +209 -0
  50. package/dist/cargo/index.js +39 -36
  51. package/dist/{chunk-Q2MPFCQ7.js → chunk-23D6M6VM.js} +5 -5
  52. package/dist/chunk-23D6M6VM.js.map +1 -0
  53. package/dist/{chunk-R7BX2NB3.js → chunk-244QBK7Z.js} +4 -4
  54. package/dist/chunk-244QBK7Z.js.map +1 -0
  55. package/dist/chunk-2AFX33YA.js +936 -0
  56. package/dist/chunk-2AFX33YA.js.map +1 -0
  57. package/dist/{chunk-MVMXZYXT.js → chunk-2GHDLTPE.js} +2 -2
  58. package/dist/{chunk-GYGLAVCX.js → chunk-2MG3SW7Q.js} +6 -2
  59. package/dist/chunk-2MG3SW7Q.js.map +1 -0
  60. package/dist/{chunk-XLMEZIAJ.js → chunk-2ODVB6LZ.js} +2 -2
  61. package/dist/{chunk-HJUWN7JN.js → chunk-2PVXF5CS.js} +33 -8
  62. package/dist/chunk-2PVXF5CS.js.map +1 -0
  63. package/dist/{chunk-YJRT5UQM.js → chunk-2RH777HH.js} +21 -20
  64. package/dist/{chunk-YJRT5UQM.js.map → chunk-2RH777HH.js.map} +1 -1
  65. package/dist/{chunk-7O3Y4PPD.js → chunk-37EPTBBR.js} +153 -16
  66. package/dist/chunk-37EPTBBR.js.map +1 -0
  67. package/dist/{chunk-2ENE6445.js → chunk-3A5DUZ56.js} +102 -16
  68. package/dist/chunk-3A5DUZ56.js.map +1 -0
  69. package/dist/chunk-3EWS67C7.js +461 -0
  70. package/dist/chunk-3EWS67C7.js.map +1 -0
  71. package/dist/{chunk-SGZAIJCV.js → chunk-3L2NBKDR.js} +4 -8
  72. package/dist/chunk-3L2NBKDR.js.map +1 -0
  73. package/dist/{chunk-YMUFFJCO.js → chunk-3TDUWVWB.js} +5 -2
  74. package/dist/chunk-3TDUWVWB.js.map +1 -0
  75. package/dist/{chunk-4GVM6QZA.js → chunk-3XJQBBZD.js} +26 -28
  76. package/dist/chunk-3XJQBBZD.js.map +1 -0
  77. package/dist/{chunk-4ZS56W5S.js → chunk-42ALPZ2B.js} +672 -664
  78. package/dist/chunk-42ALPZ2B.js.map +1 -0
  79. package/dist/chunk-4CIQDWRB.js +524 -0
  80. package/dist/chunk-4CIQDWRB.js.map +1 -0
  81. package/dist/{chunk-RMS3NEA3.js → chunk-4JPMZTJY.js} +2 -2
  82. package/dist/{chunk-P3MG6QCN.js → chunk-4T3SE27M.js} +5 -9
  83. package/dist/chunk-4T3SE27M.js.map +1 -0
  84. package/dist/chunk-4V3Q35WG.js +204 -0
  85. package/dist/chunk-4V3Q35WG.js.map +1 -0
  86. package/dist/{chunk-NQKIUNW5.js → chunk-52MGURXO.js} +2 -2
  87. package/dist/{chunk-EQEYOJBM.js → chunk-5A4345TG.js} +4 -4
  88. package/dist/chunk-5A4345TG.js.map +1 -0
  89. package/dist/{chunk-334WSVOW.js → chunk-5FE75J4S.js} +6 -6
  90. package/dist/chunk-5FE75J4S.js.map +1 -0
  91. package/dist/chunk-5KC7QYEC.js +565 -0
  92. package/dist/chunk-5KC7QYEC.js.map +1 -0
  93. package/dist/{chunk-RSGLUIO6.js → chunk-5UMK7GRI.js} +13 -12
  94. package/dist/chunk-5UMK7GRI.js.map +1 -0
  95. package/dist/chunk-5WWDGFOS.js +275 -0
  96. package/dist/chunk-5WWDGFOS.js.map +1 -0
  97. package/dist/{chunk-QPQUVOZ2.js → chunk-6QVKPHBF.js} +3 -5
  98. package/dist/chunk-6QVKPHBF.js.map +1 -0
  99. package/dist/{chunk-ACAQ2DSG.js → chunk-747G6CT3.js} +2 -2
  100. package/dist/chunk-747G6CT3.js.map +1 -0
  101. package/dist/{chunk-QTQUH4DS.js → chunk-7R2Q7CPL.js} +16 -16
  102. package/dist/chunk-7R2Q7CPL.js.map +1 -0
  103. package/dist/{chunk-UGTBXF5U.js → chunk-7XMHMVTS.js} +3 -3
  104. package/dist/{chunk-YJX7EOJD.js → chunk-A4XMIZT3.js} +6 -6
  105. package/dist/{chunk-YJX7EOJD.js.map → chunk-A4XMIZT3.js.map} +1 -1
  106. package/dist/{chunk-A66I4JOA.js → chunk-AEQGFRU4.js} +4 -4
  107. package/dist/chunk-AEQGFRU4.js.map +1 -0
  108. package/dist/chunk-AL6ML4LA.js +1558 -0
  109. package/dist/chunk-AL6ML4LA.js.map +1 -0
  110. package/dist/{chunk-BZ3534YM.js → chunk-AUKKUPVB.js} +2 -2
  111. package/dist/{chunk-CUZLNGD5.js → chunk-B2YY6WDD.js} +1 -1
  112. package/dist/chunk-B2YY6WDD.js.map +1 -0
  113. package/dist/chunk-BKT776R5.js +1 -0
  114. package/dist/chunk-BNWA3WG5.js +22 -0
  115. package/dist/chunk-BNWA3WG5.js.map +1 -0
  116. package/dist/{chunk-VXANTWBJ.js → chunk-BPWYQ25R.js} +92 -6
  117. package/dist/{chunk-VXANTWBJ.js.map → chunk-BPWYQ25R.js.map} +1 -1
  118. package/dist/{chunk-6LKOJBV6.js → chunk-BVCUTXE3.js} +2 -2
  119. package/dist/chunk-CY2CYVWZ.js +41 -0
  120. package/dist/chunk-CY2CYVWZ.js.map +1 -0
  121. package/dist/{chunk-M4YPHYEH.js → chunk-DHHGL42E.js} +70 -25
  122. package/dist/chunk-DHHGL42E.js.map +1 -0
  123. package/dist/{chunk-VTFVLCUH.js → chunk-DIZLQVAA.js} +2 -2
  124. package/dist/{chunk-G73UVHCA.js → chunk-DLD5LGDS.js} +11 -12
  125. package/dist/chunk-DLD5LGDS.js.map +1 -0
  126. package/dist/{chunk-WQBG4SZS.js → chunk-DQESF6RP.js} +60 -49
  127. package/dist/chunk-DQESF6RP.js.map +1 -0
  128. package/dist/{chunk-LWBCUYZW.js → chunk-E2N2T5ZO.js} +2 -2
  129. package/dist/{chunk-3PGS7TYR.js → chunk-EGVJ7TM4.js} +29 -32
  130. package/dist/chunk-EGVJ7TM4.js.map +1 -0
  131. package/dist/{chunk-JVIBCBC7.js → chunk-EJLV62NI.js} +2 -2
  132. package/dist/{chunk-KKEESNPE.js → chunk-EYG2CY2X.js} +126 -19
  133. package/dist/chunk-EYG2CY2X.js.map +1 -0
  134. package/dist/{enclave-55PAM4YO.js → chunk-EZGV6F47.js} +83 -56
  135. package/dist/chunk-EZGV6F47.js.map +1 -0
  136. package/dist/{chunk-CHQCZZWC.js → chunk-EZOAKKTB.js} +36 -27
  137. package/dist/chunk-EZOAKKTB.js.map +1 -0
  138. package/dist/chunk-F6NCB7KT.js +13 -0
  139. package/dist/chunk-F6NCB7KT.js.map +1 -0
  140. package/dist/chunk-FFJFE4T7.js +100 -0
  141. package/dist/chunk-FFJFE4T7.js.map +1 -0
  142. package/dist/{chunk-JMGDHKQF.js → chunk-FLPCETP6.js} +2 -2
  143. package/dist/chunk-FOEDQATO.js +53 -0
  144. package/dist/chunk-FOEDQATO.js.map +1 -0
  145. package/dist/{chunk-DGOZ4UZD.js → chunk-FVH5QYY2.js} +2 -2
  146. package/dist/{chunk-HIWCKBEY.js → chunk-G2MVBDFP.js} +54 -28
  147. package/dist/chunk-G2MVBDFP.js.map +1 -0
  148. package/dist/chunk-GMKGGY7V.js +234 -0
  149. package/dist/chunk-GMKGGY7V.js.map +1 -0
  150. package/dist/{chunk-EIPVYUEP.js → chunk-GQ4MF3CM.js} +3 -3
  151. package/dist/chunk-GQ4MF3CM.js.map +1 -0
  152. package/dist/{chunk-PEOZ34EM.js → chunk-GSAK56VF.js} +1 -1
  153. package/dist/chunk-GSAK56VF.js.map +1 -0
  154. package/dist/{chunk-5VCRVKOZ.js → chunk-GUZET4SG.js} +12 -4
  155. package/dist/chunk-GUZET4SG.js.map +1 -0
  156. package/dist/{chunk-JBDFMYKQ.js → chunk-GZT3NQRA.js} +2 -2
  157. package/dist/{chunk-K23VKTN4.js → chunk-H23XHRTT.js} +19 -34
  158. package/dist/chunk-H23XHRTT.js.map +1 -0
  159. package/dist/{chunk-TFR7DSOV.js → chunk-H427H63K.js} +2 -2
  160. package/dist/{chunk-DFMWUOU5.js → chunk-H7JBY4P7.js} +23 -32
  161. package/dist/chunk-H7JBY4P7.js.map +1 -0
  162. package/dist/{chunk-SKGMN35F.js → chunk-HS554XAF.js} +3 -3
  163. package/dist/chunk-HS554XAF.js.map +1 -0
  164. package/dist/{chunk-HK67PX4J.js → chunk-HW7CMKUG.js} +1 -1
  165. package/dist/chunk-HW7CMKUG.js.map +1 -0
  166. package/dist/{chunk-3BVH633C.js → chunk-IMQKWR46.js} +5 -7
  167. package/dist/chunk-IMQKWR46.js.map +1 -0
  168. package/dist/{chunk-R42NSZI6.js → chunk-IUBMZPHM.js} +7 -7
  169. package/dist/chunk-IUBMZPHM.js.map +1 -0
  170. package/dist/{chunk-CUQPWYRX.js → chunk-IUT3GWP3.js} +75 -386
  171. package/dist/chunk-IUT3GWP3.js.map +1 -0
  172. package/dist/{chunk-RF6D3Y5E.js → chunk-JDEYF3PJ.js} +4 -8
  173. package/dist/{chunk-RF6D3Y5E.js.map → chunk-JDEYF3PJ.js.map} +1 -1
  174. package/dist/{chunk-PPTHY5QO.js → chunk-JIBUPZHA.js} +99 -8
  175. package/dist/chunk-JIBUPZHA.js.map +1 -0
  176. package/dist/{chunk-SMH6SRX7.js → chunk-JOSPH3E5.js} +2 -2
  177. package/dist/chunk-JQYKPKG6.js +193 -0
  178. package/dist/chunk-JQYKPKG6.js.map +1 -0
  179. package/dist/{chunk-7APJ6CO6.js → chunk-JSMTXZR3.js} +45 -13
  180. package/dist/chunk-JSMTXZR3.js.map +1 -0
  181. package/dist/chunk-JWWYRR4Q.js +12 -0
  182. package/dist/chunk-JWWYRR4Q.js.map +1 -0
  183. package/dist/{chunk-BVN6KXL2.js → chunk-KZXDLBY6.js} +14 -9
  184. package/dist/chunk-KZXDLBY6.js.map +1 -0
  185. package/dist/chunk-LGNDFRYC.js +23 -0
  186. package/dist/chunk-LGNDFRYC.js.map +1 -0
  187. package/dist/{chunk-XKWGNJ26.js → chunk-LIOVX5TJ.js} +7 -11
  188. package/dist/chunk-LIOVX5TJ.js.map +1 -0
  189. package/dist/{chunk-AYX7AINO.js → chunk-LNSVGRHO.js} +5 -7
  190. package/dist/chunk-LNSVGRHO.js.map +1 -0
  191. package/dist/chunk-M5B2W6YY.js +293 -0
  192. package/dist/chunk-M5B2W6YY.js.map +1 -0
  193. package/dist/chunk-MBMTND6D.js +456 -0
  194. package/dist/chunk-MBMTND6D.js.map +1 -0
  195. package/dist/{chunk-3BZZJJMQ.js → chunk-MILI22XQ.js} +3 -3
  196. package/dist/{chunk-A2HKRLPV.js → chunk-MXKI4ABF.js} +18 -59
  197. package/dist/chunk-MXKI4ABF.js.map +1 -0
  198. package/dist/{chunk-ZYIYHJ5R.js → chunk-MXOQ5JCG.js} +869 -238
  199. package/dist/chunk-MXOQ5JCG.js.map +1 -0
  200. package/dist/{chunk-V7ZRRCRJ.js → chunk-N7EVQD5S.js} +9 -13
  201. package/dist/chunk-N7EVQD5S.js.map +1 -0
  202. package/dist/chunk-N7UDP5VU.js +757 -0
  203. package/dist/chunk-N7UDP5VU.js.map +1 -0
  204. package/dist/chunk-NBQ3KK6X.js +270 -0
  205. package/dist/chunk-NBQ3KK6X.js.map +1 -0
  206. package/dist/{chunk-ZORTV6NH.js → chunk-NCO25JZO.js} +88 -4
  207. package/dist/chunk-NCO25JZO.js.map +1 -0
  208. package/dist/chunk-NH2UOV3B.js +18 -0
  209. package/dist/chunk-NH2UOV3B.js.map +1 -0
  210. package/dist/chunk-NYMLINRP.js +28 -0
  211. package/dist/chunk-NYMLINRP.js.map +1 -0
  212. package/dist/{chunk-YYP7WSEB.js → chunk-O2IMQSNA.js} +2 -2
  213. package/dist/chunk-O46CHQT7.js +215 -0
  214. package/dist/chunk-O46CHQT7.js.map +1 -0
  215. package/dist/chunk-OIEO4WDL.js +27 -0
  216. package/dist/chunk-OIEO4WDL.js.map +1 -0
  217. package/dist/{chunk-TRGTKX5E.js → chunk-OKSTSITU.js} +27 -4
  218. package/dist/chunk-OKSTSITU.js.map +1 -0
  219. package/dist/chunk-OYW3I5M4.js +31 -0
  220. package/dist/chunk-OYW3I5M4.js.map +1 -0
  221. package/dist/{chunk-Q7HZX3IF.js → chunk-PD64727P.js} +2 -2
  222. package/dist/chunk-PD64727P.js.map +1 -0
  223. package/dist/{chunk-FET5XCAT.js → chunk-PP3K67AJ.js} +34 -6
  224. package/dist/chunk-PP3K67AJ.js.map +1 -0
  225. package/dist/chunk-Q2XRFWOI.js +40 -0
  226. package/dist/chunk-Q2XRFWOI.js.map +1 -0
  227. package/dist/{chunk-QIZPZMUI.js → chunk-Q4UHJ5SN.js} +2 -2
  228. package/dist/{chunk-FAHMLERK.js → chunk-QBLT6POL.js} +2 -2
  229. package/dist/chunk-QMWY2FDS.js +157 -0
  230. package/dist/chunk-QMWY2FDS.js.map +1 -0
  231. package/dist/{chunk-LH5A3ZPG.js → chunk-RB4DOPGZ.js} +150 -22
  232. package/dist/chunk-RB4DOPGZ.js.map +1 -0
  233. package/dist/chunk-RHVMZSUU.js +7 -0
  234. package/dist/chunk-RHVMZSUU.js.map +1 -0
  235. package/dist/{chunk-BUE2D7PX.js → chunk-SMV2HRDU.js} +2 -2
  236. package/dist/chunk-SUZKW6UR.js +25 -0
  237. package/dist/chunk-SUZKW6UR.js.map +1 -0
  238. package/dist/{chunk-7MG7SJT7.js → chunk-SV2PM2OY.js} +1 -1
  239. package/dist/chunk-SV2PM2OY.js.map +1 -0
  240. package/dist/{chunk-UXVWEX5L.js → chunk-SYNY3VB5.js} +6 -2
  241. package/dist/chunk-SYNY3VB5.js.map +1 -0
  242. package/dist/{chunk-4GFX6MPA.js → chunk-TEHHROZL.js} +6 -8
  243. package/dist/chunk-TEHHROZL.js.map +1 -0
  244. package/dist/chunk-TKVUE4JF.js +1289 -0
  245. package/dist/chunk-TKVUE4JF.js.map +1 -0
  246. package/dist/{chunk-SFAWCTEM.js → chunk-TZZBXPZK.js} +2 -2
  247. package/dist/{chunk-F3W6YMDC.js → chunk-U2FZNEWJ.js} +4 -4
  248. package/dist/chunk-U2FZNEWJ.js.map +1 -0
  249. package/dist/{chunk-BLN54W3L.js → chunk-UA372JHH.js} +56 -3
  250. package/dist/chunk-UA372JHH.js.map +1 -0
  251. package/dist/{chunk-6YXCPL4T.js → chunk-UEFOQH74.js} +2 -2
  252. package/dist/chunk-UEFOQH74.js.map +1 -0
  253. package/dist/{chunk-2N5ML6HT.js → chunk-UIYESRD6.js} +9 -11
  254. package/dist/chunk-UIYESRD6.js.map +1 -0
  255. package/dist/{chunk-UHHPLO3I.js → chunk-V3RWOOSO.js} +4 -4
  256. package/dist/{chunk-KTFRCC5C.js → chunk-V7ADQF5O.js} +82 -8
  257. package/dist/chunk-V7ADQF5O.js.map +1 -0
  258. package/dist/{chunk-453F654R.js → chunk-VAORSCSU.js} +3 -3
  259. package/dist/chunk-VAORSCSU.js.map +1 -0
  260. package/dist/{chunk-GPNTB4Y7.js → chunk-VFHCKG5M.js} +6 -10
  261. package/dist/chunk-VFHCKG5M.js.map +1 -0
  262. package/dist/{chunk-2577DKXB.js → chunk-VHBKYN2J.js} +3 -3
  263. package/dist/chunk-VHBKYN2J.js.map +1 -0
  264. package/dist/chunk-VHM7HCKB.js +220 -0
  265. package/dist/chunk-VHM7HCKB.js.map +1 -0
  266. package/dist/{chunk-ZHKOPKE3.js → chunk-VKI2EB3N.js} +3 -3
  267. package/dist/chunk-VKI2EB3N.js.map +1 -0
  268. package/dist/{chunk-UDHWDSRL.js → chunk-VMV5SBE4.js} +16 -17
  269. package/dist/chunk-VMV5SBE4.js.map +1 -0
  270. package/dist/{chunk-SPYWXKJN.js → chunk-VQDZYB2B.js} +3 -3
  271. package/dist/chunk-VQDZYB2B.js.map +1 -0
  272. package/dist/{chunk-Q2PU57HC.js → chunk-VVOLDVIR.js} +2 -2
  273. package/dist/{chunk-3VF3WQ4F.js → chunk-WPOYWFSE.js} +7 -7
  274. package/dist/{chunk-3VF3WQ4F.js.map → chunk-WPOYWFSE.js.map} +1 -1
  275. package/dist/{chunk-OTQZ7ZWU.js → chunk-WXE4W2U6.js} +7 -11
  276. package/dist/chunk-WXE4W2U6.js.map +1 -0
  277. package/dist/chunk-XBKH4FOC.js +195 -0
  278. package/dist/chunk-XBKH4FOC.js.map +1 -0
  279. package/dist/{chunk-TUFM4UZP.js → chunk-XQRFSKYM.js} +2 -2
  280. package/dist/{chunk-3V4KWFX7.js → chunk-XSPFDUDG.js} +58 -53
  281. package/dist/chunk-XSPFDUDG.js.map +1 -0
  282. package/dist/{chunk-GY4WYNNG.js → chunk-Y2RKVFKR.js} +2 -2
  283. package/dist/{chunk-UP4BECPY.js → chunk-Y3LPTBG7.js} +89 -27
  284. package/dist/chunk-Y3LPTBG7.js.map +1 -0
  285. package/dist/{chunk-4OZNXTO4.js → chunk-YRXFFWG4.js} +2 -2
  286. package/dist/classified/index.js +5 -5
  287. package/dist/{classified-marker-BWOFVYAC.js → classified-marker-SIYKUU5L.js} +3 -3
  288. package/dist/classified-marker-SIYKUU5L.js.map +1 -0
  289. package/dist/collection-facade-CS7CA2XO.js +47 -0
  290. package/dist/{computed-VPOKQK4N.js → computed-FAD7SED4.js} +3 -3
  291. package/dist/consent/index.js +10 -11
  292. package/dist/consent/index.js.map +1 -1
  293. package/dist/cover/index.js +10 -11
  294. package/dist/coverage/index.js +306 -0
  295. package/dist/coverage/index.js.map +1 -0
  296. package/dist/custody/index.js +12 -13
  297. package/dist/{dead-filter-PKQDLOT4.js → dead-filter-4F3LWYKH.js} +11 -3
  298. package/dist/dead-filter-4F3LWYKH.js.map +1 -0
  299. package/dist/debug/index.js +11 -2
  300. package/dist/debug/index.js.map +1 -1
  301. package/dist/{delegation-DS5NRILW.js → delegation-NANZDG4N.js} +13 -16
  302. package/dist/delegation-NANZDG4N.js.map +1 -0
  303. package/dist/derivations/index.js +25 -23
  304. package/dist/derive-XLOJVXPU.js +20 -0
  305. package/dist/directory/index.js +10 -11
  306. package/dist/{dispatch-IEPAVQUM.js → dispatch-H4HV32AM.js} +5 -5
  307. package/dist/{dispatch-Q6MWLOJY.js → dispatch-JDZNGEB3.js} +20 -21
  308. package/dist/dispatch-JDZNGEB3.js.map +1 -0
  309. package/dist/executor-FMPVN6DT.js +35 -0
  310. package/dist/executor-LBBBRTN5.js +8 -0
  311. package/dist/executor-OSRZST2U.js +8 -0
  312. package/dist/export-accessible-RAOJAAU5.js +22 -0
  313. package/dist/extract-partition-JD5CUSTG.js +37 -0
  314. package/dist/{fanout-sidecar-S3QL53YX.js → fanout-sidecar-L7NHPIOC.js} +13 -15
  315. package/dist/fanout-sidecar-L7NHPIOC.js.map +1 -0
  316. package/dist/find-JRN4RNQ5.js +10 -0
  317. package/dist/forget/index.js +9 -10
  318. package/dist/forget/index.js.map +1 -1
  319. package/dist/guards/index.js +4 -4
  320. package/dist/history/index.js +13 -14
  321. package/dist/history/index.js.map +1 -1
  322. package/dist/i18n/index.js +14 -15
  323. package/dist/i18n/index.js.map +1 -1
  324. package/dist/index.d.ts +36 -14
  325. package/dist/index.js +970 -163
  326. package/dist/index.js.map +1 -1
  327. package/dist/indexing/index.js +13 -5
  328. package/dist/indexing/index.js.map +1 -1
  329. package/dist/introspection/index.js +11 -12
  330. package/dist/issue-YIVBZUTH.js +19 -0
  331. package/dist/ivf-flat-UZ6DQDLS.js +314 -0
  332. package/dist/ivf-flat-UZ6DQDLS.js.map +1 -0
  333. package/dist/{json-schema-V3M5MUCM.js → json-schema-3SHX72CC.js} +2 -1
  334. package/dist/json-schema-3SHX72CC.js.map +1 -0
  335. package/dist/kernel/attestation-types.d.ts +62 -0
  336. package/dist/kernel/collection-config.d.ts +5 -68
  337. package/dist/kernel/collection.d.ts +30 -9
  338. package/dist/kernel/cutover-transform.d.ts +1 -1
  339. package/dist/kernel/errors.d.ts +257 -38
  340. package/dist/kernel/generation-map.d.ts +48 -0
  341. package/dist/kernel/merge-authority.d.ts +1 -1
  342. package/dist/kernel/noydb.d.ts +6 -1
  343. package/dist/kernel/paths.d.ts +29 -5
  344. package/dist/kernel/prepared-write.d.ts +1 -1
  345. package/dist/kernel/present-cache.d.ts +58 -0
  346. package/dist/kernel/query/all.d.ts +7 -0
  347. package/dist/kernel/query/builder.d.ts +601 -270
  348. package/dist/kernel/query/civil-date.d.ts +64 -0
  349. package/dist/kernel/query/cursor.d.ts +40 -0
  350. package/dist/kernel/query/distinct-key.d.ts +98 -0
  351. package/dist/kernel/query/hydration.d.ts +76 -0
  352. package/dist/kernel/query/index.d.ts +31 -15
  353. package/dist/kernel/query/internal/core.d.ts +30 -0
  354. package/dist/kernel/query/internal/hooks.d.ts +22 -0
  355. package/dist/kernel/query/internal/maintenance.d.ts +43 -0
  356. package/dist/kernel/query/live/incremental.d.ts +314 -0
  357. package/dist/kernel/query/live/index.d.ts +22 -0
  358. package/dist/kernel/query/live/install.d.ts +2 -0
  359. package/dist/kernel/query/{live.d.ts → live/live.d.ts} +39 -9
  360. package/dist/kernel/query/live/methods.d.ts +107 -0
  361. package/dist/kernel/query/predicate.d.ts +119 -1
  362. package/dist/kernel/query/reduce/date-trunc.d.ts +75 -0
  363. package/dist/kernel/query/reduce/index.d.ts +36 -0
  364. package/dist/kernel/query/reduce/install.d.ts +2 -0
  365. package/dist/kernel/query/reduce/methods.d.ts +259 -0
  366. package/dist/kernel/query/reduce/scan-methods.d.ts +121 -0
  367. package/dist/kernel/query/relate/explain.d.ts +199 -0
  368. package/dist/kernel/query/relate/index.d.ts +48 -0
  369. package/dist/kernel/query/relate/install.d.ts +2 -0
  370. package/dist/kernel/query/relate/join-on.d.ts +126 -0
  371. package/dist/kernel/query/relate/join-reduce.d.ts +16 -0
  372. package/dist/kernel/query/relate/join.d.ts +452 -0
  373. package/dist/kernel/query/relate/methods.d.ts +426 -0
  374. package/dist/kernel/query/relate/partition.d.ts +87 -0
  375. package/dist/kernel/query/relate/scan-methods.d.ts +163 -0
  376. package/dist/kernel/query/relate/traverse.d.ts +109 -0
  377. package/dist/kernel/query/scan-builder.d.ts +79 -176
  378. package/dist/kernel/query/sort-key.d.ts +52 -0
  379. package/dist/kernel/secret-mode.d.ts +1 -1
  380. package/dist/kernel/tx-write-gate.d.ts +77 -0
  381. package/dist/kernel/types.d.ts +113 -8
  382. package/dist/kernel/validation.d.ts +27 -10
  383. package/dist/kernel/vault.d.ts +11 -6
  384. package/dist/kernel/via/compose.d.ts +3 -0
  385. package/dist/kernel/via/index.d.ts +56 -0
  386. package/dist/kernel/via/pipeline.d.ts +48 -0
  387. package/dist/kernel/write-queue.d.ts +17 -0
  388. package/dist/{ledger-EDXFFZQL.js → ledger-5ZMGE44K.js} +11 -12
  389. package/dist/liberate-WZSZM2W6.js +24 -0
  390. package/dist/link-set-MFXC24VK.js +29 -0
  391. package/dist/{managed-secret-NCWEMPUQ.js → managed-secret-MFTFT22X.js} +10 -11
  392. package/dist/materialized-views/index.js +30 -24
  393. package/dist/{migrate-cek-5ENH64AA.js → migrate-cek-DZRFFOHW.js} +2 -2
  394. package/dist/money/index.js +5 -5
  395. package/dist/noydb-ITIGNKUF.js +96 -0
  396. package/dist/overlay-views/index.js +4 -4
  397. package/dist/periods/index.js +12 -13
  398. package/dist/pod/index.js +74 -67
  399. package/dist/{pod-handle-ECVCDIXW.js → pod-handle-A3LET7NO.js} +10 -11
  400. package/dist/pod-handle-A3LET7NO.js.map +1 -0
  401. package/dist/policy/index.js +10 -11
  402. package/dist/port/on/index.d.ts +1 -1
  403. package/dist/port/to/index.d.ts +1 -1
  404. package/dist/port/with/blob-strategy.d.ts +10 -1
  405. package/dist/port/with/classified-strategy.d.ts +1 -1
  406. package/dist/port/with/collection-options.d.ts +6 -1
  407. package/dist/port/with/collection-registries.d.ts +1 -1
  408. package/dist/port/with/coverage-strategy.d.ts +83 -0
  409. package/dist/port/with/lookup-strategy.d.ts +2 -2
  410. package/dist/port/with/service-bus.d.ts +46 -0
  411. package/dist/port/with/strategies.d.ts +2 -0
  412. package/dist/portability/index.js +8 -8
  413. package/dist/{post-register-3IPCSG6Q.js → post-register-7ND27CF2.js} +6 -6
  414. package/dist/post-register-7ND27CF2.js.map +1 -0
  415. package/dist/query/all/index.js +31 -0
  416. package/dist/query/index.js +20 -32
  417. package/dist/query/live/index.js +21 -0
  418. package/dist/query/live/index.js.map +1 -0
  419. package/dist/query/reduce/index.js +33 -0
  420. package/dist/query/reduce/index.js.map +1 -0
  421. package/dist/query/relate/index.js +56 -0
  422. package/dist/query/relate/index.js.map +1 -0
  423. package/dist/reduce/index.js +72 -18
  424. package/dist/reduce/index.js.map +1 -1
  425. package/dist/register-DT5HZ2LZ.js +30 -0
  426. package/dist/registry-BHRZGZHF.js +8 -0
  427. package/dist/registry-ET6ZFFWA.js +34 -0
  428. package/dist/registry-HXFGLGTG.js +8 -0
  429. package/dist/registry-THCPDEOD.js +23 -0
  430. package/dist/request-withdrawal-AV2MJJKY.js +30 -0
  431. package/dist/{reveal-QZDHSGD4.js → reveal-B2TLP4JQ.js} +10 -9
  432. package/dist/reveal-B2TLP4JQ.js.map +1 -0
  433. package/dist/revoke-6DWIEOCV.js +24 -0
  434. package/dist/satellites/index.js +1 -1
  435. package/dist/schema-update/index.js +2 -2
  436. package/dist/sealed-record/index.js +16 -18
  437. package/dist/sealed-record/index.js.map +1 -1
  438. package/dist/search/index.js +11 -5
  439. package/dist/{seed-X5CC22CQ.js → seed-XNSE4U3S.js} +15 -18
  440. package/dist/seed-XNSE4U3S.js.map +1 -0
  441. package/dist/sequence/index.js +9 -10
  442. package/dist/session/index.js +9 -10
  443. package/dist/session/index.js.map +1 -1
  444. package/dist/shadow/index.js +2 -2
  445. package/dist/signer-MHGW3OIL.js +23 -0
  446. package/dist/snapshots/index.js +11 -11
  447. package/dist/stale-6GCFMOOR.js +28 -0
  448. package/dist/storage-BYN5LO6Z.js +21 -0
  449. package/dist/storage-BYN5LO6Z.js.map +1 -0
  450. package/dist/store/index.js +1 -1
  451. package/dist/{store-coordination-provider-4WZAIRHC.js → store-coordination-provider-C4BPT5XF.js} +11 -12
  452. package/dist/store-coordination-provider-C4BPT5XF.js.map +1 -0
  453. package/dist/sync/index.js +10 -11
  454. package/dist/sync/index.js.map +1 -1
  455. package/dist/team/index.js +17 -16
  456. package/dist/tiers/index.js +13 -12
  457. package/dist/to/index.js +2 -2
  458. package/dist/transactions/index.js +3 -3
  459. package/dist/util/index.js +1 -1
  460. package/dist/vault-head/index.js +11 -14
  461. package/dist/vault-head/index.js.map +1 -1
  462. package/dist/{verify-6MDTIUEV.js → verify-UKALW7C2.js} +14 -12
  463. package/dist/verify-UKALW7C2.js.map +1 -0
  464. package/dist/via/blob/index.d.ts +1 -0
  465. package/dist/via/classified/binding.d.ts +2 -2
  466. package/dist/via/classified/config-drift.d.ts +2 -2
  467. package/dist/via/classified/errors.d.ts +1 -1
  468. package/dist/via/geo/binding.d.ts +31 -0
  469. package/dist/via/geo/descriptor.d.ts +54 -0
  470. package/dist/via/geo/geohash.d.ts +95 -0
  471. package/dist/via/geo/index.d.ts +13 -0
  472. package/dist/via/geo/where.d.ts +50 -0
  473. package/dist/via/i18n/core.d.ts +1 -1
  474. package/dist/via/lookup/handle.d.ts +4 -4
  475. package/dist/via/lookup/registry.d.ts +1 -1
  476. package/dist/via/lookup/snapshot.d.ts +3 -3
  477. package/dist/walk-4VPK7AS4.js +20 -0
  478. package/dist/walk-4VPK7AS4.js.map +1 -0
  479. package/dist/with-audit/attestation/index.d.ts +2 -1
  480. package/dist/with-audit/attestation/issue.d.ts +2 -2
  481. package/dist/with-audit/attestation/revoke.d.ts +2 -2
  482. package/dist/with-audit/attestation/scheme.d.ts +7 -0
  483. package/dist/with-audit/attestation/signer.d.ts +1 -1
  484. package/dist/with-audit/attestation/strategy.d.ts +2 -2
  485. package/dist/with-audit/attestation/types.d.ts +10 -0
  486. package/dist/with-audit/attestation/vault-facade.d.ts +2 -2
  487. package/dist/with-audit/attestation/verifier.d.ts +6 -0
  488. package/dist/with-audit/consent/consent.d.ts +1 -1
  489. package/dist/with-audit/consent/strategy.d.ts +1 -1
  490. package/dist/with-audit/coverage/accounting.d.ts +112 -0
  491. package/dist/with-audit/coverage/active.d.ts +29 -0
  492. package/dist/with-audit/coverage/index.d.ts +61 -0
  493. package/dist/with-audit/coverage/sketch.d.ts +75 -0
  494. package/dist/with-audit/forget/subject-index.d.ts +1 -1
  495. package/dist/with-audit/periods/periods.d.ts +55 -7
  496. package/dist/with-audit/periods/reserved-collections.d.ts +3 -0
  497. package/dist/with-audit/periods/vault-facade.d.ts +18 -1
  498. package/dist/with-audit/sealed-record/index.d.ts +2 -2
  499. package/dist/with-audit/sealed-record/strategy.d.ts +1 -1
  500. package/dist/with-audit/tiers/index.d.ts +53 -2
  501. package/dist/with-audit/tiers/strategy.d.ts +8 -0
  502. package/dist/with-cargo/adopt-partition.d.ts +1 -1
  503. package/dist/with-cargo/extract-partition.d.ts +1 -1
  504. package/dist/with-cargo/floor.d.ts +3 -3
  505. package/dist/with-commit/history/history.d.ts +2 -2
  506. package/dist/with-commit/history/index.d.ts +1 -1
  507. package/dist/with-commit/history/ledger/store.d.ts +1 -1
  508. package/dist/with-commit/history/strategy.d.ts +1 -1
  509. package/dist/with-commit/history/time-machine.d.ts +1 -1
  510. package/dist/with-commit/numbering/index.d.ts +1 -1
  511. package/dist/with-commit/sequence/index.d.ts +1 -1
  512. package/dist/with-commit/tx/invariants.d.ts +1 -1
  513. package/dist/with-commit/tx/transaction.d.ts +13 -3
  514. package/dist/with-commit/vault-head/head.d.ts +1 -1
  515. package/dist/with-commit/vault-head/index.d.ts +1 -1
  516. package/dist/with-commit/vault-head/strategy.d.ts +1 -1
  517. package/dist/with-commit/vault-head/verify.d.ts +1 -1
  518. package/dist/with-formula/derivations/dispatch.d.ts +1 -1
  519. package/dist/with-formula/derivations/fanout-sidecar.d.ts +1 -1
  520. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +4 -3
  521. package/dist/with-formula/materialized-views/emit-memo.d.ts +40 -0
  522. package/dist/with-formula/materialized-views/executor.d.ts +8 -0
  523. package/dist/with-formula/materialized-views/index.d.ts +1 -1
  524. package/dist/with-formula/materialized-views/registry.d.ts +15 -0
  525. package/dist/with-formula/materialized-views/types.d.ts +106 -14
  526. package/dist/with-formula/materialized-views/window-stage.d.ts +11 -0
  527. package/dist/with-formula/overlay-views/types.d.ts +1 -1
  528. package/dist/with-formula/overlay-views/virtual-collection.d.ts +13 -4
  529. package/dist/with-lookup/embeddings/chunks.d.ts +79 -0
  530. package/dist/with-lookup/embeddings/descriptor.d.ts +21 -0
  531. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  532. package/dist/with-lookup/embeddings/ivf-flat.d.ts +93 -0
  533. package/dist/with-lookup/embeddings/vector-index.d.ts +73 -0
  534. package/dist/with-lookup/embeddings/vector-set.d.ts +94 -1
  535. package/dist/with-lookup/embeddings/with-vector-index.d.ts +67 -0
  536. package/dist/with-lookup/indexing/collection-facade.d.ts +86 -3
  537. package/dist/with-lookup/indexing/compound-indexes.d.ts +129 -0
  538. package/dist/with-lookup/indexing/eager-indexes.d.ts +170 -1
  539. package/dist/with-lookup/indexing/index-snapshot.d.ts +62 -0
  540. package/dist/with-lookup/indexing/lazy-builder.d.ts +33 -0
  541. package/dist/with-lookup/indexing/persisted-field-indexes.d.ts +104 -0
  542. package/dist/with-lookup/indexing/persisted-indexes.d.ts +12 -0
  543. package/dist/with-lookup/indexing/sorted-indexes.d.ts +117 -0
  544. package/dist/with-lookup/indexing/unique-constraints.d.ts +106 -23
  545. package/dist/with-lookup/reduce/active.d.ts +2 -24
  546. package/dist/with-lookup/reduce/group-core.d.ts +43 -0
  547. package/dist/with-lookup/reduce/groupby.d.ts +195 -36
  548. package/dist/with-lookup/reduce/incremental-group.d.ts +153 -0
  549. package/dist/with-lookup/reduce/index.d.ts +26 -5
  550. package/dist/with-lookup/reduce/reducers.d.ts +255 -1
  551. package/dist/with-lookup/reduce/reduction.d.ts +44 -13
  552. package/dist/with-lookup/reduce/strategy.d.ts +43 -3
  553. package/dist/with-lookup/reduce/window.d.ts +262 -0
  554. package/dist/with-lookup/search/collection-facade.d.ts +45 -9
  555. package/dist/with-lookup/search/index-store.d.ts +5 -3
  556. package/dist/with-lookup/search/index.d.ts +4 -2
  557. package/dist/with-lookup/search/inverted-index.d.ts +38 -2
  558. package/dist/with-lookup/search/persisted-index-store.d.ts +5 -2
  559. package/dist/with-lookup/search/phrase.d.ts +28 -0
  560. package/dist/with-lookup/search/retrieve-types.d.ts +57 -1
  561. package/dist/with-lookup/search/serialize.d.ts +29 -3
  562. package/dist/with-lookup/search/strategy.d.ts +2 -6
  563. package/dist/with-party/broker/index.d.ts +3 -3
  564. package/dist/with-party/directory/cover/index.d.ts +1 -1
  565. package/dist/with-party/directory/cover/storage.d.ts +1 -1
  566. package/dist/with-party/directory/cover/types.d.ts +1 -1
  567. package/dist/with-party/directory/index.d.ts +1 -1
  568. package/dist/with-party/directory/types.d.ts +1 -1
  569. package/dist/with-party/directory/user-envelope/api.d.ts +1 -1
  570. package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
  571. package/dist/with-party/policy/engine.d.ts +1 -1
  572. package/dist/with-party/policy/index.d.ts +1 -1
  573. package/dist/with-party/policy/presets.d.ts +1 -1
  574. package/dist/with-party/team/authenticators.d.ts +91 -1
  575. package/dist/with-party/team/delegation.d.ts +1 -1
  576. package/dist/with-party/team/echo-secret.d.ts +2 -2
  577. package/dist/with-party/team/index.d.ts +4 -3
  578. package/dist/with-party/team/keyring.d.ts +2 -2
  579. package/dist/with-party/team/magic-link-grant.d.ts +1 -1
  580. package/dist/with-party/team/managed-secret.d.ts +1 -1
  581. package/dist/with-party/team/noydb-facade.d.ts +12 -3
  582. package/dist/with-party/team/recovery.d.ts +1 -1
  583. package/dist/with-party/team/roster-tag.d.ts +1 -1
  584. package/dist/with-party/team/rotate-recover.d.ts +1 -1
  585. package/dist/with-party/team/wrapped-deks.d.ts +1 -1
  586. package/dist/with-pod/format.d.ts +1 -1
  587. package/dist/with-pod/index.d.ts +1 -1
  588. package/dist/with-pod/pod.d.ts +1 -1
  589. package/dist/with-shape/blobs/blob-compaction.d.ts +17 -1
  590. package/dist/with-shape/blobs/blob-intent.d.ts +1 -1
  591. package/dist/with-shape/blobs/blob-set.d.ts +23 -4
  592. package/dist/with-shape/blobs/legacy-sweep.d.ts +35 -0
  593. package/dist/with-shape/introspection/describe.d.ts +7 -1
  594. package/dist/with-shape/introspection/field-meta.d.ts +18 -0
  595. package/dist/with-shape/introspection/types.d.ts +57 -1
  596. package/dist/with-shape/introspection/walk.d.ts +1 -1
  597. package/dist/with-shape/links/lazy-handle.d.ts +1 -1
  598. package/dist/with-shape/links/link-set.d.ts +1 -1
  599. package/dist/with-shape/links/vault-facade.d.ts +1 -1
  600. package/dist/with-shape/manifest/derive.d.ts +1 -1
  601. package/dist/with-shape/manifest/storage.d.ts +1 -1
  602. package/dist/with-shape/persisted-schemas/register.d.ts +1 -1
  603. package/dist/with-shape/persisted-schemas/storage.d.ts +1 -1
  604. package/dist/with-shape/satellites/dead-filter.d.ts +1 -1
  605. package/dist/with-shape/satellites/declare.d.ts +1 -1
  606. package/dist/with-shape/satellites/marker.d.ts +1 -1
  607. package/dist/with-shape/satellites/post-register.d.ts +1 -1
  608. package/dist/with-store/partitioned/index.d.ts +337 -0
  609. package/dist/with-sync/change-broadcast.d.ts +153 -0
  610. package/dist/with-sync/presence.d.ts +5 -10
  611. package/dist/withdraw-accessible-HL7GACUE.js +27 -0
  612. package/dist/withdraw-accessible-HL7GACUE.js.map +1 -0
  613. package/package.json +48 -12
  614. package/dist/api-WYW4YEQG.js +0 -19
  615. package/dist/backup-XKCXVKV3.js.map +0 -1
  616. package/dist/chunk-2577DKXB.js.map +0 -1
  617. package/dist/chunk-2ENE6445.js.map +0 -1
  618. package/dist/chunk-2N5ML6HT.js.map +0 -1
  619. package/dist/chunk-334WSVOW.js.map +0 -1
  620. package/dist/chunk-3BVH633C.js.map +0 -1
  621. package/dist/chunk-3PGS7TYR.js.map +0 -1
  622. package/dist/chunk-3V4KWFX7.js.map +0 -1
  623. package/dist/chunk-453F654R.js.map +0 -1
  624. package/dist/chunk-4GFX6MPA.js.map +0 -1
  625. package/dist/chunk-4GVM6QZA.js.map +0 -1
  626. package/dist/chunk-4ZS56W5S.js.map +0 -1
  627. package/dist/chunk-5VCRVKOZ.js.map +0 -1
  628. package/dist/chunk-6YXCPL4T.js.map +0 -1
  629. package/dist/chunk-7APJ6CO6.js.map +0 -1
  630. package/dist/chunk-7MG2LHO5.js +0 -1616
  631. package/dist/chunk-7MG2LHO5.js.map +0 -1
  632. package/dist/chunk-7MG7SJT7.js.map +0 -1
  633. package/dist/chunk-7O3Y4PPD.js.map +0 -1
  634. package/dist/chunk-A2HKRLPV.js.map +0 -1
  635. package/dist/chunk-A66I4JOA.js.map +0 -1
  636. package/dist/chunk-ACAQ2DSG.js.map +0 -1
  637. package/dist/chunk-ATL3ZVXT.js +0 -151
  638. package/dist/chunk-ATL3ZVXT.js.map +0 -1
  639. package/dist/chunk-AYX7AINO.js.map +0 -1
  640. package/dist/chunk-BLN54W3L.js.map +0 -1
  641. package/dist/chunk-BRLKZUBT.js +0 -95
  642. package/dist/chunk-BRLKZUBT.js.map +0 -1
  643. package/dist/chunk-BTDR2PXY.js +0 -29
  644. package/dist/chunk-BTDR2PXY.js.map +0 -1
  645. package/dist/chunk-BVN6KXL2.js.map +0 -1
  646. package/dist/chunk-CHQCZZWC.js.map +0 -1
  647. package/dist/chunk-CUQPWYRX.js.map +0 -1
  648. package/dist/chunk-CUZLNGD5.js.map +0 -1
  649. package/dist/chunk-DFMWUOU5.js.map +0 -1
  650. package/dist/chunk-EIPVYUEP.js.map +0 -1
  651. package/dist/chunk-EQEYOJBM.js.map +0 -1
  652. package/dist/chunk-F3W6YMDC.js.map +0 -1
  653. package/dist/chunk-FET5XCAT.js.map +0 -1
  654. package/dist/chunk-G73UVHCA.js.map +0 -1
  655. package/dist/chunk-GPNTB4Y7.js.map +0 -1
  656. package/dist/chunk-GYGLAVCX.js.map +0 -1
  657. package/dist/chunk-HIWCKBEY.js.map +0 -1
  658. package/dist/chunk-HJUWN7JN.js.map +0 -1
  659. package/dist/chunk-HK67PX4J.js.map +0 -1
  660. package/dist/chunk-HPVZCW43.js +0 -479
  661. package/dist/chunk-HPVZCW43.js.map +0 -1
  662. package/dist/chunk-I3ISCYT7.js +0 -159
  663. package/dist/chunk-I3ISCYT7.js.map +0 -1
  664. package/dist/chunk-K23VKTN4.js.map +0 -1
  665. package/dist/chunk-KKEESNPE.js.map +0 -1
  666. package/dist/chunk-KTFRCC5C.js.map +0 -1
  667. package/dist/chunk-LH5A3ZPG.js.map +0 -1
  668. package/dist/chunk-LP7BEXCT.js +0 -32
  669. package/dist/chunk-LP7BEXCT.js.map +0 -1
  670. package/dist/chunk-M4YPHYEH.js.map +0 -1
  671. package/dist/chunk-NSITFOCJ.js +0 -99
  672. package/dist/chunk-NSITFOCJ.js.map +0 -1
  673. package/dist/chunk-OTQZ7ZWU.js.map +0 -1
  674. package/dist/chunk-P3MG6QCN.js.map +0 -1
  675. package/dist/chunk-PEOZ34EM.js.map +0 -1
  676. package/dist/chunk-PPTHY5QO.js.map +0 -1
  677. package/dist/chunk-Q2MPFCQ7.js.map +0 -1
  678. package/dist/chunk-Q7HZX3IF.js.map +0 -1
  679. package/dist/chunk-QPQUVOZ2.js.map +0 -1
  680. package/dist/chunk-QTQUH4DS.js.map +0 -1
  681. package/dist/chunk-R42NSZI6.js.map +0 -1
  682. package/dist/chunk-R7BX2NB3.js.map +0 -1
  683. package/dist/chunk-RSGLUIO6.js.map +0 -1
  684. package/dist/chunk-RTBJ5IOO.js +0 -87
  685. package/dist/chunk-RTBJ5IOO.js.map +0 -1
  686. package/dist/chunk-SGZAIJCV.js.map +0 -1
  687. package/dist/chunk-SKGMN35F.js.map +0 -1
  688. package/dist/chunk-SPYWXKJN.js.map +0 -1
  689. package/dist/chunk-SZJ3DLZA.js +0 -66
  690. package/dist/chunk-SZJ3DLZA.js.map +0 -1
  691. package/dist/chunk-TRGTKX5E.js.map +0 -1
  692. package/dist/chunk-UDHWDSRL.js.map +0 -1
  693. package/dist/chunk-UP4BECPY.js.map +0 -1
  694. package/dist/chunk-UXVWEX5L.js.map +0 -1
  695. package/dist/chunk-V7ZRRCRJ.js.map +0 -1
  696. package/dist/chunk-WQBG4SZS.js.map +0 -1
  697. package/dist/chunk-XKWGNJ26.js.map +0 -1
  698. package/dist/chunk-YMUFFJCO.js.map +0 -1
  699. package/dist/chunk-ZHKOPKE3.js.map +0 -1
  700. package/dist/chunk-ZN4FD4PE.js +0 -364
  701. package/dist/chunk-ZN4FD4PE.js.map +0 -1
  702. package/dist/chunk-ZORTV6NH.js.map +0 -1
  703. package/dist/chunk-ZYIYHJ5R.js.map +0 -1
  704. package/dist/classified-marker-BWOFVYAC.js.map +0 -1
  705. package/dist/collection-facade-JSJYIKS4.js +0 -45
  706. package/dist/dead-filter-PKQDLOT4.js.map +0 -1
  707. package/dist/delegation-DS5NRILW.js.map +0 -1
  708. package/dist/derive-E642AOUB.js +0 -21
  709. package/dist/dispatch-Q6MWLOJY.js.map +0 -1
  710. package/dist/executor-5NIMLSKZ.js +0 -8
  711. package/dist/executor-7UQ3BZ4F.js +0 -29
  712. package/dist/executor-AQVXV5GZ.js +0 -8
  713. package/dist/export-accessible-ORMKLA3E.js +0 -22
  714. package/dist/extract-partition-NKYO3WNG.js +0 -37
  715. package/dist/fanout-sidecar-S3QL53YX.js.map +0 -1
  716. package/dist/find-NOGJ25VX.js +0 -10
  717. package/dist/issue-3DTQ7VJJ.js +0 -18
  718. package/dist/json-schema-V3M5MUCM.js.map +0 -1
  719. package/dist/kernel/enclave/classify/compare.d.ts +0 -10
  720. package/dist/kernel/enclave/index.d.ts +0 -87
  721. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +0 -124
  722. package/dist/kernel/enclave/record-keys/rekey-blob.d.ts +0 -88
  723. package/dist/kernel/enclave/record-keys/rekey.d.ts +0 -91
  724. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +0 -14
  725. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +0 -123
  726. package/dist/kernel/enclave/record-keys/sealing.d.ts +0 -70
  727. package/dist/kernel/query/join.d.ts +0 -232
  728. package/dist/liberate-V35QUHJP.js +0 -24
  729. package/dist/link-set-2TTM3IZC.js +0 -30
  730. package/dist/noydb-62MX4QUG.js +0 -90
  731. package/dist/pod-handle-ECVCDIXW.js.map +0 -1
  732. package/dist/post-register-3IPCSG6Q.js.map +0 -1
  733. package/dist/register-HHLXEQDN.js +0 -31
  734. package/dist/registry-23WF3TGH.js +0 -8
  735. package/dist/registry-4AYVUNXK.js +0 -8
  736. package/dist/registry-JS3YFQQM.js +0 -18
  737. package/dist/registry-XX2Z7B46.js +0 -32
  738. package/dist/request-withdrawal-CHPATE4G.js +0 -30
  739. package/dist/reveal-QZDHSGD4.js.map +0 -1
  740. package/dist/revoke-7M2VW4ON.js +0 -23
  741. package/dist/seed-X5CC22CQ.js.map +0 -1
  742. package/dist/signer-SJQJVSM6.js +0 -24
  743. package/dist/stale-BZS6H2RY.js +0 -29
  744. package/dist/storage-RW4QBS23.js +0 -22
  745. package/dist/store-coordination-provider-4WZAIRHC.js.map +0 -1
  746. package/dist/verify-6MDTIUEV.js.map +0 -1
  747. package/dist/walk-ZURCH6RZ.js +0 -21
  748. package/dist/withdraw-accessible-PXR4IXDX.js +0 -27
  749. /package/dist/{api-WYW4YEQG.js.map → api-OS747DS4.js.map} +0 -0
  750. /package/dist/{computed-VPOKQK4N.js.map → capsule/contract.js.map} +0 -0
  751. /package/dist/{kernel/enclave → capsule/enclave-aes}/broker/proof.d.ts +0 -0
  752. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/bidx.d.ts +0 -0
  753. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/digest.d.ts +0 -0
  754. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/vdig.d.ts +0 -0
  755. /package/dist/{kernel/enclave/classify → capsule/plumbing}/kofn.d.ts +0 -0
  756. /package/dist/{kernel/enclave/classify → capsule/plumbing}/normalize.d.ts +0 -0
  757. /package/dist/{kernel/enclave → capsule/plumbing}/record-aad.d.ts +0 -0
  758. /package/dist/{collection-facade-JSJYIKS4.js.map → capsule-VOLX3QRQ.js.map} +0 -0
  759. /package/dist/{chunk-MVMXZYXT.js.map → chunk-2GHDLTPE.js.map} +0 -0
  760. /package/dist/{chunk-XLMEZIAJ.js.map → chunk-2ODVB6LZ.js.map} +0 -0
  761. /package/dist/{chunk-RMS3NEA3.js.map → chunk-4JPMZTJY.js.map} +0 -0
  762. /package/dist/{chunk-NQKIUNW5.js.map → chunk-52MGURXO.js.map} +0 -0
  763. /package/dist/{chunk-UGTBXF5U.js.map → chunk-7XMHMVTS.js.map} +0 -0
  764. /package/dist/{chunk-BZ3534YM.js.map → chunk-AUKKUPVB.js.map} +0 -0
  765. /package/dist/{derive-E642AOUB.js.map → chunk-BKT776R5.js.map} +0 -0
  766. /package/dist/{chunk-6LKOJBV6.js.map → chunk-BVCUTXE3.js.map} +0 -0
  767. /package/dist/{chunk-VTFVLCUH.js.map → chunk-DIZLQVAA.js.map} +0 -0
  768. /package/dist/{chunk-LWBCUYZW.js.map → chunk-E2N2T5ZO.js.map} +0 -0
  769. /package/dist/{chunk-JVIBCBC7.js.map → chunk-EJLV62NI.js.map} +0 -0
  770. /package/dist/{chunk-JMGDHKQF.js.map → chunk-FLPCETP6.js.map} +0 -0
  771. /package/dist/{chunk-DGOZ4UZD.js.map → chunk-FVH5QYY2.js.map} +0 -0
  772. /package/dist/{chunk-JBDFMYKQ.js.map → chunk-GZT3NQRA.js.map} +0 -0
  773. /package/dist/{chunk-TFR7DSOV.js.map → chunk-H427H63K.js.map} +0 -0
  774. /package/dist/{chunk-SMH6SRX7.js.map → chunk-JOSPH3E5.js.map} +0 -0
  775. /package/dist/{chunk-3BZZJJMQ.js.map → chunk-MILI22XQ.js.map} +0 -0
  776. /package/dist/{chunk-YYP7WSEB.js.map → chunk-O2IMQSNA.js.map} +0 -0
  777. /package/dist/{chunk-QIZPZMUI.js.map → chunk-Q4UHJ5SN.js.map} +0 -0
  778. /package/dist/{chunk-FAHMLERK.js.map → chunk-QBLT6POL.js.map} +0 -0
  779. /package/dist/{chunk-BUE2D7PX.js.map → chunk-SMV2HRDU.js.map} +0 -0
  780. /package/dist/{chunk-SFAWCTEM.js.map → chunk-TZZBXPZK.js.map} +0 -0
  781. /package/dist/{chunk-UHHPLO3I.js.map → chunk-V3RWOOSO.js.map} +0 -0
  782. /package/dist/{chunk-Q2PU57HC.js.map → chunk-VVOLDVIR.js.map} +0 -0
  783. /package/dist/{chunk-TUFM4UZP.js.map → chunk-XQRFSKYM.js.map} +0 -0
  784. /package/dist/{chunk-GY4WYNNG.js.map → chunk-Y2RKVFKR.js.map} +0 -0
  785. /package/dist/{chunk-4OZNXTO4.js.map → chunk-YRXFFWG4.js.map} +0 -0
  786. /package/dist/{enclave-55PAM4YO.js.map → collection-facade-CS7CA2XO.js.map} +0 -0
  787. /package/dist/{executor-5NIMLSKZ.js.map → computed-FAD7SED4.js.map} +0 -0
  788. /package/dist/{executor-7UQ3BZ4F.js.map → derive-XLOJVXPU.js.map} +0 -0
  789. /package/dist/{dispatch-IEPAVQUM.js.map → dispatch-H4HV32AM.js.map} +0 -0
  790. /package/dist/{executor-AQVXV5GZ.js.map → executor-FMPVN6DT.js.map} +0 -0
  791. /package/dist/{export-accessible-ORMKLA3E.js.map → executor-LBBBRTN5.js.map} +0 -0
  792. /package/dist/{extract-partition-NKYO3WNG.js.map → executor-OSRZST2U.js.map} +0 -0
  793. /package/dist/{find-NOGJ25VX.js.map → export-accessible-RAOJAAU5.js.map} +0 -0
  794. /package/dist/{issue-3DTQ7VJJ.js.map → extract-partition-JD5CUSTG.js.map} +0 -0
  795. /package/dist/{ledger-EDXFFZQL.js.map → find-JRN4RNQ5.js.map} +0 -0
  796. /package/dist/{liberate-V35QUHJP.js.map → issue-YIVBZUTH.js.map} +0 -0
  797. /package/dist/{link-set-2TTM3IZC.js.map → ledger-5ZMGE44K.js.map} +0 -0
  798. /package/dist/{managed-secret-NCWEMPUQ.js.map → liberate-WZSZM2W6.js.map} +0 -0
  799. /package/dist/{noydb-62MX4QUG.js.map → link-set-MFXC24VK.js.map} +0 -0
  800. /package/dist/{register-HHLXEQDN.js.map → managed-secret-MFTFT22X.js.map} +0 -0
  801. /package/dist/{migrate-cek-5ENH64AA.js.map → migrate-cek-DZRFFOHW.js.map} +0 -0
  802. /package/dist/{registry-23WF3TGH.js.map → noydb-ITIGNKUF.js.map} +0 -0
  803. /package/dist/{registry-4AYVUNXK.js.map → query/all/index.js.map} +0 -0
  804. /package/dist/{registry-JS3YFQQM.js.map → register-DT5HZ2LZ.js.map} +0 -0
  805. /package/dist/{registry-XX2Z7B46.js.map → registry-BHRZGZHF.js.map} +0 -0
  806. /package/dist/{request-withdrawal-CHPATE4G.js.map → registry-ET6ZFFWA.js.map} +0 -0
  807. /package/dist/{revoke-7M2VW4ON.js.map → registry-HXFGLGTG.js.map} +0 -0
  808. /package/dist/{signer-SJQJVSM6.js.map → registry-THCPDEOD.js.map} +0 -0
  809. /package/dist/{stale-BZS6H2RY.js.map → request-withdrawal-AV2MJJKY.js.map} +0 -0
  810. /package/dist/{storage-RW4QBS23.js.map → revoke-6DWIEOCV.js.map} +0 -0
  811. /package/dist/{walk-ZURCH6RZ.js.map → signer-MHGW3OIL.js.map} +0 -0
  812. /package/dist/{withdraw-accessible-PXR4IXDX.js.map → stale-6GCFMOOR.js.map} +0 -0
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Coverage accounting (#1363) — per `(principal, vault, collection)`.
3
+ *
4
+ * ⛔⛔ **TELEMETRY, NOT A CONTROL.** Against an insider holding the device and
5
+ * local keys this prevents nothing; it makes bulk extraction visible early,
6
+ * attributable and loud. Key custody (tiers, per-collection DEKs) is the
7
+ * remediation. Nothing in this module refuses a read, and nothing in it may
8
+ * ever grow the ability to (#1251 §3: a refusal is a threshold the reader can
9
+ * binary-search; a signal is not).
10
+ *
11
+ * What is accounted, and why each one:
12
+ *
13
+ * - **distinct ids ever decrypted** (HyperLogLog) — coverage is the protected
14
+ * quantity, not rate: patience lowers an extractor's rate and never their
15
+ * coverage. Monotonic, and the horizon is the life of the state, never a
16
+ * 30-day window that resets faster than the attack completes.
17
+ * - **novelty per window** (Bloom, cleared per window) — the discriminator
18
+ * that is orthogonal to speed. A legitimate operator re-reads a working
19
+ * subset (high volume, low novelty); an extractor reads new records.
20
+ * - **served** — decrypts, all time and per window.
21
+ * - **burstiness** — this window's served count over the running mean of the
22
+ * previous windows'. 1 while there is no history to compare against.
23
+ *
24
+ * @module
25
+ */
26
+ import type { CoverageEmitter, CoverageFieldMeta, CoverageObserver, CoverageStrategy } from '../../port/with/coverage-strategy.js';
27
+ /** Per-collection policy. Absent `corpusSize` ⇒ no coverage estimate, so no alert. */
28
+ export interface CoverageCollectionPolicy {
29
+ /**
30
+ * How many records the corpus holds. Coverage is `distinct / corpusSize`.
31
+ * Deliberately DECLARED rather than counted: counting means a store read on
32
+ * a sensor that must not touch the store, and a corpus size that moves with
33
+ * every write makes an alert threshold un-reproducible.
34
+ */
35
+ readonly corpusSize?: number;
36
+ /** Coverage fractions to alert at. Default `[0.6, 0.9]`. Each fires at most once. */
37
+ readonly alertAt?: readonly number[];
38
+ }
39
+ export interface WithCoverageOptions {
40
+ /**
41
+ * HyperLogLog precision — the register file is `2^precision` bytes per
42
+ * `(principal, vault, collection)`. Default 14 (16 KiB), chosen by
43
+ * measurement; the table is in `sketch.ts`.
44
+ */
45
+ readonly precision?: number;
46
+ /** Bloom width in bits, per key, per window. Default 16 384 (2 KiB). */
47
+ readonly bloomBits?: number;
48
+ /** Bloom hash count. Default 7. */
49
+ readonly bloomHashes?: number;
50
+ /** Novelty window length. Default one hour. NOT the coverage horizon — that never resets. */
51
+ readonly windowMs?: number;
52
+ /** Per-collection corpus size and alert thresholds. */
53
+ readonly collections?: Readonly<Record<string, CoverageCollectionPolicy>>;
54
+ /** Clock seam, for tests. */
55
+ readonly now?: () => number;
56
+ }
57
+ export interface CoverageStats {
58
+ readonly principal: string;
59
+ readonly vault: string;
60
+ readonly collection: string;
61
+ /** HLL estimate of distinct ids ever decrypted. */
62
+ readonly distinct: number;
63
+ readonly served: number;
64
+ readonly novelInWindow: number;
65
+ readonly servedInWindow: number;
66
+ readonly burstiness: number;
67
+ /** Absent when the collection declares no `corpusSize`. */
68
+ readonly coverage?: number;
69
+ readonly window: string;
70
+ }
71
+ /**
72
+ * Serializable coverage state.
73
+ *
74
+ * ⛔ SKETCHES ONLY — the invariant this module exists to hold. A structure
75
+ * that could name the records a principal has read would be a second copy of
76
+ * the sensitive set: the sensor built to notice bulk extraction would become
77
+ * the single best artefact to extract. Pinned by
78
+ * `__tests__/coverage/no-record-ids.test.ts`.
79
+ */
80
+ export interface CoverageSnapshot {
81
+ readonly _noydb_coverage: 1;
82
+ readonly entries: ReadonlyArray<{
83
+ readonly principal: string;
84
+ readonly vault: string;
85
+ readonly collection: string;
86
+ readonly hll: {
87
+ readonly p: number;
88
+ readonly r: string;
89
+ };
90
+ readonly served: number;
91
+ readonly windowStart: number;
92
+ }>;
93
+ }
94
+ export declare class CoverageRegistry implements CoverageStrategy {
95
+ #private;
96
+ constructor(opts?: WithCoverageOptions);
97
+ observer(vault: string, collection: string, principal: string, fieldMeta: () => CoverageFieldMeta | undefined, emitter: CoverageEmitter, eager: boolean): CoverageObserver | undefined;
98
+ /** Current accounting, for an operator surface. Estimates, never exact. */
99
+ stats(): readonly CoverageStats[];
100
+ /**
101
+ * Serializable state, for a deployment that wants coverage to survive a
102
+ * restart — the horizon must exceed tenure, and a process does not.
103
+ * ⛔ Sketches only. Never a record id: see {@link CoverageSnapshot}.
104
+ */
105
+ snapshot(): CoverageSnapshot;
106
+ /**
107
+ * Restore a snapshot. The novelty filter is deliberately NOT restored:
108
+ * novelty is a within-window notion and the window did not survive.
109
+ * Distinct-ever did, which is the quantity that must not reset.
110
+ */
111
+ restore(snapshot: CoverageSnapshot): void;
112
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `withCoverage()` — the opt-in read-coverage sensor (#1363).
3
+ *
4
+ * ⛔⛔ **Against an insider holding the device and local keys, this prevents
5
+ * nothing. It makes bulk extraction visible early, attributable and loud. It
6
+ * is telemetry.** The real remediation is key custody — tiers and
7
+ * per-collection DEKs — and this factory is not a substitute for one. Read the
8
+ * sentence again before wiring it into anything that describes itself as a
9
+ * control.
10
+ *
11
+ * @module
12
+ */
13
+ import { CoverageRegistry } from './accounting.js';
14
+ import type { WithCoverageOptions } from './accounting.js';
15
+ /**
16
+ * Enable coverage accounting for every collection that declares a
17
+ * `bulk: 'sensitive'` field (or that is named in `opts.collections`).
18
+ *
19
+ * ```ts
20
+ * const coverage = withCoverage({ collections: { clients: { corpusSize: 1200, alertAt: [0.6, 0.9] } } })
21
+ * const db = await createNoydb({ user: 'alice', secret, coverageStrategy: coverage })
22
+ * db.on('coverage:threshold', (e) => notifyOwner(e)) // a SIGNAL, never a refusal
23
+ * ```
24
+ *
25
+ * The returned registry is the strategy AND the read surface: `stats()` for a
26
+ * live view, `snapshot()`/`restore()` to carry the coverage horizon across a
27
+ * restart. Nothing it returns can name a record that was read.
28
+ */
29
+ export declare function withCoverage(opts?: WithCoverageOptions): CoverageRegistry;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * `@noy-db/hub/coverage` — read-coverage sensor (#1363, from the #1251 design).
3
+ *
4
+ * ⛔⛔ **Against an insider holding the device and local keys, this prevents
5
+ * nothing. It makes bulk extraction visible early, attributable and loud. It
6
+ * is telemetry.** The real remediation is key custody (tiers, per-collection
7
+ * DEKs); a coverage alert is a complement to a key boundary and a poor
8
+ * substitute for one.
9
+ *
10
+ * The reframe it implements: the protected quantity for "safe individually,
11
+ * sensitive in bulk" data is **coverage** — the fraction of a corpus a
12
+ * principal has *ever* decrypted — not rate. Rate limiting fails structurally
13
+ * against low-and-slow; patience lowers an extractor's rate and never their
14
+ * coverage. So this service accounts distinct-ever (HyperLogLog), novelty per
15
+ * window (Bloom), served count and burstiness per
16
+ * `(principal, vault, collection)`, and emits `'coverage:threshold'` when
17
+ * declared coverage thresholds are crossed.
18
+ *
19
+ * ⛔ It never refuses a read, and no option to do so may be added: a refusal
20
+ * at a boundary is a threshold the reader can binary-search.
21
+ * ⛔ It never persists a record id. Sketches are the only state.
22
+ * ⚠️ It accounts only LAZY collections (`prefetch: false`). An eager
23
+ * collection decrypts its whole corpus at hydration, which a decrypt-point
24
+ * sensor cannot tell from a read — see `accounting.ts#resolveAccounted`.
25
+ *
26
+ * ## Honeytoken recipe (prose — the cheapest high-signal sensor in the design)
27
+ *
28
+ * Coverage alerting tells you how much of a corpus a principal has seen.
29
+ * A honeytoken tells you, on the FIRST read, that someone is enumerating —
30
+ * and it is immune to rate shaping, because there is no legitimate rate at
31
+ * which a record nobody should open gets opened.
32
+ *
33
+ * 1. Seed a handful of records in the bulk-declared collection that no
34
+ * business process ever addresses: plausible-looking rows with ids no
35
+ * workflow can reach, never referenced by a ref, never in a report.
36
+ * 2. Keep the list of their ids OUTSIDE the vault — in the code or the
37
+ * operator's config. It must never become a queryable "honeytokens"
38
+ * collection: that is a lookup table telling an insider which rows to
39
+ * avoid, i.e. the same second-copy mistake the sketches exist to avoid.
40
+ * 3. Wrap the read path the app already owns and compare the id it is about
41
+ * to serve against that list. Any hit is a high-confidence signal — page
42
+ * the owner, and (with `withHistory()`) append a ledger entry so the
43
+ * detection itself is tamper-evident.
44
+ * 4. Do not refuse the read. Serving it keeps the reader unaware they tripped
45
+ * a sensor, which is the entire value; refusing turns the honeytoken into
46
+ * an oracle for finding the other honeytokens.
47
+ * 5. Rotate them when staff change. A honeytoken whose location has leaked is
48
+ * a honeytoken that reports nothing.
49
+ *
50
+ * ⚠️ Honeytokens detect ENUMERATION, not exfiltration of a known subset. They
51
+ * complement coverage alerting; neither prevents anything.
52
+ *
53
+ * @category capability
54
+ * @module
55
+ */
56
+ export { withCoverage } from './active.js';
57
+ export { CoverageRegistry } from './accounting.js';
58
+ export type { CoverageCollectionPolicy, CoverageSnapshot, CoverageStats, WithCoverageOptions, } from './accounting.js';
59
+ export { BloomFilter, HyperLogLog } from './sketch.js';
60
+ export type { CoverageEmitter, CoverageEvent, CoverageFieldMeta, CoverageObserver, CoverageStrategy, } from '../../port/with/coverage-strategy.js';
61
+ export { NO_COVERAGE } from '../../port/with/coverage-strategy.js';
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Bounded-size sketches for the coverage sensor (#1363).
3
+ *
4
+ * ⚠️ THE WHOLE POINT OF A SKETCH HERE IS WHAT IT CANNOT DO. Coverage state
5
+ * answers *"how much of this corpus has this principal seen"*, and the exact
6
+ * answer — the id set — is a SECOND COPY OF THE SENSITIVE SET. A sensor built
7
+ * to notice bulk extraction would then be the best single artefact to extract.
8
+ * So no structure in this module retains a record id, and none can be
9
+ * enumerated back into one: HyperLogLog keeps per-register leading-zero ranks,
10
+ * Bloom keeps bits. Both are lossy on purpose, and the accuracy that costs is
11
+ * the price of the property (`no-record-ids.test.ts` pins it).
12
+ *
13
+ * @module
14
+ */
15
+ /**
16
+ * HyperLogLog over `2^precision` one-byte registers.
17
+ *
18
+ * ⭐ SIZING IS THE OPEN QUESTION THIS FEATURE SHIPS WITH, not a settled
19
+ * default. At the scale the design anticipates (~1k records, ~30 principals)
20
+ * the estimator runs entirely in its LINEAR-COUNTING range, where accuracy is
21
+ * a function of load factor rather than of HLL's asymptotic 1.04/√m. So the
22
+ * default is chosen by MEASUREMENT, not theory — `__tests__/coverage/sketch.test.ts`
23
+ * pins the error band this implementation actually produces:
24
+ *
25
+ * | distinct ids | p=10 (1 KiB) | p=12 (4 KiB) | **p=14 (16 KiB, default)** |
26
+ * |---:|---:|---:|---:|
27
+ * | 100 | 3.00% | 1.00% | **0.00%** |
28
+ * | 1 000 | 2.90% | 0.50% | **0.40%** |
29
+ * | 10 000 | 2.34% | 5.62% | **0.96%** |
30
+ * | 50 000 | 2.31% | 1.70% | **1.52%** |
31
+ *
32
+ * (p=12's 5.62% at 10 000 is the linear-counting/raw-estimator crossover, and
33
+ * is exactly why the default is not chosen from the memory column.)
34
+ * 16 KiB is per `(principal, vault, collection)` — a ~30-principal deployment
35
+ * with a handful of bulk-declared collections stays in the low megabytes.
36
+ * `precision` is configurable for a deployment whose corpus is a different
37
+ * order of magnitude.
38
+ *
39
+ * ⛔ An exact per-collection bitmap would be smaller AND exact at that scale.
40
+ * It is not shipped because it leaks ids: bit *i* set means "record *i* was
41
+ * read", which is the second copy this module exists to avoid. Revisit only
42
+ * against a real dataset, and only with that trade stated.
43
+ */
44
+ export declare class HyperLogLog {
45
+ readonly precision: number;
46
+ private readonly registers;
47
+ constructor(precision?: number);
48
+ add(id: string): void;
49
+ /** Estimated distinct count. */
50
+ count(): number;
51
+ /** Serializable state — registers only. No id, no id-derived key. */
52
+ toJSON(): {
53
+ readonly p: number;
54
+ readonly r: string;
55
+ };
56
+ static fromJSON(state: {
57
+ readonly p: number;
58
+ readonly r: string;
59
+ }): HyperLogLog;
60
+ }
61
+ /**
62
+ * Bloom filter for *novelty per window* — "have I seen this id in this
63
+ * window?". False positives under-report novelty (a novel read is scored as a
64
+ * repeat), which is the safe direction for a sensor that must not cry wolf;
65
+ * false negatives are impossible.
66
+ */
67
+ export declare class BloomFilter {
68
+ readonly bits: number;
69
+ readonly hashes: number;
70
+ private readonly words;
71
+ constructor(bits?: number, hashes?: number);
72
+ /** Set the id's bits; returns true when the id was NOT already present. */
73
+ addIfAbsent(id: string): boolean;
74
+ clear(): void;
75
+ }
@@ -32,7 +32,7 @@
32
32
  *
33
33
  * @module
34
34
  */
35
- import { type EnclaveKey } from '../../kernel/enclave/index.js';
35
+ import { type EnclaveKey } from '../../capsule/index.js';
36
36
  import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
37
37
  /** Reserved collection holding the encrypted subject → records index. */
38
38
  export declare const SUBJECT_INDEX_COLLECTION = "_subject_index";
@@ -146,6 +146,7 @@
146
146
  */
147
147
  import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
148
148
  import type { LedgerStore } from '../../with-commit/history/ledger/index.js';
149
+ import { ValidationError } from '../../kernel/errors.js';
149
150
  export { PERIODS_COLLECTION, PERIOD_FREEZES_COLLECTION, PERIOD_ARCHIVES_COLLECTION, PERIOD_TARGET_PURGES_COLLECTION, PERIOD_REOPENS_COLLECTION, periodExclusiveUpperBound, } from './window.js';
150
151
  /**
151
152
  * Companion record recording that a closed period was frozen (its delete
@@ -398,9 +399,25 @@ export interface ClosePeriodOptions {
398
399
  /** Human-readable name. Must not collide with an existing period. */
399
400
  readonly name: string;
400
401
  /**
401
- * Inclusive upper cutoff. A record is sealed when its
402
- * `record[dateField]` (or, if absent, the envelope `_ts`) is at or
403
- * before this ISO timestamp.
402
+ * Inclusive upper cutoff. With a `dateField`, a record is sealed when its
403
+ * `record[dateField]` is at or before this ISO timestamp; a record with
404
+ * NO value there (absent / `null`) carries no business date and belongs
405
+ * to no period, and a value that is neither an ISO string nor a `Date`
406
+ * is refused (#1455). Without a `dateField`, the envelope `_ts` of the
407
+ * stored record is compared instead.
408
+ *
409
+ * ⚠️ String comparison is lexicographic: keep `endDate` and the field in
410
+ * one ISO-8601 shape (`YYYY-MM-DD` against `YYYY-MM-DD`, or full
411
+ * timestamps against full timestamps).
412
+ *
413
+ * ⛔ **Zero-padding is now ENFORCED on both sides (#1459), because that
414
+ * warning was not enough.** `'2026-6-30'` names a real day and is refused
415
+ * anyway: as text it sorts BELOW every June date, so the close would seal
416
+ * nothing and report success — and symmetrically a record dated
417
+ * `'2026-6-15'` sorted ABOVE `'2026-06-30'` and was written into a sealed
418
+ * June. Both are `ValidationError` now, at the close and at the write,
419
+ * rather than a silent pass or a `PeriodClosedError` that fired for a reason
420
+ * unrelated to dates.
404
421
  */
405
422
  readonly endDate: string;
406
423
  /**
@@ -502,6 +519,17 @@ export interface ReadOnlyCollection<T> {
502
519
  * cache. Not part of the public API surface.
503
520
  */
504
521
  export declare function loadPeriods(adapter: NoydbStore, vault: string, decrypt: (id: string, envelope: EncryptedEnvelope) => Promise<PeriodRecord>): Promise<PeriodRecord[]>;
522
+ /** sha256(canonicalJson(record)) over the STORED shape of a period record. @internal */
523
+ export declare function hashStoredPeriod(period: PeriodRecord): Promise<string>;
524
+ /**
525
+ * #1454 — every record's `priorPeriodName` / `priorPeriodHash` must resolve to
526
+ * a stored predecessor in ITS timeline whose hash matches. Followed by name,
527
+ * not by sort position: two closes within one millisecond sort arbitrarily,
528
+ * and a deleted predecessor must read as a break, not as a new root.
529
+ *
530
+ * @internal
531
+ */
532
+ export declare function verifyPeriodChain(records: readonly PeriodRecord[]): Promise<void>;
505
533
  /**
506
534
  * Given the current ordered period list, pick the last entry that
507
535
  * belongs to the hash chain — used as the `priorPeriodHash` anchor
@@ -513,22 +541,42 @@ export declare function chainAnchor(records: readonly PeriodRecord[], partition?
513
541
  priorPeriodName?: string;
514
542
  priorPeriodHash: string;
515
543
  }>;
544
+ /**
545
+ * @internal #1459 — is `value` a business date that can be compared against an
546
+ * `endDate` and give the calendar's answer?
547
+ */
548
+ export declare function isOrderableBusinessDate(value: string): boolean;
549
+ /**
550
+ * @internal #1459 — the refusal, phrased once so the guard and `closePeriod()`
551
+ * cannot drift on what "malformed" means or on how they say it.
552
+ */
553
+ export declare function malformedBusinessDate(where: string, value: string): ValidationError;
516
554
  /**
517
555
  * Throw `PeriodClosedError` if the record being touched falls within
518
556
  * any closed period.
519
557
  *
520
- * Three signals, evaluated per period:
558
+ * Per period, per side (existing record / incoming record):
521
559
  *
522
560
  * 1. If the period declares a `dateField`, the guard reads
523
561
  * `record[dateField]` on BOTH the existing (prior) record AND the
524
- * incoming (new) record. Either comparing `<= endDate` triggers
525
- * the error — callers cannot slide a record into a closed period
526
- * by editing its date field.
562
+ * incoming (new) record, each under its OWN partition. Either comparing
563
+ * `<= endDate` triggers the error — callers cannot slide a record into a
564
+ * closed period by editing its date field.
565
+ * #1455 — value shapes: a string is compared as-is (ISO-8601 assumed —
566
+ * the comparison is lexicographic); a `Date` is compared as the ISO string
567
+ * it will be stored as; `undefined` / `null` means the record carries no
568
+ * business date and belongs to NO period; anything else is REFUSED with
569
+ * `ValidationError` — a date the gate cannot evaluate is not a permission.
527
570
  * 2. If the period has no `dateField`, the guard falls back to the
528
571
  * envelope `_ts` of the existing record. Fresh inserts (no
529
572
  * existing envelope) pass.
530
573
  * 3. For a delete, only the existing side is checked.
531
574
  *
575
+ * #1456 — a value is OWNED by the closed period in its timeline with the
576
+ * smallest `endDate` at or after it. When that owner is effectively reopened,
577
+ * no later close vetoes the value: reopening January frees January-dated
578
+ * rows even with February and March closed, and February's rows stay sealed.
579
+ *
532
580
  * @internal
533
581
  */
534
582
  export declare function assertTsWritable(existing: {
@@ -0,0 +1,3 @@
1
+ export declare const PERIODS_RESERVED_COLLECTIONS: ReadonlySet<string>;
2
+ /** True when `name` belongs to the periods family (#1454). */
3
+ export declare function isPeriodsReservedCollection(name: string): boolean;
@@ -1,4 +1,4 @@
1
- import { type EnclaveKey } from '../../kernel/enclave/index.js';
1
+ import { type EnclaveKey } from '../../capsule/index.js';
2
2
  import type { NoydbStore } from '../../kernel/types.js';
3
3
  import type { LedgerStore } from '../../with-commit/history/ledger/store.js';
4
4
  import type { Collection } from '../../kernel/collection.js';
@@ -166,6 +166,23 @@ export declare class VaultPeriods {
166
166
  private mergeReopenState;
167
167
  /** Resolve one period within the timeline named by `options` (vault-wide when absent). */
168
168
  private findPeriod;
169
+ /**
170
+ * #1439 — could a closed period govern this record? Synchronous, and
171
+ * deliberately a SUPERSET of what {@link assertTsWritable} would refuse.
172
+ *
173
+ * Exists so a caller can tell "the period gate is registered" from "the
174
+ * period gate can fire for this row". Those were conflated, and the cost was
175
+ * that installing `withPeriods()` disabled an unrelated optimisation for
176
+ * every collection in the vault — with no period closed and no collection
177
+ * registered as a subject (#1439, measured: 0 → 250 redundant MV writes per
178
+ * source write).
179
+ *
180
+ * ⛔ Answers `true` whenever it cannot rule the gate out: the cache is not
181
+ * loaded yet, a closed period has no `dateField` to test against, or no row
182
+ * was supplied. A predicate that exists to permit an optimisation must fail
183
+ * towards "the gate applies", never away from it.
184
+ */
185
+ couldGovern(record?: Record<string, unknown>): boolean;
169
186
  /** Called by the gate bus before put/delete. `collection` selects the subject mapping (#1005). */
170
187
  assertTsWritable(existing: {
171
188
  ts: string | null;
@@ -57,8 +57,8 @@ export { SealedRecordNotEnabledError } from '../../kernel/errors.js';
57
57
  * opens, even with a valid sealed CEK.
58
58
  */
59
59
  export declare function openSealedRecord(sealedCekEnvelope: SealedCekDeliveryEnvelope, recordEnvelope: {
60
- readonly _iv: string;
61
- readonly _data: string;
60
+ readonly _iv?: string;
61
+ readonly _data?: string;
62
62
  /** Bound into the AAD since #1093 — a rewound body no longer opens. */
63
63
  readonly _v: number;
64
64
  readonly _tier?: number | undefined;
@@ -12,7 +12,7 @@
12
12
  * stays ungated). Only the vault-side grantor operations are the capability.
13
13
  * @internal
14
14
  */
15
- import type { SealingContext } from '../../kernel/enclave/index.js';
15
+ import type { SealingContext } from '../../capsule/index.js';
16
16
  import type { RecipientSealer } from '../../with-party/team/managed-secret.js';
17
17
  export interface SealedRecordStrategy {
18
18
  sealRecordToHost(ctx: SealingContext, collection: string, id: string, hostSealer: RecipientSealer, opts: {
@@ -23,7 +23,7 @@
23
23
  export { withTiers } from './active.js';
24
24
  export { NO_TIERS, type TiersStrategy } from './strategy.js';
25
25
  export { TiersNotEnabledError } from '../../kernel/errors.js';
26
- import { type RecordIdentity, type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../kernel/enclave/index.js';
26
+ import { type RecordIdentity, type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../capsule/index.js';
27
27
  import type { UnlockedKeyring } from '../../with-party/team/keyring.js';
28
28
  import type { Lru } from '../../kernel/cache/index.js';
29
29
  import type { BlobFieldsConfig } from '../../with-shape/blobs/blob-compaction.js';
@@ -36,6 +36,25 @@ export interface TiersContext<T> {
36
36
  readonly vault: string;
37
37
  /** The ciphertext store. */
38
38
  readonly adapter: NoydbStore;
39
+ /**
40
+ * #1358 — the unique-constraint keys a record occupies, or `[]` when the
41
+ * record is exempt (null-distinct) . `undefined` when the collection
42
+ * declares no `unique` index, which is what makes the tier scan free for
43
+ * every other collection. Deliberately a plain callback rather than the
44
+ * `UniqueConstraintSet` itself: the tier domain must not import the
45
+ * indexing domain, and this is the whole of what it needs.
46
+ */
47
+ readonly uniqueKeys?: ((record: unknown) => ReadonlyArray<{
48
+ readonly fields: readonly string[];
49
+ readonly key: string;
50
+ }>) | undefined;
51
+ /**
52
+ * #1358 — the collection's own tier-0 unique pre-flight (the eager map or
53
+ * the lazy `_idx/` probe). `putAtTier` runs it before its write because it
54
+ * bypasses `Collection.put()` entirely; the tier-0 `put()` path calls it
55
+ * directly and does not need this. `undefined` ⇒ no unique index declared.
56
+ */
57
+ readonly checkUniqueLocal?: ((id: string, record: unknown) => Promise<void>) | undefined;
39
58
  /** The caller's unlocked keyring (tier-DEK holdings + role + userId). */
40
59
  readonly keyring: UnlockedKeyring;
41
60
  /** The record codec — decrypts a tier-0 envelope to T. */
@@ -367,6 +386,38 @@ export declare function putAtTier<T>(ctx: TiersContext<T>, id: string, record: T
367
386
  * when `_tier > 0`.
368
387
  */
369
388
  export declare function getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
389
+ /**
390
+ * Unique-constraint enforcement across TIERS (#1358).
391
+ *
392
+ * The in-memory / persisted mirrors that back ordinary unique enforcement
393
+ * hold TIER-0 records only — #709 purges an elevated record's index entries
394
+ * precisely so elevation actually hides its field values. That is correct,
395
+ * and it is also exactly why a tier-0 `put()` would otherwise be free to
396
+ * re-take a value an elevated record still holds. This closes that by
397
+ * scanning the above-tier records the writer can decrypt.
398
+ *
399
+ * ## The guarantee, stated exactly
400
+ *
401
+ * Uniqueness is enforced across **every tier whose DEK this writer holds**.
402
+ * A tier the writer cannot read is **outside the guarantee**: those records
403
+ * are not merely skipped-with-a-warning, they are unreadable, so no local
404
+ * check of any design can see them. A duplicate against such a record is
405
+ * accepted, and stays accepted. Do not describe this as "enforced across all
406
+ * tiers" anywhere.
407
+ *
408
+ * ## Cost
409
+ *
410
+ * Zero for a collection with no unique index (`ctx.uniqueKeys` is undefined
411
+ * and this returns immediately) and for one with no elevated records (the
412
+ * scan reads envelope headers only until it meets a `_tier > 0` row it can
413
+ * read). On a tiered collection that DOES hold both, it is a list + get per
414
+ * write — the price of the guarantee, paid only where it was asked for.
415
+ *
416
+ * No cross-tier ACCESS event is emitted per scanned record: this is a
417
+ * constraint pre-flight over material the writer is already cleared for, not
418
+ * a read the caller asked for. The write it gates emits its own event.
419
+ */
420
+ export declare function checkUniqueAcrossTiers<T>(ctx: TiersContext<T>, id: string, record: T): Promise<void>;
370
421
  /**
371
422
  * list ids grouped by the caller's readability. Returns only ids whose tier the
372
423
  * caller can read. Above-tier ids are omitted in `'invisibility'` mode and
@@ -407,4 +458,4 @@ export declare function demote<T>(ctx: TiersContext<T>, id: string, toTier: numb
407
458
  export declare function classifySealedShred<T>(ctx: TiersContext<T>, live: EncryptedEnvelope): Promise<{
408
459
  readonly slots: readonly SealedShredSlot[];
409
460
  }>;
410
- export type { SealedShredSlot } from '../../kernel/enclave/index.js';
461
+ export type { SealedShredSlot } from '../../capsule/index.js';
@@ -27,6 +27,14 @@ export interface TiersStrategy {
27
27
  }>>;
28
28
  elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
29
29
  demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
30
+ /**
31
+ * #1358 — unique-constraint scan across every tier whose DEK the writer
32
+ * holds. Called by the ORDINARY `Collection.put()` on a tiered collection
33
+ * (`putAtTier` calls the core directly): the tier-0 mirror cannot see an
34
+ * elevated record, because #709 purges its index entries on elevation.
35
+ * A tier the writer cannot read is outside the guarantee.
36
+ */
37
+ checkUnique<T>(ctx: TiersContext<T>, id: string, record: T): Promise<void>;
30
38
  }
31
39
  /**
32
40
  * No-op stub — the floor default. Every capability method throws
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { type EnclaveKey } from '../kernel/enclave/index.js';
10
+ import { type EnclaveKey } from '../capsule/index.js';
11
11
  import type { NoydbStore } from '../kernel/types.js';
12
12
  import type { NoydbSealer } from '../with-party/team/managed-secret.js';
13
13
  import type { NoydbShamir } from '../with-party/team/noydb-shamir.js';
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import type { Vault } from '../kernel/vault.js';
10
10
  import type { EncryptedEnvelope } from '../kernel/types.js';
11
- import { type EnclaveKey } from '../kernel/enclave/index.js';
11
+ import { type EnclaveKey } from '../capsule/index.js';
12
12
  import { type WalkClosureOptions, type DanglingRefNotice } from './walk-closure.js';
13
13
  import { type TransferSealPayload } from '../with-pod/pod.js';
14
14
  /** Re-keyed collections snapshot + the fresh DEKs used. */
@@ -13,7 +13,7 @@ export { readPath } from '../kernel/query/predicate.js';
13
13
  export { reduceRecords } from '../with-lookup/reduce/reduction.js';
14
14
  export { groupAndReduce } from '../with-lookup/reduce/groupby.js';
15
15
  export { generateULID } from '../with-pod/ulid.js';
16
- export { sha256Hex } from '../kernel/enclave/index.js';
16
+ export { sha256Hex } from '../capsule/index.js';
17
17
  export { isQuorum, runDrainBarrier } from '../port/by/index.js';
18
18
  export { fuseRetrieval } from '../with-lookup/search/fuse.js';
19
19
  export { CrossShardJoinError, DataResidencyError, NoAccessError, ReservedVaultNameError, ShardProvisioningError, UnknownShardError, ValidationError, VaultTemplateNotFoundError, } from '../kernel/errors.js';
@@ -24,8 +24,8 @@ export type { Collection } from '../kernel/collection.js';
24
24
  export type { Noydb } from '../kernel/noydb.js';
25
25
  export type { Operator } from '../kernel/query/predicate.js';
26
26
  export type { Query } from '../kernel/query/builder.js';
27
- export type { JoinStrategy } from '../kernel/query/join.js';
28
- export type { LiveQuery } from '../kernel/query/live.js';
27
+ export type { JoinStrategy } from '../kernel/query/relate/join.js';
28
+ export type { LiveQuery } from '../kernel/query/live/live.js';
29
29
  export type { ReduceResult, ReduceSpec, LiveReduction, } from '../with-lookup/reduce/reduction.js';
30
30
  export type { IndexDef } from '../with-lookup/indexing/eager-indexes.js';
31
31
  export type { FuseOptions } from '../with-lookup/search/fuse.js';
@@ -1,6 +1,6 @@
1
- import type { RecordIdentity } from '../../kernel/enclave/index.js';
1
+ import type { RecordIdentity } from '../../capsule/index.js';
2
2
  import type { NoydbStore, EncryptedEnvelope, HistoryOptions, PruneOptions } from '../../kernel/types.js';
3
- import { type EnclaveKey } from '../../kernel/enclave/index.js';
3
+ import { type EnclaveKey } from '../../capsule/index.js';
4
4
  /**
5
5
  * The identity a history snapshot is **sealed against** — its STORAGE location,
6
6
  * not the live record it is a copy of (#1041).
@@ -30,4 +30,4 @@ export { VaultInstant, CollectionInstant } from './time-machine.js';
30
30
  export type { VaultEngine } from './time-machine.js';
31
31
  /** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
32
32
  export { NO_HISTORY } from './strategy.js';
33
- export type { RecordIdentity } from '../../kernel/enclave/index.js';
33
+ export type { RecordIdentity } from '../../capsule/index.js';
@@ -44,7 +44,7 @@
44
44
  * puts via `collection('_ledger')` would bypass the `append()` logic.
45
45
  */
46
46
  import type { NoydbStore } from '../../../kernel/types.js';
47
- import { type EnclaveKey } from '../../../kernel/enclave/index.js';
47
+ import { type EnclaveKey } from '../../../capsule/index.js';
48
48
  import { type LedgerEntry } from './entry.js';
49
49
  import type { JsonPatch } from './patch.js';
50
50
  import { LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION } from './constants.js';
@@ -33,7 +33,7 @@ import type { LedgerStore } from './ledger/store.js';
33
33
  import type { JsonPatch } from './ledger/patch.js';
34
34
  import type { DiffEntry } from './diff.js';
35
35
  import type { VaultInstant, VaultEngine } from './time-machine.js';
36
- import type { EnclaveKey, RecordIdentity } from '../../kernel/enclave/index.js';
36
+ import type { EnclaveKey, RecordIdentity } from '../../capsule/index.js';
37
37
  /**
38
38
  * Options accepted by `HistoryStrategy.buildLedger`. Mirrors the
39
39
  * `LedgerStore` constructor verbatim — kept in this file so `core`
@@ -48,7 +48,7 @@
48
48
  */
49
49
  import type { NoydbStore } from '../../kernel/types.js';
50
50
  import type { LedgerStore } from './ledger/store.js';
51
- import { type EnclaveKey } from '../../kernel/enclave/index.js';
51
+ import { type EnclaveKey } from '../../capsule/index.js';
52
52
  /**
53
53
  * Narrow view of a {@link Vault}'s internals that
54
54
  * {@link VaultInstant} needs. Passed in by `Vault.at()` rather than
@@ -1,5 +1,5 @@
1
1
  import type { NoydbStore } from '../../kernel/types.js';
2
- import { type EnclaveKey } from '../../kernel/enclave/index.js';
2
+ import { type EnclaveKey } from '../../capsule/index.js';
3
3
  import type { DeferredNumberingConfig } from './descriptor.js';
4
4
  export declare const NUMBERING_HEAD_COLLECTION = "_numbering_head";
5
5
  export declare const NUMBERING_PENDING_COLLECTION = "_numbering_pending";