@noy-db/hub 0.7.0-pre.10 → 0.7.0-pre.12

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 (360) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +3 -3
  3. package/dist/api-UE2XQKDN.js +20 -0
  4. package/dist/as/index.js +11 -10
  5. package/dist/as/index.js.map +1 -1
  6. package/dist/at/index.js +6 -6
  7. package/dist/attestation/index.js +16 -16
  8. package/dist/{backup-QZQEP5RO.js → backup-R6A4VZRX.js} +12 -12
  9. package/dist/blobs/index.js +11 -11
  10. package/dist/broker/index.js +10 -10
  11. package/dist/by/index.js +2 -2
  12. package/dist/cargo/index.js +27 -27
  13. package/dist/{chunk-AHIIBDNH.js → chunk-2Z47NMFK.js} +6 -6
  14. package/dist/{chunk-2DGBRE4K.js → chunk-4OZNXTO4.js} +2 -2
  15. package/dist/{chunk-FZWAGG5T.js → chunk-5FUULQ6F.js} +6 -6
  16. package/dist/{chunk-P7KJME6C.js → chunk-6YXCPL4T.js} +2 -2
  17. package/dist/{chunk-XJP66QEN.js → chunk-7BE7ZDVQ.js} +380 -2
  18. package/dist/chunk-7BE7ZDVQ.js.map +1 -0
  19. package/dist/{chunk-LAI7ENPW.js → chunk-7MG2LHO5.js} +3 -3
  20. package/dist/{chunk-NUXTUGAD.js → chunk-7NTBVFGD.js} +10 -10
  21. package/dist/{chunk-SW4TOSJL.js → chunk-7O3Y4PPD.js} +1 -1
  22. package/dist/chunk-7O3Y4PPD.js.map +1 -0
  23. package/dist/{chunk-MU74BYOD.js → chunk-ANSIZYEG.js} +3 -3
  24. package/dist/{chunk-2MQ2D5OZ.js → chunk-B2ZSGYSF.js} +4 -4
  25. package/dist/{chunk-5W5CEHLA.js → chunk-BBWVXF57.js} +4 -4
  26. package/dist/{chunk-SWFIXQF5.js → chunk-BERJ4AWW.js} +5 -5
  27. package/dist/{chunk-Q2OAAREU.js → chunk-BMSOTHIA.js} +5 -5
  28. package/dist/{chunk-XGXVPCYW.js → chunk-BOWNCWZT.js} +3 -3
  29. package/dist/{chunk-65ZYRK7O.js → chunk-BUE2D7PX.js} +26 -3
  30. package/dist/chunk-BUE2D7PX.js.map +1 -0
  31. package/dist/{chunk-UTFY6W6X.js → chunk-BZ3534YM.js} +2 -2
  32. package/dist/{chunk-DOPZWTMJ.js → chunk-CIGAQBJR.js} +6 -6
  33. package/dist/{chunk-3GIA3HJ2.js → chunk-DGOZ4UZD.js} +2 -2
  34. package/dist/{chunk-7XT7KZTN.js → chunk-DJ3LNNZQ.js} +8 -8
  35. package/dist/{chunk-IS5LFHV2.js → chunk-DMJZBQ7F.js} +6 -6
  36. package/dist/{chunk-MENI33ZV.js → chunk-E3EBMC4G.js} +3 -3
  37. package/dist/{chunk-T66OY2U5.js → chunk-E5OHKSBD.js} +6 -6
  38. package/dist/{chunk-LUVGSKXE.js → chunk-EVKR67PQ.js} +5 -5
  39. package/dist/{chunk-Q2ZN5DWZ.js → chunk-FAHMLERK.js} +2 -2
  40. package/dist/{chunk-FN26SFGH.js → chunk-FYEZC4PX.js} +2 -2
  41. package/dist/{chunk-OLUTCM23.js → chunk-GHHUF2KL.js} +5 -5
  42. package/dist/{chunk-DNMTN46H.js → chunk-GY4WYNNG.js} +2 -2
  43. package/dist/{chunk-OQDHIAR2.js → chunk-H7XCIM3Z.js} +61 -8
  44. package/dist/chunk-H7XCIM3Z.js.map +1 -0
  45. package/dist/{chunk-IAHDSFFA.js → chunk-HN4FNA4X.js} +10 -10
  46. package/dist/{chunk-JRWLUWDM.js → chunk-IPFE6MVM.js} +3 -3
  47. package/dist/{chunk-PV7XXAXK.js → chunk-JBDFMYKQ.js} +2 -2
  48. package/dist/{chunk-3SWP2FYA.js → chunk-JJR2JIN4.js} +8 -8
  49. package/dist/{chunk-IZTU6RKH.js → chunk-JMGDHKQF.js} +2 -2
  50. package/dist/{chunk-P2RJAVMR.js → chunk-KCUIMITG.js} +3 -3
  51. package/dist/chunk-KL7AS3HV.js +84 -0
  52. package/dist/chunk-KL7AS3HV.js.map +1 -0
  53. package/dist/{chunk-MOQ6OGKS.js → chunk-KLPASWYY.js} +3 -3
  54. package/dist/{chunk-JILOSL4O.js → chunk-KTDGZPOZ.js} +2 -2
  55. package/dist/{chunk-ZB2K3FV7.js → chunk-KTFRCC5C.js} +2 -2
  56. package/dist/{chunk-7PC3DRG7.js → chunk-LHH6H43C.js} +6 -6
  57. package/dist/{chunk-QOHGWFAW.js → chunk-LWBCUYZW.js} +2 -2
  58. package/dist/{chunk-NMDMSHBF.js → chunk-MLO75SFJ.js} +2 -2
  59. package/dist/{chunk-H5GVPOB4.js → chunk-MMOZQTXV.js} +4 -4
  60. package/dist/{chunk-JFSUYGNE.js → chunk-MVMXZYXT.js} +2 -2
  61. package/dist/{chunk-FKQCC4C5.js → chunk-NQKIUNW5.js} +2 -2
  62. package/dist/{chunk-IRHIA3AL.js → chunk-PFBL4M7E.js} +3 -3
  63. package/dist/{chunk-RCONOOVF.js → chunk-PKJ43CMD.js} +5 -5
  64. package/dist/{chunk-UL7TLJ54.js → chunk-PQKG5AHH.js} +3 -3
  65. package/dist/{chunk-MTTPHBIE.js → chunk-Q2PU57HC.js} +2 -2
  66. package/dist/{chunk-FPN5D4JX.js → chunk-Q4RWFV3G.js} +5 -5
  67. package/dist/{chunk-FLRLZ4XZ.js → chunk-Q7HZX3IF.js} +2 -2
  68. package/dist/{chunk-5EC7X5QA.js → chunk-QHW35ZON.js} +4 -4
  69. package/dist/{chunk-75WNTBZL.js → chunk-QIBVIOXO.js} +3 -3
  70. package/dist/{chunk-KQIDBIZL.js → chunk-QIZPZMUI.js} +2 -2
  71. package/dist/{chunk-TQGT5BZE.js → chunk-RDZZHYMV.js} +3 -3
  72. package/dist/{chunk-HOIWW2LV.js → chunk-RGSTMLVO.js} +3 -3
  73. package/dist/{chunk-KZTPL7NL.js → chunk-RMF67KCG.js} +2 -2
  74. package/dist/{chunk-OEJ4R52I.js → chunk-RMS3NEA3.js} +2 -2
  75. package/dist/{chunk-5NKHCJU5.js → chunk-RTYJRFQO.js} +6 -6
  76. package/dist/chunk-RXLYKVTF.js +17 -0
  77. package/dist/chunk-RXLYKVTF.js.map +1 -0
  78. package/dist/{chunk-XKA6UH5V.js → chunk-SFAWCTEM.js} +2 -2
  79. package/dist/{chunk-FYT3DXPN.js → chunk-SKGMN35F.js} +2 -2
  80. package/dist/{chunk-USKHHOIV.js → chunk-SL3JAAKN.js} +2 -2
  81. package/dist/{chunk-FRIVOR5N.js → chunk-SWVNZQVR.js} +4 -4
  82. package/dist/chunk-TFMM5DBB.js +20 -0
  83. package/dist/chunk-TFMM5DBB.js.map +1 -0
  84. package/dist/{chunk-O3SNM66K.js → chunk-TFR7DSOV.js} +2 -2
  85. package/dist/{chunk-X6YRP5EC.js → chunk-THX6FEEC.js} +5 -5
  86. package/dist/{chunk-RPX2H2OL.js → chunk-TO3EQ7HF.js} +3 -3
  87. package/dist/chunk-TPHAGLUH.js +30 -0
  88. package/dist/chunk-TPHAGLUH.js.map +1 -0
  89. package/dist/{chunk-DIVY2CJZ.js → chunk-TRGTKX5E.js} +3 -3
  90. package/dist/{chunk-JY4U6CYV.js → chunk-TUFM4UZP.js} +2 -2
  91. package/dist/{chunk-OKCQNMO6.js → chunk-U7VPHXXO.js} +5 -5
  92. package/dist/{chunk-DZPMKY3J.js → chunk-UGTBXF5U.js} +3 -3
  93. package/dist/{chunk-VT4DTCK5.js → chunk-URHRIAV6.js} +2 -2
  94. package/dist/{chunk-YHIAWECL.js → chunk-UXVWEX5L.js} +2 -2
  95. package/dist/{chunk-PCIBCL26.js → chunk-VGICZPVE.js} +7 -5
  96. package/dist/{chunk-PCIBCL26.js.map → chunk-VGICZPVE.js.map} +1 -1
  97. package/dist/{chunk-XJTGBHK6.js → chunk-VNR2SNVJ.js} +6 -6
  98. package/dist/{chunk-GHADG5QZ.js → chunk-VTFVLCUH.js} +2 -2
  99. package/dist/{chunk-U3RMWOXY.js → chunk-VXANTWBJ.js} +3 -3
  100. package/dist/{chunk-KHKKD62N.js → chunk-VYYM3MEN.js} +2 -16
  101. package/dist/chunk-VYYM3MEN.js.map +1 -0
  102. package/dist/{chunk-QJLOWGOU.js → chunk-WQF3QABE.js} +5 -5
  103. package/dist/{chunk-GKOJR53Y.js → chunk-WSJG5L5C.js} +4 -4
  104. package/dist/{chunk-I5LSKXT6.js → chunk-WWNYSV7S.js} +3 -3
  105. package/dist/{chunk-357ECVLE.js → chunk-XGDYGUEH.js} +3 -3
  106. package/dist/{chunk-2E2LT37H.js → chunk-XLMEZIAJ.js} +2 -2
  107. package/dist/{chunk-KKZPQLDH.js → chunk-XMF3GKUR.js} +125 -465
  108. package/dist/chunk-XMF3GKUR.js.map +1 -0
  109. package/dist/{chunk-TAJZ7GXO.js → chunk-XNIQ7DP2.js} +2 -2
  110. package/dist/{chunk-Z277MC2O.js → chunk-Y4MJQ2UG.js} +4 -4
  111. package/dist/{chunk-OXZSMX2H.js → chunk-YCXICMOY.js} +5 -5
  112. package/dist/{chunk-MV2OEK3K.js → chunk-YQWBEJCS.js} +4 -4
  113. package/dist/{chunk-CWFH36SI.js → chunk-YSRUYAVU.js} +2 -2
  114. package/dist/{chunk-ZQGRZN5L.js → chunk-YYP7WSEB.js} +2 -2
  115. package/dist/{chunk-HS3LEVT4.js → chunk-ZG4XLOKB.js} +6 -6
  116. package/dist/{chunk-4U52PMEL.js → chunk-ZN4FD4PE.js} +4 -4
  117. package/dist/{chunk-AW4KTQA4.js → chunk-ZORTV6NH.js} +2 -2
  118. package/dist/{chunk-P22XPNFW.js → chunk-ZR2YMODS.js} +2 -2
  119. package/dist/classified/index.js +4 -4
  120. package/dist/{classified-marker-R37XW5PC.js → classified-marker-67HBIJMZ.js} +3 -3
  121. package/dist/{collection-facade-OPJ3EC4L.js → collection-facade-MGGHQ3HU.js} +15 -15
  122. package/dist/{computed-HW6IG5UH.js → computed-LSEZYRJS.js} +3 -3
  123. package/dist/consent/index.js +7 -7
  124. package/dist/cover/index.js +7 -7
  125. package/dist/custody/index.js +10 -10
  126. package/dist/{dead-filter-GRT6RAML.js → dead-filter-M3NZUWBZ.js} +2 -2
  127. package/dist/debug/index.js +1 -1
  128. package/dist/{delegation-6QRAYSK6.js → delegation-OLJUWTVA.js} +9 -9
  129. package/dist/derivations/index.js +24 -13
  130. package/dist/{derive-AAIXSQIE.js → derive-LY47HG7Q.js} +8 -8
  131. package/dist/directory/index.js +8 -8
  132. package/dist/{dispatch-QCF7KPIP.js → dispatch-44J4TL72.js} +5 -5
  133. package/dist/dispatch-XEBHUGBV.js +250 -0
  134. package/dist/dispatch-XEBHUGBV.js.map +1 -0
  135. package/dist/{enclave-OXZY3NOP.js → enclave-4YBQK77G.js} +7 -7
  136. package/dist/executor-KSPGNVDO.js +29 -0
  137. package/dist/executor-MZJXBWNM.js +9 -0
  138. package/dist/executor-TOLPBHOC.js +9 -0
  139. package/dist/export-accessible-LGV6IAFX.js +23 -0
  140. package/dist/extract-partition-RYJZIKQZ.js +38 -0
  141. package/dist/{fanout-sidecar-KGQCUJ7P.js → fanout-sidecar-TSFPXY5C.js} +7 -7
  142. package/dist/find-LC7P63MX.js +11 -0
  143. package/dist/forget/index.js +7 -7
  144. package/dist/guards/index.js +4 -4
  145. package/dist/history/index.js +11 -11
  146. package/dist/i18n/index.js +12 -12
  147. package/dist/index.d.ts +8 -4
  148. package/dist/index.js +96 -96
  149. package/dist/indexing/index.js +2 -2
  150. package/dist/introspection/index.js +11 -10
  151. package/dist/issue-IOXM3RSJ.js +19 -0
  152. package/dist/kernel/collection.d.ts +11 -6
  153. package/dist/kernel/errors.d.ts +28 -0
  154. package/dist/kernel/match-pairs.d.ts +30 -0
  155. package/dist/{ledger-ZAFULLAF.js → ledger-HXHIOD36.js} +9 -9
  156. package/dist/liberate-4APIV7FR.js +25 -0
  157. package/dist/{link-set-LQI2IJX6.js → link-set-6RAHEKZN.js} +9 -9
  158. package/dist/{managed-secret-7OH7HKXV.js → managed-secret-P3JQ7ZG4.js} +7 -7
  159. package/dist/materialized-views/index.js +18 -18
  160. package/dist/{migrate-cek-QHZ75E6E.js → migrate-cek-25KNTS5U.js} +2 -2
  161. package/dist/money/index.js +4 -4
  162. package/dist/noydb-JJXPICIC.js +88 -0
  163. package/dist/overlay-views/index.js +4 -4
  164. package/dist/periods/index.js +10 -10
  165. package/dist/pod/index.js +55 -53
  166. package/dist/{pod-handle-BLOI4IFY.js → pod-handle-6II7KFBR.js} +7 -7
  167. package/dist/policy/index.js +7 -7
  168. package/dist/portability/index.js +8 -8
  169. package/dist/{post-register-R33EKJQR.js → post-register-BPJ36A6D.js} +6 -6
  170. package/dist/query/index.js +3 -3
  171. package/dist/reduce/index.js +4 -4
  172. package/dist/{register-AYBQNTM3.js → register-AEOOGKNO.js} +13 -13
  173. package/dist/registry-BZQIVNNO.js +29 -0
  174. package/dist/registry-I6FP4677.js +19 -0
  175. package/dist/registry-SHMGHEK4.js +9 -0
  176. package/dist/registry-SKSOUXNF.js +9 -0
  177. package/dist/{request-withdrawal-7IKUIAEB.js → request-withdrawal-6HJT4ODF.js} +12 -12
  178. package/dist/{reveal-PI6ADRQU.js → reveal-DDQBDWPM.js} +4 -4
  179. package/dist/{revoke-PUJKRYJF.js → revoke-U7U3FMXU.js} +9 -9
  180. package/dist/satellites/index.js +1 -1
  181. package/dist/schema-update/index.js +2 -2
  182. package/dist/sealed-record/index.js +10 -10
  183. package/dist/search/index.js +4 -4
  184. package/dist/{seed-MCCGVPRI.js → seed-3RXT4VGN.js} +10 -10
  185. package/dist/sequence/index.js +7 -7
  186. package/dist/session/index.js +7 -7
  187. package/dist/shadow/index.js +2 -2
  188. package/dist/{signer-5TA7FUC3.js → signer-7NK7TMWU.js} +8 -8
  189. package/dist/snapshots/index.js +8 -8
  190. package/dist/{stale-HZR7745Y.js → stale-KSPG6LFX.js} +8 -8
  191. package/dist/{storage-J2QHNJCB.js → storage-WP4M7IFO.js} +8 -8
  192. package/dist/{store-coordination-provider-MYIHSZXT.js → store-coordination-provider-O2VUEMJH.js} +7 -7
  193. package/dist/sync/index.js +8 -8
  194. package/dist/team/index.js +12 -12
  195. package/dist/tiers/index.js +9 -9
  196. package/dist/to/index.js +1 -1
  197. package/dist/transactions/index.js +3 -3
  198. package/dist/util/index.js +1 -1
  199. package/dist/vault-head/index.js +6 -6
  200. package/dist/{verify-R6CCBUA3.js → verify-JBXCAGDL.js} +5 -5
  201. package/dist/walk-P3E6QSNC.js +22 -0
  202. package/dist/with-formula/derivations/dispatch.d.ts +16 -1
  203. package/dist/with-formula/derivations/registry.d.ts +15 -0
  204. package/dist/with-formula/derivations/trigger-match.d.ts +52 -0
  205. package/dist/with-formula/derivations/types.d.ts +23 -0
  206. package/dist/with-shape/introspection/behaviors.d.ts +7 -0
  207. package/dist/with-shape/introspection/describe.d.ts +40 -0
  208. package/dist/{withdraw-accessible-62VI4W7D.js → withdraw-accessible-6Q7NE4EY.js} +11 -11
  209. package/package.json +3 -3
  210. package/dist/api-GJQF7OAJ.js +0 -20
  211. package/dist/chunk-65ZYRK7O.js.map +0 -1
  212. package/dist/chunk-J6FXVDKC.js +0 -81
  213. package/dist/chunk-J6FXVDKC.js.map +0 -1
  214. package/dist/chunk-KHKKD62N.js.map +0 -1
  215. package/dist/chunk-KKZPQLDH.js.map +0 -1
  216. package/dist/chunk-OQDHIAR2.js.map +0 -1
  217. package/dist/chunk-SW4TOSJL.js.map +0 -1
  218. package/dist/chunk-XJP66QEN.js.map +0 -1
  219. package/dist/dispatch-DR3XITEC.js +0 -194
  220. package/dist/dispatch-DR3XITEC.js.map +0 -1
  221. package/dist/executor-67NA4KPO.js +0 -29
  222. package/dist/executor-7JDP7UBK.js +0 -9
  223. package/dist/executor-CRH5OB4V.js +0 -9
  224. package/dist/export-accessible-K4GJAU7U.js +0 -23
  225. package/dist/extract-partition-YJFL5OKK.js +0 -38
  226. package/dist/find-SVZHMEQI.js +0 -11
  227. package/dist/issue-64N6OG7U.js +0 -19
  228. package/dist/liberate-QAUKHU6W.js +0 -25
  229. package/dist/noydb-ZUS5XAFT.js +0 -86
  230. package/dist/registry-CQWWOBO4.js +0 -9
  231. package/dist/registry-JCZ4BNLV.js +0 -18
  232. package/dist/registry-JFFENZ44.js +0 -9
  233. package/dist/registry-ZA4HACYR.js +0 -19
  234. package/dist/walk-3PA4ZOKS.js +0 -21
  235. /package/dist/{api-GJQF7OAJ.js.map → api-UE2XQKDN.js.map} +0 -0
  236. /package/dist/{backup-QZQEP5RO.js.map → backup-R6A4VZRX.js.map} +0 -0
  237. /package/dist/{chunk-AHIIBDNH.js.map → chunk-2Z47NMFK.js.map} +0 -0
  238. /package/dist/{chunk-2DGBRE4K.js.map → chunk-4OZNXTO4.js.map} +0 -0
  239. /package/dist/{chunk-FZWAGG5T.js.map → chunk-5FUULQ6F.js.map} +0 -0
  240. /package/dist/{chunk-P7KJME6C.js.map → chunk-6YXCPL4T.js.map} +0 -0
  241. /package/dist/{chunk-LAI7ENPW.js.map → chunk-7MG2LHO5.js.map} +0 -0
  242. /package/dist/{chunk-NUXTUGAD.js.map → chunk-7NTBVFGD.js.map} +0 -0
  243. /package/dist/{chunk-MU74BYOD.js.map → chunk-ANSIZYEG.js.map} +0 -0
  244. /package/dist/{chunk-2MQ2D5OZ.js.map → chunk-B2ZSGYSF.js.map} +0 -0
  245. /package/dist/{chunk-5W5CEHLA.js.map → chunk-BBWVXF57.js.map} +0 -0
  246. /package/dist/{chunk-SWFIXQF5.js.map → chunk-BERJ4AWW.js.map} +0 -0
  247. /package/dist/{chunk-Q2OAAREU.js.map → chunk-BMSOTHIA.js.map} +0 -0
  248. /package/dist/{chunk-XGXVPCYW.js.map → chunk-BOWNCWZT.js.map} +0 -0
  249. /package/dist/{chunk-UTFY6W6X.js.map → chunk-BZ3534YM.js.map} +0 -0
  250. /package/dist/{chunk-DOPZWTMJ.js.map → chunk-CIGAQBJR.js.map} +0 -0
  251. /package/dist/{chunk-3GIA3HJ2.js.map → chunk-DGOZ4UZD.js.map} +0 -0
  252. /package/dist/{chunk-7XT7KZTN.js.map → chunk-DJ3LNNZQ.js.map} +0 -0
  253. /package/dist/{chunk-IS5LFHV2.js.map → chunk-DMJZBQ7F.js.map} +0 -0
  254. /package/dist/{chunk-MENI33ZV.js.map → chunk-E3EBMC4G.js.map} +0 -0
  255. /package/dist/{chunk-T66OY2U5.js.map → chunk-E5OHKSBD.js.map} +0 -0
  256. /package/dist/{chunk-LUVGSKXE.js.map → chunk-EVKR67PQ.js.map} +0 -0
  257. /package/dist/{chunk-Q2ZN5DWZ.js.map → chunk-FAHMLERK.js.map} +0 -0
  258. /package/dist/{chunk-FN26SFGH.js.map → chunk-FYEZC4PX.js.map} +0 -0
  259. /package/dist/{chunk-OLUTCM23.js.map → chunk-GHHUF2KL.js.map} +0 -0
  260. /package/dist/{chunk-DNMTN46H.js.map → chunk-GY4WYNNG.js.map} +0 -0
  261. /package/dist/{chunk-IAHDSFFA.js.map → chunk-HN4FNA4X.js.map} +0 -0
  262. /package/dist/{chunk-JRWLUWDM.js.map → chunk-IPFE6MVM.js.map} +0 -0
  263. /package/dist/{chunk-PV7XXAXK.js.map → chunk-JBDFMYKQ.js.map} +0 -0
  264. /package/dist/{chunk-3SWP2FYA.js.map → chunk-JJR2JIN4.js.map} +0 -0
  265. /package/dist/{chunk-IZTU6RKH.js.map → chunk-JMGDHKQF.js.map} +0 -0
  266. /package/dist/{chunk-P2RJAVMR.js.map → chunk-KCUIMITG.js.map} +0 -0
  267. /package/dist/{chunk-MOQ6OGKS.js.map → chunk-KLPASWYY.js.map} +0 -0
  268. /package/dist/{chunk-JILOSL4O.js.map → chunk-KTDGZPOZ.js.map} +0 -0
  269. /package/dist/{chunk-ZB2K3FV7.js.map → chunk-KTFRCC5C.js.map} +0 -0
  270. /package/dist/{chunk-7PC3DRG7.js.map → chunk-LHH6H43C.js.map} +0 -0
  271. /package/dist/{chunk-QOHGWFAW.js.map → chunk-LWBCUYZW.js.map} +0 -0
  272. /package/dist/{chunk-NMDMSHBF.js.map → chunk-MLO75SFJ.js.map} +0 -0
  273. /package/dist/{chunk-H5GVPOB4.js.map → chunk-MMOZQTXV.js.map} +0 -0
  274. /package/dist/{chunk-JFSUYGNE.js.map → chunk-MVMXZYXT.js.map} +0 -0
  275. /package/dist/{chunk-FKQCC4C5.js.map → chunk-NQKIUNW5.js.map} +0 -0
  276. /package/dist/{chunk-IRHIA3AL.js.map → chunk-PFBL4M7E.js.map} +0 -0
  277. /package/dist/{chunk-RCONOOVF.js.map → chunk-PKJ43CMD.js.map} +0 -0
  278. /package/dist/{chunk-UL7TLJ54.js.map → chunk-PQKG5AHH.js.map} +0 -0
  279. /package/dist/{chunk-MTTPHBIE.js.map → chunk-Q2PU57HC.js.map} +0 -0
  280. /package/dist/{chunk-FPN5D4JX.js.map → chunk-Q4RWFV3G.js.map} +0 -0
  281. /package/dist/{chunk-FLRLZ4XZ.js.map → chunk-Q7HZX3IF.js.map} +0 -0
  282. /package/dist/{chunk-5EC7X5QA.js.map → chunk-QHW35ZON.js.map} +0 -0
  283. /package/dist/{chunk-75WNTBZL.js.map → chunk-QIBVIOXO.js.map} +0 -0
  284. /package/dist/{chunk-KQIDBIZL.js.map → chunk-QIZPZMUI.js.map} +0 -0
  285. /package/dist/{chunk-TQGT5BZE.js.map → chunk-RDZZHYMV.js.map} +0 -0
  286. /package/dist/{chunk-HOIWW2LV.js.map → chunk-RGSTMLVO.js.map} +0 -0
  287. /package/dist/{chunk-KZTPL7NL.js.map → chunk-RMF67KCG.js.map} +0 -0
  288. /package/dist/{chunk-OEJ4R52I.js.map → chunk-RMS3NEA3.js.map} +0 -0
  289. /package/dist/{chunk-5NKHCJU5.js.map → chunk-RTYJRFQO.js.map} +0 -0
  290. /package/dist/{chunk-XKA6UH5V.js.map → chunk-SFAWCTEM.js.map} +0 -0
  291. /package/dist/{chunk-FYT3DXPN.js.map → chunk-SKGMN35F.js.map} +0 -0
  292. /package/dist/{chunk-USKHHOIV.js.map → chunk-SL3JAAKN.js.map} +0 -0
  293. /package/dist/{chunk-FRIVOR5N.js.map → chunk-SWVNZQVR.js.map} +0 -0
  294. /package/dist/{chunk-O3SNM66K.js.map → chunk-TFR7DSOV.js.map} +0 -0
  295. /package/dist/{chunk-X6YRP5EC.js.map → chunk-THX6FEEC.js.map} +0 -0
  296. /package/dist/{chunk-RPX2H2OL.js.map → chunk-TO3EQ7HF.js.map} +0 -0
  297. /package/dist/{chunk-DIVY2CJZ.js.map → chunk-TRGTKX5E.js.map} +0 -0
  298. /package/dist/{chunk-JY4U6CYV.js.map → chunk-TUFM4UZP.js.map} +0 -0
  299. /package/dist/{chunk-OKCQNMO6.js.map → chunk-U7VPHXXO.js.map} +0 -0
  300. /package/dist/{chunk-DZPMKY3J.js.map → chunk-UGTBXF5U.js.map} +0 -0
  301. /package/dist/{chunk-VT4DTCK5.js.map → chunk-URHRIAV6.js.map} +0 -0
  302. /package/dist/{chunk-YHIAWECL.js.map → chunk-UXVWEX5L.js.map} +0 -0
  303. /package/dist/{chunk-XJTGBHK6.js.map → chunk-VNR2SNVJ.js.map} +0 -0
  304. /package/dist/{chunk-GHADG5QZ.js.map → chunk-VTFVLCUH.js.map} +0 -0
  305. /package/dist/{chunk-U3RMWOXY.js.map → chunk-VXANTWBJ.js.map} +0 -0
  306. /package/dist/{chunk-QJLOWGOU.js.map → chunk-WQF3QABE.js.map} +0 -0
  307. /package/dist/{chunk-GKOJR53Y.js.map → chunk-WSJG5L5C.js.map} +0 -0
  308. /package/dist/{chunk-I5LSKXT6.js.map → chunk-WWNYSV7S.js.map} +0 -0
  309. /package/dist/{chunk-357ECVLE.js.map → chunk-XGDYGUEH.js.map} +0 -0
  310. /package/dist/{chunk-2E2LT37H.js.map → chunk-XLMEZIAJ.js.map} +0 -0
  311. /package/dist/{chunk-TAJZ7GXO.js.map → chunk-XNIQ7DP2.js.map} +0 -0
  312. /package/dist/{chunk-Z277MC2O.js.map → chunk-Y4MJQ2UG.js.map} +0 -0
  313. /package/dist/{chunk-OXZSMX2H.js.map → chunk-YCXICMOY.js.map} +0 -0
  314. /package/dist/{chunk-MV2OEK3K.js.map → chunk-YQWBEJCS.js.map} +0 -0
  315. /package/dist/{chunk-CWFH36SI.js.map → chunk-YSRUYAVU.js.map} +0 -0
  316. /package/dist/{chunk-ZQGRZN5L.js.map → chunk-YYP7WSEB.js.map} +0 -0
  317. /package/dist/{chunk-HS3LEVT4.js.map → chunk-ZG4XLOKB.js.map} +0 -0
  318. /package/dist/{chunk-4U52PMEL.js.map → chunk-ZN4FD4PE.js.map} +0 -0
  319. /package/dist/{chunk-AW4KTQA4.js.map → chunk-ZORTV6NH.js.map} +0 -0
  320. /package/dist/{chunk-P22XPNFW.js.map → chunk-ZR2YMODS.js.map} +0 -0
  321. /package/dist/{classified-marker-R37XW5PC.js.map → classified-marker-67HBIJMZ.js.map} +0 -0
  322. /package/dist/{collection-facade-OPJ3EC4L.js.map → collection-facade-MGGHQ3HU.js.map} +0 -0
  323. /package/dist/{computed-HW6IG5UH.js.map → computed-LSEZYRJS.js.map} +0 -0
  324. /package/dist/{dead-filter-GRT6RAML.js.map → dead-filter-M3NZUWBZ.js.map} +0 -0
  325. /package/dist/{delegation-6QRAYSK6.js.map → delegation-OLJUWTVA.js.map} +0 -0
  326. /package/dist/{derive-AAIXSQIE.js.map → derive-LY47HG7Q.js.map} +0 -0
  327. /package/dist/{dispatch-QCF7KPIP.js.map → dispatch-44J4TL72.js.map} +0 -0
  328. /package/dist/{enclave-OXZY3NOP.js.map → enclave-4YBQK77G.js.map} +0 -0
  329. /package/dist/{executor-67NA4KPO.js.map → executor-KSPGNVDO.js.map} +0 -0
  330. /package/dist/{executor-7JDP7UBK.js.map → executor-MZJXBWNM.js.map} +0 -0
  331. /package/dist/{executor-CRH5OB4V.js.map → executor-TOLPBHOC.js.map} +0 -0
  332. /package/dist/{export-accessible-K4GJAU7U.js.map → export-accessible-LGV6IAFX.js.map} +0 -0
  333. /package/dist/{extract-partition-YJFL5OKK.js.map → extract-partition-RYJZIKQZ.js.map} +0 -0
  334. /package/dist/{fanout-sidecar-KGQCUJ7P.js.map → fanout-sidecar-TSFPXY5C.js.map} +0 -0
  335. /package/dist/{find-SVZHMEQI.js.map → find-LC7P63MX.js.map} +0 -0
  336. /package/dist/{issue-64N6OG7U.js.map → issue-IOXM3RSJ.js.map} +0 -0
  337. /package/dist/{ledger-ZAFULLAF.js.map → ledger-HXHIOD36.js.map} +0 -0
  338. /package/dist/{liberate-QAUKHU6W.js.map → liberate-4APIV7FR.js.map} +0 -0
  339. /package/dist/{link-set-LQI2IJX6.js.map → link-set-6RAHEKZN.js.map} +0 -0
  340. /package/dist/{managed-secret-7OH7HKXV.js.map → managed-secret-P3JQ7ZG4.js.map} +0 -0
  341. /package/dist/{migrate-cek-QHZ75E6E.js.map → migrate-cek-25KNTS5U.js.map} +0 -0
  342. /package/dist/{noydb-ZUS5XAFT.js.map → noydb-JJXPICIC.js.map} +0 -0
  343. /package/dist/{pod-handle-BLOI4IFY.js.map → pod-handle-6II7KFBR.js.map} +0 -0
  344. /package/dist/{post-register-R33EKJQR.js.map → post-register-BPJ36A6D.js.map} +0 -0
  345. /package/dist/{register-AYBQNTM3.js.map → register-AEOOGKNO.js.map} +0 -0
  346. /package/dist/{registry-CQWWOBO4.js.map → registry-BZQIVNNO.js.map} +0 -0
  347. /package/dist/{registry-JCZ4BNLV.js.map → registry-I6FP4677.js.map} +0 -0
  348. /package/dist/{registry-JFFENZ44.js.map → registry-SHMGHEK4.js.map} +0 -0
  349. /package/dist/{registry-ZA4HACYR.js.map → registry-SKSOUXNF.js.map} +0 -0
  350. /package/dist/{request-withdrawal-7IKUIAEB.js.map → request-withdrawal-6HJT4ODF.js.map} +0 -0
  351. /package/dist/{reveal-PI6ADRQU.js.map → reveal-DDQBDWPM.js.map} +0 -0
  352. /package/dist/{revoke-PUJKRYJF.js.map → revoke-U7U3FMXU.js.map} +0 -0
  353. /package/dist/{seed-MCCGVPRI.js.map → seed-3RXT4VGN.js.map} +0 -0
  354. /package/dist/{signer-5TA7FUC3.js.map → signer-7NK7TMWU.js.map} +0 -0
  355. /package/dist/{stale-HZR7745Y.js.map → stale-KSPG6LFX.js.map} +0 -0
  356. /package/dist/{storage-J2QHNJCB.js.map → storage-WP4M7IFO.js.map} +0 -0
  357. /package/dist/{store-coordination-provider-MYIHSZXT.js.map → store-coordination-provider-O2VUEMJH.js.map} +0 -0
  358. /package/dist/{verify-R6CCBUA3.js.map → verify-JBXCAGDL.js.map} +0 -0
  359. /package/dist/{walk-3PA4ZOKS.js.map → walk-P3E6QSNC.js.map} +0 -0
  360. /package/dist/{withdraw-accessible-62VI4W7D.js.map → withdraw-accessible-6Q7NE4EY.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,94 @@
1
1
  # Changelog — hub
2
2
 
3
+ ## 0.7.0-pre.12
4
+
5
+ ### Minor Changes
6
+
7
+ - `withDerivation`'s `triggerBy` accepts a multi-field `match` form (#1249):
8
+ `{ collection, match: [{ from, to }] }` fans a write out to every source
9
+ record where ALL pairs satisfy `String(source[to]) === String(written[from])`.
10
+ `from: 'id'` reads the written record's id, making the existing `on` form the
11
+ single-pair special case (it is unchanged and stays supported). This makes
12
+ shared-key ("reverse") relationships and composite keys like
13
+ `(clientId, cycle)` expressible without denormalising a synthetic key.
14
+
15
+ Also, for BOTH forms:
16
+
17
+ - a LOCAL UPDATE that changes any matched field fans out on old-match ∪
18
+ new-match, so records addressed by the previous value no longer go
19
+ silently stale; a sync-applied wave write or a tiers restore, which don't
20
+ thread the prior record, fan out on the new tuple only;
21
+ - a parent DELETE now fans out using the tombstoned record's values —
22
+ previously deletes fired no triggers at all, leaving matched sources
23
+ stale. The fan-out runs after the delete commits, so cap/strict errors
24
+ can surface from `delete()` (same as the existing rollup-on-delete
25
+ precedent);
26
+ - match fields are validated against the collections' enumerable field sets at
27
+ `vault.collection()` (the #1253 pattern): a provable typo throws instead of
28
+ silently matching nothing forever; TS-generic collections stay unguarded by
29
+ design.
30
+
31
+ `maxFanout` caps the unioned matched set per written event.
32
+
33
+ ### Patch Changes
34
+
35
+ - `schemaFieldKeys` now unwraps Zod 3 `ZodEffects` created by object-level
36
+ `.refine()`/`.superRefine()` (reported by the pilot): the wrapper hides
37
+ `.shape`, so both field-typo guards — #1253's `fieldMeta` validation and
38
+ #1249's `triggerBy` match validation — were silent for exactly the schemas
39
+ most worth guarding. Unwrapping follows refinement effects only: a
40
+ `.transform()`/`.preprocess()` changes the output shape, so those stay
41
+ silent by design. Zod 4 keeps `.shape` through `.refine()` and is unaffected.
42
+
43
+ ## 0.7.0-pre.11
44
+
45
+ ### Patch Changes
46
+
47
+ - `collection.describe()` now validates `fieldMeta` keys on the **sync** path when
48
+ the configured validator exposes its field names (#1253).
49
+
50
+ Previously the guard ran only on the async `describe(opts)` path, so a typo'd
51
+ `fieldMeta` key on the sync path produced a **phantom field carrying its declared
52
+ `sensitivity`** while the real field went undescribed — an inventory wrong in both
53
+ directions, silently, on the surface `sensitivity` exists to serve.
54
+
55
+ The sync path was thought unable to know the schema's fields because deriving them
56
+ is async. That is true of field **types** and false of field **keys**: a Zod object
57
+ exposes `.shape` directly, on v3 and v4, with no JSON-Schema derivation and no
58
+ `zod-to-json-schema` peer. The latter matters — on Zod 3 that peer is required for
59
+ the async path, so the sync path is the only one some consumers can reach.
60
+
61
+ Deliberately still silent in two cases, both of which would otherwise reject correct
62
+ code: a validator whose fields hub cannot read, and **no validator at all** — a
63
+ collection typed by a TypeScript generic alone has fields that are real and present
64
+ in the data but appear in no runtime config, and `fieldMeta` legitimately names them.
65
+
66
+ - Document that `KeyringTamperedError` carries its reason at `err.details.reason`, not `err.reason`.
67
+
68
+ `TamperedError` has a **direct top-level** `reason`; `KeyringTamperedError` nests it under `details` alongside `userId` and the format transition. The classes genuinely differ, and the resemblance is a trap: a caller who copies the `TamperedError` shape reads `undefined`, falls through to the else-branch, and **renders a format transition as an attack** — the exact collapse these reason codes exist to prevent.
69
+
70
+ The class had no JSDoc saying where to read it. It now states the access shape, names the contrast, and carries a worked `catch` block, so the answer is in the shipped `.d.ts` where a caller meets it.
71
+
72
+ Documentation only — no type, value, or behaviour change.
73
+
74
+ Found by noy-db-docs, which had documented `err.reason` for this class **two lines below its own sentence warning that the resemblance to `TamperedError.reason` is "a trap worth naming"**. It identified the trap and fell into it one level earlier than it was looking.
75
+
76
+ Hub's own prose was swept and is clean: every `.reason` reference in the changelog is to `TamperedError.reason`, which is correct for that class.
77
+
78
+ - Fix the getting-started example in hub's module JSDoc, which ships inside
79
+ `dist/index.d.ts`. It omitted the required `user` option and passed `secret` to
80
+ `openVault()`, where it is not accepted — `secret` is a `createNoydb()` option.
81
+ Compiled verbatim, the published snippet produced `TS2741` and `TS2353`.
82
+
83
+ `packages/hub/README.md` carried the same class of defect: it taught
84
+ `userId: 'alice'` (the option is `user`) and imported `memory` from
85
+ `@noy-db/to-memory` (renamed to `toMemory`). Both ship in the tarball.
86
+
87
+ Guarded going forward by `pnpm check:prose-examples`, which typechecks every
88
+ fenced `ts` block in shipped prose against the built `dist`. `check:prose-api`
89
+ verifies that a documented method _exists_; these defects all named methods that
90
+ do exist and passed arguments that do not, which only a compiler can see.
91
+
3
92
  ## 0.7.0-pre.10
4
93
 
5
94
  ### Patch Changes
package/README.md CHANGED
@@ -52,13 +52,13 @@ pnpm add @noy-db/hub @noy-db/to-memory
52
52
 
53
53
  ```ts
54
54
  import { createNoydb } from '@noy-db/hub'
55
- import { memory } from '@noy-db/to-memory'
55
+ import { toMemory } from '@noy-db/to-memory'
56
56
 
57
57
  type Invoice = { id: string; amount: number; customer: string }
58
58
 
59
59
  const db = await createNoydb({
60
60
  store: toMemory(),
61
- userId: 'alice',
61
+ user: 'alice',
62
62
  secret: 'correct horse battery staple',
63
63
  })
64
64
 
@@ -281,7 +281,7 @@ const { evicted, held } = await vault.compact() // held = retained-by-hold count
281
281
  ```ts
282
282
  import { createNoydb, withArchive } from '@noy-db/hub'
283
283
 
284
- const db = await createNoydb({ store: primary, archiveStrategy: withArchive({ store: coldStore }) })
284
+ const db = await createNoydb({ store: primary, user, secret, archiveStrategy: withArchive({ store: coldStore }) })
285
285
  vault.collection('invoices', {
286
286
  archive: { archiveWhen: (r) => r.fiscalYear <= thisYear - 1, legalHold: (r) => r.underHold },
287
287
  })
@@ -0,0 +1,20 @@
1
+ import {
2
+ UserApi,
3
+ createUserApi
4
+ } from "./chunk-XGDYGUEH.js";
5
+ import "./chunk-YQWBEJCS.js";
6
+ import "./chunk-CIGAQBJR.js";
7
+ import "./chunk-4RUFYGWG.js";
8
+ import "./chunk-BOWNCWZT.js";
9
+ import "./chunk-YSRUYAVU.js";
10
+ import "./chunk-RMF67KCG.js";
11
+ import "./chunk-LP7BEXCT.js";
12
+ import "./chunk-SL3JAAKN.js";
13
+ import "./chunk-N4CHCXDL.js";
14
+ import "./chunk-7O3Y4PPD.js";
15
+ import "./chunk-PZ5AY32C.js";
16
+ export {
17
+ UserApi,
18
+ createUserApi
19
+ };
20
+ //# sourceMappingURL=api-UE2XQKDN.js.map
package/dist/as/index.js CHANGED
@@ -1,23 +1,24 @@
1
1
  import "../chunk-UBSFPGVJ.js";
2
- import "../chunk-PCIBCL26.js";
2
+ import "../chunk-VGICZPVE.js";
3
3
  import {
4
4
  applyListProjection
5
5
  } from "../chunk-VG2ZSFYD.js";
6
- import "../chunk-KHKKD62N.js";
7
- import "../chunk-VT4DTCK5.js";
6
+ import "../chunk-RXLYKVTF.js";
7
+ import "../chunk-VYYM3MEN.js";
8
+ import "../chunk-URHRIAV6.js";
8
9
  import "../chunk-Y2NBBT6K.js";
9
- import "../chunk-I5LSKXT6.js";
10
- import "../chunk-DOPZWTMJ.js";
10
+ import "../chunk-WWNYSV7S.js";
11
+ import "../chunk-CIGAQBJR.js";
11
12
  import "../chunk-4RUFYGWG.js";
12
- import "../chunk-XGXVPCYW.js";
13
- import "../chunk-CWFH36SI.js";
14
- import "../chunk-KZTPL7NL.js";
13
+ import "../chunk-BOWNCWZT.js";
14
+ import "../chunk-YSRUYAVU.js";
15
+ import "../chunk-RMF67KCG.js";
15
16
  import "../chunk-LP7BEXCT.js";
16
- import "../chunk-USKHHOIV.js";
17
+ import "../chunk-SL3JAAKN.js";
17
18
  import "../chunk-N4CHCXDL.js";
18
19
  import {
19
20
  ValidationError
20
- } from "../chunk-SW4TOSJL.js";
21
+ } from "../chunk-7O3Y4PPD.js";
21
22
  import "../chunk-PZ5AY32C.js";
22
23
 
23
24
  // src/port/as/active.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/port/as/active.ts"],"sourcesContent":["/**\n * `withFormats()` — the service that consumes the `as-*` port.\n *\n * Everything with a correctness or security consequence lives here rather\n * than in each format: the capability gate, the vault read, and redaction.\n * A {@link NoydbFormat} receives records and returns bytes.\n *\n * That is the whole point of the inversion (ADR 0004). The conformance kit it\n * replaces could only check implementors who ran it; a format that cannot\n * reach a vault is gated whether its author cooperated or not.\n *\n * @module\n */\nimport type { NoydbFormat, ImportPlan } from './types.js'\nimport type {\n FormatsStrategy,\n FormatsContext,\n FormatExportOptions,\n FormatImportOptions,\n} from '../with/formats-strategy.js'\nimport type { ExportChunk } from '../../kernel/types.js'\nimport type { Vault } from '../../kernel/vault.js'\nimport type { ImportPolicy } from './types.js'\nimport { applyListProjection } from '../../with-shape/introspection/index.js'\nimport type { CollectionDescription, ListProjectionOptions } from '../../with-shape/introspection/index.js'\nimport { ValidationError } from '../../kernel/errors.js'\n\n/** Apply the redaction projection hub owns, so a format never asks for it. */\nfunction redactChunk(\n chunk: ExportChunk,\n ctx: FormatsContext,\n redact: FormatExportOptions['redact'],\n): ExportChunk {\n if (redact === undefined) return chunk\n const described = ctx.describe(chunk.collection) as CollectionDescription | undefined\n if (!described) {\n throw new Error(\n `vault.export: redaction was requested but '${chunk.collection}' has no description to redact against. ` +\n 'Open the collection with its classifiedFields / fieldMeta options first.',\n )\n }\n const opts: ListProjectionOptions | undefined =\n redact === true ? undefined : { sensitivity: redact.sensitivity as never }\n const records = chunk.records.map((r) =>\n applyListProjection(described, r as Record<string, unknown>, opts),\n )\n return { ...chunk, records: records as typeof chunk.records }\n}\n\n/**\n * Derive the narrow, format-facing capability from the vault.\n *\n * Lives here rather than on `Vault` because `kernel-surface` said so, and it\n * was right: this is service capability, not spine. The spine keeps two\n * delegating methods and nothing else.\n */\nfunction contextFor(vault: Vault): FormatsContext {\n return {\n // The empty-id guards are NOT defensive padding. The\n // plaintext tier is gated per-format, so a missing id means the calling\n // binding is broken — and without this it would reach the gate, miss the\n // allowlist, and surface as `ExportCapabilityError`: \"the owner did not\n // grant this\", which sends the reader to the keyring instead of to the\n // format. A loud TypeError names the real fault.\n assertCanExport: (tier, format) => {\n if (tier === 'bundle') return vault.assertCanExport('bundle')\n if (!format) throw new TypeError(\"assertCanExport('plaintext') requires a non-empty format id\")\n vault.assertCanExport('plaintext', format)\n },\n assertCanImport: (tier, format) => {\n if (tier === 'bundle') return vault.assertCanImport('bundle')\n if (!format) throw new TypeError(\"assertCanImport('plaintext') requires a non-empty format id\")\n vault.assertCanImport('plaintext', format)\n },\n // ⚠️ Filtered HERE, not passed to exportStream — `ExportStreamOptions`\n // has no `collections` field, so the option I first passed was silently\n // dropped and hub read every collection. Caught by an as-json test\n // expecting ['invoices'] and getting ['invoices','payments'].\n //\n // Post-read filtering is correct but not free: hub still DECRYPTS the\n // collections the caller excluded. Pushing the filter down into\n // exportStream is the real fix and is a hub change beyond this port.\n chunks: async function* (collections) {\n const wanted = collections ? new Set(collections) : null\n for await (const chunk of vault.exportStream({ granularity: 'collection' })) {\n if (wanted && !wanted.has(chunk.collection)) continue\n yield chunk\n }\n },\n // NOT swallowed. A caller who asked for redaction and silently got\n // unredacted output is the exact failure this port exists to remove — a\n // security duty that fails quiet. If the description cannot be read, the\n // export fails instead.\n describe: (collection) => vault.collection(collection).describe() as never,\n plan: async (records, policy: ImportPolicy, formatId: string, idKey?: string) => {\n const { diffVault } = await import('../../with-cargo/vault-diff.js')\n const plan = await diffVault(vault, records as never, idKey ? { idKey } : {})\n return {\n plan,\n policy,\n // The apply walk every as-* package had independently: added always,\n // modified unless insert-only, deleted only on replace — in one\n // transaction so a partial failure rolls back. Owned once, here.\n apply: async () => {\n await vault.noydb.transaction((tx) => {\n const txVault = tx.vault(vault.name)\n const reason = `import:${formatId}`\n for (const e of plan.added) {\n txVault.collection(e.collection).put(e.id, e.record as never, { reason })\n }\n if (policy !== 'insert-only') {\n for (const e of plan.modified) {\n txVault.collection(e.collection).put(e.id, e.record as never, { reason })\n }\n }\n if (policy === 'replace') {\n for (const e of plan.deleted) txVault.collection(e.collection).delete(e.id)\n }\n })\n },\n }\n },\n }\n}\n\n/**\n * Enable `vault.export()` / `vault.import()`.\n *\n * ```ts\n * const db = await createNoydb({ store, user, secret, formatsStrategy: withFormats() })\n * const csv = await vault.export(asCsv(), { collections: ['invoices'] })\n * ```\n */\nexport function withFormats(): FormatsStrategy {\n return {\n enabled: true,\n\n async exportWith<Out extends string | Uint8Array>(\n vault: Vault,\n format: NoydbFormat<Out>,\n options: FormatExportOptions = {},\n ): Promise<Out> {\n const ctx = contextFor(vault)\n // FIRST, and before a single record is read. The format is not in scope\n // yet and could not reach the vault if it were.\n if (format.tier === 'bundle') ctx.assertCanExport('bundle')\n else ctx.assertCanExport('plaintext', format.id)\n\n const chunks: ExportChunk[] = []\n for await (const chunk of ctx.chunks(options.collections)) {\n chunks.push(redactChunk(chunk, ctx, options.redact))\n }\n return format.encode(chunks)\n },\n\n async importWith<Out extends string | Uint8Array>(\n vault: Vault,\n format: NoydbFormat<Out>,\n input: Out,\n options: FormatImportOptions = {},\n ): Promise<ImportPlan> {\n const ctx = contextFor(vault)\n // Mirrors the export side: the import gate is two-tier as well, and a\n // bundle format importing under the plaintext tier would be a silent\n // downgrade in the other direction.\n if (format.tier === 'bundle') ctx.assertCanImport('bundle')\n else ctx.assertCanImport('plaintext', format.id)\n if (!format.decode) {\n throw new ValidationError(\n `vault.import: the '${format.id}' format is export-only — it declares no decode(). ` +\n 'Pick a format that round-trips, or write the records directly.',\n )\n }\n const decoded = await format.decode(input)\n const candidate: Record<string, readonly unknown[]> = {}\n for (const chunk of decoded) {\n const target = chunk.collection || options.collection\n if (!target) {\n throw new ValidationError(\n `vault.import: the '${format.id}' input names no collection and none was supplied. ` +\n 'Pass { collection } for formats whose payload is collection-less.',\n )\n }\n candidate[target] = [...(candidate[target] ?? []), ...chunk.records]\n }\n return ctx.plan(candidate, options.policy ?? 'merge', format.id, options.idKey)\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAS,YACP,OACA,KACA,QACa;AACb,MAAI,WAAW,OAAW,QAAO;AACjC,QAAM,YAAY,IAAI,SAAS,MAAM,UAAU;AAC/C,MAAI,CAAC,WAAW;AACd,UAAM,IAAI;AAAA,MACR,8CAA8C,MAAM,UAAU;AAAA,IAEhE;AAAA,EACF;AACA,QAAM,OACJ,WAAW,OAAO,SAAY,EAAE,aAAa,OAAO,YAAqB;AAC3E,QAAM,UAAU,MAAM,QAAQ;AAAA,IAAI,CAAC,MACjC,oBAAoB,WAAW,GAA8B,IAAI;AAAA,EACnE;AACA,SAAO,EAAE,GAAG,OAAO,QAAyC;AAC9D;AASA,SAAS,WAAW,OAA8B;AAChD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL,iBAAiB,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS,SAAU,QAAO,MAAM,gBAAgB,QAAQ;AAC5D,UAAI,CAAC,OAAQ,OAAM,IAAI,UAAU,6DAA6D;AAC9F,YAAM,gBAAgB,aAAa,MAAM;AAAA,IAC3C;AAAA,IACA,iBAAiB,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS,SAAU,QAAO,MAAM,gBAAgB,QAAQ;AAC5D,UAAI,CAAC,OAAQ,OAAM,IAAI,UAAU,6DAA6D;AAC9F,YAAM,gBAAgB,aAAa,MAAM;AAAA,IAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,QAAQ,iBAAiB,aAAa;AACpC,YAAM,SAAS,cAAc,IAAI,IAAI,WAAW,IAAI;AACpD,uBAAiB,SAAS,MAAM,aAAa,EAAE,aAAa,aAAa,CAAC,GAAG;AAC3E,YAAI,UAAU,CAAC,OAAO,IAAI,MAAM,UAAU,EAAG;AAC7C,cAAM;AAAA,MACR;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAU,CAAC,eAAe,MAAM,WAAW,UAAU,EAAE,SAAS;AAAA,IAChE,MAAM,OAAO,SAAS,QAAsB,UAAkB,UAAmB;AAC/E,YAAM,EAAE,UAAU,IAAI,MAAM,OAAO,2BAAgC;AACnE,YAAM,OAAO,MAAM,UAAU,OAAO,SAAkB,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;AAC5E,aAAO;AAAA,QACL;AAAA,QACA;AAAA;AAAA;AAAA;AAAA,QAIA,OAAO,YAAY;AACjB,gBAAM,MAAM,MAAM,YAAY,CAAC,OAAO;AACpC,kBAAM,UAAU,GAAG,MAAM,MAAM,IAAI;AACnC,kBAAM,SAAS,UAAU,QAAQ;AACjC,uBAAW,KAAK,KAAK,OAAO;AAC1B,sBAAQ,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,CAAC;AAAA,YAC1E;AACA,gBAAI,WAAW,eAAe;AAC5B,yBAAW,KAAK,KAAK,UAAU;AAC7B,wBAAQ,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,CAAC;AAAA,cAC1E;AAAA,YACF;AACA,gBAAI,WAAW,WAAW;AACxB,yBAAW,KAAK,KAAK,QAAS,SAAQ,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;AAAA,YAC5E;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAUO,SAAS,cAA+B;AAC7C,SAAO;AAAA,IACL,SAAS;AAAA,IAET,MAAM,WACJ,OACA,QACA,UAA+B,CAAC,GAClB;AACd,YAAM,MAAM,WAAW,KAAK;AAG5B,UAAI,OAAO,SAAS,SAAU,KAAI,gBAAgB,QAAQ;AAAA,UACrD,KAAI,gBAAgB,aAAa,OAAO,EAAE;AAE/C,YAAM,SAAwB,CAAC;AAC/B,uBAAiB,SAAS,IAAI,OAAO,QAAQ,WAAW,GAAG;AACzD,eAAO,KAAK,YAAY,OAAO,KAAK,QAAQ,MAAM,CAAC;AAAA,MACrD;AACA,aAAO,OAAO,OAAO,MAAM;AAAA,IAC7B;AAAA,IAEA,MAAM,WACJ,OACA,QACA,OACA,UAA+B,CAAC,GACX;AACrB,YAAM,MAAM,WAAW,KAAK;AAI5B,UAAI,OAAO,SAAS,SAAU,KAAI,gBAAgB,QAAQ;AAAA,UACrD,KAAI,gBAAgB,aAAa,OAAO,EAAE;AAC/C,UAAI,CAAC,OAAO,QAAQ;AAClB,cAAM,IAAI;AAAA,UACR,sBAAsB,OAAO,EAAE;AAAA,QAEjC;AAAA,MACF;AACA,YAAM,UAAU,MAAM,OAAO,OAAO,KAAK;AACzC,YAAM,YAAgD,CAAC;AACvD,iBAAW,SAAS,SAAS;AAC3B,cAAM,SAAS,MAAM,cAAc,QAAQ;AAC3C,YAAI,CAAC,QAAQ;AACX,gBAAM,IAAI;AAAA,YACR,sBAAsB,OAAO,EAAE;AAAA,UAEjC;AAAA,QACF;AACA,kBAAU,MAAM,IAAI,CAAC,GAAI,UAAU,MAAM,KAAK,CAAC,GAAI,GAAG,MAAM,OAAO;AAAA,MACrE;AACA,aAAO,IAAI,KAAK,WAAW,QAAQ,UAAU,SAAS,OAAO,IAAI,QAAQ,KAAK;AAAA,IAChF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/port/as/active.ts"],"sourcesContent":["/**\n * `withFormats()` — the service that consumes the `as-*` port.\n *\n * Everything with a correctness or security consequence lives here rather\n * than in each format: the capability gate, the vault read, and redaction.\n * A {@link NoydbFormat} receives records and returns bytes.\n *\n * That is the whole point of the inversion (ADR 0004). The conformance kit it\n * replaces could only check implementors who ran it; a format that cannot\n * reach a vault is gated whether its author cooperated or not.\n *\n * @module\n */\nimport type { NoydbFormat, ImportPlan } from './types.js'\nimport type {\n FormatsStrategy,\n FormatsContext,\n FormatExportOptions,\n FormatImportOptions,\n} from '../with/formats-strategy.js'\nimport type { ExportChunk } from '../../kernel/types.js'\nimport type { Vault } from '../../kernel/vault.js'\nimport type { ImportPolicy } from './types.js'\nimport { applyListProjection } from '../../with-shape/introspection/index.js'\nimport type { CollectionDescription, ListProjectionOptions } from '../../with-shape/introspection/index.js'\nimport { ValidationError } from '../../kernel/errors.js'\n\n/** Apply the redaction projection hub owns, so a format never asks for it. */\nfunction redactChunk(\n chunk: ExportChunk,\n ctx: FormatsContext,\n redact: FormatExportOptions['redact'],\n): ExportChunk {\n if (redact === undefined) return chunk\n const described = ctx.describe(chunk.collection) as CollectionDescription | undefined\n if (!described) {\n throw new Error(\n `vault.export: redaction was requested but '${chunk.collection}' has no description to redact against. ` +\n 'Open the collection with its classifiedFields / fieldMeta options first.',\n )\n }\n const opts: ListProjectionOptions | undefined =\n redact === true ? undefined : { sensitivity: redact.sensitivity as never }\n const records = chunk.records.map((r) =>\n applyListProjection(described, r as Record<string, unknown>, opts),\n )\n return { ...chunk, records: records as typeof chunk.records }\n}\n\n/**\n * Derive the narrow, format-facing capability from the vault.\n *\n * Lives here rather than on `Vault` because `kernel-surface` said so, and it\n * was right: this is service capability, not spine. The spine keeps two\n * delegating methods and nothing else.\n */\nfunction contextFor(vault: Vault): FormatsContext {\n return {\n // The empty-id guards are NOT defensive padding. The\n // plaintext tier is gated per-format, so a missing id means the calling\n // binding is broken — and without this it would reach the gate, miss the\n // allowlist, and surface as `ExportCapabilityError`: \"the owner did not\n // grant this\", which sends the reader to the keyring instead of to the\n // format. A loud TypeError names the real fault.\n assertCanExport: (tier, format) => {\n if (tier === 'bundle') return vault.assertCanExport('bundle')\n if (!format) throw new TypeError(\"assertCanExport('plaintext') requires a non-empty format id\")\n vault.assertCanExport('plaintext', format)\n },\n assertCanImport: (tier, format) => {\n if (tier === 'bundle') return vault.assertCanImport('bundle')\n if (!format) throw new TypeError(\"assertCanImport('plaintext') requires a non-empty format id\")\n vault.assertCanImport('plaintext', format)\n },\n // ⚠️ Filtered HERE, not passed to exportStream — `ExportStreamOptions`\n // has no `collections` field, so the option I first passed was silently\n // dropped and hub read every collection. Caught by an as-json test\n // expecting ['invoices'] and getting ['invoices','payments'].\n //\n // Post-read filtering is correct but not free: hub still DECRYPTS the\n // collections the caller excluded. Pushing the filter down into\n // exportStream is the real fix and is a hub change beyond this port.\n chunks: async function* (collections) {\n const wanted = collections ? new Set(collections) : null\n for await (const chunk of vault.exportStream({ granularity: 'collection' })) {\n if (wanted && !wanted.has(chunk.collection)) continue\n yield chunk\n }\n },\n // NOT swallowed. A caller who asked for redaction and silently got\n // unredacted output is the exact failure this port exists to remove — a\n // security duty that fails quiet. If the description cannot be read, the\n // export fails instead.\n describe: (collection) => vault.collection(collection).describe() as never,\n plan: async (records, policy: ImportPolicy, formatId: string, idKey?: string) => {\n const { diffVault } = await import('../../with-cargo/vault-diff.js')\n const plan = await diffVault(vault, records as never, idKey ? { idKey } : {})\n return {\n plan,\n policy,\n // The apply walk every as-* package had independently: added always,\n // modified unless insert-only, deleted only on replace — in one\n // transaction so a partial failure rolls back. Owned once, here.\n apply: async () => {\n await vault.noydb.transaction((tx) => {\n const txVault = tx.vault(vault.name)\n const reason = `import:${formatId}`\n for (const e of plan.added) {\n txVault.collection(e.collection).put(e.id, e.record as never, { reason })\n }\n if (policy !== 'insert-only') {\n for (const e of plan.modified) {\n txVault.collection(e.collection).put(e.id, e.record as never, { reason })\n }\n }\n if (policy === 'replace') {\n for (const e of plan.deleted) txVault.collection(e.collection).delete(e.id)\n }\n })\n },\n }\n },\n }\n}\n\n/**\n * Enable `vault.export()` / `vault.import()`.\n *\n * ```ts\n * const db = await createNoydb({ store, user, secret, formatsStrategy: withFormats() })\n * const csv = await vault.export(asCsv(), { collections: ['invoices'] })\n * ```\n */\nexport function withFormats(): FormatsStrategy {\n return {\n enabled: true,\n\n async exportWith<Out extends string | Uint8Array>(\n vault: Vault,\n format: NoydbFormat<Out>,\n options: FormatExportOptions = {},\n ): Promise<Out> {\n const ctx = contextFor(vault)\n // FIRST, and before a single record is read. The format is not in scope\n // yet and could not reach the vault if it were.\n if (format.tier === 'bundle') ctx.assertCanExport('bundle')\n else ctx.assertCanExport('plaintext', format.id)\n\n const chunks: ExportChunk[] = []\n for await (const chunk of ctx.chunks(options.collections)) {\n chunks.push(redactChunk(chunk, ctx, options.redact))\n }\n return format.encode(chunks)\n },\n\n async importWith<Out extends string | Uint8Array>(\n vault: Vault,\n format: NoydbFormat<Out>,\n input: Out,\n options: FormatImportOptions = {},\n ): Promise<ImportPlan> {\n const ctx = contextFor(vault)\n // Mirrors the export side: the import gate is two-tier as well, and a\n // bundle format importing under the plaintext tier would be a silent\n // downgrade in the other direction.\n if (format.tier === 'bundle') ctx.assertCanImport('bundle')\n else ctx.assertCanImport('plaintext', format.id)\n if (!format.decode) {\n throw new ValidationError(\n `vault.import: the '${format.id}' format is export-only — it declares no decode(). ` +\n 'Pick a format that round-trips, or write the records directly.',\n )\n }\n const decoded = await format.decode(input)\n const candidate: Record<string, readonly unknown[]> = {}\n for (const chunk of decoded) {\n const target = chunk.collection || options.collection\n if (!target) {\n throw new ValidationError(\n `vault.import: the '${format.id}' input names no collection and none was supplied. ` +\n 'Pass { collection } for formats whose payload is collection-less.',\n )\n }\n candidate[target] = [...(candidate[target] ?? []), ...chunk.records]\n }\n return ctx.plan(candidate, options.policy ?? 'merge', format.id, options.idKey)\n },\n }\n}\n"],"mappings":"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","names":[]}
package/dist/at/index.js CHANGED
@@ -4,15 +4,15 @@ import {
4
4
  SEALED_SECRET_RECORD_ID,
5
5
  parseSealedEnvelope
6
6
  } from "../chunk-JUBWUJY5.js";
7
- import "../chunk-DOPZWTMJ.js";
7
+ import "../chunk-CIGAQBJR.js";
8
8
  import "../chunk-4RUFYGWG.js";
9
- import "../chunk-XGXVPCYW.js";
10
- import "../chunk-CWFH36SI.js";
11
- import "../chunk-KZTPL7NL.js";
9
+ import "../chunk-BOWNCWZT.js";
10
+ import "../chunk-YSRUYAVU.js";
11
+ import "../chunk-RMF67KCG.js";
12
12
  import "../chunk-LP7BEXCT.js";
13
- import "../chunk-USKHHOIV.js";
13
+ import "../chunk-SL3JAAKN.js";
14
14
  import "../chunk-N4CHCXDL.js";
15
- import "../chunk-SW4TOSJL.js";
15
+ import "../chunk-7O3Y4PPD.js";
16
16
  import "../chunk-PZ5AY32C.js";
17
17
  export {
18
18
  MemoryRecipientSealer,
@@ -1,42 +1,42 @@
1
1
  import {
2
2
  issueAttestationCore
3
- } from "../chunk-LUVGSKXE.js";
3
+ } from "../chunk-EVKR67PQ.js";
4
4
  import {
5
5
  getRevokedDocIdsCore,
6
6
  publishRevocationListCore,
7
7
  revokeDocCore,
8
8
  unrevokeDocCore
9
- } from "../chunk-FPN5D4JX.js";
9
+ } from "../chunk-Q4RWFV3G.js";
10
10
  import {
11
11
  ATTESTATIONS_COLLECTION
12
- } from "../chunk-GKOJR53Y.js";
12
+ } from "../chunk-WSJG5L5C.js";
13
13
  import {
14
14
  NO_ATTESTATION
15
- } from "../chunk-FLRLZ4XZ.js";
15
+ } from "../chunk-Q7HZX3IF.js";
16
16
  import "../chunk-4AOERLTV.js";
