@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
@@ -11,17 +11,17 @@ import { type ViaDescriptor, type ViaEraseReport } from './via/index.js';
11
11
  import type { MutationOrigin } from './mutation.js';
12
12
  import { type WaveContext, type RollupOutcome, type RollupDeleteIntent } from './via/dispatch.js';
13
13
  import type { ComputedFields } from '../with-formula/computed/index.js';
14
- import { type SealedShredSlot } from './enclave/index.js';
14
+ import { type SealedShredSlot } from '../capsule/index.js';
15
15
  import { type TierMoveResult } from '../with-audit/tiers/index.js';
16
16
  import type { GhostRecord } from './types.js';
17
17
  import type { StandardSchemaV1 } from './schema.js';
18
18
  import type { DiffEntry } from '../with-commit/history/diff.js';
19
19
  import { Query, ScanBuilder } from './query/index.js';
20
- import type { JoinableSource } from './query/index.js';
20
+ import type { JoinableSource } from './query/relate/join.js';
21
21
  import { type CollectionIndexes } from '../with-lookup/indexing/eager-indexes.js';
22
22
  import { LazyQuery } from '../with-lookup/indexing/lazy-builder.js';
23
23
  import type { SearchOptions, SearchResult } from '../with-lookup/search/index.js';
24
- import type { RetrieveOptions, RetrieveHit } from '../with-lookup/search/retrieve-types.js';
24
+ import type { RetrieveOptions, RetrieveHit, SimilarToOptions } from '../with-lookup/search/retrieve-types.js';
25
25
  import type { RefDescriptor } from './refs.js';
26
26
  import { type CollectionDescription, type DescribeOptions } from '../with-shape/introspection/describe.js';
27
27
  import type { CollectionConfig } from '../with-shape/introspection/types.js';
@@ -112,6 +112,10 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
112
112
  private readonly blobFields;
113
113
  private readonly blobTierPolicy;
114
114
  private readonly cache;
115
+ /** #1418 — mutation stamp for a derived-output memo, or `null` when one must NOT be used because a redundant re-write would still be observable (gate handler, history, sync, search) or there is no eager cache to stamp. The rules and their measured rationale live with the consumer, `with-formula/materialized-views/emit-memo.ts`. `_`-prefixed deliberately: `kernel-api-surface-golden` freezes the PUBLIC surface and this is an executor seam. @internal */
116
+ get _cacheStamp(): number | null;
117
+ /** #1439 — could a `beforePut` gate fire for THIS row? Asks each handler's declared scope, not merely whether any is registered — the bus is vault-wide, the gates are not. @internal */
118
+ _derivedWriteGated(record: Record<string, unknown>): boolean;
115
119
  private hydrated;
116
120
  /**
117
121
  * #606: ids known to carry a delete marker in the store — lets the #589
@@ -221,8 +225,12 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
221
225
  private i18nFields;
222
226
  /** The configured string fields exposed to `retrieve()`; `undefined` for ordinary collections (zero-cost). */
223
227
  private readonly textIndexes;
228
+ /** #1354 — the subset of `textIndexes` carrying positional postings (phrase / proximity). */
229
+ private readonly textIndexPositions;
224
230
  /** Session-scoped lexical index store; `undefined` (zero-cost) unless `textIndexes` is non-empty. */
225
231
  private readonly searchIndexStore;
232
+ /** Encrypted field-index sidecars (#1359); `null` (zero-cost) unless an index declared `persist: true`. */
233
+ private readonly fieldIndexStore;
226
234
  /** Embedding config for write-time vector derivation; `undefined` (zero-cost) for ordinary
227
235
  * collections. When set, `put()` encodes the source field(s) and stores an encrypted `_vec` sidecar. */
228
236
  private readonly embeddings;
@@ -427,6 +435,8 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
427
435
  readonly fields: readonly string[];
428
436
  readonly unique?: boolean;
429
437
  }>;
438
+ /** #1447 — `field -> via brands covering it`, for `dumpSchema()`. Brand and field only, never a binding's config; see `via/pipeline.ts#fieldCoverage`. Consumed by walk.ts. */
439
+ getViaCoverage(): Record<string, readonly string[]> | undefined;
430
440
  /**
431
441
  * Aggregate all collection-level configuration options that are actively set
432
442
  * into a {@link CollectionConfig} snapshot. Returns `undefined` when no options
@@ -971,11 +981,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
971
981
  /** Retrieval (lexical | semantic | hybrid) — gated behind `searchStrategy: withSearch()`. */
972
982
  retrieve(query: string, opts?: RetrieveOptions<T>): Promise<RetrieveHit<T>[]>;
973
983
  /** Raw-vector kNN — gated behind `searchStrategy: withSearch()`. */
