@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,337 @@
1
+ /**
2
+ * Partitioned collections — the union read path and the declaration surface
3
+ * (#1342, ADR 0007 "partitioning is collection-shaped").
4
+ *
5
+ * ## What was ruled, and what that left to build
6
+ *
7
+ * ADR 0007 ruled **NO** on lifting a partition value into a storage key or
8
+ * into cleartext envelope metadata: it is a permanent per-record
9
+ * classification handed to the backend, and it widens `@noy-db/hub/to` across
10
+ * every `to-*` adapter and the conformance kit to buy a win on one read path.
11
+ * `NoydbStore.listPage` is untouched by this file, and must stay untouched.
12
+ *
13
+ * It ruled instead that **a partition IS a collection**. The store already
14
+ * sees collection names in cleartext — `listPage(vault, collection, cursor,
15
+ * limit)` takes the name as a parameter — so `invoices@FY2026-Q1` prunes for
16
+ * free: `listPage` never fetches an excluded partition because it is never
17
+ * asked to. No seam change, no new leak class, and partition = collection =
18
+ * DEK makes it a REAL boundary rather than an advisory one (per-collection
19
+ * wrapping, #1004): a principal granted only Q1 cannot decrypt Q2, and a
20
+ * closed period's DEK can be archived or dropped outright — something a
21
+ * scoped predicate can never do.
22
+ *
23
+ * The honest cost of that ruling was three missing pieces. This module is
24
+ * them:
25
+ *
26
+ * 1. **a cross-collection union read path** — there was none, so a query
27
+ * spanning four quarters meant running four and merging by hand;
28
+ * 2. **cheap partition enumeration** — `vault.collections()` is
29
+ * `adapter.loadAll(vault)`, the WHOLE vault snapshot, so even LISTING
30
+ * partitions cost a full load;
31
+ * 3. **a declaration** binding a set of collections into one logical
32
+ * collection with a partition key, so a `where` on that key can prune.
33
+ *
34
+ * ## Where the win actually is
35
+ *
36
+ * `collection.query()` runs over an already-decrypted in-memory cache with
37
+ * hash / sorted / compound dispatch in front of it (#1344, #1345), so pruning
38
+ * there is strictly weaker than an index that already ships. `scan()` is the
39
+ * prize: every page is DECRYPTED, so a partition never fetched is a page
40
+ * never decrypted. {@link PartitionedScan} is where the measured win lives;
41
+ * {@link PartitionedQuery} exists because a union that only streams is not a
42
+ * union read path.
43
+ *
44
+ * ## Why this is a free function and not `vault.partitioned()`
45
+ *
46
+ * `check-architecture`'s kernel-surface ratchet leaves `vault.ts` one line of
47
+ * headroom, and a service that re-couples itself into the kernel is exactly
48
+ * what that ratchet exists to catch. It is also not a `with*()` factory: once
49
+ * ADR 0007 removed the storage-layout policy (there is no key prefixing to
50
+ * configure — the partition is a collection), nothing is left to opt into.
51
+ * What remains is a query-shaped helper over collections the caller already
52
+ * owns, so it is a plain function, tree-shaken when unused.
53
+ *
54
+ * ## The immutability precondition, stated once
55
+ *
56
+ * ⛔ **A record's partition key must be immutable.** If a record can be edited
57
+ * from one partition to another, a scope derived at plan time and a scope
58
+ * derived at read time can disagree, and the difference is silently missing
59
+ * rows. {@link PartitionedCollection.put} routes on `record[key]` and will
60
+ * happily write the same id into two partitions if the key changes; it does
61
+ * not police this, because it cannot see the prior value without reading
62
+ * every partition — which is the cost the whole design exists to avoid.
63
+ */
64
+ import type { Collection } from '../../kernel/collection.js';
65
+ import type { Vault } from '../../kernel/vault.js';
66
+ import type { Operator } from '../../kernel/query/predicate.js';
67
+ import type { OrderBy } from '../../kernel/query/builder.js';
68
+ import type { QueryExplanation } from '../../kernel/query/relate/explain.js';
69
+ import { ScanBuilder } from '../../kernel/query/scan-builder.js';
70
+ import type { ScanPageProvider } from '../../kernel/query/scan-builder.js';
71
+ import type { ReduceResult, ReduceSpec } from '../../with-lookup/reduce/reduction.js';
72
+ import type { PartitionScope } from '../../kernel/query/relate/partition.js';
73
+ /**
74
+ * The collection holding one registry record per partitioned logical
75
+ * collection. A normal, ENCRYPTED collection — the partition list is record
76
+ * content, not a record id, so declaring a partition set adds no cleartext
77
+ * channel of its own. (The partition VALUES do become collection names, and
78
+ * that exposure is ADR 0007's deliberate, developer-visible trade; this
79
+ * registry does not widen it.)
80
+ */
81
+ export declare const PARTITION_REGISTRY_COLLECTION = "_partition_sets";
82
+ /** How a partition value becomes a collection name. */
83
+ export type PartitionNamer = (logicalName: string, partition: string) => string;
84
+ /** The default: `invoices` + `FY2026-Q1` → `invoices@FY2026-Q1`. */
85
+ export declare const defaultPartitionNamer: PartitionNamer;
86
+ export interface PartitionSpec<T> {
87
+ /** The logical collection name. Never itself a stored collection. */
88
+ readonly name: string;
89
+ /**
90
+ * The field whose value names the partition. ⛔ Must be immutable per
91
+ * record — see this module's header.
92
+ */
93
+ readonly key: keyof T & string;
94
+ /**
95
+ * Partition values known to the caller. Merged with whatever the registry
96
+ * already holds, so a caller may declare none and rely on the registry, or
97
+ * declare the full set and never write one.
98
+ */
99
+ readonly partitions?: readonly string[];
100
+ /** Override the partition → collection-name mapping. */
101
+ readonly namer?: PartitionNamer;
102
+ /**
103
+ * Options passed to every member `vault.collection()` — indexes, refs,
104
+ * schema. Identical across partitions by construction: they are one logical
105
+ * collection, and a per-partition shape would make the union unsound.
106
+ */
107
+ readonly collectionOptions?: unknown;
108
+ }
109
+ /**
110
+ * Bind a set of collections into one partitioned logical collection.
111
+ *
112
+ * ```ts
113
+ * const invoices = partitioned<Invoice>(vault, {
114
+ * name: 'invoices',
115
+ * key: 'period',
116
+ * partitions: ['FY2026-Q1', 'FY2026-Q2', 'FY2026-Q3', 'FY2026-Q4'],
117
+ * })
118
+ *
119
+ * await invoices.put('inv-1', { id: 'inv-1', period: 'FY2026-Q1', amount: 100 })
120
+ *
121
+ * // reads ONE collection — the other three are never asked for
122
+ * const q1 = await invoices.query().where('period', '==', 'FY2026-Q1').all()
123
+ *
124
+ * // reads all four, merged, sorted and paged AFTER the union
125
+ * const top = await invoices.query().orderBy('amount', 'desc').limit(10).all()
126
+ * ```
127
+ */
128
+ export declare function partitioned<T>(vault: Vault, spec: PartitionSpec<T>): PartitionedCollection<T>;
129
+ export declare class PartitionedCollection<T> {
130
+ readonly name: string;
131
+ readonly key: string;
132
+ private readonly vault;
133
+ private readonly namer;
134
+ private readonly collectionOptions;
135
+ private readonly declared;
136
+ /**
137
+ * Session cache of the REGISTRY's partition list — deliberately not of the
138
+ * merged set. The two are different questions and conflating them cost a
139
+ * red test: `ensurePartition` must persist a partition the caller DECLARED
140
+ * but never wrote, and a cache of the merged set makes every declared value
141
+ * look already-known, so the registry stays empty and a later session that
142
+ * declares nothing enumerates nothing.
143
+ */
144
+ private stored;
145
+ constructor(vault: Vault, spec: PartitionSpec<T>);
146
+ /** The member collection name for a partition value. */
147
+ collectionNameOf(partition: string): string;
148
+ /** The member `Collection` for one partition. */
149
+ partition(value: string): Collection<T>;
150
+ /**
151
+ * The declared partition set, in declaration order.
152
+ *
153
+ * ⭐ **This is the "cheap enumeration" half of #1342, and cheap means a
154
+ * measured thing.** `vault.collections()` is `adapter.loadAll(vault)` — the
155
+ * whole vault snapshot, every collection, every envelope — so enumerating
156
+ * twelve quarters cost a full load before this existed. Here it is ONE
157
+ * record read out of {@link PARTITION_REGISTRY_COLLECTION}, and zero reads
158
+ * once the session has resolved it.
159
+ * `__tests__/partitioned-collection.test.ts` asserts the `loadAll` count is
160
+ * zero rather than trusting the sentence.
161
+ */
162
+ partitions(): Promise<readonly string[]>;
163
+ /**
164
+ * Declare a partition, persisting it so a later session enumerates it
165
+ * without the caller re-declaring. Idempotent, and keyed on what the
166
+ * REGISTRY holds rather than on what this handle declared.
167
+ */
168
+ ensurePartition(value: string): Promise<void>;
169
+ private loadStored;
170
+ /**
171
+ * Write a record into the partition its key names, declaring that partition
172
+ * if it is new.
173
+ *
174
+ * Throws when `record[key]` is not a string — a partition value names a
175
+ * collection, and routing a record to a partition derived by coercion is
176
+ * how a record ends up somewhere no query will look for it.
177
+ */
178
+ put(id: string, record: T): Promise<void>;
179
+ /** A union query across the member collections, pruned by the predicate. */
180
+ query(): PartitionedQuery<T>;
181
+ /**
182
+ * A union scan across the member collections, pruned by the predicate.
183
+ * Pages are decrypted, so an excluded partition is decryption never paid.
184
+ */
185
+ scan(opts?: {
186
+ pageSize?: number;
187
+ }): PartitionedScan<T>;
188
+ /** @internal — the normalizer for clause shapes, and the union's legs. */
189
+ _registryName(): string;
190
+ private registry;
191
+ }
192
+ /** `record[partitionKey]` was absent, empty, or not a string. */
193
+ export declare class PartitionKeyError extends Error {
194
+ constructor(collection: string, key: string, value: unknown);
195
+ }
196
+ /**
197
+ * One recorded builder call, replayed onto each in-scope member's own
198
+ * builder.
199
+ *
200
+ * ⭐ **Replay, not re-implementation.** The alternative was to build `Clause`
201
+ * objects here, which would have meant a second copy of `Query.where()`'s
202
+ * normalization — the `matches` lowering (#1357), the subquery resolution
203
+ * (#1351), the Via posture gate and the operand rewrite. A second copy is a
204
+ * second thing to drift. Instead every leg is a real `Query` / `ScanBuilder`
205
+ * that normalized the call itself, and the PRUNING reads the normalized
206
+ * `Clause[]` back off one of them — so the clause the pruner classifies is
207
+ * byte-identical to the clause the executor evaluates.
208
+ */
209
+ type Step<T> = {
210
+ readonly kind: 'where';
211
+ readonly field: string;
212
+ readonly op: Operator;
213
+ readonly value: unknown;
214
+ } | {
215
+ readonly kind: 'filter';
216
+ readonly fn: (record: T) => boolean;
217
+ };
218
+ /**
219
+ * A union query across a partitioned collection's members.
220
+ *
221
+ * **Filtering runs per leg; ordering and paging run AFTER the union** — the
222
+ * same shape `orderBy('client.name')` needed when the sort moved after the
223
+ * join legs (#1337). A `limit` is deliberately NOT pushed down: the top ten
224
+ * of the union is not the top ten of any one leg, and a leg-local limit would
225
+ * be correct only for an unordered query, which is the case nobody writes.
226
+ */
227
+ export declare class PartitionedQuery<T> {
228
+ private readonly col;
229
+ private readonly steps;
230
+ private readonly orderBys;
231
+ private readonly limitN;
232
+ private readonly offsetN;
233
+ constructor(col: PartitionedCollection<T>, steps: readonly Step<T>[], orderBys: readonly OrderBy[], limitN: number | undefined, offsetN: number);
234
+ private with;
235
+ where(field: keyof T & string, op: Operator, value: unknown): PartitionedQuery<T>;
236
+ filter(fn: (record: T) => boolean): PartitionedQuery<T>;
237
+ orderBy(field: keyof T & string, direction?: 'asc' | 'desc'): PartitionedQuery<T>;
238
+ limit(n: number): PartitionedQuery<T>;
239
+ offset(n: number): PartitionedQuery<T>;
240
+ /** The pruning decision for this query, and the set it was taken against. */
241
+ scope(): Promise<{
242
+ declared: readonly string[];
243
+ scope: PartitionScope;
244
+ }>;
245
+ /**
246
+ * The matched rows, unordered and unpaged — the set every reduce-shaped
247
+ * terminal reports over, matching `Query.count()`'s rule that orderBy /
248
+ * limit / offset describe a page and a reduction is not paginated.
249
+ */
250
+ private matched;
251
+ /** The union, sorted then paged. */
252
+ all(): Promise<T[]>;
253
+ first(): Promise<T | null>;
254
+ count(): Promise<number>;
255
+ aggregate<Spec extends ReduceSpec>(spec: Spec): Promise<ReduceResult<Spec>>;
256
+ /**
257
+ * The plan, with the partition decision as its first line:
258
+ *
259
+ * ```
260
+ * partitions partitions: 1 of 12 scanned [partitions:pruned] -- key "period"; FY2026-Q1
261
+ * source snapshot (no indexes) [source] rows=500
262
+ * where period == "FY2026-Q1" [scan] rows=500
263
+ * ```
264
+ *
265
+ * ⭐ The dispatch label is decided by {@link resolvePartitionScope} — the
266
+ * SAME call the executor makes, not a mirror of it. `explain.ts`'s header
267
+ * warns that its index dispatch mirrors `candidateRecords`; #1375 deleted
268
+ * one such mirror, and a partition dispatch would have been a third site.
269
+ *
270
+ * The nodes after the partition line are the FIRST in-scope member's own
271
+ * explanation. Every member runs the same plan over the same shape, so one
272
+ * leg's nodes describe them all; the partition line is what says how many
273
+ * legs there are.
274
+ */
275
+ explain(): Promise<QueryExplanation>;
276
+ }
277
+ /**
278
+ * A union scan across a partitioned collection's members — **the path where
279
+ * pruning pays.**
280
+ *
281
+ * Each page is fetched through the member collection's `listPage`, which
282
+ * DECRYPTS it. An excluded partition is therefore not merely a store call
283
+ * skipped, it is every envelope in that partition never decrypted. That is
284
+ * the whole return on ADR 0007, and `__tests__/partitioned-scan-cost.test.ts`
285
+ * measures it rather than asserting it.
286
+ *
287
+ * The builder records `where`/`filter` and only materializes a
288
+ * {@link ScanBuilder} at the terminal, because the partition set cannot be
289
+ * decided before the predicate is known — a provider fixed at `scan()` time
290
+ * would already have committed to every partition.
291
+ */
292
+ export declare class PartitionedScan<T> {
293
+ private readonly col;
294
+ private readonly steps;
295
+ private readonly pageSize;
296
+ constructor(col: PartitionedCollection<T>, steps: readonly Step<T>[], pageSize: number);
297
+ where(field: keyof T & string, op: Operator, value: unknown): PartitionedScan<T>;
298
+ filter(fn: (record: T) => boolean): PartitionedScan<T>;
299
+ /** The pruning decision for this scan, and the set it was taken against. */
300
+ scope(): Promise<{
301
+ declared: readonly string[];
302
+ scope: PartitionScope;
303
+ }>;
304
+ /**
305
+ * The union as a single {@link ScanBuilder} — so `.aggregate()`,
306
+ * `.groupBy()` and `for await` come from the streaming machinery that
307
+ * already exists, at its existing O(reducers) memory bound, rather than
308
+ * from a second implementation of it.
309
+ */
310
+ builder(): Promise<ScanBuilder<T>>;
311
+ [Symbol.asyncIterator](): AsyncIterator<T>;
312
+ aggregate<Spec extends ReduceSpec>(spec: Spec): Promise<ReduceResult<Spec>>;
313
+ /**
314
+ * **ASYNC here, unlike `Query.toArray()` (#1413).** Same method name, a
315
+ * different contract, because the surface underneath differs: this one
316
+ * genuinely fetches across every partition leg, so it genuinely awaits. `Query`'s terminal reads an
317
+ * already-decrypted in-memory cache and returns `T[]` synchronously.
318
+ */
319
+ toArray(): Promise<T[]>;
320
+ }
321
+ /**
322
+ * Walk a list of member collections as ONE paged stream.
323
+ *
324
+ * The composite cursor is `"<memberIndex>|<memberCursor>"`. Two properties
325
+ * make it safe to hand back to a consumer that stores it:
326
+ *
327
+ * - it is opaque in exactly the way a store's own cursor is — the member
328
+ * cursor is passed through verbatim and never parsed;
329
+ * - a member's LAST page returns a cursor pointing at the NEXT member with
330
+ * an empty inner cursor, so exhaustion is detected once, not per page.
331
+ *
332
+ * ⚠️ A member that returns an empty page with a non-null cursor is walked
333
+ * again rather than treated as exhausted — the store contract explicitly
334
+ * allows a store to return fewer items than the limit while more exist.
335
+ */
336
+ export declare function unionPageProvider<T>(members: readonly Collection<T>[]): ScanPageProvider<T>;
337
+ export {};
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Cross-tab / cross-process change signals for `.live()` — #1362.
3
+ *
4
+ * A live query is in-process only: a write in tab A leaves tab B's `.live()`
5
+ * showing the old rows until B happens to read again. This module closes that
6
+ * without an external coordinator: every locally-committed change posts a
7
+ * compact ADDRESS on a channel named per store, and every listening instance
8
+ * re-reads that address **through its own keyring** and re-fires the live
9
+ * queries that touch it.
10
+ *
11
+ * ## The zero-knowledge constraint is the feature
12
+ *
13
+ * The frame is `{ vault, collection, id, ts }` and nothing else. No record, no
14
+ * field, no ciphertext, no key, not even the VERB — see below. Encryption
15
+ * happens in hub before any store, and a broadcast channel is **not a store**:
16
+ * it is a side channel with no authentication and no access control, so it is
17
+ * treated as untrusted in BOTH directions.
18
+ *
19
+ * - **Untrusted egress** — only the address leaves. A peer that should not
20
+ * be able to read a record learns, at most, that a record at that address
21
+ * changed. `change-broadcast.test.ts` asserts on the exact bytes posted and
22
+ * fails if anything resembling record content ever appears in them; that
23
+ * test is the thing that catches a future change which starts sending
24
+ * payloads.
25
+ * - **Untrusted ingress** — the frame carries no `action`. A peer's claim
26
+ * "this was a delete" is not evidence, and it is free not to need it: the
27
+ * receiver re-reads the address and decides the verb from what IT can
28
+ * decrypt. So a hostile or buggy peer on the channel can cost a wasted
29
+ * re-read, and cannot make a receiver report a state its own store does
30
+ * not hold.
31
+ *
32
+ * ## Why the receiver re-reads rather than patches
33
+ *
34
+ * #1341's `LiveMaintainer` patches a result set from a delta it TRUSTS —
35
+ * trustworthy because it was derived from a local write the same process
36
+ * observed, with the record in hand. A remote signal is a different animal: it
37
+ * says only "id X in collection Y changed", and the receiving instance has not
38
+ * decrypted the new record and knows neither the before nor the after state.
39
+ * Feeding it to the maintainer as if it were a local delta would patch a set
40
+ * from an address. So a remote-origin change re-reads and re-runs: the
41
+ * `ChangeEvent` it produces is tagged `remote: true`, and `Collection`'s query
42
+ * source hands the live query NO delta for such an event — which the maintainer
43
+ * already understands as "rebuild from scratch", the pre-#1341 behaviour.
44
+ *
45
+ * ## Transport
46
+ *
47
+ * `BroadcastChannel` when the host has one (browsers, Node >= 18,
48
+ * Deno, Bun) — feature-detected at enable time, never assumed. With no channel
49
+ * the whole feature is an inert no-op and behaviour is exactly what it is
50
+ * today. Any other host transport (Electron IPC, a worker `MessagePort`, a
51
+ * test bus) is supported by passing a `channel` that satisfies `TabChannel`.
52
+ */
53
+ import type { TabChannel } from './tab-coordination.js';
54
+ import type { ChangeEvent } from '../kernel/types.js';
55
+ /**
56
+ * The frame on the wire. `kind` discriminates it from any other traffic
57
+ * sharing the channel; `origin` identifies the sender so a channel that echoes
58
+ * to itself cannot feed an instance its own signal.
59
+ *
60
+ * ⛔ **Do not add a field carrying record state to this interface.** Not the
61
+ * record, not a field of it, not a hash of it, not the verb. Everything here
62
+ * is an ADDRESS plus routing. The test asserting on the posted bytes is what
63
+ * holds the line; it will fail loudly, which is the point.
64
+ */
65
+ export interface ChangeSignal {
66
+ readonly kind: 'noydb:change';
67
+ /** Sending instance's id — an incoming frame with our own id is ignored. */
68
+ readonly origin: string;
69
+ readonly vault: string;
70
+ readonly collection: string;
71
+ readonly id: string;
72
+ /** Sender's wall clock at post time. Diagnostic only; never compared for ordering. */
73
+ readonly ts: number;
74
+ }
75
+ export interface ChangeBroadcastOptions {
76
+ /**
77
+ * Host-provided transport. Supply this for a host with no
78
+ * `BroadcastChannel` (Electron IPC, a worker `MessagePort`, a test bus) or to
79
+ * take ownership of the channel's lifetime. Default: an inline
80
+ * `BroadcastChannel` if the host has one, else nothing at all.
81
+ */
82
+ readonly channel?: TabChannel;
83
+ /**
84
+ * Discriminator for the default channel name — `noydb:change:<storeId>`.
85
+ *
86
+ * ⚠️ Defaults to `store.name`, which is the backend KIND ('memory', 'file',
87
+ * 'idb'), not a per-dataset identity: two different IndexedDB databases both
88
+ * reporting `'idb'` would share one channel and re-read each other's
89
+ * addresses (harmless — a miss costs one read that finds nothing — but
90
+ * wasteful). Pass a `storeId` that names the DATASET whenever a host can
91
+ * open more than one.
92
+ */
93
+ readonly storeId?: string;
94
+ /** This instance's id. Default: a random one. */
95
+ readonly originId?: string;
96
+ /** Clock for the frame's `ts`. Default: `Date.now`. */
97
+ readonly now?: () => number;
98
+ }
99
+ /** The slice of `Noydb` this needs. Structural, so there is no import cycle. */
100
+ export interface ChangeBroadcastHost {
101
+ on(event: 'change', handler: (e: ChangeEvent) => void): void;
102
+ off(event: 'change', handler: (e: ChangeEvent) => void): void;
103
+ /** @internal Store backend name, for the default channel name. */
104
+ readonly _storeName: string | undefined;
105
+ /** @internal Re-read one address through this instance's own keyring. */
106
+ _applyRemoteSignal(vault: string, collection: string, id: string): Promise<void>;
107
+ }
108
+ /**
109
+ * An inline `BroadcastChannel` wrapper, or `undefined` when the host has none.
110
+ *
111
+ * ⚠️ Deliberately does NOT gate on `window`, and that asymmetry with
112
+ * `defaultChannel()` is the cross-process half of this feature, not an
113
+ * oversight. That gate exists because a presence HEARTBEAT and a Web-Locks role
114
+ * ELECTION are browser-tab concepts that should not start running in Node; a
115
+ * change signal is the opposite — Node workers and Electron processes sharing a
116
+ * store are exactly the case #1362 names, and gating on `window` would silently
117
+ * exclude them.
118
+ */
119
+ export declare function defaultChangeChannel(name: string): TabChannel | undefined;
120
+ /** Channel name for a store. One namespace per store so unrelated datasets never cross-signal. */
121
+ export declare function changeChannelName(storeId: string): string;
122
+ /**
123
+ * The relay itself: local change out as an address, remote address in as a
124
+ * re-read. Started by {@link enableChangeBroadcast}.
125
+ */
126
+ export declare class ChangeBroadcast {
127
+ #private;
128
+ constructor(host: ChangeBroadcastHost, channel: TabChannel, opts: {
129
+ originId: string;
130
+ now: () => number;
131
+ ownsChannel: boolean;
132
+ });
133
+ get originId(): string;
134
+ start(): void;
135
+ dispose(): void;
136
+ }
137
+ /**
138
+ * Opt in to cross-tab / cross-process live-query reactivity.
139
+ *
140
+ * ```ts
141
+ * const stop = enableChangeBroadcast(db, { storeId: 'invoices-2026' })
142
+ * // …a put in another tab now re-fires this tab's `.live()` queries…
143
+ * stop.dispose()
144
+ * ```
145
+ *
146
+ * Opt-in on purpose: it is a side channel, and a host that does not want one
147
+ * gets exactly today's behaviour by not calling this. **With no channel
148
+ * available it is also a no-op** — it returns a disposable that does nothing,
149
+ * never throws, and leaves in-process reactivity untouched.
150
+ */
151
+ export declare function enableChangeBroadcast(host: ChangeBroadcastHost, opts?: ChangeBroadcastOptions): {
152
+ dispose: () => void;
153
+ };
@@ -15,7 +15,7 @@
15
15
  * (if available) or local adapter, and polled periodically.