17
- import "../chunk-DOPZWTMJ.js";
17
+ import "../chunk-CIGAQBJR.js";
18
18
  import "../chunk-4RUFYGWG.js";
19
- import "../chunk-XGXVPCYW.js";
20
- import "../chunk-CWFH36SI.js";
21
- import "../chunk-KZTPL7NL.js";
19
+ import "../chunk-BOWNCWZT.js";
20
+ import "../chunk-YSRUYAVU.js";
21
+ import "../chunk-RMF67KCG.js";
22
22
  import "../chunk-LP7BEXCT.js";
23
- import "../chunk-USKHHOIV.js";
23
+ import "../chunk-SL3JAAKN.js";
24
24
  import "../chunk-N4CHCXDL.js";
25
25
  import {
26
26
  AttestationError,
27
27
  AttestationNotEnabledError
28
- } from "../chunk-SW4TOSJL.js";
28
+ } from "../chunk-7O3Y4PPD.js";
29
29
  import "../chunk-PZ5AY32C.js";
30
30
 
31
31
  // src/with-audit/attestation/active.ts
32
32
  function withAttestation() {
33
33
  return {
34
34
  async issueAttestation(ctx, args) {
35
- const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-64N6OG7U.js");
35
+ const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-IOXM3RSJ.js");
36
36
  return issueAttestationCore2(ctx, args);
37
37
  },
38
38
  async getDocumentSigningPublicKey(deps) {
39
- const { loadSigner, loadOrCreateSigner } = await import("../signer-5TA7FUC3.js");
39
+ const { loadSigner, loadOrCreateSigner } = await import("../signer-7NK7TMWU.js");
40
40
  const existing = await loadSigner(deps.adapter, deps.vault, deps.getDEK);
41
41
  if (existing) return { keyId: existing.keyId, publicKeyB64: existing.publicKeyB64 };
42
42
  if (deps.role !== "owner") {
@@ -46,19 +46,19 @@ function withAttestation() {
46
46
  return { keyId: signer.keyId, publicKeyB64: signer.publicKeyB64 };
47
47
  },
48
48
  async revokeAttestation(ctx, docId) {
49
- const { revokeDocCore: revokeDocCore2 } = await import("../revoke-PUJKRYJF.js");
49
+ const { revokeDocCore: revokeDocCore2 } = await import("../revoke-U7U3FMXU.js");
50
50
  return revokeDocCore2(ctx, docId);
51
51
  },
52
52
  async unrevokeAttestation(ctx, docId) {
53
- const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-PUJKRYJF.js");
53
+ const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-U7U3FMXU.js");
54
54
  return unrevokeDocCore2(ctx, docId);
55
55
  },
56
56
  async getRevokedDocIds(ctx) {
57
- const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-PUJKRYJF.js");
57
+ const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-U7U3FMXU.js");
58
58
  return getRevokedDocIdsCore2(ctx);
59
59
  },
60
60
  async publishRevocationList(ctx) {
61
- const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-PUJKRYJF.js");
61
+ const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-U7U3FMXU.js");
62
62
  return publishRevocationListCore2(ctx);
63
63
  }
64
64
  };
@@ -1,39 +1,39 @@
1
1
  import {
2
2
  MANIFEST_COLLECTION
3
3
  } from "./chunk-EPFF7LOX.js";
4
- import {
5
- SCHEMAS_COLLECTION
6
- } from "./chunk-I5LSKXT6.js";
7
4
  import {
8
5
  SEQUENCE_COLLECTION
9
- } from "./chunk-H5GVPOB4.js";
6
+ } from "./chunk-MMOZQTXV.js";
7
+ import {
8
+ SCHEMAS_COLLECTION
9
+ } from "./chunk-WWNYSV7S.js";
10
10
  import {
11
11
  PERIODS_COLLECTION,
12
12
  PERIOD_ARCHIVES_COLLECTION,
13
13
  PERIOD_FREEZES_COLLECTION,
14
14
  PERIOD_REOPENS_COLLECTION,
15
15
  PERIOD_TARGET_PURGES_COLLECTION
16
- } from "./chunk-Q2ZN5DWZ.js";
16
+ } from "./chunk-FAHMLERK.js";
17
17
  import {
18
18
  LEDGER_COLLECTION,
19
19
  LEDGER_DELTAS_COLLECTION
20
20
  } from "./chunk-I7FD46FF.js";
21
- import "./chunk-DOPZWTMJ.js";
21
+ import "./chunk-CIGAQBJR.js";
22
22
  import {
23
23
  buildRecordEnvelope
24
24
  } from "./chunk-4RUFYGWG.js";
25
- import "./chunk-XGXVPCYW.js";
26
- import "./chunk-CWFH36SI.js";
27
- import "./chunk-KZTPL7NL.js";
25
+ import "./chunk-BOWNCWZT.js";
26
+ import "./chunk-YSRUYAVU.js";
27
+ import "./chunk-RMF67KCG.js";
28
28
  import "./chunk-LP7BEXCT.js";
29
- import "./chunk-USKHHOIV.js";
29
+ import "./chunk-SL3JAAKN.js";
30
30
  import {
31
31
  NOYDB_BACKUP_VERSION
32
32
  } from "./chunk-N4CHCXDL.js";
33
33
  import {
34
34
  BackupCorruptedError,
35
35
  BackupLedgerError
36
- } from "./chunk-SW4TOSJL.js";
36
+ } from "./chunk-7O3Y4PPD.js";
37
37
  import "./chunk-PZ5AY32C.js";