974
- similarTo(vector: Float32Array, opts?: {
975
- k?: number;
976
- minScore?: number;
977
- includeRecord?: boolean;
978
- }): Promise<RetrieveHit<T>[]>;
984
+ similarTo(vector: Float32Array, opts?: SimilarToOptions): Promise<RetrieveHit<T>[]>;
979
985
  /** Opt-in bulk `_vec` re-derive (#788) — a plain collection has nothing to rebuild; gated behind `searchStrategy: withSearch()` otherwise. */
980
986
  rebuildEmbeddings(): Promise<{
981
987
  rebuilt: number;
@@ -1055,7 +1061,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
1055
1061
  * the filtered records directly (the API). Prefer the chainable
1056
1062
  * form for new code.
1057
1063
  *
1058
- * **Lazy-MV gap:** `query()` is synchronous and does NOT
1064
+ * **Cold-collection gate (#1414):** until something has bulk-loaded this collection (`list()`, `get()`), every terminal returns a value that hydrates when AWAITED and throws `CollectionNotHydratedError` on synchronous use — an unloaded collection is not an empty one; see `query/hydration.ts`. **Lazy-MV gap:** `query()` is synchronous and does NOT
1059
1065
  * trigger lazy materialized-view resolve-on-read. If this
1060
1066
  * collection is a lazy MV's output and the MV is currently stale,
1061
1067
  * `query().toArray()` returns the pre-stale snapshot. To force a
@@ -1275,6 +1281,10 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
1275
1281
  * Never writes to the store and never fires write hooks, so it cannot loop.
1276
1282
  */
1277
1283
  _applyRemoteChange(id: string, action: 'put' | 'delete'): Promise<void>;
1284
+ /** @internal #1362 — same as {@link _applyRemoteChange}, for a frame that carries NO verb.
1285
+ * A peer's claim about the verb is not evidence; the re-read decides it, exactly as
1286
+ * `_compensateRevertedWrite` does. Untrusted ingress is why the frame omits it. */
1287
+ _applyRemoteSignal(id: string): Promise<void>;
1278
1288
  /**
1279
1289
  * Origin-tagged mutation choke point (#623 task 10) — the single dispatch
1280
1290
  * point every put/delete path funnels through, AFTER its own store write,
@@ -1401,6 +1411,15 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
1401
1411
  * vault-shared `_blob` DEK (enabling cross-collection deduplication).
1402
1412
  */
1403
1413
  blob(id: string): BlobSet;
1414
+ /**
1415
+ * #1452 — would an update of record `id` pass the `beforePut` gate bus right
1416
+ * now? Runs the bus with `incoming = existing`, so closed periods and record
1417
+ * guards refuse an attachment change exactly as they would refuse the
1418
+ * record's own update. A record with no stored body (never written, marker,
1419
+ * elevated tier) is not gated — attaching before the first `put()` was
1420
+ * always allowed. @internal
1421
+ */
1422
+ _assertRecordMutable(id: string): Promise<void>;
1404
1423
  /** Get all records as encrypted envelopes (for dump). */
1405
1424
  dumpEnvelopes(): Promise<Record<string, EncryptedEnvelope>>;
1406
1425
  /**
@@ -1469,6 +1488,8 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
1469
1488
  /** Drop a record's encrypted _vec sidecar on erasure (a vector is text-invertible).
1470
1489
  * Called by vault.ts forget() inside a resilient try/catch; residue is reported in ForgetResult. */
1471
1490
  _purgeVector(id: string): Promise<void>;
1491
+ /** @internal #1359 — force an immediate sidecar write, cancelling the debounce. No-op when none opted in. */
1492
+ _flushFieldIndexes(): Promise<void>;
1472
1493
  /** Drop the persisted lexical-index blob (forget/erasure): an opaque
1473
1494
  * all-records index must not survive crypto-shred. Idempotent; no-op without persist. */
1474
1495
  _purgeSearchIndex(): Promise<void>;
@@ -10,7 +10,7 @@
10
10
  * @internal
11
11
  */
12
12
  import type { EncryptedEnvelope, NoydbStore, VdigFieldPolicy } from './types.js';
13
- import { type RecordCodec, type EnclaveKey } from './enclave/index.js';
13
+ import { type RecordCodec, type EnclaveKey } from '../capsule/index.js';
14
14
  import type { MutationOrigin } from './mutation.js';
15
15
  /**
16
16
  * @internal Structural (not imported) view of `UnlockedKeyring` — only
@@ -37,7 +37,8 @@
37
37
  * │ ├─ IndexWriteFailureError — index side-car put/delete failed post-main
38
38
  * │ ├─ UniqueConstraintError — duplicate value on unique index
39
39
  * │ ├─ UnsupportedIndexOptionError — unique+lazy or unique+crdt at registration
40
- * │ └─ FieldNotQueryableError — field's Via posture is queryable: 'none'
40
+ * │ ├─ FieldNotQueryableError — field's Via posture is queryable: 'none'
41
+ * │ └─ CollectionNotHydratedError — sync terminal used on a never-loaded collection
41
42
  * ├─ i18n / Dictionary errors
42
43
  * │ ├─ ReservedCollectionNameError
43
44
  * │ ├─ DictKeyMissingError
@@ -136,32 +137,102 @@ export declare class DecryptionError extends NoydbError {
136
137
  constructor(message?: string);
137
138
  }
138
139
  /**
139
- * Thrown when GCM tag verification fails, indicating the ciphertext was
140
- * modified after encryption.
141
- *
142
- * AES-256-GCM is authenticated encryption the tag over the ciphertext
143
- * is checked on every decrypt. If any byte was flipped (accidental
144
- * corruption or deliberate tampering), decryption throws this error.
145
- * Treat it as a security alert: the stored bytes are not what NOYDB wrote.
146
- */
140
+ * **Means exactly: "this envelope carries no sealed body, and this path needs
141
+ * one."** (#15)
142
+ *
143
+ * Since `_iv`/`_data` became optional, an envelope written by an *exclave*
144
+ * capsule has no ciphertext body at all. Handed to an AES decrypt path, that
145
+ * is neither corruption nor an attack — it is a capsule mismatch, and it must
146
+ * not be reported as one of the two errors it superficially resembles:
147
+ *
148
+ * - **not {@link TamperedError}**, whose entire documented meaning is "the
149
+ * AEAD tag did not verify under this key". That class is hub's security
150
+ * alert; raising it for a structurally absent body would manufacture a
151
+ * tamper signal out of a configuration difference, and the operator
152
+ * response to the two is completely different.
153
+ * - **not a bare `TypeError`**, which is what reading `.length` or passing
154
+ * `undefined` into `decrypt()` produced before this issue — an internal
155
+ * slip surfacing as if hub had a bug in its own arithmetic.
156
+ *
157
+ * `where` names the call path that required the body, because the same
158
+ * absence is legitimate two frames earlier: {@link hasSealedBody} answers
159
+ * false for it, and a tombstone, a `_del` marker and a plaintext collection
160
+ * all reach that answer by design.
161
+ */
162
+ export declare class MissingEnvelopeBodyError extends NoydbError {
163
+ /** The operation that required a sealed body, e.g. `'openEnvelopeJson'`. */
164
+ readonly where: string;
165
+ constructor(where: string);
166
+ }
167
+ /**
168
+ * **Means exactly: "AEAD failed under this key."** Nothing more (lanna-db #4,
169
+ * 2026-09-03). AES-256-GCM authenticates the ciphertext on every decrypt; if
170
+ * the tag does not verify under the DEK the caller supplied, the enclave
171
+ * throws this. Only the enclave throws it *for* an AEAD failure — everywhere
172
+ * else in hub that names this class is either passing one through or
173
+ * attaching evidence it holds (see {@link reason}).
174
+ *
175
+ * What it does NOT mean on its own: "someone modified the bytes". Four
176
+ * situations all present as an AEAD failure — the bytes were altered; the
177
+ * caller holds no key for this collection and a fabricated one was tried; the
178
+ * body is identity-bound to another vault; the body was sealed under a format
179
+ * this build does not read. The first is the security alert; the other three
180
+ * are evidence a caller can hold BEFORE decrypting, and when it does it says
181
+ * so in `reason`. **With `reason` absent, treat this as the alert it has
182
+ * always been.** Hub's own tier-fallback code (`with-shape/blobs`) branches
183
+ * on this class as "not ours at this tier — try the next", which is the
184
+ * correct reading of "did not open under this key".
185
+ *
186
+ * A key derived from a user credential (recovery code, password, share set)
187
+ * that fails to open a blob is a wrong KEY, and surfaces as
188
+ * {@link InvalidKeyError}, never this class — `wrapped-deks.ts` translates.
189
+ */
190
+ /** See {@link TamperedError.reason}. */
191
+ export type TamperedReason = 'unbound-legacy-format' | 'key-absent' | 'generation-mismatch' | 'foreign-stamp';
147
192
  export declare class TamperedError extends NoydbError {
148
193
  /**
149
- * Why the tag check failed, when the enclave could tell (#1103).
194
+ * Evidence the thrower held BEFORE decrypting, when it held any. Additive
195
+ * (#1103 pattern): the throw and the class are unchanged, so
196
+ * `catch (e) { if (e instanceof TamperedError) … }` keeps working; callers
197
+ * that want to tell a migration or a missing grant from a breach read this.
150
198
  *
151
- * `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
152
- * sealed before identity binding (#1041) and this is a format transition, not
153
- * an attack. Positive evidence, not a guess: producing a body that decrypts
154
- * under this DEK requires the DEK, which an untrusted store does not hold.
199
+ * - `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
200
+ * sealed before identity binding (#1041): a format transition, not an
201
+ * attack. Positive evidence: producing a body that decrypts under this DEK
202
+ * requires the DEK, which an untrusted store does not hold. (#1103)
203
+ * - `'key-absent'` — this keyring holds no DEK for a collection that already
204
+ * has records, and the DEK cannot be back-filled (wrapping needs the
205
+ * grantee's secret, which the vault never stores). Thrown by the DEK
206
+ * resolver instead of minting a key that would decrypt nothing and
207
+ * resurface as a bare AEAD failure — the #1288 misdiagnosis. Reserved
208
+ * collections (`_periods`, …) take this path; user collections throw
209
+ * `NoAccessError` (#1004/#1010).
210
+ * - `'generation-mismatch'` — reserved for "the artefact was sealed at a
211
+ * generation this reader cannot compute". **Not emitted by this build**:
212
+ * hub reads no generation stamp off any envelope — `NOYDB_ENVELOPE_GENERATION`
213
+ * is an exported constant, and the stamp a bundle carries is manifest data
214
+ * a reader never branches on (ADR 0003). The one generation fact hub can
215
+ * establish from the bytes — "opens under an empty AAD" — is already
216
+ * `'unbound-legacy-format'`. Absence of a stamp never reads as
217
+ * generation 1 (`docs/ENVELOPE-GENERATION.md`).
218
+ * - `'foreign-stamp'` — reserved for "this vault's DEK was asked to open a
219
+ * body identity-bound to ANOTHER vault". **Not emitted by this build**:
220
+ * nothing in hub can tell that apart from another vault's compartment
221
+ * merely being present, which in a multi-vault bundle is normal
222
+ * (klum `extractCrossVaultPartition`).
155
223
  *
156
- * Absent no benign explanation was found. Treat as the security alert this
157
- * error has always been.
224
+ * Both reserved values are declared so consumers can type against them; a
225
+ * build that starts emitting either will say so in its CHANGELOG.
158
226
  *
159
- * The field is additive and the throw is unchanged, so
160
- * `catch (e) { if (e instanceof TamperedError) … }` keeps working; callers
161
- * that want to tell a migration from a breach can now read this.
227
+ * Absent no evidence; the security alert.
228
+ *
229
+ * ⚠️ `reason` is hub's IN-PROCESS report and may be branched on. A
230
+ * generation or origin stamp read out of an untrusted manifest may NOT — it
231
+ * is store-supplied data, not evidence (klum ADR 0003). If you are holding
232
+ * a stamp and not this error, you are holding a claim.
162
233
  */
163
- readonly reason?: 'unbound-legacy-format';
164
- constructor(message?: string, reason?: 'unbound-legacy-format');
234
+ readonly reason?: TamperedReason;
235
+ constructor(message?: string, reason?: TamperedReason);
165
236
  }
166
237
  /**
167
238
  * Thrown when key unwrapping fails, typically because the secret is wrong
@@ -589,7 +660,36 @@ export declare class PeriodClosedError extends NoydbError {
589
660
  readonly periodName: string;
590
661
  readonly endDate: string;
591
662
  readonly recordTs: string;
592
- constructor(periodName: string, endDate: string, recordTs: string);
663
+ /**
664
+ * #1455 — the business-date field the guard compared, when the period
665
+ * declares one. Absent on the envelope-`_ts` (no `dateField`) path.
666
+ * Structured so a consumer can render the refusal without parsing
667
+ * `recordTs`'s composed `"incoming[cycle]=2026-06"` form.
668
+ */
669
+ readonly dateField: string | undefined;
670
+ /** #1455 — which side of the write tripped the seal. */
671
+ readonly side: 'existing' | 'incoming' | undefined;
672
+ constructor(periodName: string, endDate: string, recordTs: string, detail?: {
673
+ dateField?: string;
674
+ side?: 'existing' | 'incoming';
675
+ });
676
+ }
677
+ /**
678
+ * Thrown when the `_periods` hash chain does not verify on load (#1454): a
679
+ * period record's `priorPeriodHash` / `priorPeriodName` no longer resolve to
680
+ * the stored predecessor in its timeline — an interior close was rewritten or
681
+ * deleted under the engine. The write guard refuses to evaluate against a set
682
+ * it cannot trust, so every period-governed write fails with this until the
683
+ * store is repaired from a trusted copy.
684
+ *
685
+ * The chain cannot see a rewrite of the NEWEST record in a timeline (nothing
686
+ * hashes it yet); the public-API refusal in `vault.collection()` is what closes
687
+ * that path.
688
+ */
689
+ export declare class PeriodChainError extends NoydbError {
690
+ readonly periodName: string;
691
+ readonly partition: readonly (string | number)[] | undefined;
692
+ constructor(periodName: string, why: string, partition?: readonly (string | number)[]);
593
693
  }
594
694
  /**
595
695
  * Thrown when a `put()` or `delete()` is rejected by a guard's `check`
@@ -658,7 +758,7 @@ export declare class AmendmentForbiddenError extends NoydbError {
658
758
  * envelope ciphertext is still in the store, the keyring file is
659
759
  * still listed at `_keyring/*`, and anyone with direct store read
660
760
  * access can count keyrings without going through the hub. See
661
- * `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
761
+ * `https://github.com/noy-db/docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
662
762
  */
663
763
  export declare class DirectoryDisabledError extends NoydbError {
664
764
  readonly vault: string;
@@ -933,6 +1033,22 @@ export declare class NotFoundError extends NoydbError {
933
1033
  export declare class ValidationError extends NoydbError {
934
1034
  constructor(message?: string);
935
1035
  }
1036
+ /**
1037
+ * Thrown when a `where(field, 'matches', …)` operand is refused (#1357).
1038
+ *
1039
+ * Three distinct refusals, all loud and all at the `where()` call site:
1040
+ * - the operand is neither a `RegExp` nor a LIKE string,
1041
+ * - the pattern trips the ReDoS budget (source length, group nesting,
1042
+ * quantifier count, or a quantified group that itself quantifies),
1043
+ * - the RegExp carries a `g`/`y` flag, which makes `test()` stateful
1044
+ * across records and would silently drop rows.
1045
+ *
1046
+ * Deliberately a REFUSAL, never a rewrite: a sanitiser that "fixes" a
1047
+ * user pattern changes which rows come back without saying so.
1048
+ */
1049
+ export declare class UnsafePatternError extends NoydbError {
1050
+ constructor(message: string);
1051
+ }
936
1052
  /**
937
1053
  * Thrown when a Standard Schema v1 validator rejects a record on
938
1054
  * `put()` (input validation) or on read (output validation). Carries
@@ -1011,7 +1127,41 @@ export declare class GroupCardinalityError extends NoydbError {
1011
1127
  readonly cardinality: number;
1012
1128
  /** The cap that was exceeded. */
1013
1129
  readonly maxGroups: number;
1014
- constructor(field: string, cardinality: number, maxGroups: number);
1130
+ constructor(field: string, cardinality: number, maxGroups: number,
1131
+ /**
1132
+ * Which surface refused (#1340). `'query'` — the eager `.groupBy()`, whose
1133
+ * ceiling is a fixed constant. `'scan'` — the streaming
1134
+ * `scan().groupBy(key, { maxGroups })`, whose ceiling is a DECLARED budget,
1135
+ * so its message names the option that raises it. The two differ only in
1136
+ * the advice; the code, the fields and the class are one.
1137
+ */
1138
+ surface?: 'query' | 'scan');
1139
+ }
1140
+ /**
1141
+ * Thrown by `.traverse()` / `ancestorsOf()` / `descendantsOf()` when a cycle
1142
+ * is reached AND the caller opted into `{ onCycle: 'throw' }` (#1352).
1143
+ *
1144
+ * The default is `'stop'` — the walk simply does not re-enter a node already
1145
+ * on the current path, which is what keeps a circular parent chain from
1146
+ * hanging the tab. `'throw'` exists for the other legitimate reading: a
1147
+ * self-referencing hierarchy that is SUPPOSED to be acyclic, where a cycle is
1148
+ * a data-integrity finding the consumer wants surfaced rather than silently
1149
+ * pruned.
1150
+ *
1151
+ * `cycle` is the offending walk closed back on itself — the path from the
1152
+ * seed to the node that would have been re-entered, with that node repeated
1153
+ * as the final element, so `cycle[0]` and `cycle.at(-1)` name the same
1154
+ * record only for a cycle that reaches all the way back to the seed.
1155
+ */
1156
+ export declare class TraversalCycleError extends NoydbError {
1157
+ /** The declared self-ref field being traversed. */
1158
+ readonly field: string;
1159
+ /** The path that closed on itself, with the re-entered id repeated last. */
1160
+ readonly cycle: readonly string[];
1161
+ constructor(opts: {
1162
+ field: string;
1163
+ cycle: readonly string[];
1164
+ });
1015
1165
  }
1016
1166
  /**
1017
1167
  * Thrown in lazy mode when a `.query()` / `.where()` / `.orderBy()` clause
@@ -1030,10 +1180,24 @@ export declare class IndexRequiredError extends NoydbError {
1030
1180
  readonly collection: string;
1031
1181
  readonly touchedFields: readonly string[];
1032
1182
  readonly missingFields: readonly string[];
1183
+ /**
1184
+ * Why the index could not serve the query, when it is NOT "a field is
1185
+ * unindexed" (#1407).
1186
+ *
1187
+ * ⚠️ The default message names missing fields, and that sentence is FALSE
1188
+ * for a refusal on an indexed field — a `where(f,'==',null)` in lazy mode is
1189
+ * refused because the persisted index never holds nullish values, not
1190
+ * because `f` lacks an index. Telling that caller to "declare an index on
1191
+ * each field" sends them to fix something that is already correct, which is
1192
+ * the same defect #1430 fixed in `WeakSecretError`: advice describing rules
1193
+ * that do not apply here.
1194
+ */
1195
+ readonly reason: string | undefined;
1033
1196
  constructor(args: {
1034
1197
  collection: string;
1035
1198
  touchedFields: readonly string[];
1036
1199
  missingFields: readonly string[];
1200
+ reason?: string;
1037
1201
  });
1038
1202
  }
1039
1203
  /**
@@ -1062,16 +1226,17 @@ export declare class UniqueConstraintError extends NoydbError {
1062
1226
  * Thrown at collection registration when an index option is declared that
1063
1227
  * is incompatible with the collection's operating mode.
1064
1228
  *
1065
- * Currently covers two cases:
1066
- * - `unique: true` on a lazy-mode (`prefetch: false`) collection lazy mode
1067
- * does not pre-load all records, so an in-memory uniqueness map cannot be
1068
- * maintained reliably.
1069
- * - `unique: true` on a CRDT collection (`crdt: 'lww-map' | 'rga' | 'yjs'`) —
1070
- * CRDT put() short-circuits the unique-constraint check, so enforcement would
1071
- * silently not fire.
1072
- *
1073
- * Both cases are caught eagerly at `vault.collection()` time so the developer
1074
- * sees the incompatibility immediately rather than shipping silently-ignored
1229
+ * ⚠️ **Nothing throws this today (#1358).** It used to cover three cases
1230
+ * `unique: true` on a lazy-mode (`prefetch: false`), CRDT, or tiered
1231
+ * collection because those write paths bypassed enforcement. Lazy and
1232
+ * tiered now enforce for real, and CRDT reports detected duplicates on the
1233
+ * `unique:violation` event instead of refusing the declaration (see
1234
+ * `with-lookup/indexing/unique-constraints.ts`). The class is retained: it is
1235
+ * part of the published surface, and it is the right shape for the next index
1236
+ * option that a mode genuinely cannot honour.
1237
+ *
1238
+ * Any future case belongs at `vault.collection()` time so the developer sees
1239
+ * the incompatibility immediately rather than shipping silently-ignored
1075
1240
  * constraints.
1076
1241
  *
1077
1242
  * The `option` field names the incompatible option (`'unique'`) so catch blocks
@@ -1138,10 +1303,58 @@ export declare class PersistedIndexCompensationError extends NoydbError {
1138
1303
  * Payload:
1139
1304
  * - `field` — the refused field name
1140
1305
  */
1306
+ /**
1307
+ * #1458 — a query-tier extension method was called without its subpath.
1308
+ *
1309
+ * The DSL ships in four groups. `@noy-db/hub/query` carries **Find** and is
1310
+ * always present; **Live**, **Reduce** and **Relate** arrive by side-effect
1311
+ * import (`import '@noy-db/hub/query/relate'`), which patches the missing
1312
+ * methods onto `Query.prototype` and — through the `declare module` block
1313
+ * that ships with each subpath — onto the `Query` TYPE.
1314
+ *
1315
+ * ⭐ **The compile error is the primary signal; this is the backstop.** With
1316
+ * the types wired that way, calling `.join()` without the import does not
1317
+ * typecheck, which is where a TypeScript consumer meets the problem. This
1318
+ * error is what a JavaScript consumer, or a call that reached the method
1319
+ * through a cast, gets instead of `TypeError: q.join is not a function` —
1320
+ * a message that names neither what is missing nor how to get it.
1321
+ *
1322
+ * ⚠️ It is deliberately NOT a lazy loader. Fetching the chunk here would
1323
+ * defer the cost rather than remove it, and a first `.join()` offline would
1324
+ * fail on a network fetch — the opposite of what an offline-first store
1325
+ * promises. The one line of import is the price of the byte saving.
1326
+ */
1327
+ export declare class QueryExtensionMissingError extends NoydbError {
1328
+ /** The method that was called, e.g. `'join'`. */
1329
+ readonly method: string;
1330
+ /** The subpath whose import supplies it, e.g. `'@noy-db/hub/query/relate'`. */
1331
+ readonly subpath: string;
1332
+ constructor(method: string, subpath: string);
1333
+ }
1141
1334
  export declare class FieldNotQueryableError extends NoydbError {
1142
1335
  readonly field: string;
1143
1336
  constructor(field: string);
1144
1337
  }
1338
+ /**
1339
+ * #1414 — thrown when a synchronous query terminal is USED on a collection
1340
+ * that has never been loaded. The collection's eager cache is empty because
1341
+ * nothing has read it yet, not because the collection is empty: those are
1342
+ * different facts, and only one of them is safe to act on.
1343
+ *
1344
+ * The terminal itself does not throw — it returns a pending result so that the
1345
+ * AWAITED form (`await collection.query().toArray()`, which is what every
1346
+ * async guard `check` does) transparently hydrates and answers correctly. The
1347
+ * error is raised the moment that value is used synchronously: indexed,
1348
+ * iterated, compared, coerced, or read for a property.
1349
+ *
1350
+ * Fix a caller by awaiting the terminal, or by `await collection.list()` /
1351
+ * `await collection.get(id)` before the synchronous read.
1352
+ */
1353
+ export declare class CollectionNotHydratedError extends NoydbError {
1354
+ readonly collection: string;
1355
+ readonly terminal: string;
1356
+ constructor(collection: string, terminal: string, label?: string);
1357
+ }
1145
1358
  /**
1146
1359
  * Thrown by `readPod()` when the body bytes don't match
1147
1360
  * the integrity hash declared in the bundle header — i.e. someone
@@ -1677,12 +1890,18 @@ export declare class JoinTooLargeError extends NoydbError {
1677
1890
  readonly leftRows: number;
1678
1891
  readonly rightRows: number;
1679
1892
  readonly maxRows: number;
1680
- readonly side: 'left' | 'right';
1893
+ /**
1894
+ * Which count tripped the ceiling. `'output'` is #1339's addition: a
1895
+ * declared non-equi `.joinOn()` is many-to-many, so it can exceed the
1896
+ * ceiling with both SIDES comfortably under it — the produced row count is
1897
+ * the only thing standing between a theta join and a hang.
1898
+ */
1899
+ readonly side: 'left' | 'right' | 'output';
1681
1900
  constructor(opts: {
1682
1901
  leftRows: number;
1683
1902
  rightRows: number;
1684
1903
  maxRows: number;
1685
- side: 'left' | 'right';
1904
+ side: 'left' | 'right' | 'output';
1686
1905
  message: string;
1687
1906
  });
1688
1907
  }