16
16
  */
17
17
  import type { NoydbStore, PresencePeer } from '../kernel/types.js';
18
- import { type EnclaveKey } from '../kernel/enclave/index.js';
18
+ import { type EnclaveKey } from '../capsule/index.js';
19
19
  /** Options for constructing a PresenceHandle. @internal */
20
20
  export interface PresenceHandleOpts {
21
21
  /** Local adapter for storage-poll fallback. */
@@ -82,10 +82,10 @@ export declare class PresenceHandle<P> {
82
82
  /**
83
83
  * Derive (and cache) the presence-tag key — a non-extractable, sign-only
84
84
  * HMAC-SHA256 key HKDF-derived from the collection DEK, domain-separated
85
- * from the presence payload key by {@link PRESENCE_TAG_KEY_DOMAIN}.
86
- * Mirrors `deriveClassifyIndexKey` (kernel/enclave/classify/bidx.ts). No
87
- * PBKDF2 stretch — the adapter never holds this key, so a plain keyed HMAC
88
- * tag is sufficient and deterministic. Returns `null` when unencrypted
85
+ * from the presence payload key by the enclave's `derivePresenceTagKey`
86
+ * domain. Mirrors `deriveClassifyIndexKey` (capsule/enclave-aes/classify/bidx.ts).
87
+ * No PBKDF2 stretch — the adapter never holds this key, so a plain keyed
88
+ * HMAC tag is sufficient and deterministic. Returns `null` when unencrypted
89
89
  * (no DEK to derive from).
90
90
  */
91
91
  private getPresenceTagKey;
@@ -94,11 +94,6 @@ export declare class PresenceHandle<P> {
94
94
  * storage-poll record id in encrypted mode so the adapter never sees the
95
95
  * userId. Falls back to the raw `userId` when unencrypted (no key exists
96
96
  * to tag with — see {@link PresenceHandleOpts.userId}).
97
- *
98
- * Signs directly via `subtle.sign` (like `bidx.ts`'s `mintAt`) rather than
99
- * the barrel's `hmacSha256Hex` helper: that helper re-exports its key
100
- * argument's raw bytes internally, which only works for extractable keys
101
- * (e.g. an AES-GCM DEK) — `presenceTagKey` is deliberately non-extractable.
102
97
  */
103
98
  private presenceTag;
104
99
  private getPubSubAdapter;
@@ -0,0 +1,27 @@
1
+ import {
2
+ FROZEN_SNAPSHOTS_COLLECTION,
3
+ freezeAndDeleteClosure,
4
+ freezeSnapshotOnly,
5
+ randomId,
6
+ withdrawAccessibleData
7
+ } from "./chunk-IMQKWR46.js";
8
+ import "./chunk-EJLV62NI.js";
9
+ import "./chunk-KZXDLBY6.js";
10
+ import "./chunk-5A4345TG.js";
11
+ import "./chunk-GMKGGY7V.js";
12
+ import "./chunk-EZGV6F47.js";
13
+ import "./chunk-OIEO4WDL.js";
14
+ import "./chunk-Q2XRFWOI.js";
15
+ import "./chunk-NH2UOV3B.js";
16
+ import "./chunk-42ALPZ2B.js";
17
+ import "./chunk-QMWY2FDS.js";
18
+ import "./chunk-SV2PM2OY.js";
19
+ import "./chunk-37EPTBBR.js";
20
+ export {
21
+ FROZEN_SNAPSHOTS_COLLECTION,
22
+ freezeAndDeleteClosure,
23
+ freezeSnapshotOnly,
24
+ randomId,
25
+ withdrawAccessibleData
26
+ };
27
+ //# sourceMappingURL=withdraw-accessible-HL7GACUE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,25 +1,41 @@
1
1
  {
2
2
  "name": "@noy-db/hub",
3
- "version": "0.7.1-pre.0",
3
+ "version": "0.8.0",
4
4
  "description": "Zero-knowledge, offline-first, encrypted document store — core library with AES-256-GCM, PBKDF2, multi-user keyring, and sync engine",
5
- "license": "MIT",
5
+ "license": "Apache-2.0",
6
6
  "author": "vLannaAi <vicio@lanna.ai>",
7
- "homepage": "https://github.com/vLannaAi/noy-db/tree/main/packages/hub#readme",
7
+ "homepage": "https://github.com/noy-db/core/tree/main/packages/hub#readme",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "git+https://github.com/vLannaAi/noy-db.git",
10
+ "url": "git+https://github.com/noy-db/core.git",
11
11
  "directory": "packages/hub"
12
12
  },
13
13
  "bugs": {
14
- "url": "https://github.com/vLannaAi/noy-db/issues"
14
+ "url": "https://github.com/noy-db/core/issues"
15
15
  },
16
16
  "type": "module",
17
- "sideEffects": false,
17
+ "sideEffects": [
18
+ "./dist/query/live/index.js",
19
+ "./dist/query/reduce/index.js",
20
+ "./dist/query/relate/index.js"
21
+ ],
22
+ "imports": {
23
+ "#capsule": {
24
+ "noy-db:exclave-plain": "@noy-db/exclave-plain",
25
+ "noy-db:enclave-pqc": "@noy-db/enclave-pqc",
26
+ "default": "./dist/capsule/enclave-aes/index.js"
27
+ }
28
+ },
18
29
  "exports": {
19
30
  ".": {
20
31
  "types": "./dist/index.d.ts",
21
32
  "default": "./dist/index.js"
22
33
  },
34
+ "./capsule": {
35
+ "types": "./dist/capsule/contract.d.ts",
36
+ "default": "./dist/capsule/contract.js"
37
+ },
38
+ "./package.json": "./package.json",
23
39
  "./codemods/0.4.0-pre.json": "./codemods/0.4.0-pre.json",
24
40
  "./i18n": {
25
41
  "types": "./dist/via/i18n/index.d.ts",
@@ -57,6 +73,22 @@
57
73
  "types": "./dist/kernel/query/index.d.ts",
58
74
  "default": "./dist/query/index.js"
59
75
  },
76
+ "./query/live": {
77
+ "types": "./dist/kernel/query/live/index.d.ts",
78
+ "default": "./dist/query/live/index.js"
79
+ },
80
+ "./query/reduce": {
81
+ "types": "./dist/kernel/query/reduce/index.d.ts",
82
+ "default": "./dist/query/reduce/index.js"
83
+ },
84
+ "./query/relate": {
85
+ "types": "./dist/kernel/query/relate/index.d.ts",
86
+ "default": "./dist/query/relate/index.js"
87
+ },
88
+ "./query/all": {
89
+ "types": "./dist/kernel/query/all.d.ts",
90
+ "default": "./dist/query/all/index.js"
91
+ },
60
92
  "./debug": {
61
93
  "types": "./dist/kernel/debug.d.ts",
62
94
  "default": "./dist/debug/index.js"
@@ -81,6 +113,10 @@
81
113
  "types": "./dist/with-audit/consent/index.d.ts",
82
114
  "default": "./dist/consent/index.js"
83
115
  },
116
+ "./coverage": {
117
+ "types": "./dist/with-audit/coverage/index.d.ts",
118
+ "default": "./dist/coverage/index.js"
119
+ },
84
120
  "./periods": {
85
121
  "types": "./dist/with-audit/periods/index.d.ts",
86
122
  "default": "./dist/periods/index.js"
@@ -218,7 +254,8 @@
218
254
  "default": "./dist/reduce/index.js"
219
255
  },
220
256
  "./codemods/0.6.0-pre.json": "./codemods/0.6.0-pre.json",
221
- "./codemods/0.7.0-pre.json": "./codemods/0.7.0-pre.json"
257
+ "./codemods/0.7.0-pre.json": "./codemods/0.7.0-pre.json",
258
+ "./codemods/0.8.0-pre.json": "./codemods/0.8.0-pre.json"
222
259
  },
223
260
  "module": "./dist/index.js",
224
261
  "types": "./dist/index.d.ts",
@@ -227,21 +264,20 @@
227
264
  "README.md",
228
265
  "CHANGELOG.md",
229
266
  "LICENSE",
230
- "codemods"
267
+ "codemods",
268
+ "NOTICE"
231
269
  ],
232
270
  "engines": {
233
271
  "node": ">=22.0.0"
234
272
  },
235
- "dependencies": {
236
- "@noy-db/attestation": "0.7.1-pre.0"
237
- },
238
273
  "devDependencies": {
239
274
  "@types/node": "^22.0.0",
240
275
  "esbuild": "^0.25.0",
241
276
  "happy-dom": "^18.0.0",
242
277
  "zod": "^4.0.0",
243
278
  "zod-to-json-schema": "^3.25.2",
244
- "@noy-db/shamir": "0.7.1-pre.0"
279
+ "@noy-db/attestation": "0.8.0",
280
+ "@noy-db/shamir": "0.8.0"
245
281
  },
246
282
  "peerDependencies": {
247
283
  "zod": "^3.0.0 || ^4.0.0",