38
38
 
39
39
  // src/with-pod/backup.ts
@@ -262,4 +262,4 @@ export {
262
262
  loadVault,
263
263
  verifyBackupIntegrity
264
264
  };
265
- //# sourceMappingURL=backup-QZQEP5RO.js.map
265
+ //# sourceMappingURL=backup-R6A4VZRX.js.map
@@ -10,7 +10,7 @@ import {
10
10
  createExportBlobsHandle,
11
11
  reportOrphanBlobChunks,
12
12
  runCompaction
13
- } from "../chunk-IS5LFHV2.js";
13
+ } from "../chunk-DMJZBQ7F.js";
14
14
  import {
15
15
  BLOB_CHUNKS_COLLECTION,
16
16
  BLOB_COLLECTION,
@@ -25,21 +25,21 @@ import {
25
25
  detectMimeType,
26
26
  isPreCompressed,
27
27
  memoryBlobPinStore
28
- } from "../chunk-HS3LEVT4.js";
29
- import "../chunk-YHIAWECL.js";
30
- import "../chunk-DZPMKY3J.js";
31
- import "../chunk-IZTU6RKH.js";
32
- import "../chunk-DOPZWTMJ.js";
28
+ } from "../chunk-ZG4XLOKB.js";
29
+ import "../chunk-UXVWEX5L.js";
30
+ import "../chunk-UGTBXF5U.js";
31
+ import "../chunk-JMGDHKQF.js";
32
+ import "../chunk-CIGAQBJR.js";
33
33
  import "../chunk-4RUFYGWG.js";