@@ -2177,7 +2396,7 @@ export declare class RecoveryProfileNotImplementedError extends NoydbError {
2177
2396
  constructor(profile: string, tracking: string);
2178
2397
  }
2179
2398
  /**
2180
- * Thrown by a `kernel/enclave` fork's **optional groups** — sealing,
2399
+ * Thrown by a `capsule/enclave-aes` fork's **optional groups** — sealing,
2181
2400
  * deterministic, per-record-key lifecycle — when that fork's crypto
2182
2401
  * engine does not implement the requested behavior.
2183
2402
  *
@@ -2200,7 +2419,7 @@ export declare class EnclaveNotSupportedError extends NoydbError {
2200
2419
  * Raised when a collection's `classifiedFields` configuration is invalid
2201
2420
  * (e.g. a claimed field name collides with a rider companion or another
2202
2421
  * classified field). Homed in `kernel/errors.ts` (rather than the classified
2203
- * feature module) so `kernel/enclave/classify/*` can throw it without
2422
+ * feature module) so `capsule/enclave-aes/classify/*` can throw it without
2204
2423
  * importing with-*; the classified feature module re-exports it under the
2205
2424
  * same name for backward-compatible import paths.
2206
2425
  */
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A `Map` that stamps every mutation with a globally unique, monotonic tick
3
+ * (#1417).
4
+ *
5
+ * The eager collection cache is written at ELEVEN sites — `put`, `delete`,
6
+ * hydration, sync cut-over, the lookup write-through, and more. Anything that
7
+ * memoizes a derived view of that cache (a sorted keyset page order; a
8
+ * decorated row set) needs to know when the cache moved, and hand-bumping a
9
+ * counter at eleven call sites is a stale-read waiting to happen: miss one and
10
+ * a reader serves rows from before a write, which is strictly worse than the
11
+ * cost the memo was there to avoid.
12
+ *
13
+ * ⛔ So the counter lives in the container, not at the call sites. Every
14
+ * mutation route into a `Map` is `set` / `delete` / `clear`; overriding those
15
+ * three makes the invariant STRUCTURAL — a new write site cannot forget,
16
+ * because there is nothing for it to remember.
17
+ *
18
+ * ⭐ THE TICK IS GLOBAL, NOT PER-INSTANCE, and that is load-bearing. A memo
19
+ * keyed on `<vault>/<collection>` + a per-instance count collides across two
20
+ * collections that share a name — a second vault, a torn-down and rebuilt
21
+ * instance, a test suite reusing `V/rows` — because both count from zero. A
22
+ * process-wide tick makes every stamp unique, so identity + generation is a
23
+ * sound memo key without the memo having to know about instance lifetimes.
24
+ * (Measured, by a test that reused a collection name and got another
25
+ * collection's page order back.)
26
+ *
27
+ * `set` bumps even when the value is identical: a redundant invalidation costs
28
+ * one recompute, a missed one costs correctness.
29
+ *
30
+ * @module
31
+ */
32
+ export declare class GenerationMap<K, V> extends Map<K, V> {
33
+ /**
34
+ * ⚠️ NOT a `#private` field, and not readonly-initialised, deliberately.
35
+ * `Map`'s constructor calls `this.set()` for each entry of an iterable
36
+ * argument — which runs BEFORE this class's fields are installed. A
37
+ * `#private` field throws `TypeError` on touch at that point; a declared
38
+ * property is merely `undefined`, and assigning to it is safe. The
39
+ * initializer below then runs and resets it to 0, which is the correct
40
+ * resting state for a freshly built map.
41
+ */
42
+ private gen;
43
+ /** Mutation stamp. Equal across two reads means nothing changed between them. */
44
+ get generation(): number;
45
+ set(key: K, value: V): this;
46
+ delete(key: K): boolean;
47
+ clear(): void;
48
+ }
@@ -1,5 +1,5 @@
1
1
  import type { MergeAuthority } from '../port/with/merge-authority.js';
2
- import type { EnclaveKey } from './enclave/index.js';
2
+ import type { EnclaveKey } from '../capsule/index.js';
3
3
  /**
4
4
  * ⚠️ **A client cannot verify what it cannot decrypt** — and that boundary is
5
5
  * stated here rather than hidden.
@@ -620,6 +620,11 @@ export declare class Noydb {
620
620
  enableTabCoordination(opts?: TabCoordinationOptions): {
621
621
  dispose: () => void;
622
622
  };
623
+ /** @internal #1362 — `ChangeBroadcastHost`: re-read one broadcast address through THIS
624
+ * instance's own keyring. No-op for a vault this instance has not opened. */
625
+ _applyRemoteSignal(vaultName: string, collectionName: string, id: string): Promise<void>;
626
+ /** @internal #1362 — `ChangeBroadcastHost`: store backend name, for the default channel name. */
627
+ get _storeName(): string | undefined;
623
628
  private disableTabCoordination;
624
629
  get tabRole(): TabRole;
625
630
  activeTabs(): TabPresence[];
@@ -713,7 +718,7 @@ export declare class Noydb {
713
718
  * keyring file at `_keyring/<userId>` and the envelope ciphertext at
714
719
  * `_users/<keyringId>` remain observable to anyone with direct store
715
720
  * read access — only the hub-level enumeration is gated. See
716
- * `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
721
+ * `https://github.com/noy-db/docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
717
722
  */
718
723
  setDirectoryEnabled(vault: string, enabled: boolean): Promise<void>;
719
724
  /**
@@ -1,11 +1,35 @@
1
1
  /**
2
- * Generic dotted-path / `[]`-wildcard record helpers. Kernel-owned:
3
- * these carry zero i18n logic — they were extracted out of
4
- * `via/i18n/core.ts` (Task 7, #623) so kernel call-sites (put-time
5
- * validation, densify) can import them without a spine→service edge.
2
+ * Refuse a malformed field path AT DECLARATION TIME.
6
3
  *
7
- * @internal
4
+ * ⛔ WHY THIS EXISTS. {@link getAtPath} performs no validation by design — it
5
+ * answers "what is at this path", and "nothing" is a legitimate answer for an
6
+ * optional field or an empty array. The consequence is that a MALFORMED path
7
+ * is indistinguishable from an absent value: `'contacts[.name'` contains no
8
+ * `[].` and no `.`, so it falls through to `obj['contacts[.name']`, resolves
9
+ * to `undefined`, and the declaration does nothing. Forever. Silently.
10
+ *
11
+ * Measured 2026-09-13: an `i18nFields` declaration with `required: 'all'` and
12
+ * a malformed path accepted a record missing every required language, while
13
+ * the same spec on a well-formed path refused it. The guarantee was not
14
+ * weakened — it was never installed.
15
+ *
16
+ * ⭐ SAME CLASS AS core#19 AND `moneyFields`. `via/money/paths.ts` already
17
+ * guards its own grammar and says why in its header ("a declared-but-
18
+ * unreachable path that was silently ignored ... a latent 100× bug");
19
+ * `classifiedFields` did not, and a consumer found the leak. This is the third
20
+ * instance, which is why the check lives HERE, beside the resolver every
21
+ * path-taking family shares, rather than being written a third time.
22
+ *
23
+ * ⚠️ SYNTAX ONLY. A well-formed path naming a field that does not exist
24
+ * (`titel` for `title`) is NOT caught here and cannot be — that needs the
25
+ * collection's schema, which is not always declared. It is a real and separate
26
+ * gap; see the issue filed alongside this guard.
27
+ *
28
+ * Trailing `[]` is refused because `getAtPath` cannot consume it: the wildcard
29
+ * is recognised as the three-character marker `[].`, so `'contacts[]'` with
30
+ * nothing after it is read as an ordinary key and resolves to nothing.
8
31
  */
32
+ export declare function assertFieldPath(path: string, context: string): void;
9
33
  /**
10
34
  * Return all leaf values at `path`, expanding `[].` array wildcards.
11
35
  *
@@ -11,7 +11,7 @@
11
11
  * kernel-surface line budget.
12
12
  */
13
13
  import type { EncryptedEnvelope } from './types.js';
14
- import type { EnclaveKey } from './enclave/index.js';
14
+ import type { EnclaveKey } from '../capsule/index.js';
15
15
  /** @internal Everything `_commitPut` needs after `_preparePut` produced the envelope. */
16
16
  export interface PreparedPut<T> {
17
17
  readonly id: string;