@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,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Aggregate execution — the runtime behind `Query.aggregate()`.
|
|
3
3
|
*
|
|
4
|
-
* takes an `
|
|
4
|
+
* takes an `ReduceSpec` (a record of named reducers
|
|
5
5
|
* built from `reducers.ts`) and runs every reducer over the records
|
|
6
6
|
* produced by the underlying query. Two terminal surfaces:
|
|
7
7
|
*
|
|
8
8
|
* - `.run(): R` — synchronous one-shot reduction. Matches the
|
|
9
9
|
* existing `Query.toArray()` / `.first()` / `.count()` style.
|
|
10
|
-
* - `.live():
|
|
10
|
+
* - `.live(): LiveReduction<R>` — reactive primitive that
|
|
11
11
|
* re-runs the reduction whenever the query's source notifies of
|
|
12
12
|
* a change. uses naive full re-run; incremental delta
|
|
13
13
|
* maintenance is admitted by the reducer protocol (`remove()`)
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* can switch from full re-run to delta-based without breaking
|
|
16
16
|
* the public API. Consumers get correct, reactive values today.
|
|
17
17
|
*
|
|
18
|
-
* The `
|
|
18
|
+
* The `Reduction<R>` wrapper is deliberately tiny — it exists so
|
|
19
19
|
* `.aggregate(spec)` can be chained with either `.run()` or `.live()`
|
|
20
20
|
* without the builder needing two separate terminal methods. It
|
|
21
21
|
* holds the closure over the query execution (produces the current
|
|
@@ -39,9 +39,9 @@ import type { Reducer } from './reducers.js';
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
export type
|
|
42
|
+
export type ReduceSpec = Readonly<Record<string, Reducer<unknown, unknown>>>;
|
|
43
43
|
/**
|
|
44
|
-
* Map an `
|
|
44
|
+
* Map an `ReduceSpec` to its reduced result shape — each key
|
|
45
45
|
* carries the finalized result type from its reducer. A spec built
|
|
46
46
|
* from `{ total: sum('amount'), n: count() }` yields a result of
|
|
47
47
|
* `{ total: number, n: number }`.
|
|
@@ -50,26 +50,26 @@ export type AggregateSpec = Readonly<Record<string, Reducer<unknown, unknown>>>;
|
|
|
50
50
|
* each `Reducer<R, _>`. The `infer` captures the user-visible result
|
|
51
51
|
* type, discarding the internal state type `S`.
|
|
52
52
|
*/
|
|
53
|
-
export type
|
|
53
|
+
export type ReduceResult<Spec extends ReduceSpec> = {
|
|
54
54
|
[K in keyof Spec]: Spec[K] extends Reducer<infer R, unknown> ? R : never;
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* Pure reduction over a record array. Runs every reducer's
|
|
58
58
|
* `init → step* → finalize` pipeline exactly once over the records.
|
|
59
59
|
*
|
|
60
|
-
* Called by `
|
|
60
|
+
* Called by `Reduction.run()` and by the live-mode refresh path.
|
|
61
61
|
* Exported for tests and for future `scan().aggregate()` reuse
|
|
62
62
|
* — the streaming path will call the same reducer protocol with a
|
|
63
63
|
* per-page loop instead of a single array.
|
|
64
64
|
*/
|
|
65
|
-
export declare function reduceRecords<Spec extends
|
|
65
|
+
export declare function reduceRecords<Spec extends ReduceSpec>(records: readonly unknown[], spec: Spec): ReduceResult<Spec>;
|
|
66
66
|
/**
|
|
67
|
-
* A minimal reactive primitive for
|
|
67
|
+
* A minimal reactive primitive for reduction results.
|
|
68
68
|
*
|
|
69
69
|
* Same spirit as the `LiveQuery` in : frame-agnostic, a plain
|
|
70
70
|
* object with `value` / `error` fields and a `subscribe(cb)`
|
|
71
71
|
* notification channel that Vue / React / Solid adapters wrap in
|
|
72
|
-
* their own primitive. Intentionally NOT a Promise —
|
|
72
|
+
* their own primitive. Intentionally NOT a Promise — reductions
|
|
73
73
|
* have a well-defined "current value" at every instant, and the
|
|
74
74
|
* reactive consumer wants to read that value synchronously.
|
|
75
75
|
*
|
|
@@ -86,7 +86,7 @@ export declare function reduceRecords<Spec extends AggregateSpec>(records: reado
|
|
|
86
86
|
* Always call `stop()` when done; Vue's `onUnmounted` is the
|
|
87
87
|
* canonical place. Raw consumers must do it themselves.
|
|
88
88
|
*/
|
|
89
|
-
export interface
|
|
89
|
+
export interface LiveReduction<R> {
|
|
90
90
|
/** Current reduced value. Undefined only if the first compute threw. */
|
|
91
91
|
readonly value: R | undefined;
|
|
92
92
|
/** Last execution error, if any. Cleared on the next successful run. */
|
|
@@ -97,14 +97,14 @@ export interface LiveAggregation<R> {
|
|
|
97
97
|
stop(): void;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
* Upstream change-notification hook for live
|
|
100
|
+
* Upstream change-notification hook for live reduction.
|
|
101
101
|
*
|
|
102
102
|
* Matches the shape that `QuerySource.subscribe` already uses — a
|
|
103
103
|
* single method that accepts a callback and returns an unsubscribe
|
|
104
|
-
* function. The `
|
|
104
|
+
* function. The `Reduction` wrapper collects upstreams from the
|
|
105
105
|
* query's source and wires them into a single re-run trigger.
|
|
106
106
|
*/
|
|
107
|
-
export interface
|
|
107
|
+
export interface ReductionUpstream {
|
|
108
108
|
subscribe(cb: () => void): () => void;
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
@@ -120,14 +120,14 @@ export interface AggregationUpstream {
|
|
|
120
120
|
* `.aggregate(spec).live()`. Wrapping lets the spec be named once
|
|
121
121
|
* and reused for either terminal, and keeps the `Query` class
|
|
122
122
|
* from growing a pair of near-duplicate method overloads
|
|
123
|
-
* (`
|
|
123
|
+
* (`reduceRun` / `reduceLive`) that would be harder to
|
|
124
124
|
* discover.
|
|
125
125
|
*/
|
|
126
|
-
export declare class
|
|
126
|
+
export declare class Reduction<R> {
|
|
127
127
|
private readonly executeRecords;
|
|
128
128
|
private readonly spec;
|
|
129
129
|
private readonly upstreams;
|
|
130
|
-
constructor(executeRecords: () => readonly unknown[], spec:
|
|
130
|
+
constructor(executeRecords: () => readonly unknown[], spec: ReduceSpec, upstreams: readonly ReductionUpstream[]);
|
|
131
131
|
/**
|
|
132
132
|
* Execute the query and reduce the results synchronously.
|
|
133
133
|
* Returns the reduced shape matching the spec — e.g. a spec of
|
|
@@ -136,7 +136,7 @@ export declare class Aggregation<R> {
|
|
|
136
136
|
*/
|
|
137
137
|
run(): R;
|
|
138
138
|
/**
|
|
139
|
-
* Build a reactive `
|
|
139
|
+
* Build a reactive `LiveReduction<R>` that re-runs the reduction
|
|
140
140
|
* whenever any upstream source notifies of a change. The initial
|
|
141
141
|
* value is computed eagerly in the constructor, so consumers can
|
|
142
142
|
* read `live.value` immediately after calling `.live()`.
|
|
@@ -153,14 +153,14 @@ export declare class Aggregation<R> {
|
|
|
153
153
|
* correct, reactive values today; future PRs can switch to
|
|
154
154
|
* delta-based maintenance without changing this API.
|
|
155
155
|
*/
|
|
156
|
-
live():
|
|
156
|
+
live(): LiveReduction<R>;
|
|
157
157
|
}
|
|
158
158
|
/**
|
|
159
|
-
* Build a `
|
|
159
|
+
* Build a `LiveReduction<V>` from a recompute closure and a list
|
|
160
160
|
* of upstreams. Exposed so sibling files in the query DSL
|
|
161
161
|
* (currently `groupby.ts`) can reuse the reactive primitive
|
|
162
162
|
* without reaching into `LiveAggregationImpl` directly. This keeps
|
|
163
163
|
* the implementation class private while still allowing planned
|
|
164
164
|
* composition with `.groupBy().aggregate().live()`.
|
|
165
165
|
*/
|
|
166
|
-
export declare function
|
|
166
|
+
export declare function buildLiveReduction<V>(recompute: () => V, upstreams: readonly ReductionUpstream[]): LiveReduction<V>;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strategy seam between the core Query / ScanBuilder chain and the
|
|
3
3
|
* optional aggregate / groupBy service. Core imports
|
|
4
|
-
* `
|
|
4
|
+
* `ReduceStrategy` as a TYPE-ONLY symbol and `NO_REDUCE` as a
|
|
5
5
|
* tiny runtime stub.
|
|
6
6
|
*
|
|
7
|
-
* The heavy machinery — `
|
|
8
|
-
* reducer-step logic — is only reachable from `
|
|
7
|
+
* The heavy machinery — `Reduction`, `GroupedQuery`, the
|
|
8
|
+
* reducer-step logic — is only reachable from `withReduce()` in
|
|
9
9
|
* `./active.ts`, which is only exported through the
|
|
10
|
-
* `@noy-db/hub/
|
|
10
|
+
* `@noy-db/hub/reduce` subpath. Consumers that don't import the
|
|
11
11
|
* subpath ship none of the ~886 LOC.
|
|
12
12
|
*
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
|
-
import type {
|
|
15
|
+
import type { Reduction, ReduceSpec, ReduceResult, ReductionUpstream } from './reduction.js';
|
|
16
16
|
import type { GroupedQuery, GroupedQueryN } from './groupby.js';
|
|
17
17
|
import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
18
18
|
/**
|
|
@@ -21,39 +21,39 @@ import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
|
21
21
|
*
|
|
22
22
|
* @internal
|
|
23
23
|
*/
|
|
24
|
-
export interface
|
|
24
|
+
export interface ReduceStrategy {
|
|
25
25
|
/**
|
|
26
|
-
* Build an `
|
|
26
|
+
* Build an `Reduction<R>` for `Query.aggregate(spec)`. `executeRecords`
|
|
27
27
|
* is a closure that produces the matching record set when the
|
|
28
|
-
*
|
|
29
|
-
* constructs a real `
|
|
28
|
+
* reduction runs. NO_REDUCE throws; the active strategy
|
|
29
|
+
* constructs a real `Reduction`.
|
|
30
30
|
*/
|
|
31
|
-
aggregate<Spec extends
|
|
31
|
+
aggregate<Spec extends ReduceSpec>(executeRecords: () => readonly unknown[], spec: Spec, upstreams: readonly ReductionUpstream[]): Reduction<ReduceResult<Spec>>;
|
|
32
32
|
/**
|
|
33
33
|
* Build a `GroupedQuery<T, F, S>` for `Query.groupBy(field)`. Same
|
|
34
34
|
* closure / upstream inputs as `aggregate` plus the group key field.
|
|
35
35
|
*/
|
|
36
|
-
groupBy<T, F extends string, S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], field: F, upstreams: readonly
|
|
36
|
+
groupBy<T, F extends string, S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], field: F, upstreams: readonly ReductionUpstream[], dictLabelResolver?: (key: string, locale: string, fallback?: string | readonly string[]) => Promise<string | undefined>, via?: ViaPipeline): GroupedQuery<T, F, S, M>;
|
|
37
37
|
/**
|
|
38
38
|
* Variadic-keyed sibling — builds a `GroupedQueryN<T, F, S>` for
|
|
39
39
|
* `Query.groupBy(...fields)`. No dictLabelResolver — `<field>Label`
|
|
40
40
|
* projection only applies to single-field groupings, which dispatch
|
|
41
41
|
* through `groupBy` above.
|
|
42
42
|
*/
|
|
43
|
-
groupByN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], fields: F, upstreams: readonly
|
|
43
|
+
groupByN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], fields: F, upstreams: readonly ReductionUpstream[], via?: ViaPipeline): GroupedQueryN<T, F, S, M>;
|
|
44
44
|
/**
|
|
45
45
|
* Terminal streaming aggregator for `ScanBuilder.aggregate(spec)`.
|
|
46
46
|
* Takes an async iterable of decrypted records + the spec and
|
|
47
47
|
* returns the reduced result.
|
|
48
48
|
*/
|
|
49
|
-
scanAggregate<Spec extends
|
|
49
|
+
scanAggregate<Spec extends ReduceSpec>(iter: AsyncIterable<unknown>, spec: Spec): Promise<ReduceResult<Spec>>;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* No-aggregate stub. Every `.aggregate()` / `.groupBy()` / streaming
|
|
53
53
|
* `scan().aggregate()` call throws with a pointer at the subpath. The
|
|
54
|
-
* real `
|
|
54
|
+
* real `Reduction` / `GroupedQuery` classes are never referenced at
|
|
55
55
|
* runtime, so the bundler drops the ~886 LOC.
|
|
56
56
|
*
|
|
57
57
|
* @internal
|
|
58
58
|
*/
|
|
59
|
-
export declare const
|
|
59
|
+
export declare const NO_REDUCE: ReduceStrategy;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
2
2
|
import type { DictKeyDescriptor, StaticDictDescriptor } from '../../via/i18n/dictionary.js';
|
|
3
3
|
import type { IndexDoc } from './inverted-index.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* One entry in an {@link IndexDoc}'s `fields` array — the return shape of the
|
|
6
|
+
* `build*FieldEntries` helpers. Exported so `@noy-db/hub/search` can name the
|
|
7
|
+
* return type of its own public functions (#843 C1: the subpath's first
|
|
8
|
+
* type-reachability gap).
|
|
9
|
+
*/
|
|
10
|
+
export type FieldEntry = IndexDoc['fields'][number];
|
|
5
11
|
export declare function buildStringFieldEntries(record: Record<string, unknown>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
6
12
|
export declare function buildI18nFieldEntries(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
7
13
|
/** label map: field -> (key -> { locale -> label }). Precomputed in the collection (async for dynamic dicts). */
|
|
@@ -12,4 +18,3 @@ export declare function buildDictKeyFieldEntries(record: Record<string, unknown>
|
|
|
12
18
|
* caller). Bytes are never tokenized; only the slot `filename` is indexed.
|
|
13
19
|
*/
|
|
14
20
|
export declare function buildBlobFieldEntries(filenamesByField: Map<string, string[]>): FieldEntry[];
|
|
15
|
-
export {};
|
|
@@ -11,7 +11,7 @@ export { segmentTokens, segmentTokenizer, type Token } from './segment.js';
|
|
|
11
11
|
export { InvertedIndex, type IndexDoc, type IndexHit, type QueryOptions } from './inverted-index.js';
|
|
12
12
|
export { extractSnippet } from './snippet.js';
|
|
13
13
|
export { MemoryIndexStore, type IndexStore } from './index-store.js';
|
|
14
|
-
export { buildStringFieldEntries } from './build-docs.js';
|
|
14
|
+
export { buildStringFieldEntries, type FieldEntry } from './build-docs.js';
|
|
15
15
|
export type { RetrieveOptions, RetrieveHit } from './retrieve-types.js';
|
|
16
16
|
export { fuseRetrieval, type FuseOptions } from './fuse.js';
|
|
17
17
|
export { withSearch } from './active.js';
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type { Cover, CoverText, CoverSchema, CoverField, JsonValue, ResolvedCoverSchema, } from './types.js';
|
|
10
10
|
export { COVER_FIELDS, DEFAULT_COVER_SCHEMA, resolveSchema, } from './types.js';
|
|
11
|
+
export { resolveSchema as resolveCoverSchema } from './types.js';
|
|
11
12
|
export type { SetCoverInput } from './schema.js';
|
|
12
13
|
export { validateCoverInput, isCover } from './schema.js';
|
|
13
14
|
export { mergeCustom, validateCoverSize } from './custom.js';
|
|
@@ -7,5 +7,7 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
export type { DirectoryConfig, UserVisibility } from './types.js';
|
|
10
|
+
export { loadUserEnvelope, saveUserEnvelope, deleteUserEnvelope, listUserEnvelopeIds, } from './user-envelope/storage.js';
|
|
11
|
+
export { UserApi } from './user-envelope/api.js';
|
|
10
12
|
export { readDirectoryConfig, persistDirectoryConfig, META_COLLECTION, DIRECTORY_RECORD_ID, } from './storage.js';
|
|
11
13
|
export { readUserVisibility, persistUserVisibility, deleteUserVisibility, visibilityRecordId, VISIBILITY_RECORD_PREFIX, } from './visibility.js';
|
|
@@ -21,3 +21,5 @@ export type { DevUnlockOptions } from './dev-unlock.js';
|
|
|
21
21
|
export { withSession } from './active.js';
|
|
22
22
|
export type { SessionStrategy } from './strategy.js';
|
|
23
23
|
export { SessionExpiredError, SessionNotFoundError, SessionPolicyError, } from '../../kernel/errors.js';
|
|
24
|
+
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
25
|
+
export { NO_SESSION } from './strategy.js';
|
|
@@ -29,3 +29,5 @@
|
|
|
29
29
|
*/
|
|
30
30
|
export { withSync } from '../team/sync-active.js';
|
|
31
31
|
export type { SyncStrategy } from '../team/sync-strategy.js';
|
|
32
|
+
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
33
|
+
export { NO_SYNC } from '../team/sync-strategy.js';
|
|
@@ -18,6 +18,7 @@ export { TeamNotEnabledError } from '../../kernel/errors.js';
|
|
|
18
18
|
export type { UnlockedKeyring } from './keyring.js';
|
|
19
19
|
export { loadKeyring, createOwnerKeyring, grant, revoke, changeSecret, listUsers, listUsersWithEnvelopes, ensureCollectionDEK, persistKeyring, updateKeyringIdentity, buildRecipientKeyringFile, } from './keyring.js';
|
|
20
20
|
export type { BundleRecipient, ListUsersOptions } from './keyring.js';
|
|
21
|
+
export type { LoadKeyringOptions, CreateOwnerKeyringOptions, RotateKeysOptions, ChangeSecretOptions, } from './keyring.js';
|
|
21
22
|
export { enrollAuthenticator, removeAuthenticator, updateAuthenticator, findAuthenticator, } from './authenticators.js';
|
|
22
23
|
export type { EnrollAuthenticatorOptions, EnrollAuthenticatorWrappingKEKOptions, EnrollAuthenticatorWrappingDEKsOptions, UpdateAuthenticatorOptions, } from './authenticators.js';
|
|
23
24
|
export { rotateSecret, recoverSecret, } from './rotate-recover.js';
|
|
@@ -36,3 +37,4 @@ export { SyncTransaction } from './sync-transaction.js';
|
|
|
36
37
|
export { PresenceHandle } from './presence.js';
|
|
37
38
|
export { putCredential, getCredential, deleteCredential, listCredentials, credentialStatus, SYNC_CREDENTIALS_COLLECTION, } from './sync-credentials.js';
|
|
38
39
|
export type { SyncCredential } from './sync-credentials.js';
|
|
40
|
+
export { describeAuthConfig, diagramAuthConfig, describeUserAuth, describeAllUsersAuth, } from '../auth-introspection/index.js';
|
|
@@ -71,8 +71,15 @@ export interface UnlockedKeyring {
|
|
|
71
71
|
}
|
|
72
72
|
/** Mint a fresh wrapped-canary string. Deterministic for a given KEK. */
|
|
73
73
|
export declare function mintKeyringCanary(kek: EnclaveKey): Promise<string>;
|
|
74
|
+
/** Options for {@link loadKeyring} (#846b). */
|
|
75
|
+
export interface LoadKeyringOptions {
|
|
76
|
+
/** The user whose keyring to unlock. */
|
|
77
|
+
readonly userId: string;
|
|
78
|
+
/** That user's secret. */
|
|
79
|
+
readonly secret: string;
|
|
80
|
+
}
|
|
74
81
|
/** Load and unlock a user's keyring for a vault. */
|
|
75
|
-
export declare function loadKeyring(
|
|
82
|
+
export declare function loadKeyring(store: NoydbStore, vault: string, opts: LoadKeyringOptions): Promise<UnlockedKeyring>;
|
|
76
83
|
/**
|
|
77
84
|
* Open-policy pre-gate: decide create-vs-fail-closed **before** any
|
|
78
85
|
* vault write. `openVault` must not self-provision an owner keyring into a
|
|
@@ -85,22 +92,34 @@ export declare function loadKeyring(adapter: NoydbStore, vault: string, userId:
|
|
|
85
92
|
* on first open), so a fail-closed open writes nothing.
|
|
86
93
|
*/
|
|
87
94
|
export declare function assertKeyringOpenAllowed(store: NoydbStore, vault: string, userId: string, create: boolean): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Options for {@link createOwnerKeyring} (#846b). The `SecretPolicy` knobs are
|
|
97
|
+
* flattened into the same bag rather than nested, so `assertStrongSecret` can
|
|
98
|
+
* take `opts` directly.
|
|
99
|
+
*/
|
|
100
|
+
export interface CreateOwnerKeyringOptions extends SecretPolicy {
|
|
101
|
+
/** The owner to create. */
|
|
102
|
+
readonly userId: string;
|
|
103
|
+
/** The owner's secret. */
|
|
104
|
+
readonly secret: string;
|
|
105
|
+
/** Gate creation on the phrase-format strength rules. Default false. */
|
|
106
|
+
readonly validate?: boolean;
|
|
107
|
+
/** Escape hatch for fixtures and migrations — skips the strength gate. */
|
|
108
|
+
readonly allowWeakSecret?: boolean;
|
|
109
|
+
}
|
|
88
110
|
/**
|
|
89
111
|
* Create the initial owner keyring for a new vault.
|
|
90
112
|
*
|
|
91
|
-
* Pass `{ validate: true }` (or
|
|
113
|
+
* Pass `{ validate: true }` (or any `SecretPolicy` knob) to gate creation
|
|
92
114
|
* on the phrase-format strength rules — `Noydb` threads this from
|
|
93
115
|
* `NoydbOptions.validateSecret`. Direct callers (CLI, scripts,
|
|
94
116
|
* test fixtures) opt in explicitly.
|
|
95
117
|
*/
|
|
96
|
-
export declare function createOwnerKeyring(
|
|
97
|
-
validate?: boolean;
|
|
98
|
-
allowWeakSecret?: boolean;
|
|
99
|
-
}): Promise<UnlockedKeyring>;
|
|
118
|
+
export declare function createOwnerKeyring(store: NoydbStore, vault: string, opts: CreateOwnerKeyringOptions): Promise<UnlockedKeyring>;
|
|
100
119
|
/** Grant access to a new user. Caller must have grant privilege. */
|
|
101
|
-
export declare function grant(
|
|
120
|
+
export declare function grant(store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: GrantOptions): Promise<void>;
|
|
102
121
|
/** Revoke a user's access. Optionally rotate keys for affected collections. */
|
|
103
|
-
export declare function revoke(
|
|
122
|
+
export declare function revoke(store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions): Promise<void>;
|
|
104
123
|
/**
|
|
105
124
|
* Mutate `role`, `displayName`, and/or `permissions` on an existing
|
|
106
125
|
* keyring. Pure plaintext-header rewrite — no DEK rewrap, no KEK
|
|
@@ -125,14 +144,45 @@ export declare function revoke(adapter: NoydbStore, vault: string, callerKeyring
|
|
|
125
144
|
* @throws `ValidationError` when the diff is empty (nothing to update).
|
|
126
145
|
*
|
|
127
146
|
*/
|
|
128
|
-
export declare function updateKeyringIdentity(
|
|
147
|
+
export declare function updateKeyringIdentity(store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: UpdateUserOptions): Promise<void>;
|
|
129
148
|
/**
|
|
130
149
|
* Rotate DEKs for specified collections:
|
|
131
150
|
* 1. Generate new DEKs
|
|
132
151
|
* 2. Re-encrypt all records in affected collections
|
|
133
152
|
* 3. Re-wrap new DEKs for all remaining users
|
|
134
153
|
*/
|
|
135
|
-
|
|
154
|
+
/**
|
|
155
|
+
* What a DEK rotation leaves behind (#854).
|
|
156
|
+
*
|
|
157
|
+
* A member's DEKs are wrapped under that member's KEK, and a KEK derives only
|
|
158
|
+
* from that member's secret — so the caller cannot re-wrap a fresh DEK for
|
|
159
|
+
* anyone else. That is the zero-knowledge property working as designed, but it
|
|
160
|
+
* means rotation necessarily DROPS the rotated collections from every other
|
|
161
|
+
* member's keyring rather than re-keying them.
|
|
162
|
+
*
|
|
163
|
+
* `needsRegrant` names exactly who lost what, so the caller can re-run
|
|
164
|
+
* `grant()` instead of discovering the access loss later.
|
|
165
|
+
*/
|
|
166
|
+
export interface RotateResult {
|
|
167
|
+
/** (member, collection) pairs whose access was dropped by the rotation. */
|
|
168
|
+
readonly needsRegrant: ReadonlyArray<{
|
|
169
|
+
readonly userId: string;
|
|
170
|
+
readonly collection: string;
|
|
171
|
+
}>;
|
|
172
|
+
}
|
|
173
|
+
/** Options for {@link rotateKeys} (#846b — was a bare `string[]`). */
|
|
174
|
+
export interface RotateKeysOptions {
|
|
175
|
+
/** Collections whose DEKs are re-minted. */
|
|
176
|
+
readonly collections: readonly string[];
|
|
177
|
+
}
|
|
178
|
+
export declare function rotateKeys(store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, opts: RotateKeysOptions): Promise<RotateResult>;
|
|
179
|
+
/** Options for {@link changeSecret} (#846b). */
|
|
180
|
+
export interface ChangeSecretOptions extends SecretPolicy {
|
|
181
|
+
/** The replacement secret. */
|
|
182
|
+
readonly newSecret: string;
|
|
183
|
+
/** Escape hatch for fixtures and migrations — skips the strength gate. */
|
|
184
|
+
readonly allowWeakSecret?: boolean;
|
|
185
|
+
}
|
|
136
186
|
/**
|
|
137
187
|
* Change the user's secret. Re-wraps every DEK under the new KEK.
|
|
138
188
|
*
|
|
@@ -145,13 +195,11 @@ export declare function rotateKeys(adapter: NoydbStore, vault: string, callerKey
|
|
|
145
195
|
* for re-derivation; `changeSecret` reuses the cached unlocked KEK so
|
|
146
196
|
* the OLD secret is not retyped.
|
|
147
197
|
*/
|
|
148
|
-
export declare function changeSecret(
|
|
149
|
-
allowWeakSecret?: boolean;
|
|
150
|
-
}): Promise<UnlockedKeyring>;
|
|
198
|
+
export declare function changeSecret(store: NoydbStore, vault: string, keyring: UnlockedKeyring, opts: ChangeSecretOptions): Promise<UnlockedKeyring>;
|
|
151
199
|
/**
|
|
152
200
|
* Recipient slot in a re-keyed `.noydb` bundle. Each slot becomes its
|
|
153
201
|
* own keyring file inside the bundle, sealed with its own secret.
|
|
154
|
-
* Same role/permission semantics as `db.grant()` but no
|
|
202
|
+
* Same role/permission semantics as `db.grant()` but no store side
|
|
155
203
|
* effect — the slot only exists inside the bundle bytes.
|
|
156
204
|
*
|
|
157
205
|
* @public
|
|
@@ -193,7 +241,7 @@ export interface BundleRecipient {
|
|
|
193
241
|
}
|
|
194
242
|
/**
|
|
195
243
|
* Build a `KeyringFile` for one bundle recipient, given the source
|
|
196
|
-
* vault's unwrapped DEKs. Mirrors `grant()` minus the
|
|
244
|
+
* vault's unwrapped DEKs. Mirrors `grant()` minus the store write —
|
|
197
245
|
* the produced file is meant to be embedded in the bundle's
|
|
198
246
|
* `keyrings` map, never persisted to the source vault.
|
|
199
247
|
*
|
|
@@ -204,7 +252,7 @@ export interface BundleRecipient {
|
|
|
204
252
|
*/
|
|
205
253
|
export declare function buildRecipientKeyringFile(callerKeyring: UnlockedKeyring, recipient: BundleRecipient): Promise<KeyringFile>;
|
|
206
254
|
/** List all users with access to a vault. */
|
|
207
|
-
export declare function listUsers(
|
|
255
|
+
export declare function listUsers(store: NoydbStore, vault: string): Promise<UserInfo[]>;
|
|
208
256
|
/**
|
|
209
257
|
* Optional filter knobs for {@link listUsersWithEnvelopes}.
|
|
210
258
|
*
|
|
@@ -254,18 +302,18 @@ export interface ListUsersOptions {
|
|
|
254
302
|
* Order matches `listUsers()` (store-defined; sort if you need a
|
|
255
303
|
* stable display order).
|
|
256
304
|
*/
|
|
257
|
-
export declare function listUsersWithEnvelopes<T = unknown>(
|
|
305
|
+
export declare function listUsersWithEnvelopes<T = unknown>(store: NoydbStore, vault: string, userEnvelopeDek: EnclaveKey, callerRole: Role, options?: ListUsersOptions): Promise<Array<{
|
|
258
306
|
user: UserInfo;
|
|
259
307
|
envelope: UserEnvelope<T> | null;
|
|
260
308
|
}>>;
|
|
261
309
|
/** Ensure a DEK exists for a collection. Generates one if new. */
|
|
262
|
-
export declare function ensureCollectionDEK(
|
|
310
|
+
export declare function ensureCollectionDEK(store: NoydbStore, vault: string, keyring: UnlockedKeyring): Promise<(collectionName: string) => Promise<EnclaveKey>>;
|
|
263
311
|
/** Check if a user has write permission for a collection. */
|
|
264
312
|
export declare function hasWritePermission(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
265
313
|
/** Check if a user has any access to a collection. */
|
|
266
314
|
export declare function hasAccess(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
267
|
-
/** Persist a keyring file to the
|
|
268
|
-
export declare function persistKeyring(
|
|
315
|
+
/** Persist a keyring file to the store. */
|
|
316
|
+
export declare function persistKeyring(store: NoydbStore, vault: string, keyring: UnlockedKeyring): Promise<void>;
|
|
269
317
|
/**
|
|
270
318
|
* Check whether a keyring is authorised for a given `@noy-db/as-*`
|
|
271
319
|
* export tier.
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* Internal service — reached through `noydb.team.rotateSecret(...)` etc.
|
|
20
20
|
*/
|
|
21
21
|
import type { NoydbOptions, NoydbStore, KeyringAuthenticator } from '../../kernel/types.js';
|
|
22
|
+
import type { RotateResult, RotateKeysOptions } from './keyring.js';
|
|
22
23
|
import { type RotateSecretInput, type RecoverSecretInput, type RecoverSecretResult, type RotateRecoveryOptions, type RotateRecoveryResult, type EnrollRecoveryResult, type RecoveryEnrollmentInput, type RecoveryProof } from './rotate-recover.js';
|
|
23
24
|
import { type RecoverUserOptions } from './peer-recover.js';
|
|
24
25
|
import { type PaperRecoveryEntry, type ShamirRecoveryEntry } from './recovery.js';
|
|
@@ -72,7 +73,7 @@ export declare class TeamFacade {
|
|
|
72
73
|
/** Gate + run a `revoke` engine. See `Noydb.revoke` for the public contract. */
|
|
73
74
|
runRevoke(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<void>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
|
|
74
75
|
/** Gate + run a `rotateKeys` engine. See `Noydb.rotate` for the public contract. */
|
|
75
|
-
runRotate(engine: (
|
|
76
|
+
runRotate(engine: (store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, opts: RotateKeysOptions) => Promise<RotateResult>, vault: string, collections: string[]): Promise<RotateResult>;
|
|
76
77
|
/**
|
|
77
78
|
* Add a tier-2 authenticator slot to the calling user's keyring.
|
|
78
79
|
* Each slot independently wraps the SAME KEK under a method-specific
|
|
@@ -109,7 +109,7 @@ export declare class BlobSet {
|
|
|
109
109
|
* DECLARED; a collection with an undeclared field (or no `blobFields` at
|
|
110
110
|
* all) constructs fine and reaches this write path unguarded. Refuse the
|
|
111
111
|
* write itself instead of broadening the construction mandate, which
|
|
112
|
-
* would over-refuse blobless tiered collections (`
|
|
112
|
+
* would over-refuse blobless tiered collections (`blobsStrategy` is
|
|
113
113
|
* vault-wide, not per-collection). Called from every content-write entry
|
|
114
114
|
* (`put()`, `publish()`) — never from a read path, so a pre-existing
|
|
115
115
|
* legacy blob stays readable (back-compat).
|
|
@@ -9,4 +9,10 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export type { VaultSchemaSnapshot, DumpSchemaOptions, CollectionDescriptor, CollectionConfig, CollectionStats, FieldDescriptor, FieldSource, MaterializedViewDescriptor, OverlayViewDescriptor, DerivationDescriptor, InternalCollectionStats, } from './types.js';
|
|
11
11
|
export { dumpVaultSchema } from './walk.js';
|
|
12
|
+
export type { VaultIntrospectState } from './walk.js';
|
|
12
13
|
export { jsonSchemaToFields } from './fields.js';
|
|
14
|
+
export type { SchemaIntrospection } from './types.js';
|
|
15
|
+
export type { FieldMeta, SemanticType } from './field-meta.js';
|
|
16
|
+
export type { CollectionDescription, DescribedField, DescribeOptions } from './describe.js';
|
|
17
|
+
export { applyListProjection } from './projection.js';
|
|
18
|
+
export type { ListProjectionOptions } from './projection.js';
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Store routing (multiplex by collection/size/age) and composable store
|
|
5
5
|
* middleware (retry, logging, metrics, circuit-breaker, cache, health-check).
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Published as `@noy-db/hub/store` (#843 C3a). Also re-exported from the root
|
|
7
|
+
* barrel, matching how the Via features are dual-homed — the subpath exists so
|
|
8
|
+
* the surface is navigable and tree-shakeable, not to force a migration.
|
|
8
9
|
*
|
|
9
10
|
* Named re-exports (not `export *`) so tsup keeps the barrel populated
|
|
10
11
|
* even with `sideEffects: false`.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FROZEN_SNAPSHOTS_COLLECTION,
|
|
3
|
+
freezeAndDeleteClosure,
|
|
4
|
+
freezeSnapshotOnly,
|
|
5
|
+
randomId,
|
|
6
|
+
withdrawAccessibleData
|
|
7
|
+
} from "./chunk-TE6LH6J2.js";
|
|
8
|
+
import "./chunk-WO4T4OD5.js";
|
|
9
|
+
import "./chunk-SGQ4N5FS.js";
|
|
10
|
+
import "./chunk-JIDLU57U.js";
|
|
11
|
+
import "./chunk-RZPOZPZU.js";
|
|
12
|
+
import "./chunk-VH6SOCXH.js";
|
|
13
|
+
import "./chunk-35NMVJ7I.js";
|
|
14
|
+
import "./chunk-NFZGZ4AK.js";
|
|
15
|
+
import "./chunk-QJNCB5SK.js";
|
|
16
|
+
import "./chunk-LP7BEXCT.js";
|
|
17
|
+
import "./chunk-AKKRXT23.js";
|
|
18
|
+
import "./chunk-GZACYEOB.js";
|
|
19
|
+
import "./chunk-QZWTRENR.js";
|
|
20
|
+
import "./chunk-PZ5AY32C.js";
|
|
21
|
+
export {
|
|
22
|
+
FROZEN_SNAPSHOTS_COLLECTION,
|
|
23
|
+
freezeAndDeleteClosure,
|
|
24
|
+
freezeSnapshotOnly,
|
|
25
|
+
randomId,
|
|
26
|
+
withdrawAccessibleData
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=withdraw-accessible-DEUCOO4F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|