34
- import "../chunk-XGXVPCYW.js";
35
- import "../chunk-CWFH36SI.js";
36
- import "../chunk-KZTPL7NL.js";
34
+ import "../chunk-BOWNCWZT.js";
35
+ import "../chunk-YSRUYAVU.js";
36
+ import "../chunk-RMF67KCG.js";
37
37
  import "../chunk-LP7BEXCT.js";
38
- import "../chunk-USKHHOIV.js";
38
+ import "../chunk-SL3JAAKN.js";
39
39
  import "../chunk-N4CHCXDL.js";
40
40
  import {
41
41
  BlobOfflineError
42
- } from "../chunk-SW4TOSJL.js";
42
+ } from "../chunk-7O3Y4PPD.js";
43
43
  import "../chunk-PZ5AY32C.js";
44
44
 
45
45
  // src/via/blob/active.ts
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  NO_BROKER
3
- } from "../chunk-PV7XXAXK.js";
3
+ } from "../chunk-JBDFMYKQ.js";
4
4
  import {
5
5
  issueChallenge,
6
6
  verifyBrokerProof
7
- } from "../chunk-DOPZWTMJ.js";
7
+ } from "../chunk-CIGAQBJR.js";
8
8
  import "../chunk-4RUFYGWG.js";
9
- import "../chunk-XGXVPCYW.js";
10
- import "../chunk-CWFH36SI.js";
11
- import "../chunk-KZTPL7NL.js";
9
+ import "../chunk-BOWNCWZT.js";
10
+ import "../chunk-YSRUYAVU.js";
11
+ import "../chunk-RMF67KCG.js";
12
12
  import "../chunk-LP7BEXCT.js";
