@noy-db/hub 0.4.0-pre.5 → 0.4.0-pre.7
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/dist/api-3NKVNZPM.js +20 -0
- package/dist/attestation/index.js +20 -20
- package/dist/{backup-YCHAC575.js → backup-PTSVXDDW.js} +13 -13
- package/dist/blobs/index.js +15 -12
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +12 -12
- package/dist/cargo/index.js +36 -36
- package/dist/{chunk-5WLDZZ6S.js → chunk-35NMVJ7I.js} +3 -3
- package/dist/{chunk-TNATF3HB.js → chunk-3HUYRN24.js} +4 -4
- package/dist/chunk-3HUYRN24.js.map +1 -0
- package/dist/{chunk-TNJVDG2B.js → chunk-3XKESW5E.js} +3 -3
- package/dist/{chunk-MUPZ6IZX.js → chunk-4JQK3L4V.js} +2 -2
- package/dist/{chunk-Z4D3YGAB.js → chunk-4ZKNC6A6.js} +2 -2
- package/dist/{chunk-ONB627HU.js → chunk-55LX6FSX.js} +2 -2
- package/dist/{chunk-QMZ5A6FQ.js → chunk-56IIVAEO.js} +2 -2
- package/dist/chunk-5D2ALSM5.js +19 -0
- package/dist/chunk-5D2ALSM5.js.map +1 -0
- package/dist/{chunk-FHHYCBBP.js → chunk-5DRROK5W.js} +2 -2
- package/dist/{chunk-GTNRMJYH.js → chunk-5GQEU4DN.js} +2 -2
- package/dist/{chunk-YQQPNXNO.js → chunk-6L3DKWRY.js} +6 -6
- package/dist/chunk-6LJY7X5A.js +18 -0
- package/dist/chunk-6LJY7X5A.js.map +1 -0
- package/dist/{chunk-M6QA2KK2.js → chunk-6M2I3DKF.js} +2 -2
- package/dist/{chunk-FTCGEUOY.js → chunk-6R6Q3MRN.js} +7 -7
- package/dist/{chunk-ZUDAK436.js → chunk-6UBZ6I5Z.js} +2 -2
- package/dist/{chunk-SEU6QHH4.js → chunk-6ZNSB3H6.js} +5 -17
- package/dist/chunk-6ZNSB3H6.js.map +1 -0
- package/dist/chunk-AFHQATY4.js +47 -0
- package/dist/chunk-AFHQATY4.js.map +1 -0
- package/dist/{chunk-7U6AB7DZ.js → chunk-AKKRXT23.js} +2 -2
- package/dist/{chunk-2PDBYF2O.js → chunk-AT2JJEKJ.js} +4 -4
- package/dist/chunk-AT2JJEKJ.js.map +1 -0
- package/dist/{chunk-OWLZONGX.js → chunk-BLBAQRBM.js} +2 -2
- package/dist/{chunk-QBOQI6PG.js → chunk-BN4HRYAZ.js} +2 -2
- package/dist/{chunk-QVGEVZ5F.js → chunk-BQ6DHN4I.js} +3 -3
- package/dist/{chunk-GP54LU5N.js → chunk-BYFXLDVV.js} +9 -9
- package/dist/{chunk-FIP7KI2P.js → chunk-C25JXSOR.js} +337 -21
- package/dist/chunk-C25JXSOR.js.map +1 -0
- package/dist/chunk-CADUYBQD.js +151 -0
- package/dist/chunk-CADUYBQD.js.map +1 -0
- package/dist/{chunk-HAPY7WFP.js → chunk-CCDP6EPB.js} +13 -355
- package/dist/chunk-CCDP6EPB.js.map +1 -0
- package/dist/{chunk-QRHEAZ2Q.js → chunk-CUZLNGD5.js} +1 -1
- package/dist/{chunk-YXIVUWDU.js → chunk-DGBIHDVK.js} +5 -5
- package/dist/chunk-DSDXAKIP.js +50 -0
- package/dist/chunk-DSDXAKIP.js.map +1 -0
- package/dist/{chunk-QZJEYZ4I.js → chunk-DZAF24PG.js} +5 -5
- package/dist/chunk-DZFQVICS.js +23 -0
- package/dist/chunk-DZFQVICS.js.map +1 -0
- package/dist/chunk-E23UGFVC.js +63 -0
- package/dist/chunk-E23UGFVC.js.map +1 -0
- package/dist/{chunk-X3MWEFPT.js → chunk-EBKCYQ2D.js} +14 -14
- package/dist/chunk-EBKCYQ2D.js.map +1 -0
- package/dist/chunk-EP5L47XV.js +22 -0
- package/dist/chunk-EP5L47XV.js.map +1 -0
- package/dist/{chunk-TMR64XPL.js → chunk-EZNTORXE.js} +2 -2
- package/dist/{chunk-JAMDDLIM.js → chunk-FMNU7IUG.js} +3 -3
- package/dist/{chunk-YXZNGHID.js → chunk-FO6RNKKW.js} +8 -46
- package/dist/chunk-FO6RNKKW.js.map +1 -0
- package/dist/{chunk-YMUGBZN2.js → chunk-FQ5CHJR7.js} +1 -1
- package/dist/chunk-FQ5CHJR7.js.map +1 -0
- package/dist/{chunk-YZN6NRTR.js → chunk-FRMW23UK.js} +13 -11
- package/dist/chunk-FRMW23UK.js.map +1 -0
- package/dist/chunk-GJW4HX2O.js +1 -0
- package/dist/{chunk-7BIJS6II.js → chunk-GP3UWP22.js} +4 -4
- package/dist/{chunk-YTW6ZIPD.js → chunk-GZACYEOB.js} +1 -1
- package/dist/chunk-GZACYEOB.js.map +1 -0
- package/dist/{chunk-JIHH26WQ.js → chunk-HFUAFR6B.js} +6 -6
- package/dist/{chunk-J5TEU77Q.js → chunk-IF6WNGAK.js} +59 -4
- package/dist/chunk-IF6WNGAK.js.map +1 -0
- package/dist/{chunk-ZX5FNWH7.js → chunk-IG6KUWBX.js} +2 -2
- package/dist/chunk-IG6KUWBX.js.map +1 -0
- package/dist/{chunk-CKUYQO2P.js → chunk-IMRB2C4O.js} +7 -5
- package/dist/chunk-IMRB2C4O.js.map +1 -0
- package/dist/{chunk-RWW3I3PO.js → chunk-ISRKW4YN.js} +3 -3
- package/dist/{chunk-P4NUJVWL.js → chunk-IXNCZTWA.js} +2 -2
- package/dist/{chunk-YFFEF6HR.js → chunk-JIDLU57U.js} +3 -3
- package/dist/{chunk-PTT2NB46.js → chunk-JYJFGD2H.js} +2 -2
- package/dist/{chunk-3OWYOECI.js → chunk-JYV4JJV2.js} +5 -5
- package/dist/{chunk-OGVE4IJW.js → chunk-KBPU5M2E.js} +7 -7
- package/dist/{chunk-I2XEBEEF.js → chunk-KFRPNHWR.js} +4 -4
- package/dist/chunk-KFRPNHWR.js.map +1 -0
- package/dist/{chunk-3LJYHE7S.js → chunk-KPXM4WO6.js} +64 -57
- package/dist/chunk-KPXM4WO6.js.map +1 -0
- package/dist/{chunk-QMMOMBH6.js → chunk-KRCBZYTZ.js} +26 -177
- package/dist/chunk-KRCBZYTZ.js.map +1 -0
- package/dist/{chunk-UTEATWHO.js → chunk-KW42W6SV.js} +6 -6
- package/dist/{chunk-BY5YBSXA.js → chunk-L3YYLT4E.js} +15 -2
- package/dist/chunk-L3YYLT4E.js.map +1 -0
- package/dist/{chunk-UVBHM7AK.js → chunk-MANUDU7I.js} +6 -6
- package/dist/{chunk-YJ3TREAC.js → chunk-MHMLXJ3I.js} +2 -2
- package/dist/chunk-MHMLXJ3I.js.map +1 -0
- package/dist/{chunk-D4LAJ737.js → chunk-MSMJJB4J.js} +2 -2
- package/dist/chunk-MSMJJB4J.js.map +1 -0
- package/dist/{chunk-DYZ5CCVM.js → chunk-MXUT7FTE.js} +2 -2
- package/dist/chunk-MXUT7FTE.js.map +1 -0
- package/dist/{chunk-7ICV4ASA.js → chunk-N5PLUFH2.js} +27 -5
- package/dist/chunk-N5PLUFH2.js.map +1 -0
- package/dist/{chunk-K7BADAOS.js → chunk-NEX7JCMO.js} +4 -4
- package/dist/{chunk-5HSSTOOG.js → chunk-NFZGZ4AK.js} +2 -2
- package/dist/{chunk-XUFAFHQM.js → chunk-NJ4DYYO5.js} +7 -4
- package/dist/chunk-NJ4DYYO5.js.map +1 -0
- package/dist/{chunk-VEGQYPCP.js → chunk-NQSO4UAH.js} +8 -8
- package/dist/chunk-NQSO4UAH.js.map +1 -0
- package/dist/{chunk-GHEMAVTN.js → chunk-NYEFP7DY.js} +4 -4
- package/dist/chunk-NYEFP7DY.js.map +1 -0
- package/dist/{chunk-S4YERMGJ.js → chunk-OBPVWOSQ.js} +4 -4
- package/dist/{chunk-OHV6T5JB.js → chunk-OLIWCCFM.js} +2 -5
- package/dist/{chunk-2CRZOVDI.js → chunk-OLSARBZU.js} +2 -2
- package/dist/chunk-PEOZ34EM.js +13 -0
- package/dist/chunk-PEOZ34EM.js.map +1 -0
- package/dist/{chunk-KJTIAECI.js → chunk-PT4XLP6I.js} +171 -12
- package/dist/chunk-PT4XLP6I.js.map +1 -0
- package/dist/{chunk-LC7DSMHR.js → chunk-PTHKZWEH.js} +2 -14
- package/dist/{chunk-LC7DSMHR.js.map → chunk-PTHKZWEH.js.map} +1 -1
- package/dist/chunk-PVEWA2DU.js +23 -0
- package/dist/chunk-PVEWA2DU.js.map +1 -0
- package/dist/chunk-QADFHRQM.js +367 -0
- package/dist/chunk-QADFHRQM.js.map +1 -0
- package/dist/{chunk-7LP7FFJ2.js → chunk-QD46HPZG.js} +2 -2
- package/dist/{chunk-G4MFQXYX.js → chunk-QJNCB5SK.js} +2 -2
- package/dist/{chunk-6SYOHUHM.js → chunk-QZWTRENR.js} +2 -2
- package/dist/chunk-QZWTRENR.js.map +1 -0
- package/dist/{chunk-TSNRZSRC.js → chunk-RO5NM6UI.js} +2 -2
- package/dist/chunk-RO5NM6UI.js.map +1 -0
- package/dist/{chunk-GEEJPID6.js → chunk-RZPOZPZU.js} +8 -8
- package/dist/chunk-SGDPRCC4.js +1075 -0
- package/dist/chunk-SGDPRCC4.js.map +1 -0
- package/dist/{chunk-YCAJDK4O.js → chunk-SGQ4N5FS.js} +5 -5
- package/dist/{chunk-522MBPE5.js → chunk-SHEEBRZ4.js} +2 -2
- package/dist/{chunk-YWZEDG7F.js → chunk-SHYIA73K.js} +6 -6
- package/dist/{chunk-L2CAWCQL.js → chunk-SKM35Y4Q.js} +17 -26
- package/dist/chunk-SKM35Y4Q.js.map +1 -0
- package/dist/chunk-SMY5X46Z.js +14 -0
- package/dist/chunk-SMY5X46Z.js.map +1 -0
- package/dist/{chunk-K4BWPNJO.js → chunk-TE6LH6J2.js} +5 -5
- package/dist/{chunk-AFAPBZAA.js → chunk-TG634KCO.js} +11 -2
- package/dist/chunk-TG634KCO.js.map +1 -0
- package/dist/{chunk-V5JUAW4M.js → chunk-TIVK6PRK.js} +9 -10
- package/dist/chunk-TIVK6PRK.js.map +1 -0
- package/dist/{chunk-JN3SGXJE.js → chunk-UADPR6F4.js} +3 -3
- package/dist/{chunk-JN3SGXJE.js.map → chunk-UADPR6F4.js.map} +1 -1
- package/dist/{chunk-SBOHNJUD.js → chunk-V6UQZA2H.js} +2 -2
- package/dist/chunk-VG2ZSFYD.js +32 -0
- package/dist/chunk-VG2ZSFYD.js.map +1 -0
- package/dist/{chunk-SC4JLMZI.js → chunk-VH6SOCXH.js} +2 -2
- package/dist/chunk-VKQCVU2Z.js +21 -0
- package/dist/chunk-VKQCVU2Z.js.map +1 -0
- package/dist/chunk-VSRSQ2CR.js +654 -0
- package/dist/chunk-VSRSQ2CR.js.map +1 -0
- package/dist/{chunk-WQN5SM7P.js → chunk-W3G5REIU.js} +2 -2
- package/dist/{chunk-EGU4PWQW.js → chunk-W66AM5IB.js} +2 -2
- package/dist/chunk-W66AM5IB.js.map +1 -0
- package/dist/{chunk-HQKRZIX6.js → chunk-WBKZUO5V.js} +26 -43
- package/dist/chunk-WBKZUO5V.js.map +1 -0
- package/dist/{chunk-OMSKGLYA.js → chunk-WO4T4OD5.js} +2 -2
- package/dist/{chunk-6RPWILRH.js → chunk-WZ3NCMK6.js} +6 -5
- package/dist/{chunk-BAAUFCJK.js → chunk-X4MVWPHV.js} +3 -3
- package/dist/{chunk-R2N37AA6.js → chunk-XIDQKFZF.js} +3 -3
- package/dist/{chunk-EEZCB74X.js → chunk-XOBHRD2M.js} +575 -651
- package/dist/chunk-XOBHRD2M.js.map +1 -0
- package/dist/chunk-XZHEOSQ2.js +16 -0
- package/dist/chunk-XZHEOSQ2.js.map +1 -0
- package/dist/chunk-Y2NBBT6K.js +18 -0
- package/dist/chunk-Y2NBBT6K.js.map +1 -0
- package/dist/{chunk-OWOT7CFC.js → chunk-Y6B6HVKC.js} +2 -2
- package/dist/{chunk-5ATANZSW.js → chunk-Y6VZQGGH.js} +6 -6
- package/dist/chunk-YMUFFJCO.js +23 -0
- package/dist/chunk-YMUFFJCO.js.map +1 -0
- package/dist/{chunk-YZNKFYDC.js → chunk-ZFUFAHZ3.js} +4 -4
- package/dist/{chunk-PWWWMRT7.js → chunk-ZTLOXFPB.js} +2 -2
- package/dist/chunk-ZTLOXFPB.js.map +1 -0
- package/dist/{walk-E3OVLBFR.js → chunk-ZWBKDKXC.js} +4 -13
- package/dist/{walk-E3OVLBFR.js.map → chunk-ZWBKDKXC.js.map} +1 -1
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-52P3D72W.js → classified-marker-EOOSMWFC.js} +3 -3
- package/dist/collection-facade-TTRF5NFJ.js +45 -0
- package/dist/{computed-33DRJDOC.js → computed-AB45PS4V.js} +3 -3
- package/dist/consent/index.js +13 -9
- package/dist/consent/index.js.map +1 -1
- package/dist/{cover-5BSNJREH.js → cover/index.js} +7 -6
- package/dist/crdt/index.js +4 -0
- package/dist/crdt/index.js.map +1 -1
- package/dist/custody/index.js +26 -0
- package/dist/{dead-filter-JXVCKS6W.js → dead-filter-6DYY7S64.js} +2 -2
- package/dist/{chunk-ILM6X6CP.js → delegation-ONOZVPIP.js} +12 -6
- package/dist/{chunk-ILM6X6CP.js.map → delegation-ONOZVPIP.js.map} +1 -1
- package/dist/derivations/index.js +12 -12
- package/dist/derive-IGGVSUPH.js +22 -0
- package/dist/directory/index.js +46 -0
- package/dist/{dispatch-PKQQFDBT.js → dispatch-7T45NN7C.js} +19 -18
- package/dist/{dispatch-PKQQFDBT.js.map → dispatch-7T45NN7C.js.map} +1 -1
- package/dist/{dispatch-SMXUO7W5.js → dispatch-RPTLK7LJ.js} +5 -5
- package/dist/{enclave-I5H3GINP.js → enclave-CLJVSDFG.js} +9 -9
- package/dist/executor-IEBLTBCW.js +9 -0
- package/dist/executor-RM7XWQDU.js +9 -0
- package/dist/executor-XZYM4KHT.js +28 -0
- package/dist/export-accessible-24XCCD3A.js +23 -0
- package/dist/extract-partition-H2TPEEOF.js +38 -0
- package/dist/{fanout-sidecar-WWXVHHUH.js → fanout-sidecar-TV7CXAJ6.js} +9 -9
- package/dist/find-OZMTRIK3.js +11 -0
- package/dist/forget/index.js +11 -11
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +4 -4
- package/dist/history/index.js +16 -12
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +16 -14
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +18 -24
- package/dist/index.js +212 -2045
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +4 -2
- package/dist/indexing/index.js.map +1 -1
- package/dist/introspection/index.js +28 -0
- package/dist/issue-55HJE7JF.js +19 -0
- package/dist/kernel/collection-config.d.ts +1 -1
- package/dist/kernel/collection.d.ts +2 -2
- package/dist/kernel/errors.d.ts +2 -2
- package/dist/kernel/lazy.d.ts +30 -0
- package/dist/kernel/noydb.d.ts +22 -11
- package/dist/kernel/query/builder.d.ts +10 -10
- package/dist/kernel/query/index.d.ts +0 -6
- package/dist/kernel/query/scan-builder.d.ts +4 -4
- package/dist/kernel/types.d.ts +25 -25
- package/dist/kernel/vault.d.ts +10 -10
- package/dist/{ledger-M2BKCNVS.js → ledger-XY6NP3J2.js} +11 -11
- package/dist/liberate-LXOJ2EMB.js +24 -0
- package/dist/{link-set-ZU4E5J5S.js → link-set-POQB7BU5.js} +11 -11
- package/dist/materialized-views/index.js +22 -19
- package/dist/money/index.js +31 -0
- package/dist/noydb-KXS35UJS.js +82 -0
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +15 -13
- package/dist/pod/index.js +11 -12
- package/dist/{policy-IY2YEA3A.js → policy/index.js} +6 -6
- package/dist/port/with/blob-strategy.d.ts +15 -5
- package/dist/port/with/collection-registries.d.ts +62 -0
- package/dist/port/with/strategies.d.ts +11 -11
- package/dist/port/with/team-strategy.d.ts +2 -1
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-XIAHB6KF.js → post-register-URQANI3B.js} +6 -6
- package/dist/query/index.js +6 -46
- package/dist/{aggregate → reduce}/index.js +24 -17
- package/dist/reduce/index.js.map +1 -0
- package/dist/register-5W6CG4RM.js +25 -0
- package/dist/registry-7Y5WF7GS.js +9 -0
- package/dist/{registry-VW6P6A3J.js → registry-BWD2ED52.js} +2 -2
- package/dist/registry-MCSGBZXI.js +18 -0
- package/dist/registry-UJFP3NWF.js +19 -0
- package/dist/request-withdrawal-IWYDM4SO.js +31 -0
- package/dist/{reveal-VWXRV2XU.js → reveal-BXZGWIOP.js} +6 -6
- package/dist/revoke-TINYPHYY.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +26 -0
- package/dist/sealed-record/index.js +12 -12
- package/dist/search/index.js +36 -0
- package/dist/{seed-CDBFOTIK.js → seed-F7YYQTRC.js} +11 -11
- package/dist/sequence/index.js +30 -0
- package/dist/session/index.js +13 -9
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.js +6 -2
- package/dist/shadow/index.js.map +1 -1
- package/dist/signer-WMZKCNKC.js +25 -0
- package/dist/snapshots/index.js +14 -10
- package/dist/snapshots/index.js.map +1 -1
- package/dist/{stale-NBROTA66.js → stale-JOE7GBAE.js} +11 -10
- package/dist/storage-B3WBKXKT.js +23 -0
- package/dist/store/index.js +22 -0
- package/dist/{store-coordination-provider-P3IU5JHD.js → store-coordination-provider-5LX2UFU2.js} +3 -3
- package/dist/sync/index.js +14 -10
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.js +36 -29
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +1 -1
- package/dist/{tx → transactions}/index.js +7 -3
- package/dist/transactions/index.js.map +1 -0
- package/dist/util/index.js +1 -1
- package/dist/{verify-5X37OXRY.js → verify-7XWHJWUN.js} +5 -5
- package/dist/via/blob/active.d.ts +7 -18
- package/dist/via/blob/binding.d.ts +1 -1
- package/dist/via/blob/index.d.ts +4 -2
- package/dist/via/i18n/core.d.ts +1 -1
- package/dist/via/i18n/index.d.ts +2 -0
- package/dist/via/money/money-reducer.d.ts +2 -2
- package/dist/walk-6OHAWGBS.js +21 -0
- package/dist/with-audit/consent/index.d.ts +2 -0
- package/dist/with-audit/forget/active.d.ts +3 -3
- package/dist/with-audit/forget/index.d.ts +4 -4
- package/dist/with-audit/forget/strategy.d.ts +3 -3
- package/dist/with-audit/guards/executor.d.ts +4 -4
- package/dist/with-audit/guards/immutable-guard.d.ts +3 -3
- package/dist/with-audit/guards/index.d.ts +1 -1
- package/dist/with-audit/guards/registry.d.ts +3 -3
- package/dist/with-audit/guards/transition-guard.d.ts +3 -3
- package/dist/with-audit/guards/types.d.ts +10 -10
- package/dist/with-audit/guards/with-guard.d.ts +2 -2
- package/dist/with-audit/periods/index.d.ts +2 -0
- package/dist/with-cargo/floor.d.ts +3 -3
- package/dist/with-commit/crdt/index.d.ts +2 -0
- package/dist/with-commit/history/index.d.ts +2 -0
- package/dist/with-commit/numbering/descriptor.d.ts +16 -6
- package/dist/with-commit/tx/active.d.ts +5 -5
- package/dist/with-commit/tx/index.d.ts +2 -2
- package/dist/with-commit/tx/invariants.d.ts +1 -1
- package/dist/with-commit/tx/strategy.d.ts +3 -3
- package/dist/with-fork/shadow/index.d.ts +2 -0
- package/dist/with-fork/snapshots/active.d.ts +2 -2
- package/dist/with-fork/snapshots/index.d.ts +3 -1
- package/dist/with-fork/snapshots/noydb-facade.d.ts +3 -3
- package/dist/with-fork/snapshots/strategy.d.ts +2 -2
- package/dist/with-formula/derivations/executor.d.ts +2 -2
- package/dist/with-formula/derivations/index.d.ts +2 -1
- package/dist/with-formula/derivations/registry.d.ts +3 -3
- package/dist/with-formula/derivations/stale.d.ts +2 -2
- package/dist/with-formula/derivations/types.d.ts +3 -3
- package/dist/with-formula/derivations/with-derivation.d.ts +2 -2
- package/dist/with-formula/derivations/with-rollup.d.ts +15 -8
- package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +3 -3
- package/dist/with-formula/materialized-views/index.d.ts +1 -1
- package/dist/with-formula/materialized-views/registry.d.ts +4 -4
- package/dist/with-formula/materialized-views/types.d.ts +11 -11
- package/dist/with-formula/materialized-views/with-materialized-view.d.ts +2 -2
- package/dist/with-formula/overlay-views/index.d.ts +1 -1
- package/dist/with-formula/overlay-views/registry.d.ts +4 -4
- package/dist/with-formula/overlay-views/types.d.ts +3 -3
- package/dist/with-formula/overlay-views/virtual-collection.d.ts +2 -2
- package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +2 -2
- package/dist/with-lookup/indexing/active.d.ts +5 -5
- package/dist/with-lookup/indexing/index.d.ts +3 -1
- package/dist/with-lookup/indexing/strategy.d.ts +3 -3
- package/dist/with-lookup/{aggregate → reduce}/active.d.ts +8 -8
- package/dist/with-lookup/{aggregate → reduce}/groupby.d.ts +21 -21
- package/dist/with-lookup/reduce/index.d.ts +34 -0
- package/dist/with-lookup/{aggregate → reduce}/reducers.d.ts +10 -10
- package/dist/with-lookup/{aggregate/aggregation.d.ts → reduce/reduction.d.ts} +21 -21
- package/dist/with-lookup/{aggregate → reduce}/strategy.d.ts +15 -15
- package/dist/with-lookup/search/build-docs.d.ts +7 -2
- package/dist/with-lookup/search/index.d.ts +1 -1
- package/dist/with-party/directory/cover/index.d.ts +1 -0
- package/dist/with-party/directory/index.d.ts +2 -0
- package/dist/with-party/session/index.d.ts +2 -0
- package/dist/with-party/sync/index.d.ts +2 -0
- package/dist/with-party/team/index.d.ts +2 -0
- package/dist/with-party/team/keyring.d.ts +68 -20
- package/dist/with-party/team/noydb-facade.d.ts +2 -1
- package/dist/with-shape/blobs/blob-set.d.ts +1 -1
- package/dist/with-shape/introspection/index.d.ts +6 -0
- package/dist/with-shape/schema-update/index.d.ts +1 -0
- package/dist/with-store/index.d.ts +3 -2
- package/dist/withdraw-accessible-DEUCOO4F.js +28 -0
- package/dist/withdraw-accessible-DEUCOO4F.js.map +1 -0
- package/package.json +42 -30
- package/dist/aggregate/index.js.map +0 -1
- package/dist/api-22ES33N3.js +0 -20
- package/dist/as/index.js +0 -30
- package/dist/at/index.js +0 -1
- package/dist/by/index.js +0 -11
- package/dist/chunk-2PDBYF2O.js.map +0 -1
- package/dist/chunk-2YELV6TV.js +0 -1
- package/dist/chunk-3LJYHE7S.js.map +0 -1
- package/dist/chunk-6SYOHUHM.js.map +0 -1
- package/dist/chunk-7ICV4ASA.js.map +0 -1
- package/dist/chunk-AFAPBZAA.js.map +0 -1
- package/dist/chunk-BY5YBSXA.js.map +0 -1
- package/dist/chunk-CJVEAVYH.js +0 -205
- package/dist/chunk-CJVEAVYH.js.map +0 -1
- package/dist/chunk-CKUYQO2P.js.map +0 -1
- package/dist/chunk-D4LAJ737.js.map +0 -1
- package/dist/chunk-DYZ5CCVM.js.map +0 -1
- package/dist/chunk-EEZCB74X.js.map +0 -1
- package/dist/chunk-EGU4PWQW.js.map +0 -1
- package/dist/chunk-FIP7KI2P.js.map +0 -1
- package/dist/chunk-GHEMAVTN.js.map +0 -1
- package/dist/chunk-HAPY7WFP.js.map +0 -1
- package/dist/chunk-HQKRZIX6.js.map +0 -1
- package/dist/chunk-I2XEBEEF.js.map +0 -1
- package/dist/chunk-IGLU4ME7.js +0 -255
- package/dist/chunk-IGLU4ME7.js.map +0 -1
- package/dist/chunk-J5TEU77Q.js.map +0 -1
- package/dist/chunk-KJTIAECI.js.map +0 -1
- package/dist/chunk-L2CAWCQL.js.map +0 -1
- package/dist/chunk-LB7FD65R.js +0 -163
- package/dist/chunk-LB7FD65R.js.map +0 -1
- package/dist/chunk-PWWWMRT7.js.map +0 -1
- package/dist/chunk-QMMOMBH6.js.map +0 -1
- package/dist/chunk-SEU6QHH4.js.map +0 -1
- package/dist/chunk-TNATF3HB.js.map +0 -1
- package/dist/chunk-TSNRZSRC.js.map +0 -1
- package/dist/chunk-V5JUAW4M.js.map +0 -1
- package/dist/chunk-VEGQYPCP.js.map +0 -1
- package/dist/chunk-X3MWEFPT.js.map +0 -1
- package/dist/chunk-XUFAFHQM.js.map +0 -1
- package/dist/chunk-YJ3TREAC.js.map +0 -1
- package/dist/chunk-YMUGBZN2.js.map +0 -1
- package/dist/chunk-YTW6ZIPD.js.map +0 -1
- package/dist/chunk-YXZNGHID.js.map +0 -1
- package/dist/chunk-YZN6NRTR.js.map +0 -1
- package/dist/chunk-ZX5FNWH7.js.map +0 -1
- package/dist/collection-facade-XKCFHSLR.js +0 -44
- package/dist/delegation-WWZPEDK2.js +0 -25
- package/dist/derive-CWWFEQ4N.js +0 -21
- package/dist/executor-FCJEH3FU.js +0 -9
- package/dist/executor-OHET7TF7.js +0 -9
- package/dist/executor-SHYLIBOM.js +0 -26
- package/dist/export-accessible-FBL6TDSK.js +0 -23
- package/dist/extract-partition-ZYIRYMTI.js +0 -38
- package/dist/find-LEBUXVL7.js +0 -11
- package/dist/in/index.js +0 -1
- package/dist/issue-F76PAGIR.js +0 -19
- package/dist/liberate-ZP7UB57K.js +0 -24
- package/dist/noydb-BNDGEK5X.js +0 -71
- package/dist/on/index.js +0 -17
- package/dist/port/as/index.d.ts +0 -26
- package/dist/port/at/index.d.ts +0 -18
- package/dist/port/in/index.d.ts +0 -21
- package/dist/port/on/index.d.ts +0 -27
- package/dist/port/ui/index.d.ts +0 -21
- package/dist/port/with/index.d.ts +0 -18
- package/dist/register-HB4TQZSV.js +0 -23
- package/dist/registry-6BMBFEXT.js +0 -19
- package/dist/registry-7CZWF3EQ.js +0 -9
- package/dist/registry-JOFO7RAH.js +0 -18
- package/dist/request-withdrawal-UN3TRHWI.js +0 -31
- package/dist/revoke-OLO2OVR7.js +0 -24
- package/dist/signer-MGGKPYAN.js +0 -25
- package/dist/storage-3R37QZLA.js +0 -23
- package/dist/tx/index.js.map +0 -1
- package/dist/ui/index.js +0 -1
- package/dist/with/index.js +0 -31
- package/dist/with-lookup/aggregate/index.d.ts +0 -23
- package/dist/withdraw-accessible-Q2EMATCU.js +0 -28
- /package/dist/{api-22ES33N3.js.map → api-3NKVNZPM.js.map} +0 -0
- /package/dist/{backup-YCHAC575.js.map → backup-PTSVXDDW.js.map} +0 -0
- /package/dist/{chunk-5WLDZZ6S.js.map → chunk-35NMVJ7I.js.map} +0 -0
- /package/dist/{chunk-TNJVDG2B.js.map → chunk-3XKESW5E.js.map} +0 -0
- /package/dist/{chunk-MUPZ6IZX.js.map → chunk-4JQK3L4V.js.map} +0 -0
- /package/dist/{chunk-Z4D3YGAB.js.map → chunk-4ZKNC6A6.js.map} +0 -0
- /package/dist/{chunk-ONB627HU.js.map → chunk-55LX6FSX.js.map} +0 -0
- /package/dist/{chunk-QMZ5A6FQ.js.map → chunk-56IIVAEO.js.map} +0 -0
- /package/dist/{chunk-FHHYCBBP.js.map → chunk-5DRROK5W.js.map} +0 -0
- /package/dist/{chunk-GTNRMJYH.js.map → chunk-5GQEU4DN.js.map} +0 -0
- /package/dist/{chunk-YQQPNXNO.js.map → chunk-6L3DKWRY.js.map} +0 -0
- /package/dist/{chunk-M6QA2KK2.js.map → chunk-6M2I3DKF.js.map} +0 -0
- /package/dist/{chunk-FTCGEUOY.js.map → chunk-6R6Q3MRN.js.map} +0 -0
- /package/dist/{chunk-ZUDAK436.js.map → chunk-6UBZ6I5Z.js.map} +0 -0
- /package/dist/{chunk-7U6AB7DZ.js.map → chunk-AKKRXT23.js.map} +0 -0
- /package/dist/{chunk-OWLZONGX.js.map → chunk-BLBAQRBM.js.map} +0 -0
- /package/dist/{chunk-QBOQI6PG.js.map → chunk-BN4HRYAZ.js.map} +0 -0
- /package/dist/{chunk-QVGEVZ5F.js.map → chunk-BQ6DHN4I.js.map} +0 -0
- /package/dist/{chunk-GP54LU5N.js.map → chunk-BYFXLDVV.js.map} +0 -0
- /package/dist/{chunk-QRHEAZ2Q.js.map → chunk-CUZLNGD5.js.map} +0 -0
- /package/dist/{chunk-YXIVUWDU.js.map → chunk-DGBIHDVK.js.map} +0 -0
- /package/dist/{chunk-QZJEYZ4I.js.map → chunk-DZAF24PG.js.map} +0 -0
- /package/dist/{chunk-TMR64XPL.js.map → chunk-EZNTORXE.js.map} +0 -0
- /package/dist/{chunk-JAMDDLIM.js.map → chunk-FMNU7IUG.js.map} +0 -0
- /package/dist/{as/index.js.map → chunk-GJW4HX2O.js.map} +0 -0
- /package/dist/{chunk-7BIJS6II.js.map → chunk-GP3UWP22.js.map} +0 -0
- /package/dist/{chunk-JIHH26WQ.js.map → chunk-HFUAFR6B.js.map} +0 -0
- /package/dist/{chunk-RWW3I3PO.js.map → chunk-ISRKW4YN.js.map} +0 -0
- /package/dist/{chunk-P4NUJVWL.js.map → chunk-IXNCZTWA.js.map} +0 -0
- /package/dist/{chunk-YFFEF6HR.js.map → chunk-JIDLU57U.js.map} +0 -0
- /package/dist/{chunk-PTT2NB46.js.map → chunk-JYJFGD2H.js.map} +0 -0
- /package/dist/{chunk-3OWYOECI.js.map → chunk-JYV4JJV2.js.map} +0 -0
- /package/dist/{chunk-OGVE4IJW.js.map → chunk-KBPU5M2E.js.map} +0 -0
- /package/dist/{chunk-UTEATWHO.js.map → chunk-KW42W6SV.js.map} +0 -0
- /package/dist/{chunk-UVBHM7AK.js.map → chunk-MANUDU7I.js.map} +0 -0
- /package/dist/{chunk-K7BADAOS.js.map → chunk-NEX7JCMO.js.map} +0 -0
- /package/dist/{chunk-5HSSTOOG.js.map → chunk-NFZGZ4AK.js.map} +0 -0
- /package/dist/{chunk-S4YERMGJ.js.map → chunk-OBPVWOSQ.js.map} +0 -0
- /package/dist/{chunk-OHV6T5JB.js.map → chunk-OLIWCCFM.js.map} +0 -0
- /package/dist/{chunk-2CRZOVDI.js.map → chunk-OLSARBZU.js.map} +0 -0
- /package/dist/{chunk-7LP7FFJ2.js.map → chunk-QD46HPZG.js.map} +0 -0
- /package/dist/{chunk-G4MFQXYX.js.map → chunk-QJNCB5SK.js.map} +0 -0
- /package/dist/{chunk-GEEJPID6.js.map → chunk-RZPOZPZU.js.map} +0 -0
- /package/dist/{chunk-YCAJDK4O.js.map → chunk-SGQ4N5FS.js.map} +0 -0
- /package/dist/{chunk-522MBPE5.js.map → chunk-SHEEBRZ4.js.map} +0 -0
- /package/dist/{chunk-YWZEDG7F.js.map → chunk-SHYIA73K.js.map} +0 -0
- /package/dist/{chunk-K4BWPNJO.js.map → chunk-TE6LH6J2.js.map} +0 -0
- /package/dist/{chunk-SBOHNJUD.js.map → chunk-V6UQZA2H.js.map} +0 -0
- /package/dist/{chunk-SC4JLMZI.js.map → chunk-VH6SOCXH.js.map} +0 -0
- /package/dist/{chunk-WQN5SM7P.js.map → chunk-W3G5REIU.js.map} +0 -0
- /package/dist/{chunk-OMSKGLYA.js.map → chunk-WO4T4OD5.js.map} +0 -0
- /package/dist/{chunk-6RPWILRH.js.map → chunk-WZ3NCMK6.js.map} +0 -0
- /package/dist/{chunk-BAAUFCJK.js.map → chunk-X4MVWPHV.js.map} +0 -0
- /package/dist/{chunk-R2N37AA6.js.map → chunk-XIDQKFZF.js.map} +0 -0
- /package/dist/{chunk-OWOT7CFC.js.map → chunk-Y6B6HVKC.js.map} +0 -0
- /package/dist/{chunk-5ATANZSW.js.map → chunk-Y6VZQGGH.js.map} +0 -0
- /package/dist/{chunk-YZNKFYDC.js.map → chunk-ZFUFAHZ3.js.map} +0 -0
- /package/dist/{classified-marker-52P3D72W.js.map → classified-marker-EOOSMWFC.js.map} +0 -0
- /package/dist/{at/index.js.map → collection-facade-TTRF5NFJ.js.map} +0 -0
- /package/dist/{by/index.js.map → computed-AB45PS4V.js.map} +0 -0
- /package/dist/{in → cover}/index.js.map +0 -0
- /package/dist/{on → custody}/index.js.map +0 -0
- /package/dist/{dead-filter-JXVCKS6W.js.map → dead-filter-6DYY7S64.js.map} +0 -0
- /package/dist/{chunk-2YELV6TV.js.map → derive-IGGVSUPH.js.map} +0 -0
- /package/dist/{ui → directory}/index.js.map +0 -0
- /package/dist/{dispatch-SMXUO7W5.js.map → dispatch-RPTLK7LJ.js.map} +0 -0
- /package/dist/{collection-facade-XKCFHSLR.js.map → enclave-CLJVSDFG.js.map} +0 -0
- /package/dist/{computed-33DRJDOC.js.map → executor-IEBLTBCW.js.map} +0 -0
- /package/dist/{cover-5BSNJREH.js.map → executor-RM7XWQDU.js.map} +0 -0
- /package/dist/{delegation-WWZPEDK2.js.map → executor-XZYM4KHT.js.map} +0 -0
- /package/dist/{derive-CWWFEQ4N.js.map → export-accessible-24XCCD3A.js.map} +0 -0
- /package/dist/{enclave-I5H3GINP.js.map → extract-partition-H2TPEEOF.js.map} +0 -0
- /package/dist/{fanout-sidecar-WWXVHHUH.js.map → fanout-sidecar-TV7CXAJ6.js.map} +0 -0
- /package/dist/{executor-FCJEH3FU.js.map → find-OZMTRIK3.js.map} +0 -0
- /package/dist/{with → introspection}/index.js.map +0 -0
- /package/dist/{executor-OHET7TF7.js.map → issue-55HJE7JF.js.map} +0 -0
- /package/dist/{executor-SHYLIBOM.js.map → ledger-XY6NP3J2.js.map} +0 -0
- /package/dist/{export-accessible-FBL6TDSK.js.map → liberate-LXOJ2EMB.js.map} +0 -0
- /package/dist/{extract-partition-ZYIRYMTI.js.map → link-set-POQB7BU5.js.map} +0 -0
- /package/dist/{find-LEBUXVL7.js.map → money/index.js.map} +0 -0
- /package/dist/{issue-F76PAGIR.js.map → noydb-KXS35UJS.js.map} +0 -0
- /package/dist/{ledger-M2BKCNVS.js.map → policy/index.js.map} +0 -0
- /package/dist/{post-register-XIAHB6KF.js.map → post-register-URQANI3B.js.map} +0 -0
- /package/dist/{liberate-ZP7UB57K.js.map → register-5W6CG4RM.js.map} +0 -0
- /package/dist/{link-set-ZU4E5J5S.js.map → registry-7Y5WF7GS.js.map} +0 -0
- /package/dist/{noydb-BNDGEK5X.js.map → registry-BWD2ED52.js.map} +0 -0
- /package/dist/{policy-IY2YEA3A.js.map → registry-MCSGBZXI.js.map} +0 -0
- /package/dist/{register-HB4TQZSV.js.map → registry-UJFP3NWF.js.map} +0 -0
- /package/dist/{registry-6BMBFEXT.js.map → request-withdrawal-IWYDM4SO.js.map} +0 -0
- /package/dist/{reveal-VWXRV2XU.js.map → reveal-BXZGWIOP.js.map} +0 -0
- /package/dist/{registry-7CZWF3EQ.js.map → revoke-TINYPHYY.js.map} +0 -0
- /package/dist/{registry-JOFO7RAH.js.map → schema-update/index.js.map} +0 -0
- /package/dist/{registry-VW6P6A3J.js.map → search/index.js.map} +0 -0
- /package/dist/{seed-CDBFOTIK.js.map → seed-F7YYQTRC.js.map} +0 -0
- /package/dist/{request-withdrawal-UN3TRHWI.js.map → sequence/index.js.map} +0 -0
- /package/dist/{revoke-OLO2OVR7.js.map → signer-WMZKCNKC.js.map} +0 -0
- /package/dist/{signer-MGGKPYAN.js.map → stale-JOE7GBAE.js.map} +0 -0
- /package/dist/{stale-NBROTA66.js.map → storage-B3WBKXKT.js.map} +0 -0
- /package/dist/{storage-3R37QZLA.js.map → store/index.js.map} +0 -0
- /package/dist/{store-coordination-provider-P3IU5JHD.js.map → store-coordination-provider-5LX2UFU2.js.map} +0 -0
- /package/dist/{verify-5X37OXRY.js.map → verify-7XWHJWUN.js.map} +0 -0
- /package/dist/{withdraw-accessible-Q2EMATCU.js.map → walk-6OHAWGBS.js.map} +0 -0
- /package/dist/with-lookup/{aggregate → reduce}/canonical-key.d.ts +0 -0
|
@@ -1,33 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadVaultPolicy
|
|
3
|
+
} from "./chunk-56IIVAEO.js";
|
|
1
4
|
import {
|
|
2
5
|
assertStrongSecret,
|
|
3
6
|
mintKeyringCanary,
|
|
4
7
|
persistKeyring
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import {
|
|
7
|
-
burnPaperRecoveryEntry,
|
|
8
|
-
loadPaperRecoveryEntries,
|
|
9
|
-
loadShamirRecoveryEntries,
|
|
10
|
-
unwrapDeksFromPaperEntry,
|
|
11
|
-
unwrapDeksFromShamirEntry
|
|
12
|
-
} from "./chunk-CJVEAVYH.js";
|
|
8
|
+
} from "./chunk-KPXM4WO6.js";
|
|
13
9
|
import {
|
|
14
10
|
dekKey
|
|
15
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PTHKZWEH.js";
|
|
16
12
|
import {
|
|
17
13
|
openEnvelopeJson
|
|
18
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RZPOZPZU.js";
|
|
19
15
|
import {
|
|
20
16
|
base64ToBuffer,
|
|
21
17
|
bufferToBase64,
|
|
22
18
|
deriveKey,
|
|
19
|
+
deriveSecretKey,
|
|
23
20
|
encrypt,
|
|
24
21
|
generateSalt,
|
|
25
22
|
unwrapKey,
|
|
26
23
|
wrapKey
|
|
27
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-AKKRXT23.js";
|
|
28
25
|
import {
|
|
26
|
+
NOYDB_FORMAT_VERSION,
|
|
29
27
|
NOYDB_KEYRING_VERSION
|
|
30
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-GZACYEOB.js";
|
|
31
29
|
import {
|
|
32
30
|
DelegationTargetMissingError,
|
|
33
31
|
InvalidKeyError,
|
|
@@ -37,7 +35,7 @@ import {
|
|
|
37
35
|
RecoveryProfileNotImplementedError,
|
|
38
36
|
TeamNotEnabledError,
|
|
39
37
|
ValidationError
|
|
40
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-QZWTRENR.js";
|
|
41
39
|
|
|
42
40
|
// src/port/with/team-strategy.ts
|
|
43
41
|
var NO_TEAM = {
|
|
@@ -52,18 +50,199 @@ var NO_TEAM = {
|
|
|
52
50
|
}
|
|
53
51
|
};
|
|
54
52
|
|
|
53
|
+
// src/with-party/team/wrapped-deks.ts
|
|
54
|
+
var PBKDF2_ITERATIONS = 6e5;
|
|
55
|
+
var SALT_BYTES = 32;
|
|
56
|
+
var IV_BYTES = 12;
|
|
57
|
+
var subtle = globalThis.crypto.subtle;
|
|
58
|
+
async function mintWrappedDeksBlob(deks, credential) {
|
|
59
|
+
const salt = crypto.getRandomValues(new Uint8Array(SALT_BYTES));
|
|
60
|
+
const iv = crypto.getRandomValues(new Uint8Array(IV_BYTES));
|
|
61
|
+
const wrappingKey = await deriveWrappingKey(credential, salt);
|
|
62
|
+
const exported = {};
|
|
63
|
+
for (const [coll, dek] of deks) {
|
|
64
|
+
const raw = await subtle.exportKey("raw", dek);
|
|
65
|
+
exported[coll] = bytesToBase64(new Uint8Array(raw));
|
|
66
|
+
}
|
|
67
|
+
const plaintext = new TextEncoder().encode(JSON.stringify({ deks: exported }));
|
|
68
|
+
const ciphertext = await subtle.encrypt(
|
|
69
|
+
{ name: "AES-GCM", iv },
|
|
70
|
+
wrappingKey,
|
|
71
|
+
plaintext
|
|
72
|
+
);
|
|
73
|
+
return {
|
|
74
|
+
salt: bytesToBase64(salt),
|
|
75
|
+
iv: bytesToBase64(iv),
|
|
76
|
+
wrappedDeks: bytesToBase64(new Uint8Array(ciphertext))
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function unwrapDeksFromBlob(blob, credential) {
|
|
80
|
+
const wrappingKey = await deriveWrappingKey(credential, base64ToBytes(blob.salt));
|
|
81
|
+
const plaintext = await subtle.decrypt(
|
|
82
|
+
{ name: "AES-GCM", iv: base64ToBytes(blob.iv) },
|
|
83
|
+
wrappingKey,
|
|
84
|
+
base64ToBytes(blob.wrappedDeks)
|
|
85
|
+
);
|
|
86
|
+
const parsed = JSON.parse(new TextDecoder().decode(plaintext));
|
|
87
|
+
const deks = /* @__PURE__ */ new Map();
|
|
88
|
+
for (const [coll, b64] of Object.entries(parsed.deks)) {
|
|
89
|
+
const raw = base64ToBytes(b64);
|
|
90
|
+
const key = await subtle.importKey(
|
|
91
|
+
"raw",
|
|
92
|
+
raw,
|
|
93
|
+
{ name: "AES-GCM", length: 256 },
|
|
94
|
+
true,
|
|
95
|
+
["encrypt", "decrypt"]
|
|
96
|
+
);
|
|
97
|
+
deks.set(coll, key);
|
|
98
|
+
}
|
|
99
|
+
return deks;
|
|
100
|
+
}
|
|
101
|
+
async function deriveWrappingKey(credential, salt) {
|
|
102
|
+
return deriveSecretKey(credential, salt, { iterations: PBKDF2_ITERATIONS, keyUsage: "aes-gcm" });
|
|
103
|
+
}
|
|
104
|
+
function bytesToBase64(b) {
|
|
105
|
+
let s = "";
|
|
106
|
+
for (const x of b) s += String.fromCharCode(x);
|
|
107
|
+
return btoa(s);
|
|
108
|
+
}
|
|
109
|
+
function base64ToBytes(b64) {
|
|
110
|
+
const s = atob(b64);
|
|
111
|
+
const out = new Uint8Array(s.length);
|
|
112
|
+
for (let i = 0; i < s.length; i++) out[i] = s.charCodeAt(i);
|
|
113
|
+
return out;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/with-party/team/recovery.ts
|
|
117
|
+
var PAPER_DOC_ID = "recovery-paper";
|
|
118
|
+
async function loadPaperRecoveryEntries(store, vault) {
|
|
119
|
+
const env = await store.get(vault, "_meta", PAPER_DOC_ID);
|
|
120
|
+
if (!env) return [];
|
|
121
|
+
try {
|
|
122
|
+
const doc = JSON.parse(env._data);
|
|
123
|
+
if (doc.profile !== "paper" || !Array.isArray(doc.entries)) return [];
|
|
124
|
+
return doc.entries;
|
|
125
|
+
} catch {
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function savePaperRecoveryEntries(store, vault, entries) {
|
|
130
|
+
const doc = {
|
|
131
|
+
_noydb_recovery: 1,
|
|
132
|
+
profile: "paper",
|
|
133
|
+
entries
|
|
134
|
+
};
|
|
135
|
+
const envelope = {
|
|
136
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
137
|
+
_v: 1,
|
|
138
|
+
_ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
139
|
+
_iv: "",
|
|
140
|
+
_data: JSON.stringify(doc)
|
|
141
|
+
};
|
|
142
|
+
await store.put(vault, "_meta", PAPER_DOC_ID, envelope);
|
|
143
|
+
}
|
|
144
|
+
async function burnPaperRecoveryEntry(store, vault, codeId) {
|
|
145
|
+
const entries = await loadPaperRecoveryEntries(store, vault);
|
|
146
|
+
const remaining = entries.filter((e) => e.codeId !== codeId);
|
|
147
|
+
await savePaperRecoveryEntries(store, vault, remaining);
|
|
148
|
+
}
|
|
149
|
+
async function hasRecoveryEnrolled(store, vault) {
|
|
150
|
+
const paper = await loadPaperRecoveryEntries(store, vault);
|
|
151
|
+
if (paper.length > 0) return true;
|
|
152
|
+
const shamir = await loadShamirRecoveryEntries(store, vault);
|
|
153
|
+
return shamir.length > 0;
|
|
154
|
+
}
|
|
155
|
+
async function hasStrongRecoveryEnrolled(store, vault) {
|
|
156
|
+
const shamir = await loadShamirRecoveryEntries(store, vault);
|
|
157
|
+
return shamir.length > 0;
|
|
158
|
+
}
|
|
159
|
+
var SHAMIR_DOC_ID = "recovery-shamir";
|
|
160
|
+
async function loadShamirRecoveryEntries(store, vault) {
|
|
161
|
+
const env = await store.get(vault, "_meta", SHAMIR_DOC_ID);
|
|
162
|
+
if (!env) return [];
|
|
163
|
+
try {
|
|
164
|
+
const doc = JSON.parse(env._data);
|
|
165
|
+
if (doc.profile !== "shamir" || !Array.isArray(doc.entries)) return [];
|
|
166
|
+
return doc.entries;
|
|
167
|
+
} catch {
|
|
168
|
+
return [];
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async function saveShamirRecoveryEntries(store, vault, entries) {
|
|
172
|
+
const doc = {
|
|
173
|
+
_noydb_recovery: 1,
|
|
174
|
+
profile: "shamir",
|
|
175
|
+
entries
|
|
176
|
+
};
|
|
177
|
+
const envelope = {
|
|
178
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
179
|
+
_v: 1,
|
|
180
|
+
_ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
181
|
+
_iv: "",
|
|
182
|
+
_data: JSON.stringify(doc)
|
|
183
|
+
};
|
|
184
|
+
await store.put(vault, "_meta", SHAMIR_DOC_ID, envelope);
|
|
185
|
+
}
|
|
186
|
+
async function mintShamirRecoveryEntry(provider, deks, entryId, k, n, label) {
|
|
187
|
+
const recoverySecret = crypto.getRandomValues(new Uint8Array(32));
|
|
188
|
+
try {
|
|
189
|
+
const credential = bytesToBase642(recoverySecret);
|
|
190
|
+
const blob = await mintWrappedDeksBlob(deks, credential);
|
|
191
|
+
const shareStrings = provider.splitToShares(recoverySecret, k, n);
|
|
192
|
+
const entry = {
|
|
193
|
+
...blob,
|
|
194
|
+
entryId,
|
|
195
|
+
k,
|
|
196
|
+
n,
|
|
197
|
+
enrolledAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
198
|
+
...label !== void 0 && { label }
|
|
199
|
+
};
|
|
200
|
+
return { entry, shareStrings };
|
|
201
|
+
} finally {
|
|
202
|
+
recoverySecret.fill(0);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async function unwrapDeksFromShamirEntry(provider, entry, shareStrings) {
|
|
206
|
+
if (shareStrings.length < entry.k) {
|
|
207
|
+
throw new Error(
|
|
208
|
+
`Insufficient shares: this Shamir entry needs ${entry.k} of ${entry.n}, but ${shareStrings.length} were provided.`
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
const secret = provider.combineShares(shareStrings);
|
|
212
|
+
try {
|
|
213
|
+
return await unwrapDeksFromBlob(entry, bytesToBase642(secret));
|
|
214
|
+
} finally {
|
|
215
|
+
secret.fill(0);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function bytesToBase642(b) {
|
|
219
|
+
let s = "";
|
|
220
|
+
for (const x of b) s += String.fromCharCode(x);
|
|
221
|
+
return btoa(s);
|
|
222
|
+
}
|
|
223
|
+
async function mintPaperRecoveryEntry(deks, code, codeId) {
|
|
224
|
+
const blob = await mintWrappedDeksBlob(deks, code);
|
|
225
|
+
return {
|
|
226
|
+
...blob,
|
|
227
|
+
codeId,
|
|
228
|
+
enrolledAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
async function unwrapDeksFromPaperEntry(entry, code) {
|
|
232
|
+
return unwrapDeksFromBlob(entry, code);
|
|
233
|
+
}
|
|
234
|
+
|
|
55
235
|
// src/with-party/team/magic-link-grant.ts
|
|
56
236
|
var MAGIC_LINK_GRANTS_COLLECTION = "_magic_link_grants";
|
|
57
237
|
var MAGIC_LINK_CONTENT_INFO_PREFIX = "noydb-magic-link-content-v1:";
|
|
58
|
-
var MAGIC_LINK_KEK_INFO_PREFIX = "noydb-magic-link-v1:";
|
|
59
238
|
async function deriveMagicLinkContentKey(serverSecret, token, vault) {
|
|
60
|
-
const
|
|
239
|
+
const subtle2 = globalThis.crypto.subtle;
|
|
61
240
|
const ikmBytes = serverSecret instanceof Uint8Array ? serverSecret : new TextEncoder().encode(serverSecret);
|
|
62
241
|
const tokenBytes = new TextEncoder().encode(token);
|
|
63
|
-
const saltBuffer = await
|
|
242
|
+
const saltBuffer = await subtle2.digest("SHA-256", tokenBytes);
|
|
64
243
|
const info = new TextEncoder().encode(MAGIC_LINK_CONTENT_INFO_PREFIX + vault);
|
|
65
|
-
const ikm = await
|
|
66
|
-
return
|
|
244
|
+
const ikm = await subtle2.importKey("raw", ikmBytes, "HKDF", false, ["deriveKey"]);
|
|
245
|
+
return subtle2.deriveKey(
|
|
67
246
|
{ name: "HKDF", hash: "SHA-256", salt: saltBuffer, info },
|
|
68
247
|
ikm,
|
|
69
248
|
{ name: "AES-GCM", length: 256 },
|
|
@@ -483,6 +662,129 @@ async function recoverUser(store, vault, callerKeyring, options) {
|
|
|
483
662
|
await store.put(vault, "_keyring", options.userId, envelope);
|
|
484
663
|
}
|
|
485
664
|
|
|
665
|
+
// src/with-party/auth-introspection/index.ts
|
|
666
|
+
async function describeAuthConfig(store, vault) {
|
|
667
|
+
const policy = await loadVaultPolicy(store, vault) ?? defaultPolicySnapshot();
|
|
668
|
+
const recoveryProfiles = await listRecoveryProfilesEnrolled(store, vault);
|
|
669
|
+
const lines = [];
|
|
670
|
+
lines.push(`Vault "${vault}" \u2014 three-tier authentication`);
|
|
671
|
+
lines.push("");
|
|
672
|
+
lines.push("Tier 1 \u2014 Secret (master)");
|
|
673
|
+
lines.push(` Phrase format: ${policy.secret?.minWords ?? 6}+ words, lowercase letters, \u2265${policy.secret?.minWordLength ?? 3} chars/word`);
|
|
674
|
+
lines.push(" Strength validator: enforced (override available for tests only)");
|
|
675
|
+
lines.push("");
|
|
676
|
+
lines.push("Tier 2 \u2014 Authenticate (routine login)");
|
|
677
|
+
lines.push(" Allowed methods: WebAuthn (passkey), OIDC, Password");
|
|
678
|
+
lines.push(" Slots per user: unlimited");
|
|
679
|
+
lines.push("");
|
|
680
|
+
lines.push("Tier 3 \u2014 Unlock (quick resume)");
|
|
681
|
+
lines.push(" Method: PIN (per-app configurable)");
|
|
682
|
+
lines.push("");
|
|
683
|
+
lines.push(`Recovery profiles enrolled: ${recoveryProfiles.length === 0 ? "none" : recoveryProfiles.join(", ")}`);
|
|
684
|
+
lines.push("Managed-secret mode: off (post-1.0)");
|
|
685
|
+
lines.push("");
|
|
686
|
+
lines.push("Sensitive-action gates:");
|
|
687
|
+
for (const [gate, gp] of Object.entries(policy.gates)) {
|
|
688
|
+
lines.push(` ${gate} \u2014 ${describeGatePolicy(gp)}`);
|
|
689
|
+
}
|
|
690
|
+
return lines.join("\n");
|
|
691
|
+
}
|
|
692
|
+
async function diagramAuthConfig(store, vault) {
|
|
693
|
+
const policy = await loadVaultPolicy(store, vault) ?? defaultPolicySnapshot();
|
|
694
|
+
const lines = [];
|
|
695
|
+
lines.push("flowchart TB");
|
|
696
|
+
lines.push(` vault["Vault: ${escapeMermaid(vault)}"]`);
|
|
697
|
+
lines.push(' tier1["Tier 1<br/>Secret"]');
|
|
698
|
+
lines.push(' tier2["Tier 2<br/>Multi-slot Authenticate"]');
|
|
699
|
+
lines.push(' tier3["Tier 3<br/>PIN / Quick-resume"]');
|
|
700
|
+
lines.push(" vault --> tier1");
|
|
701
|
+
lines.push(" tier1 --> tier2");
|
|
702
|
+
lines.push(" tier2 --> tier3");
|
|
703
|
+
for (const [gateName, gp] of Object.entries(policy.gates)) {
|
|
704
|
+
if (gp.enabled === false) continue;
|
|
705
|
+
const id = sanitizeId(gateName);
|
|
706
|
+
const label = `${gateName}<br/>tier \u2265 ${gp.minTier}`;
|
|
707
|
+
lines.push(` ${id}["${escapeMermaid(label)}"]`);
|
|
708
|
+
const tierNode = gp.minTier === 1 ? "tier1" : gp.minTier === 2 ? "tier2" : "tier3";
|
|
709
|
+
lines.push(` ${tierNode} --> ${id}`);
|
|
710
|
+
}
|
|
711
|
+
return lines.join("\n");
|
|
712
|
+
}
|
|
713
|
+
async function describeUserAuth(store, vault, userId) {
|
|
714
|
+
const env = await store.get(vault, "_keyring", userId);
|
|
715
|
+
if (!env) return "";
|
|
716
|
+
const file = JSON.parse(env._data);
|
|
717
|
+
const lines = [];
|
|
718
|
+
lines.push(
|
|
719
|
+
`User: ${file.user_id} (joined ${file.created_at.slice(0, 10)}, role: ${file.role})`
|
|
720
|
+
);
|
|
721
|
+
lines.push("");
|
|
722
|
+
lines.push("Tier 2 enrollments:");
|
|
723
|
+
if (!file.authenticators || file.authenticators.length === 0) {
|
|
724
|
+
lines.push(" (none enrolled)");
|
|
725
|
+
} else {
|
|
726
|
+
for (const slot of file.authenticators) {
|
|
727
|
+
lines.push(` - ${describeSlot(slot)}`);
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
return lines.join("\n");
|
|
731
|
+
}
|
|
732
|
+
async function describeAllUsersAuth(store, vault) {
|
|
733
|
+
const ids = await store.list(vault, "_keyring");
|
|
734
|
+
const results = [];
|
|
735
|
+
for (const userId of ids) {
|
|
736
|
+
const description = await describeUserAuth(store, vault, userId);
|
|
737
|
+
if (description !== "") results.push({ userId, description });
|
|
738
|
+
}
|
|
739
|
+
return results;
|
|
740
|
+
}
|
|
741
|
+
var SLOT_FIELD_ALLOWLIST = [
|
|
742
|
+
"id",
|
|
743
|
+
"method",
|
|
744
|
+
"enrolled_at",
|
|
745
|
+
"enrolled_via_tier"
|
|
746
|
+
];
|
|
747
|
+
function describeSlot(slot) {
|
|
748
|
+
const sanitized = {};
|
|
749
|
+
for (const key of SLOT_FIELD_ALLOWLIST) {
|
|
750
|
+
if (key in slot) {
|
|
751
|
+
sanitized[key] = slot[key];
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
const date = (sanitized.enrolled_at ?? "").slice(0, 10);
|
|
755
|
+
return `${sanitized.method ?? "?"} (id=${sanitized.id ?? "?"}, enrolled ${date}, via tier ${sanitized.enrolled_via_tier ?? "?"})`;
|
|
756
|
+
}
|
|
757
|
+
function describeGatePolicy(gp) {
|
|
758
|
+
if (gp.enabled === false) return "disabled";
|
|
759
|
+
const parts = [];
|
|
760
|
+
parts.push(`tier ${gp.minTier}`);
|
|
761
|
+
if (gp.factors && gp.factors.length > 0) {
|
|
762
|
+
for (const f of gp.factors) {
|
|
763
|
+
parts.push(`+ ${f.count ?? 1}\xD7 ${f.anyOf.join("|")}`);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
if (gp.warn?.sharedDevice === "block") parts.push("block-on-shared-device");
|
|
767
|
+
return parts.join(" ");
|
|
768
|
+
}
|
|
769
|
+
function defaultPolicySnapshot() {
|
|
770
|
+
return {
|
|
771
|
+
secret: { minWords: 6, minWordLength: 3, rejectRepeatedAdjacent: true },
|
|
772
|
+
gates: {}
|
|
773
|
+
};
|
|
774
|
+
}
|
|
775
|
+
async function listRecoveryProfilesEnrolled(store, vault) {
|
|
776
|
+
const enrolled = [];
|
|
777
|
+
const paper = await loadPaperRecoveryEntries(store, vault);
|
|
778
|
+
if (paper.length > 0) enrolled.push(`paper (${paper.length} codes)`);
|
|
779
|
+
return enrolled;
|
|
780
|
+
}
|
|
781
|
+
function escapeMermaid(s) {
|
|
782
|
+
return s.replace(/"/g, '\\"').replace(/\n/g, " ");
|
|
783
|
+
}
|
|
784
|
+
function sanitizeId(s) {
|
|
785
|
+
return s.replace(/[^a-zA-Z0-9]/g, "_");
|
|
786
|
+
}
|
|
787
|
+
|
|
486
788
|
// src/with-party/team/authenticators.ts
|
|
487
789
|
async function enrollAuthenticator(store, vault, keyring, options) {
|
|
488
790
|
const existing = keyring.authenticators.find((a) => a.id === options.id);
|
|
@@ -567,9 +869,19 @@ function appendSlot(keyring, slot) {
|
|
|
567
869
|
|
|
568
870
|
export {
|
|
569
871
|
NO_TEAM,
|
|
872
|
+
mintWrappedDeksBlob,
|
|
873
|
+
unwrapDeksFromBlob,
|
|
874
|
+
loadPaperRecoveryEntries,
|
|
875
|
+
savePaperRecoveryEntries,
|
|
876
|
+
burnPaperRecoveryEntry,
|
|
877
|
+
hasRecoveryEnrolled,
|
|
878
|
+
hasStrongRecoveryEnrolled,
|
|
879
|
+
loadShamirRecoveryEntries,
|
|
880
|
+
saveShamirRecoveryEntries,
|
|
881
|
+
mintShamirRecoveryEntry,
|
|
882
|
+
mintPaperRecoveryEntry,
|
|
883
|
+
unwrapDeksFromPaperEntry,
|
|
570
884
|
MAGIC_LINK_GRANTS_COLLECTION,
|
|
571
|
-
MAGIC_LINK_CONTENT_INFO_PREFIX,
|
|
572
|
-
MAGIC_LINK_KEK_INFO_PREFIX,
|
|
573
885
|
deriveMagicLinkContentKey,
|
|
574
886
|
writeMagicLinkGrant,
|
|
575
887
|
readMagicLinkGrantRecord,
|
|
@@ -581,9 +893,13 @@ export {
|
|
|
581
893
|
rotateSecret,
|
|
582
894
|
recoverSecret,
|
|
583
895
|
recoverUser,
|
|
896
|
+
describeAuthConfig,
|
|
897
|
+
diagramAuthConfig,
|
|
898
|
+
describeUserAuth,
|
|
899
|
+
describeAllUsersAuth,
|
|
584
900
|
enrollAuthenticator,
|
|
585
901
|
updateAuthenticator,
|
|
586
902
|
removeAuthenticator,
|
|
587
903
|
findAuthenticator
|
|
588
904
|
};
|
|
589
|
-
//# sourceMappingURL=chunk-
|
|
905
|
+
//# sourceMappingURL=chunk-C25JXSOR.js.map
|