@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.
- package/CHANGELOG.md +89 -0
- package/README.md +3 -3
- package/dist/api-UE2XQKDN.js +20 -0
- package/dist/as/index.js +11 -10
- package/dist/as/index.js.map +1 -1
- package/dist/at/index.js +6 -6
- package/dist/attestation/index.js +16 -16
- package/dist/{backup-QZQEP5RO.js → backup-R6A4VZRX.js} +12 -12
- package/dist/blobs/index.js +11 -11
- package/dist/broker/index.js +10 -10
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +27 -27
- package/dist/{chunk-AHIIBDNH.js → chunk-2Z47NMFK.js} +6 -6
- package/dist/{chunk-2DGBRE4K.js → chunk-4OZNXTO4.js} +2 -2
- package/dist/{chunk-FZWAGG5T.js → chunk-5FUULQ6F.js} +6 -6
- package/dist/{chunk-P7KJME6C.js → chunk-6YXCPL4T.js} +2 -2
- package/dist/{chunk-XJP66QEN.js → chunk-7BE7ZDVQ.js} +380 -2
- package/dist/chunk-7BE7ZDVQ.js.map +1 -0
- package/dist/{chunk-LAI7ENPW.js → chunk-7MG2LHO5.js} +3 -3
- package/dist/{chunk-NUXTUGAD.js → chunk-7NTBVFGD.js} +10 -10
- package/dist/{chunk-SW4TOSJL.js → chunk-7O3Y4PPD.js} +1 -1
- package/dist/chunk-7O3Y4PPD.js.map +1 -0
- package/dist/{chunk-MU74BYOD.js → chunk-ANSIZYEG.js} +3 -3
- package/dist/{chunk-2MQ2D5OZ.js → chunk-B2ZSGYSF.js} +4 -4
- package/dist/{chunk-5W5CEHLA.js → chunk-BBWVXF57.js} +4 -4
- package/dist/{chunk-SWFIXQF5.js → chunk-BERJ4AWW.js} +5 -5
- package/dist/{chunk-Q2OAAREU.js → chunk-BMSOTHIA.js} +5 -5
- package/dist/{chunk-XGXVPCYW.js → chunk-BOWNCWZT.js} +3 -3
- package/dist/{chunk-65ZYRK7O.js → chunk-BUE2D7PX.js} +26 -3
- package/dist/chunk-BUE2D7PX.js.map +1 -0
- package/dist/{chunk-UTFY6W6X.js → chunk-BZ3534YM.js} +2 -2
- package/dist/{chunk-DOPZWTMJ.js → chunk-CIGAQBJR.js} +6 -6
- package/dist/{chunk-3GIA3HJ2.js → chunk-DGOZ4UZD.js} +2 -2
- package/dist/{chunk-7XT7KZTN.js → chunk-DJ3LNNZQ.js} +8 -8
- package/dist/{chunk-IS5LFHV2.js → chunk-DMJZBQ7F.js} +6 -6
- package/dist/{chunk-MENI33ZV.js → chunk-E3EBMC4G.js} +3 -3
- package/dist/{chunk-T66OY2U5.js → chunk-E5OHKSBD.js} +6 -6
- package/dist/{chunk-LUVGSKXE.js → chunk-EVKR67PQ.js} +5 -5
- package/dist/{chunk-Q2ZN5DWZ.js → chunk-FAHMLERK.js} +2 -2
- package/dist/{chunk-FN26SFGH.js → chunk-FYEZC4PX.js} +2 -2
- package/dist/{chunk-OLUTCM23.js → chunk-GHHUF2KL.js} +5 -5
- package/dist/{chunk-DNMTN46H.js → chunk-GY4WYNNG.js} +2 -2
- package/dist/{chunk-OQDHIAR2.js → chunk-H7XCIM3Z.js} +61 -8
- package/dist/chunk-H7XCIM3Z.js.map +1 -0
- package/dist/{chunk-IAHDSFFA.js → chunk-HN4FNA4X.js} +10 -10
- package/dist/{chunk-JRWLUWDM.js → chunk-IPFE6MVM.js} +3 -3
- package/dist/{chunk-PV7XXAXK.js → chunk-JBDFMYKQ.js} +2 -2
- package/dist/{chunk-3SWP2FYA.js → chunk-JJR2JIN4.js} +8 -8
- package/dist/{chunk-IZTU6RKH.js → chunk-JMGDHKQF.js} +2 -2
- package/dist/{chunk-P2RJAVMR.js → chunk-KCUIMITG.js} +3 -3
- package/dist/chunk-KL7AS3HV.js +84 -0
- package/dist/chunk-KL7AS3HV.js.map +1 -0
- package/dist/{chunk-MOQ6OGKS.js → chunk-KLPASWYY.js} +3 -3
- package/dist/{chunk-JILOSL4O.js → chunk-KTDGZPOZ.js} +2 -2
- package/dist/{chunk-ZB2K3FV7.js → chunk-KTFRCC5C.js} +2 -2
- package/dist/{chunk-7PC3DRG7.js → chunk-LHH6H43C.js} +6 -6
- package/dist/{chunk-QOHGWFAW.js → chunk-LWBCUYZW.js} +2 -2
- package/dist/{chunk-NMDMSHBF.js → chunk-MLO75SFJ.js} +2 -2
- package/dist/{chunk-H5GVPOB4.js → chunk-MMOZQTXV.js} +4 -4
- package/dist/{chunk-JFSUYGNE.js → chunk-MVMXZYXT.js} +2 -2
- package/dist/{chunk-FKQCC4C5.js → chunk-NQKIUNW5.js} +2 -2
- package/dist/{chunk-IRHIA3AL.js → chunk-PFBL4M7E.js} +3 -3
- package/dist/{chunk-RCONOOVF.js → chunk-PKJ43CMD.js} +5 -5
- package/dist/{chunk-UL7TLJ54.js → chunk-PQKG5AHH.js} +3 -3
- package/dist/{chunk-MTTPHBIE.js → chunk-Q2PU57HC.js} +2 -2
- package/dist/{chunk-FPN5D4JX.js → chunk-Q4RWFV3G.js} +5 -5
- package/dist/{chunk-FLRLZ4XZ.js → chunk-Q7HZX3IF.js} +2 -2
- package/dist/{chunk-5EC7X5QA.js → chunk-QHW35ZON.js} +4 -4
- package/dist/{chunk-75WNTBZL.js → chunk-QIBVIOXO.js} +3 -3
- package/dist/{chunk-KQIDBIZL.js → chunk-QIZPZMUI.js} +2 -2
- package/dist/{chunk-TQGT5BZE.js → chunk-RDZZHYMV.js} +3 -3
- package/dist/{chunk-HOIWW2LV.js → chunk-RGSTMLVO.js} +3 -3
- package/dist/{chunk-KZTPL7NL.js → chunk-RMF67KCG.js} +2 -2
- package/dist/{chunk-OEJ4R52I.js → chunk-RMS3NEA3.js} +2 -2
- package/dist/{chunk-5NKHCJU5.js → chunk-RTYJRFQO.js} +6 -6
- package/dist/chunk-RXLYKVTF.js +17 -0
- package/dist/chunk-RXLYKVTF.js.map +1 -0
- package/dist/{chunk-XKA6UH5V.js → chunk-SFAWCTEM.js} +2 -2
- package/dist/{chunk-FYT3DXPN.js → chunk-SKGMN35F.js} +2 -2
- package/dist/{chunk-USKHHOIV.js → chunk-SL3JAAKN.js} +2 -2
- package/dist/{chunk-FRIVOR5N.js → chunk-SWVNZQVR.js} +4 -4
- package/dist/chunk-TFMM5DBB.js +20 -0
- package/dist/chunk-TFMM5DBB.js.map +1 -0
- package/dist/{chunk-O3SNM66K.js → chunk-TFR7DSOV.js} +2 -2
- package/dist/{chunk-X6YRP5EC.js → chunk-THX6FEEC.js} +5 -5
- package/dist/{chunk-RPX2H2OL.js → chunk-TO3EQ7HF.js} +3 -3
- package/dist/chunk-TPHAGLUH.js +30 -0
- package/dist/chunk-TPHAGLUH.js.map +1 -0
- package/dist/{chunk-DIVY2CJZ.js → chunk-TRGTKX5E.js} +3 -3
- package/dist/{chunk-JY4U6CYV.js → chunk-TUFM4UZP.js} +2 -2
- package/dist/{chunk-OKCQNMO6.js → chunk-U7VPHXXO.js} +5 -5
- package/dist/{chunk-DZPMKY3J.js → chunk-UGTBXF5U.js} +3 -3
- package/dist/{chunk-VT4DTCK5.js → chunk-URHRIAV6.js} +2 -2
- package/dist/{chunk-YHIAWECL.js → chunk-UXVWEX5L.js} +2 -2
- package/dist/{chunk-PCIBCL26.js → chunk-VGICZPVE.js} +7 -5
- package/dist/{chunk-PCIBCL26.js.map → chunk-VGICZPVE.js.map} +1 -1
- package/dist/{chunk-XJTGBHK6.js → chunk-VNR2SNVJ.js} +6 -6
- package/dist/{chunk-GHADG5QZ.js → chunk-VTFVLCUH.js} +2 -2
- package/dist/{chunk-U3RMWOXY.js → chunk-VXANTWBJ.js} +3 -3
- package/dist/{chunk-KHKKD62N.js → chunk-VYYM3MEN.js} +2 -16
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/{chunk-QJLOWGOU.js → chunk-WQF3QABE.js} +5 -5
- package/dist/{chunk-GKOJR53Y.js → chunk-WSJG5L5C.js} +4 -4
- package/dist/{chunk-I5LSKXT6.js → chunk-WWNYSV7S.js} +3 -3
- package/dist/{chunk-357ECVLE.js → chunk-XGDYGUEH.js} +3 -3
- package/dist/{chunk-2E2LT37H.js → chunk-XLMEZIAJ.js} +2 -2
- package/dist/{chunk-KKZPQLDH.js → chunk-XMF3GKUR.js} +125 -465
- package/dist/chunk-XMF3GKUR.js.map +1 -0
- package/dist/{chunk-TAJZ7GXO.js → chunk-XNIQ7DP2.js} +2 -2
- package/dist/{chunk-Z277MC2O.js → chunk-Y4MJQ2UG.js} +4 -4
- package/dist/{chunk-OXZSMX2H.js → chunk-YCXICMOY.js} +5 -5
- package/dist/{chunk-MV2OEK3K.js → chunk-YQWBEJCS.js} +4 -4
- package/dist/{chunk-CWFH36SI.js → chunk-YSRUYAVU.js} +2 -2
- package/dist/{chunk-ZQGRZN5L.js → chunk-YYP7WSEB.js} +2 -2
- package/dist/{chunk-HS3LEVT4.js → chunk-ZG4XLOKB.js} +6 -6
- package/dist/{chunk-4U52PMEL.js → chunk-ZN4FD4PE.js} +4 -4
- package/dist/{chunk-AW4KTQA4.js → chunk-ZORTV6NH.js} +2 -2
- package/dist/{chunk-P22XPNFW.js → chunk-ZR2YMODS.js} +2 -2
- package/dist/classified/index.js +4 -4
- package/dist/{classified-marker-R37XW5PC.js → classified-marker-67HBIJMZ.js} +3 -3
- package/dist/{collection-facade-OPJ3EC4L.js → collection-facade-MGGHQ3HU.js} +15 -15
- package/dist/{computed-HW6IG5UH.js → computed-LSEZYRJS.js} +3 -3
- package/dist/consent/index.js +7 -7
- package/dist/cover/index.js +7 -7
- package/dist/custody/index.js +10 -10
- package/dist/{dead-filter-GRT6RAML.js → dead-filter-M3NZUWBZ.js} +2 -2
- package/dist/debug/index.js +1 -1
- package/dist/{delegation-6QRAYSK6.js → delegation-OLJUWTVA.js} +9 -9
- package/dist/derivations/index.js +24 -13
- package/dist/{derive-AAIXSQIE.js → derive-LY47HG7Q.js} +8 -8
- package/dist/directory/index.js +8 -8
- package/dist/{dispatch-QCF7KPIP.js → dispatch-44J4TL72.js} +5 -5
- package/dist/dispatch-XEBHUGBV.js +250 -0
- package/dist/dispatch-XEBHUGBV.js.map +1 -0
- package/dist/{enclave-OXZY3NOP.js → enclave-4YBQK77G.js} +7 -7
- package/dist/executor-KSPGNVDO.js +29 -0
- package/dist/executor-MZJXBWNM.js +9 -0
- package/dist/executor-TOLPBHOC.js +9 -0
- package/dist/export-accessible-LGV6IAFX.js +23 -0
- package/dist/extract-partition-RYJZIKQZ.js +38 -0
- package/dist/{fanout-sidecar-KGQCUJ7P.js → fanout-sidecar-TSFPXY5C.js} +7 -7
- package/dist/find-LC7P63MX.js +11 -0
- package/dist/forget/index.js +7 -7
- package/dist/guards/index.js +4 -4
- package/dist/history/index.js +11 -11
- package/dist/i18n/index.js +12 -12
- package/dist/index.d.ts +8 -4
- package/dist/index.js +96 -96
- package/dist/indexing/index.js +2 -2
- package/dist/introspection/index.js +11 -10
- package/dist/issue-IOXM3RSJ.js +19 -0
- package/dist/kernel/collection.d.ts +11 -6
- package/dist/kernel/errors.d.ts +28 -0
- package/dist/kernel/match-pairs.d.ts +30 -0
- package/dist/{ledger-ZAFULLAF.js → ledger-HXHIOD36.js} +9 -9
- package/dist/liberate-4APIV7FR.js +25 -0
- package/dist/{link-set-LQI2IJX6.js → link-set-6RAHEKZN.js} +9 -9
- package/dist/{managed-secret-7OH7HKXV.js → managed-secret-P3JQ7ZG4.js} +7 -7
- package/dist/materialized-views/index.js +18 -18
- package/dist/{migrate-cek-QHZ75E6E.js → migrate-cek-25KNTS5U.js} +2 -2
- package/dist/money/index.js +4 -4
- package/dist/noydb-JJXPICIC.js +88 -0
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +10 -10
- package/dist/pod/index.js +55 -53
- package/dist/{pod-handle-BLOI4IFY.js → pod-handle-6II7KFBR.js} +7 -7
- package/dist/policy/index.js +7 -7
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-R33EKJQR.js → post-register-BPJ36A6D.js} +6 -6
- package/dist/query/index.js +3 -3
- package/dist/reduce/index.js +4 -4
- package/dist/{register-AYBQNTM3.js → register-AEOOGKNO.js} +13 -13
- package/dist/registry-BZQIVNNO.js +29 -0
- package/dist/registry-I6FP4677.js +19 -0
- package/dist/registry-SHMGHEK4.js +9 -0
- package/dist/registry-SKSOUXNF.js +9 -0
- package/dist/{request-withdrawal-7IKUIAEB.js → request-withdrawal-6HJT4ODF.js} +12 -12
- package/dist/{reveal-PI6ADRQU.js → reveal-DDQBDWPM.js} +4 -4
- package/dist/{revoke-PUJKRYJF.js → revoke-U7U3FMXU.js} +9 -9
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +2 -2
- package/dist/sealed-record/index.js +10 -10
- package/dist/search/index.js +4 -4
- package/dist/{seed-MCCGVPRI.js → seed-3RXT4VGN.js} +10 -10
- package/dist/sequence/index.js +7 -7
- package/dist/session/index.js +7 -7
- package/dist/shadow/index.js +2 -2
- package/dist/{signer-5TA7FUC3.js → signer-7NK7TMWU.js} +8 -8
- package/dist/snapshots/index.js +8 -8
- package/dist/{stale-HZR7745Y.js → stale-KSPG6LFX.js} +8 -8
- package/dist/{storage-J2QHNJCB.js → storage-WP4M7IFO.js} +8 -8
- package/dist/{store-coordination-provider-MYIHSZXT.js → store-coordination-provider-O2VUEMJH.js} +7 -7
- package/dist/sync/index.js +8 -8
- package/dist/team/index.js +12 -12
- package/dist/tiers/index.js +9 -9
- package/dist/to/index.js +1 -1
- package/dist/transactions/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/vault-head/index.js +6 -6
- package/dist/{verify-R6CCBUA3.js → verify-JBXCAGDL.js} +5 -5
- package/dist/walk-P3E6QSNC.js +22 -0
- package/dist/with-formula/derivations/dispatch.d.ts +16 -1
- package/dist/with-formula/derivations/registry.d.ts +15 -0
- package/dist/with-formula/derivations/trigger-match.d.ts +52 -0
- package/dist/with-formula/derivations/types.d.ts +23 -0
- package/dist/with-shape/introspection/behaviors.d.ts +7 -0
- package/dist/with-shape/introspection/describe.d.ts +40 -0
- package/dist/{withdraw-accessible-62VI4W7D.js → withdraw-accessible-6Q7NE4EY.js} +11 -11
- package/package.json +3 -3
- package/dist/api-GJQF7OAJ.js +0 -20
- package/dist/chunk-65ZYRK7O.js.map +0 -1
- package/dist/chunk-J6FXVDKC.js +0 -81
- package/dist/chunk-J6FXVDKC.js.map +0 -1
- package/dist/chunk-KHKKD62N.js.map +0 -1
- package/dist/chunk-KKZPQLDH.js.map +0 -1
- package/dist/chunk-OQDHIAR2.js.map +0 -1
- package/dist/chunk-SW4TOSJL.js.map +0 -1
- package/dist/chunk-XJP66QEN.js.map +0 -1
- package/dist/dispatch-DR3XITEC.js +0 -194
- package/dist/dispatch-DR3XITEC.js.map +0 -1
- package/dist/executor-67NA4KPO.js +0 -29
- package/dist/executor-7JDP7UBK.js +0 -9
- package/dist/executor-CRH5OB4V.js +0 -9
- package/dist/export-accessible-K4GJAU7U.js +0 -23
- package/dist/extract-partition-YJFL5OKK.js +0 -38
- package/dist/find-SVZHMEQI.js +0 -11
- package/dist/issue-64N6OG7U.js +0 -19
- package/dist/liberate-QAUKHU6W.js +0 -25
- package/dist/noydb-ZUS5XAFT.js +0 -86
- package/dist/registry-CQWWOBO4.js +0 -9
- package/dist/registry-JCZ4BNLV.js +0 -18
- package/dist/registry-JFFENZ44.js +0 -9
- package/dist/registry-ZA4HACYR.js +0 -19
- package/dist/walk-3PA4ZOKS.js +0 -21
- /package/dist/{api-GJQF7OAJ.js.map → api-UE2XQKDN.js.map} +0 -0
- /package/dist/{backup-QZQEP5RO.js.map → backup-R6A4VZRX.js.map} +0 -0
- /package/dist/{chunk-AHIIBDNH.js.map → chunk-2Z47NMFK.js.map} +0 -0
- /package/dist/{chunk-2DGBRE4K.js.map → chunk-4OZNXTO4.js.map} +0 -0
- /package/dist/{chunk-FZWAGG5T.js.map → chunk-5FUULQ6F.js.map} +0 -0
- /package/dist/{chunk-P7KJME6C.js.map → chunk-6YXCPL4T.js.map} +0 -0
- /package/dist/{chunk-LAI7ENPW.js.map → chunk-7MG2LHO5.js.map} +0 -0
- /package/dist/{chunk-NUXTUGAD.js.map → chunk-7NTBVFGD.js.map} +0 -0
- /package/dist/{chunk-MU74BYOD.js.map → chunk-ANSIZYEG.js.map} +0 -0
- /package/dist/{chunk-2MQ2D5OZ.js.map → chunk-B2ZSGYSF.js.map} +0 -0
- /package/dist/{chunk-5W5CEHLA.js.map → chunk-BBWVXF57.js.map} +0 -0
- /package/dist/{chunk-SWFIXQF5.js.map → chunk-BERJ4AWW.js.map} +0 -0
- /package/dist/{chunk-Q2OAAREU.js.map → chunk-BMSOTHIA.js.map} +0 -0
- /package/dist/{chunk-XGXVPCYW.js.map → chunk-BOWNCWZT.js.map} +0 -0
- /package/dist/{chunk-UTFY6W6X.js.map → chunk-BZ3534YM.js.map} +0 -0
- /package/dist/{chunk-DOPZWTMJ.js.map → chunk-CIGAQBJR.js.map} +0 -0
- /package/dist/{chunk-3GIA3HJ2.js.map → chunk-DGOZ4UZD.js.map} +0 -0
- /package/dist/{chunk-7XT7KZTN.js.map → chunk-DJ3LNNZQ.js.map} +0 -0
- /package/dist/{chunk-IS5LFHV2.js.map → chunk-DMJZBQ7F.js.map} +0 -0
- /package/dist/{chunk-MENI33ZV.js.map → chunk-E3EBMC4G.js.map} +0 -0
- /package/dist/{chunk-T66OY2U5.js.map → chunk-E5OHKSBD.js.map} +0 -0
- /package/dist/{chunk-LUVGSKXE.js.map → chunk-EVKR67PQ.js.map} +0 -0
- /package/dist/{chunk-Q2ZN5DWZ.js.map → chunk-FAHMLERK.js.map} +0 -0
- /package/dist/{chunk-FN26SFGH.js.map → chunk-FYEZC4PX.js.map} +0 -0
- /package/dist/{chunk-OLUTCM23.js.map → chunk-GHHUF2KL.js.map} +0 -0
- /package/dist/{chunk-DNMTN46H.js.map → chunk-GY4WYNNG.js.map} +0 -0
- /package/dist/{chunk-IAHDSFFA.js.map → chunk-HN4FNA4X.js.map} +0 -0
- /package/dist/{chunk-JRWLUWDM.js.map → chunk-IPFE6MVM.js.map} +0 -0
- /package/dist/{chunk-PV7XXAXK.js.map → chunk-JBDFMYKQ.js.map} +0 -0
- /package/dist/{chunk-3SWP2FYA.js.map → chunk-JJR2JIN4.js.map} +0 -0
- /package/dist/{chunk-IZTU6RKH.js.map → chunk-JMGDHKQF.js.map} +0 -0
- /package/dist/{chunk-P2RJAVMR.js.map → chunk-KCUIMITG.js.map} +0 -0
- /package/dist/{chunk-MOQ6OGKS.js.map → chunk-KLPASWYY.js.map} +0 -0
- /package/dist/{chunk-JILOSL4O.js.map → chunk-KTDGZPOZ.js.map} +0 -0
- /package/dist/{chunk-ZB2K3FV7.js.map → chunk-KTFRCC5C.js.map} +0 -0
- /package/dist/{chunk-7PC3DRG7.js.map → chunk-LHH6H43C.js.map} +0 -0
- /package/dist/{chunk-QOHGWFAW.js.map → chunk-LWBCUYZW.js.map} +0 -0
- /package/dist/{chunk-NMDMSHBF.js.map → chunk-MLO75SFJ.js.map} +0 -0
- /package/dist/{chunk-H5GVPOB4.js.map → chunk-MMOZQTXV.js.map} +0 -0
- /package/dist/{chunk-JFSUYGNE.js.map → chunk-MVMXZYXT.js.map} +0 -0
- /package/dist/{chunk-FKQCC4C5.js.map → chunk-NQKIUNW5.js.map} +0 -0
- /package/dist/{chunk-IRHIA3AL.js.map → chunk-PFBL4M7E.js.map} +0 -0
- /package/dist/{chunk-RCONOOVF.js.map → chunk-PKJ43CMD.js.map} +0 -0
- /package/dist/{chunk-UL7TLJ54.js.map → chunk-PQKG5AHH.js.map} +0 -0
- /package/dist/{chunk-MTTPHBIE.js.map → chunk-Q2PU57HC.js.map} +0 -0
- /package/dist/{chunk-FPN5D4JX.js.map → chunk-Q4RWFV3G.js.map} +0 -0
- /package/dist/{chunk-FLRLZ4XZ.js.map → chunk-Q7HZX3IF.js.map} +0 -0
- /package/dist/{chunk-5EC7X5QA.js.map → chunk-QHW35ZON.js.map} +0 -0
- /package/dist/{chunk-75WNTBZL.js.map → chunk-QIBVIOXO.js.map} +0 -0
- /package/dist/{chunk-KQIDBIZL.js.map → chunk-QIZPZMUI.js.map} +0 -0
- /package/dist/{chunk-TQGT5BZE.js.map → chunk-RDZZHYMV.js.map} +0 -0
- /package/dist/{chunk-HOIWW2LV.js.map → chunk-RGSTMLVO.js.map} +0 -0
- /package/dist/{chunk-KZTPL7NL.js.map → chunk-RMF67KCG.js.map} +0 -0
- /package/dist/{chunk-OEJ4R52I.js.map → chunk-RMS3NEA3.js.map} +0 -0
- /package/dist/{chunk-5NKHCJU5.js.map → chunk-RTYJRFQO.js.map} +0 -0
- /package/dist/{chunk-XKA6UH5V.js.map → chunk-SFAWCTEM.js.map} +0 -0
- /package/dist/{chunk-FYT3DXPN.js.map → chunk-SKGMN35F.js.map} +0 -0
- /package/dist/{chunk-USKHHOIV.js.map → chunk-SL3JAAKN.js.map} +0 -0
- /package/dist/{chunk-FRIVOR5N.js.map → chunk-SWVNZQVR.js.map} +0 -0
- /package/dist/{chunk-O3SNM66K.js.map → chunk-TFR7DSOV.js.map} +0 -0
- /package/dist/{chunk-X6YRP5EC.js.map → chunk-THX6FEEC.js.map} +0 -0
- /package/dist/{chunk-RPX2H2OL.js.map → chunk-TO3EQ7HF.js.map} +0 -0
- /package/dist/{chunk-DIVY2CJZ.js.map → chunk-TRGTKX5E.js.map} +0 -0
- /package/dist/{chunk-JY4U6CYV.js.map → chunk-TUFM4UZP.js.map} +0 -0
- /package/dist/{chunk-OKCQNMO6.js.map → chunk-U7VPHXXO.js.map} +0 -0
- /package/dist/{chunk-DZPMKY3J.js.map → chunk-UGTBXF5U.js.map} +0 -0
- /package/dist/{chunk-VT4DTCK5.js.map → chunk-URHRIAV6.js.map} +0 -0
- /package/dist/{chunk-YHIAWECL.js.map → chunk-UXVWEX5L.js.map} +0 -0
- /package/dist/{chunk-XJTGBHK6.js.map → chunk-VNR2SNVJ.js.map} +0 -0
- /package/dist/{chunk-GHADG5QZ.js.map → chunk-VTFVLCUH.js.map} +0 -0
- /package/dist/{chunk-U3RMWOXY.js.map → chunk-VXANTWBJ.js.map} +0 -0
- /package/dist/{chunk-QJLOWGOU.js.map → chunk-WQF3QABE.js.map} +0 -0
- /package/dist/{chunk-GKOJR53Y.js.map → chunk-WSJG5L5C.js.map} +0 -0
- /package/dist/{chunk-I5LSKXT6.js.map → chunk-WWNYSV7S.js.map} +0 -0
- /package/dist/{chunk-357ECVLE.js.map → chunk-XGDYGUEH.js.map} +0 -0
- /package/dist/{chunk-2E2LT37H.js.map → chunk-XLMEZIAJ.js.map} +0 -0
- /package/dist/{chunk-TAJZ7GXO.js.map → chunk-XNIQ7DP2.js.map} +0 -0
- /package/dist/{chunk-Z277MC2O.js.map → chunk-Y4MJQ2UG.js.map} +0 -0
- /package/dist/{chunk-OXZSMX2H.js.map → chunk-YCXICMOY.js.map} +0 -0
- /package/dist/{chunk-MV2OEK3K.js.map → chunk-YQWBEJCS.js.map} +0 -0
- /package/dist/{chunk-CWFH36SI.js.map → chunk-YSRUYAVU.js.map} +0 -0
- /package/dist/{chunk-ZQGRZN5L.js.map → chunk-YYP7WSEB.js.map} +0 -0
- /package/dist/{chunk-HS3LEVT4.js.map → chunk-ZG4XLOKB.js.map} +0 -0
- /package/dist/{chunk-4U52PMEL.js.map → chunk-ZN4FD4PE.js.map} +0 -0
- /package/dist/{chunk-AW4KTQA4.js.map → chunk-ZORTV6NH.js.map} +0 -0
- /package/dist/{chunk-P22XPNFW.js.map → chunk-ZR2YMODS.js.map} +0 -0
- /package/dist/{classified-marker-R37XW5PC.js.map → classified-marker-67HBIJMZ.js.map} +0 -0
- /package/dist/{collection-facade-OPJ3EC4L.js.map → collection-facade-MGGHQ3HU.js.map} +0 -0
- /package/dist/{computed-HW6IG5UH.js.map → computed-LSEZYRJS.js.map} +0 -0
- /package/dist/{dead-filter-GRT6RAML.js.map → dead-filter-M3NZUWBZ.js.map} +0 -0
- /package/dist/{delegation-6QRAYSK6.js.map → delegation-OLJUWTVA.js.map} +0 -0
- /package/dist/{derive-AAIXSQIE.js.map → derive-LY47HG7Q.js.map} +0 -0
- /package/dist/{dispatch-QCF7KPIP.js.map → dispatch-44J4TL72.js.map} +0 -0
- /package/dist/{enclave-OXZY3NOP.js.map → enclave-4YBQK77G.js.map} +0 -0
- /package/dist/{executor-67NA4KPO.js.map → executor-KSPGNVDO.js.map} +0 -0
- /package/dist/{executor-7JDP7UBK.js.map → executor-MZJXBWNM.js.map} +0 -0
- /package/dist/{executor-CRH5OB4V.js.map → executor-TOLPBHOC.js.map} +0 -0
- /package/dist/{export-accessible-K4GJAU7U.js.map → export-accessible-LGV6IAFX.js.map} +0 -0
- /package/dist/{extract-partition-YJFL5OKK.js.map → extract-partition-RYJZIKQZ.js.map} +0 -0
- /package/dist/{fanout-sidecar-KGQCUJ7P.js.map → fanout-sidecar-TSFPXY5C.js.map} +0 -0
- /package/dist/{find-SVZHMEQI.js.map → find-LC7P63MX.js.map} +0 -0
- /package/dist/{issue-64N6OG7U.js.map → issue-IOXM3RSJ.js.map} +0 -0
- /package/dist/{ledger-ZAFULLAF.js.map → ledger-HXHIOD36.js.map} +0 -0
- /package/dist/{liberate-QAUKHU6W.js.map → liberate-4APIV7FR.js.map} +0 -0
- /package/dist/{link-set-LQI2IJX6.js.map → link-set-6RAHEKZN.js.map} +0 -0
- /package/dist/{managed-secret-7OH7HKXV.js.map → managed-secret-P3JQ7ZG4.js.map} +0 -0
- /package/dist/{migrate-cek-QHZ75E6E.js.map → migrate-cek-25KNTS5U.js.map} +0 -0
- /package/dist/{noydb-ZUS5XAFT.js.map → noydb-JJXPICIC.js.map} +0 -0
- /package/dist/{pod-handle-BLOI4IFY.js.map → pod-handle-6II7KFBR.js.map} +0 -0
- /package/dist/{post-register-R33EKJQR.js.map → post-register-BPJ36A6D.js.map} +0 -0
- /package/dist/{register-AYBQNTM3.js.map → register-AEOOGKNO.js.map} +0 -0
- /package/dist/{registry-CQWWOBO4.js.map → registry-BZQIVNNO.js.map} +0 -0
- /package/dist/{registry-JCZ4BNLV.js.map → registry-I6FP4677.js.map} +0 -0
- /package/dist/{registry-JFFENZ44.js.map → registry-SHMGHEK4.js.map} +0 -0
- /package/dist/{registry-ZA4HACYR.js.map → registry-SKSOUXNF.js.map} +0 -0
- /package/dist/{request-withdrawal-7IKUIAEB.js.map → request-withdrawal-6HJT4ODF.js.map} +0 -0
- /package/dist/{reveal-PI6ADRQU.js.map → reveal-DDQBDWPM.js.map} +0 -0
- /package/dist/{revoke-PUJKRYJF.js.map → revoke-U7U3FMXU.js.map} +0 -0
- /package/dist/{seed-MCCGVPRI.js.map → seed-3RXT4VGN.js.map} +0 -0
- /package/dist/{signer-5TA7FUC3.js.map → signer-7NK7TMWU.js.map} +0 -0
- /package/dist/{stale-HZR7745Y.js.map → stale-KSPG6LFX.js.map} +0 -0
- /package/dist/{storage-J2QHNJCB.js.map → storage-WP4M7IFO.js.map} +0 -0
- /package/dist/{store-coordination-provider-MYIHSZXT.js.map → store-coordination-provider-O2VUEMJH.js.map} +0 -0
- /package/dist/{verify-R6CCBUA3.js.map → verify-JBXCAGDL.js.map} +0 -0
- /package/dist/{walk-3PA4ZOKS.js.map → walk-P3E6QSNC.js.map} +0 -0
- /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 {
|
|
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
|
-
|
|
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-
|
|
2
|
+
import "../chunk-VGICZPVE.js";
|
|
3
3
|
import {
|
|
4
4
|
applyListProjection
|
|
5
5
|
} from "../chunk-VG2ZSFYD.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-RXLYKVTF.js";
|
|
7
|
+
import "../chunk-VYYM3MEN.js";
|
|
8
|
+
import "../chunk-URHRIAV6.js";
|
|
8
9
|
import "../chunk-Y2NBBT6K.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-WWNYSV7S.js";
|
|
11
|
+
import "../chunk-CIGAQBJR.js";
|
|
11
12
|
import "../chunk-4RUFYGWG.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-BOWNCWZT.js";
|
|
14
|
+
import "../chunk-YSRUYAVU.js";
|
|
15
|
+
import "../chunk-RMF67KCG.js";
|
|
15
16
|
import "../chunk-LP7BEXCT.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-SL3JAAKN.js";
|
|
17
18
|
import "../chunk-N4CHCXDL.js";
|
|
18
19
|
import {
|
|
19
20
|
ValidationError
|
|
20
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-7O3Y4PPD.js";
|
|
21
22
|
import "../chunk-PZ5AY32C.js";
|
|
22
23
|
|
|
23
24
|
// src/port/as/active.ts
|
package/dist/as/index.js.map
CHANGED
|
@@ -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":"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","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-
|
|
7
|
+
import "../chunk-CIGAQBJR.js";
|
|
8
8
|
import "../chunk-4RUFYGWG.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-BOWNCWZT.js";
|
|
10
|
+
import "../chunk-YSRUYAVU.js";
|
|
11
|
+
import "../chunk-RMF67KCG.js";
|
|
12
12
|
import "../chunk-LP7BEXCT.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-SL3JAAKN.js";
|
|
14
14
|
import "../chunk-N4CHCXDL.js";
|
|
15
|
-
import "../chunk-
|
|
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-
|
|
3
|
+
} from "../chunk-EVKR67PQ.js";
|
|
4
4
|
import {
|
|
5
5
|
getRevokedDocIdsCore,
|
|
6
6
|
publishRevocationListCore,
|
|
7
7
|
revokeDocCore,
|
|
8
8
|
unrevokeDocCore
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-Q4RWFV3G.js";
|
|
10
10
|
import {
|
|
11
11
|
ATTESTATIONS_COLLECTION
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-WSJG5L5C.js";
|
|
13
13
|
import {
|
|
14
14
|
NO_ATTESTATION
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-Q7HZX3IF.js";
|
|
16
16
|
import "../chunk-4AOERLTV.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-CIGAQBJR.js";
|
|
18
18
|
import "../chunk-4RUFYGWG.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-BOWNCWZT.js";
|
|
20
|
+
import "../chunk-YSRUYAVU.js";
|
|
21
|
+
import "../chunk-RMF67KCG.js";
|
|
22
22
|
import "../chunk-LP7BEXCT.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-SL3JAAKN.js";
|
|
24
24
|
import "../chunk-N4CHCXDL.js";
|
|
25
25
|
import {
|
|
26
26
|
AttestationError,
|
|
27
27
|
AttestationNotEnabledError
|
|
28
|
-
} from "../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
21
|
+
import "./chunk-CIGAQBJR.js";
|
|
22
22
|
import {
|
|
23
23
|
buildRecordEnvelope
|
|
24
24
|
} from "./chunk-4RUFYGWG.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-BOWNCWZT.js";
|
|
26
|
+
import "./chunk-YSRUYAVU.js";
|
|
27
|
+
import "./chunk-RMF67KCG.js";
|
|
28
28
|
import "./chunk-LP7BEXCT.js";
|
|
29
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
265
|
+
//# sourceMappingURL=backup-R6A4VZRX.js.map
|
package/dist/blobs/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
createExportBlobsHandle,
|
|
11
11
|
reportOrphanBlobChunks,
|
|
12
12
|
runCompaction
|
|
13
|
-
} from "../chunk-
|
|
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-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
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-
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-BOWNCWZT.js";
|
|
35
|
+
import "../chunk-YSRUYAVU.js";
|
|
36
|
+
import "../chunk-RMF67KCG.js";
|
|
37
37
|
import "../chunk-LP7BEXCT.js";
|
|
38
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-SL3JAAKN.js";
|
|
39
39
|
import "../chunk-N4CHCXDL.js";
|
|
40
40
|
import {
|
|
41
41
|
BlobOfflineError
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-7O3Y4PPD.js";
|
|
43
43
|
import "../chunk-PZ5AY32C.js";
|
|
44
44
|
|
|
45
45
|
// src/via/blob/active.ts
|
package/dist/broker/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NO_BROKER
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-JBDFMYKQ.js";
|
|
4
4
|
import {
|
|
5
5
|
issueChallenge,
|
|
6
6
|
verifyBrokerProof
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-CIGAQBJR.js";
|
|
8
8
|
import "../chunk-4RUFYGWG.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-BOWNCWZT.js";
|
|
10
|
+
import "../chunk-YSRUYAVU.js";
|
|
11
|
+
import "../chunk-RMF67KCG.js";
|
|
12
12
|
import "../chunk-LP7BEXCT.js";
|
|
13
|
-
import "../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
package/dist/cargo/index.js
CHANGED
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
describeExtraction,
|
|
6
6
|
unsealDeks,
|
|
7
7
|
withCargo
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-7NTBVFGD.js";
|
|
9
9
|
import {
|
|
10
10
|
extractPartition,
|
|
11
11
|
walkClosure
|
|
12
|
-
} from "../chunk-
|
|
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-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
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-
|
|
26
|
+
} from "../chunk-NQKIUNW5.js";
|
|
27
27
|
import "../chunk-JUBWUJY5.js";
|
|
28
28
|
import {
|
|
29
29
|
isQuorum,
|
|
30
30
|
runDrainBarrier
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-I5LSKXT6.js";
|
|
31
|
+
} from "../chunk-VTFVLCUH.js";
|
|
33
32
|
import {
|
|
34
33
|
CustodyApi
|
|
35
|
-
} from "../chunk-
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
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-
|
|
41
|
+
import "../chunk-ZG4XLOKB.js";
|
|
42
42
|
import {
|
|
43
43
|
groupAndReduce,
|
|
44
44
|
reduceRecords
|
|
45
|
-
} from "../chunk-
|
|
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-
|
|
52
|
-
import "../chunk-
|
|
53
|
-
import "../chunk-
|
|
54
|
-
import "../chunk-
|
|
55
|
-
import "../chunk-
|
|
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-
|
|
60
|
+
import "../chunk-U7VPHXXO.js";
|
|
61
61
|
import "../chunk-I7FD46FF.js";
|
|
62
|
-
import "../chunk-
|
|
63
|
-
import "../chunk-
|
|
64
|
-
import "../chunk-
|
|
62
|
+
import "../chunk-IPFE6MVM.js";
|
|
63
|
+
import "../chunk-JMGDHKQF.js";
|
|
64
|
+
import "../chunk-CIGAQBJR.js";
|
|
65
65
|
import "../chunk-4RUFYGWG.js";
|
|
66
|
-
import "../chunk-
|
|
67
|
-
import "../chunk-
|
|
68
|
-
import "../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
20
|
+
} from "./chunk-URHRIAV6.js";
|
|
21
21
|
import {
|
|
22
22
|
loadPersistedSchemaEntry,
|
|
23
23
|
savePersistedSchema
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-WWNYSV7S.js";
|
|
25
25
|
import {
|
|
26
26
|
envelopePayloadHash
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-IPFE6MVM.js";
|
|
28
28
|
import {
|
|
29
29
|
ManifestConflictError,
|
|
30
30
|
isConflictError
|
|
31
|
-
} from "./chunk-
|
|
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-
|
|
260
|
+
//# sourceMappingURL=chunk-2Z47NMFK.js.map
|