13
- import "../chunk-USKHHOIV.js";
13
+ import "../chunk-SL3JAAKN.js";
14
14
  import "../chunk-N4CHCXDL.js";
15
15
  import {
16
16
  BrokerEnrolmentError,
17
17
  BrokerNotEnabledError,
18
18
  BrokerProofError
19
- } from "../chunk-SW4TOSJL.js";
19
+ } from "../chunk-7O3Y4PPD.js";
20
20
  import "../chunk-PZ5AY32C.js";
21
21
 
22
22
  // src/with-party/broker/active.ts
@@ -30,7 +30,7 @@ function withBroker(config) {
30
30
  const cache = /* @__PURE__ */ new Map();
31
31
  return {
32
32
  async enroll(ctx) {
33
- const { enrollSeed } = await import("../seed-MCCGVPRI.js");
33
+ const { enrollSeed } = await import("../seed-3RXT4VGN.js");
34
34
  return enrollSeed({ ...ctx, config });
35
35
  },
36
36
  async rotate(ctx) {
@@ -39,7 +39,7 @@ function withBroker(config) {
39
39
  const inFlight = scoped.map(([, e]) => e.inFlight).filter((p) => p !== void 0);
40
40
  await Promise.allSettled(inFlight);
41
41
  for (const [key] of scoped) cache.delete(key);
42
- const { rotateSeed } = await import("../seed-MCCGVPRI.js");
42
+ const { rotateSeed } = await import("../seed-3RXT4VGN.js");
43
43
  return rotateSeed({ ...ctx, config });
44
44
  },
45
45
  credentialSource(ctx, profile) {
@@ -56,7 +56,7 @@ function withBroker(config) {
56
56
  const skewMs = config.skewMs ?? DEFAULT_SKEW_MS;
57
57
  const capturedEntry = entry;
58
58
  const inFlight = (async () => {
59
- const { mintStoreCredentials } = await import("../seed-MCCGVPRI.js");
59
+ const { mintStoreCredentials } = await import("../seed-3RXT4VGN.js");
60
60
  const creds = await mintStoreCredentials({ ...ctx, config }, profile);
61
61
  capturedEntry.cached = { creds, validUntil: cacheFloor(creds, skewMs) };
62
62
  return creds;
package/dist/by/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  isQuorum,
3
3
  runDrainBarrier
4
- } from "../chunk-GHADG5QZ.js";
5
- import "../chunk-SW4TOSJL.js";
4
+ } from "../chunk-VTFVLCUH.js";
5
+ import "../chunk-7O3Y4PPD.js";
6
6
  import "../chunk-PZ5AY32C.js";
7
7
  export {
8
8
  isQuorum,
@@ -5,11 +5,11 @@ import {
5
5
  describeExtraction,
6
6
  unsealDeks,
7
7
  withCargo
8
- } from "../chunk-NUXTUGAD.js";
8
+ } from "../chunk-7NTBVFGD.js";
9
9
  import {
10
10
  extractPartition,
11
11
  walkClosure
12
- } from "../chunk-7XT7KZTN.js";
12
+ } from "../chunk-DJ3LNNZQ.js";
13
13
  import {
14
14
  diffVault
15
15
  } from "../chunk-LFUID7OW.js";
@@ -18,58 +18,58 @@ import {
18
18
  isDeedVault,
19
19
  liberateVault,
20
20
  loadDeedMarker
21
- } from "../chunk-OXZSMX2H.js";
22
- import "../chunk-5EC7X5QA.js";
23
- import "../chunk-P22XPNFW.js";
21
+ } from "../chunk-YCXICMOY.js";
22
+ import "../chunk-QHW35ZON.js";
23
+ import "../chunk-ZR2YMODS.js";
24
24
  import {
25
25
  NO_CARGO
26
- } from "../chunk-FKQCC4C5.js";
26
+ } from "../chunk-NQKIUNW5.js";
27
27
  import "../chunk-JUBWUJY5.js";
28
28
  import {
29
29
  isQuorum,
30
30
  runDrainBarrier
31
- } from "../chunk-GHADG5QZ.js";
32
- import "../chunk-I5LSKXT6.js";
31
+ } from "../chunk-VTFVLCUH.js";
33
32
  import {
34
33
  CustodyApi
35
- } from "../chunk-Z277MC2O.js";
36
- import "../chunk-RCONOOVF.js";
37
- import "../chunk-NMDMSHBF.js";
34
+ } from "../chunk-Y4MJQ2UG.js";
35
+ import "../chunk-WWNYSV7S.js";
36
+ import "../chunk-PKJ43CMD.js";
37
+ import "../chunk-MLO75SFJ.js";
38
38
  import {
39
39
  fuseRetrieval
40
40
  } from "../chunk-AURFOK3D.js";
41
- import "../chunk-HS3LEVT4.js";
41
+ import "../chunk-ZG4XLOKB.js";
42
42
  import {
43
43
  groupAndReduce,
44
44
  reduceRecords
45
- } from "../chunk-4U52PMEL.js";
45
+ } from "../chunk-ZN4FD4PE.js";
46
46
  import "../chunk-XZHEOSQ2.js";
47
47
  import "../chunk-ATL3ZVXT.js";
48
48
  import {
49
49
  readPath
50
50
  } from "../chunk-NSITFOCJ.js";
51
- import "../chunk-DIVY2CJZ.js";
52
- import "../chunk-YHIAWECL.js";
53
- import "../chunk-XJTGBHK6.js";
54
- import "../chunk-MV2OEK3K.js";
55
- import "../chunk-DZPMKY3J.js";
51
+ import "../chunk-TRGTKX5E.js";
52
+ import "../chunk-UXVWEX5L.js";
53
+ import "../chunk-VNR2SNVJ.js";
54
+ import "../chunk-YQWBEJCS.js";
55
+ import "../chunk-UGTBXF5U.js";
56
56
  import {
57
57
  generateULID
58
58
  } from "../chunk-4AOERLTV.js";
59
59
  import "../chunk-SVLR4POP.js";
60
- import "../chunk-OKCQNMO6.js";
60
+ import "../chunk-U7VPHXXO.js";
61
61
  import "../chunk-I7FD46FF.js";
62
- import "../chunk-JRWLUWDM.js";
63
- import "../chunk-IZTU6RKH.js";
64
- import "../chunk-DOPZWTMJ.js";
62
+ import "../chunk-IPFE6MVM.js";
63
+ import "../chunk-JMGDHKQF.js";
64
+ import "../chunk-CIGAQBJR.js";
65
65
  import "../chunk-4RUFYGWG.js";
66
- import "../chunk-XGXVPCYW.js";
67
- import "../chunk-CWFH36SI.js";
68
- import "../chunk-KZTPL7NL.js";
66
+ import "../chunk-BOWNCWZT.js";
67
+ import "../chunk-YSRUYAVU.js";
68
+ import "../chunk-RMF67KCG.js";
69
69
  import "../chunk-LP7BEXCT.js";
70
70
  import {
71
71
  sha256Hex
72
- } from "../chunk-USKHHOIV.js";
72
+ } from "../chunk-SL3JAAKN.js";
73
73
  import {
74
74
  NOYDB_ENVELOPE_GENERATION
75
75
  } from "../chunk-N4CHCXDL.js";
@@ -87,7 +87,7 @@ import {
87
87
  UnknownShardError,
88
88
  ValidationError,
89
89
  VaultTemplateNotFoundError
90
- } from "../chunk-SW4TOSJL.js";
90
+ } from "../chunk-7O3Y4PPD.js";
91
91
  import "../chunk-PZ5AY32C.js";
92
92
  export {
93
93
  AdoptionStateError,
@@ -7,7 +7,7 @@ import {
7
7
  deriveSchemaManifest,
8
8
  loadSchemaManifestEntry,
9
9
  saveSchemaManifest
10
- } from "./chunk-5W5CEHLA.js";
10
+ } from "./chunk-BBWVXF57.js";
11
11
  import {
12
12
  MANIFEST_COLLECTION
13
13
  } from "./chunk-EPFF7LOX.js";
@@ -17,18 +17,18 @@ import {
17
17
  } from "./chunk-GM4IM7TC.js";
18
18
  import {
19
19
  derivePersistedSchema
20
- } from "./chunk-VT4DTCK5.js";
20
+ } from "./chunk-URHRIAV6.js";
21
21
  import {
22
22
  loadPersistedSchemaEntry,
23
23
  savePersistedSchema
24
- } from "./chunk-I5LSKXT6.js";
24
+ } from "./chunk-WWNYSV7S.js";
25
25
  import {
26
26
  envelopePayloadHash
27
- } from "./chunk-JRWLUWDM.js";
27
+ } from "./chunk-IPFE6MVM.js";
28
28
  import {
29
29
  ManifestConflictError,
30
30
  isConflictError
31
- } from "./chunk-SW4TOSJL.js";
31
+ } from "./chunk-7O3Y4PPD.js";
32
32
 
33
33
  // src/with-shape/persisted-schemas/field-ids.ts
34
34
  var BASE32URL_ALPHABET = "abcdefghijklmnopqrstuvwxyz234567";
@@ -257,4 +257,4 @@ export {
257
257
  persistClassifiedMarker,
258
258
  persistSatelliteMarker
259
259
  };
260
- //# sourceMappingURL=chunk-AHIIBDNH.js.map
260
+ //# sourceMappingURL=chunk-2Z47NMFK.js.map