@noy-db/hub 0.4.0-pre.6 → 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 +18 -18
- package/dist/{backup-USYSNCYM.js → backup-PTSVXDDW.js} +13 -13
- package/dist/blobs/index.js +13 -13
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +12 -12
- package/dist/cargo/index.js +31 -29
- package/dist/{chunk-5WLDZZ6S.js → chunk-35NMVJ7I.js} +3 -3
- package/dist/{chunk-ZGEFBDPR.js → chunk-3HUYRN24.js} +3 -3
- package/dist/chunk-3HUYRN24.js.map +1 -0
- package/dist/{chunk-NA374QG7.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-M7W2KYTL.js → chunk-56IIVAEO.js} +2 -2
- package/dist/{chunk-FHHYCBBP.js → chunk-5DRROK5W.js} +2 -2
- package/dist/{chunk-GTNRMJYH.js → chunk-5GQEU4DN.js} +2 -2
- package/dist/{chunk-XSOGLHGY.js → chunk-6L3DKWRY.js} +6 -6
- package/dist/chunk-6LJY7X5A.js +18 -0
- package/dist/chunk-6LJY7X5A.js.map +1 -0
- package/dist/{chunk-44Y3P5U6.js → chunk-6M2I3DKF.js} +2 -2
- package/dist/{chunk-HDF5R2K6.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-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-XONZGK6J.js → chunk-BN4HRYAZ.js} +2 -2
- package/dist/{chunk-QVGEVZ5F.js → chunk-BQ6DHN4I.js} +3 -3
- package/dist/{chunk-LG2GUYRX.js → chunk-BYFXLDVV.js} +9 -9
- package/dist/{chunk-M4GO4ZJK.js → chunk-C25JXSOR.js} +137 -11
- package/dist/chunk-C25JXSOR.js.map +1 -0
- package/dist/{chunk-3TZUC4WS.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-HXVRRJBD.js → chunk-DGBIHDVK.js} +5 -5
- package/dist/chunk-DSDXAKIP.js +50 -0
- package/dist/chunk-DSDXAKIP.js.map +1 -0
- package/dist/{chunk-JGOKAZNB.js → chunk-DZAF24PG.js} +5 -5
- package/dist/{chunk-NIKO2BBZ.js → chunk-DZFQVICS.js} +2 -2
- 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-YGMREQAK.js → chunk-EBKCYQ2D.js} +14 -14
- package/dist/chunk-EBKCYQ2D.js.map +1 -0
- package/dist/{chunk-TMR64XPL.js → chunk-EZNTORXE.js} +2 -2
- package/dist/{chunk-WCJJQV2D.js → chunk-FMNU7IUG.js} +3 -3
- package/dist/{chunk-H5GMROCB.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-MQBFT2OT.js → chunk-FRMW23UK.js} +7 -7
- package/dist/chunk-FRMW23UK.js.map +1 -0
- package/dist/chunk-GJW4HX2O.js +1 -0
- package/dist/{chunk-JTIPVW4J.js → chunk-GP3UWP22.js} +4 -4
- package/dist/{chunk-DOZFU7OZ.js → chunk-GZACYEOB.js} +1 -1
- package/dist/chunk-GZACYEOB.js.map +1 -0
- package/dist/{chunk-XG7OZDOS.js → chunk-HFUAFR6B.js} +6 -6
- package/dist/{chunk-LN3MQFUE.js → chunk-IF6WNGAK.js} +9 -6
- 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-VDTWFN2P.js → chunk-IMRB2C4O.js} +3 -3
- package/dist/{chunk-2BVW754E.js → chunk-ISRKW4YN.js} +3 -3
- package/dist/{chunk-P4NUJVWL.js → chunk-IXNCZTWA.js} +2 -2
- package/dist/{chunk-ZHZ4PET5.js → chunk-JIDLU57U.js} +3 -3
- package/dist/{chunk-PTT2NB46.js → chunk-JYJFGD2H.js} +2 -2
- package/dist/{chunk-XY6MNSAF.js → chunk-JYV4JJV2.js} +5 -5
- package/dist/{chunk-ZHMUFYZF.js → chunk-KBPU5M2E.js} +7 -7
- package/dist/{chunk-AZXEOEQK.js → chunk-KFRPNHWR.js} +4 -4
- package/dist/chunk-KFRPNHWR.js.map +1 -0
- package/dist/{chunk-ZDFU34XY.js → chunk-KPXM4WO6.js} +58 -54
- package/dist/chunk-KPXM4WO6.js.map +1 -0
- package/dist/{chunk-HA7P3BTB.js → chunk-KRCBZYTZ.js} +4 -4
- package/dist/{chunk-VNJMLOQS.js → chunk-KW42W6SV.js} +6 -6
- package/dist/{chunk-GQT6J4FJ.js → chunk-L3YYLT4E.js} +2 -2
- package/dist/chunk-L3YYLT4E.js.map +1 -0
- package/dist/{chunk-3GXDB3NQ.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-RM5EXCFF.js → chunk-MXUT7FTE.js} +2 -2
- package/dist/chunk-MXUT7FTE.js.map +1 -0
- package/dist/{chunk-IUATR5UE.js → chunk-N5PLUFH2.js} +5 -5
- package/dist/{chunk-C2V7AJO2.js → chunk-NEX7JCMO.js} +4 -4
- package/dist/{chunk-5HSSTOOG.js → chunk-NFZGZ4AK.js} +2 -2
- package/dist/{chunk-5ABOFAHN.js → chunk-NJ4DYYO5.js} +2 -2
- package/dist/chunk-NJ4DYYO5.js.map +1 -0
- package/dist/{chunk-2ZSC454H.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-32467U5J.js → chunk-OBPVWOSQ.js} +4 -4
- package/dist/{chunk-6SSWOUUS.js → chunk-OLIWCCFM.js} +2 -5
- package/dist/{chunk-UNREYBZO.js → chunk-OLSARBZU.js} +2 -2
- package/dist/{chunk-V2R2VWER.js → chunk-PT4XLP6I.js} +12 -12
- package/dist/{chunk-V2R2VWER.js.map → chunk-PT4XLP6I.js.map} +1 -1
- 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-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-MMVQ3SUO.js → chunk-RZPOZPZU.js} +8 -8
- package/dist/chunk-SGDPRCC4.js +1075 -0
- package/dist/chunk-SGDPRCC4.js.map +1 -0
- package/dist/{chunk-E7FSBI6I.js → chunk-SGQ4N5FS.js} +5 -5
- package/dist/{chunk-522MBPE5.js → chunk-SHEEBRZ4.js} +2 -2
- package/dist/{chunk-EPME33Y4.js → chunk-SHYIA73K.js} +6 -6
- package/dist/chunk-SKM35Y4Q.js +77 -0
- package/dist/chunk-SKM35Y4Q.js.map +1 -0
- package/dist/{chunk-MLCTPWSO.js → chunk-TE6LH6J2.js} +5 -5
- package/dist/chunk-TG634KCO.js +63 -0
- package/dist/chunk-TG634KCO.js.map +1 -0
- package/dist/{chunk-QVIZDLAR.js → chunk-TIVK6PRK.js} +9 -10
- package/dist/chunk-TIVK6PRK.js.map +1 -0
- package/dist/{chunk-JOCMXSR2.js → chunk-UADPR6F4.js} +3 -3
- 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-KCZAFDP5.js → chunk-VH6SOCXH.js} +2 -2
- package/dist/chunk-VSRSQ2CR.js +654 -0
- package/dist/chunk-VSRSQ2CR.js.map +1 -0
- package/dist/{chunk-4B3DL75F.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-MPPWL64H.js → chunk-WBKZUO5V.js} +3 -3
- package/dist/{chunk-WWBC4KLB.js → chunk-WO4T4OD5.js} +2 -2
- package/dist/{chunk-7IQWHYL2.js → chunk-WZ3NCMK6.js} +6 -5
- package/dist/{chunk-BAAUFCJK.js → chunk-X4MVWPHV.js} +3 -3
- package/dist/{chunk-HVPW6PCX.js → chunk-XIDQKFZF.js} +3 -3
- package/dist/{chunk-EWPS35AR.js → chunk-XOBHRD2M.js} +185 -333
- package/dist/chunk-XOBHRD2M.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-ICYC5YNI.js → chunk-Y6VZQGGH.js} +6 -6
- package/dist/{chunk-ZM72UO3Y.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-JXMWKKQW.js → chunk-ZWBKDKXC.js} +4 -13
- package/dist/{walk-JXMWKKQW.js.map → chunk-ZWBKDKXC.js.map} +1 -1
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-SVDRXLD3.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 +9 -9
- package/dist/{cover-ADBCTIKN.js → cover/index.js} +7 -6
- package/dist/custody/index.js +26 -0
- package/dist/{dead-filter-HKDMTMVY.js → dead-filter-6DYY7S64.js} +2 -2
- package/dist/{chunk-ZF572E2M.js → delegation-ONOZVPIP.js} +12 -6
- package/dist/{chunk-ZF572E2M.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-SPMYNXNW.js → dispatch-7T45NN7C.js} +18 -18
- package/dist/{dispatch-V5MSMQYX.js → dispatch-RPTLK7LJ.js} +5 -5
- package/dist/{enclave-ZA7C3H2L.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-HRMHC34B.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 +12 -12
- package/dist/i18n/index.js +14 -14
- package/dist/index.d.ts +14 -17
- package/dist/index.js +192 -1968
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +2 -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/noydb.d.ts +1 -1
- package/dist/kernel/types.d.ts +20 -20
- package/dist/kernel/vault.d.ts +10 -10
- package/dist/{ledger-K6JBFL3Z.js → ledger-XY6NP3J2.js} +11 -11
- package/dist/liberate-LXOJ2EMB.js +24 -0
- package/dist/{link-set-XVZY2ODC.js → link-set-POQB7BU5.js} +11 -11
- package/dist/materialized-views/index.js +19 -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 +13 -13
- package/dist/pod/index.js +11 -11
- package/dist/{policy-QWGJB7P7.js → policy/index.js} +6 -6
- package/dist/port/with/blob-strategy.d.ts +15 -5
- package/dist/port/with/strategies.d.ts +9 -9
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-5VHHVFJY.js → post-register-URQANI3B.js} +6 -6
- package/dist/query/index.js +3 -3
- package/dist/reduce/index.js +4 -4
- 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-7OOT5XPD.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/schema-update/index.js.map +1 -0
- package/dist/sealed-record/index.js +12 -12
- package/dist/search/index.js +36 -0
- package/dist/search/index.js.map +1 -0
- package/dist/{seed-GVOI6QP6.js → seed-F7YYQTRC.js} +11 -11
- package/dist/sequence/index.js +30 -0
- package/dist/sequence/index.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-WMZKCNKC.js +25 -0
- package/dist/signer-WMZKCNKC.js.map +1 -0
- package/dist/snapshots/index.js +11 -11
- package/dist/snapshots/index.js.map +1 -1
- package/dist/{stale-BJO2WIN7.js → stale-JOE7GBAE.js} +10 -10
- package/dist/stale-JOE7GBAE.js.map +1 -0
- package/dist/storage-B3WBKXKT.js +23 -0
- package/dist/storage-B3WBKXKT.js.map +1 -0
- package/dist/store/index.js +22 -0
- package/dist/store/index.js.map +1 -0
- package/dist/{store-coordination-provider-DX5HECK3.js → store-coordination-provider-5LX2UFU2.js} +3 -3
- package/dist/sync/index.js +10 -10
- package/dist/team/index.js +29 -20
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +1 -1
- package/dist/{tx → transactions}/index.js +3 -3
- package/dist/{tx → transactions}/index.js.map +1 -1
- 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 +2 -2
- package/dist/walk-6OHAWGBS.js +21 -0
- package/dist/walk-6OHAWGBS.js.map +1 -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-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/snapshots/active.d.ts +2 -2
- package/dist/with-fork/snapshots/index.d.ts +1 -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 +4 -4
- 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 +1 -1
- package/dist/with-lookup/indexing/strategy.d.ts +3 -3
- 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/team/index.d.ts +2 -0
- package/dist/with-party/team/keyring.d.ts +49 -20
- package/dist/with-party/team/noydb-facade.d.ts +2 -2
- 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 +45 -5
- package/dist/api-5QVQX4HG.js +0 -20
- package/dist/chunk-2PDBYF2O.js.map +0 -1
- package/dist/chunk-2ZSC454H.js.map +0 -1
- package/dist/chunk-3S2YNMUS.js +0 -134
- package/dist/chunk-3S2YNMUS.js.map +0 -1
- package/dist/chunk-3TZUC4WS.js.map +0 -1
- package/dist/chunk-5ABOFAHN.js.map +0 -1
- package/dist/chunk-6SYOHUHM.js.map +0 -1
- package/dist/chunk-AZXEOEQK.js.map +0 -1
- package/dist/chunk-D4LAJ737.js.map +0 -1
- package/dist/chunk-DOZFU7OZ.js.map +0 -1
- package/dist/chunk-EGU4PWQW.js.map +0 -1
- package/dist/chunk-EWPS35AR.js.map +0 -1
- package/dist/chunk-GHEMAVTN.js.map +0 -1
- package/dist/chunk-GQT6J4FJ.js.map +0 -1
- package/dist/chunk-H5GMROCB.js.map +0 -1
- package/dist/chunk-LN3MQFUE.js.map +0 -1
- package/dist/chunk-M4GO4ZJK.js.map +0 -1
- package/dist/chunk-MQBFT2OT.js.map +0 -1
- package/dist/chunk-NIKO2BBZ.js.map +0 -1
- package/dist/chunk-PWWWMRT7.js.map +0 -1
- package/dist/chunk-QVIZDLAR.js.map +0 -1
- package/dist/chunk-RM5EXCFF.js.map +0 -1
- package/dist/chunk-SEU6QHH4.js.map +0 -1
- package/dist/chunk-TSNRZSRC.js.map +0 -1
- package/dist/chunk-YGMREQAK.js.map +0 -1
- package/dist/chunk-YJ3TREAC.js.map +0 -1
- package/dist/chunk-YMUGBZN2.js.map +0 -1
- package/dist/chunk-ZDFU34XY.js.map +0 -1
- package/dist/chunk-ZGEFBDPR.js.map +0 -1
- package/dist/chunk-ZX5FNWH7.js.map +0 -1
- package/dist/collection-facade-S5PPKZD5.js +0 -44
- package/dist/delegation-EV7LKJPH.js +0 -25
- package/dist/derive-5LDJW76F.js +0 -21
- package/dist/executor-FCJEH3FU.js +0 -9
- package/dist/executor-OHET7TF7.js +0 -9
- package/dist/executor-SVHAJZ4A.js +0 -28
- package/dist/export-accessible-S35YKIBL.js +0 -23
- package/dist/extract-partition-UVHAM5WZ.js +0 -38
- package/dist/find-LEBUXVL7.js +0 -11
- package/dist/issue-5X3SMCF4.js +0 -19
- package/dist/liberate-NHTCKBU4.js +0 -24
- package/dist/noydb-TI3RFU6M.js +0 -78
- package/dist/register-CEX7R7NE.js +0 -23
- package/dist/registry-7CZWF3EQ.js +0 -9
- package/dist/registry-DIKMRXUC.js +0 -19
- package/dist/registry-EWIB5NTI.js +0 -18
- package/dist/request-withdrawal-AAG57QO4.js +0 -31
- package/dist/revoke-U5LCIJMF.js +0 -24
- package/dist/signer-NAA2OX7H.js +0 -25
- package/dist/storage-FL7XXZTN.js +0 -23
- package/dist/withdraw-accessible-GO6KQJVM.js +0 -28
- /package/dist/{api-5QVQX4HG.js.map → api-3NKVNZPM.js.map} +0 -0
- /package/dist/{backup-USYSNCYM.js.map → backup-PTSVXDDW.js.map} +0 -0
- /package/dist/{chunk-5WLDZZ6S.js.map → chunk-35NMVJ7I.js.map} +0 -0
- /package/dist/{chunk-NA374QG7.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-M7W2KYTL.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-XSOGLHGY.js.map → chunk-6L3DKWRY.js.map} +0 -0
- /package/dist/{chunk-44Y3P5U6.js.map → chunk-6M2I3DKF.js.map} +0 -0
- /package/dist/{chunk-HDF5R2K6.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-XONZGK6J.js.map → chunk-BN4HRYAZ.js.map} +0 -0
- /package/dist/{chunk-QVGEVZ5F.js.map → chunk-BQ6DHN4I.js.map} +0 -0
- /package/dist/{chunk-LG2GUYRX.js.map → chunk-BYFXLDVV.js.map} +0 -0
- /package/dist/{chunk-QRHEAZ2Q.js.map → chunk-CUZLNGD5.js.map} +0 -0
- /package/dist/{chunk-HXVRRJBD.js.map → chunk-DGBIHDVK.js.map} +0 -0
- /package/dist/{chunk-JGOKAZNB.js.map → chunk-DZAF24PG.js.map} +0 -0
- /package/dist/{chunk-TMR64XPL.js.map → chunk-EZNTORXE.js.map} +0 -0
- /package/dist/{chunk-WCJJQV2D.js.map → chunk-FMNU7IUG.js.map} +0 -0
- /package/dist/{collection-facade-S5PPKZD5.js.map → chunk-GJW4HX2O.js.map} +0 -0
- /package/dist/{chunk-JTIPVW4J.js.map → chunk-GP3UWP22.js.map} +0 -0
- /package/dist/{chunk-XG7OZDOS.js.map → chunk-HFUAFR6B.js.map} +0 -0
- /package/dist/{chunk-VDTWFN2P.js.map → chunk-IMRB2C4O.js.map} +0 -0
- /package/dist/{chunk-2BVW754E.js.map → chunk-ISRKW4YN.js.map} +0 -0
- /package/dist/{chunk-P4NUJVWL.js.map → chunk-IXNCZTWA.js.map} +0 -0
- /package/dist/{chunk-ZHZ4PET5.js.map → chunk-JIDLU57U.js.map} +0 -0
- /package/dist/{chunk-PTT2NB46.js.map → chunk-JYJFGD2H.js.map} +0 -0
- /package/dist/{chunk-XY6MNSAF.js.map → chunk-JYV4JJV2.js.map} +0 -0
- /package/dist/{chunk-ZHMUFYZF.js.map → chunk-KBPU5M2E.js.map} +0 -0
- /package/dist/{chunk-HA7P3BTB.js.map → chunk-KRCBZYTZ.js.map} +0 -0
- /package/dist/{chunk-VNJMLOQS.js.map → chunk-KW42W6SV.js.map} +0 -0
- /package/dist/{chunk-3GXDB3NQ.js.map → chunk-MANUDU7I.js.map} +0 -0
- /package/dist/{chunk-IUATR5UE.js.map → chunk-N5PLUFH2.js.map} +0 -0
- /package/dist/{chunk-C2V7AJO2.js.map → chunk-NEX7JCMO.js.map} +0 -0
- /package/dist/{chunk-5HSSTOOG.js.map → chunk-NFZGZ4AK.js.map} +0 -0
- /package/dist/{chunk-32467U5J.js.map → chunk-OBPVWOSQ.js.map} +0 -0
- /package/dist/{chunk-6SSWOUUS.js.map → chunk-OLIWCCFM.js.map} +0 -0
- /package/dist/{chunk-UNREYBZO.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-MMVQ3SUO.js.map → chunk-RZPOZPZU.js.map} +0 -0
- /package/dist/{chunk-E7FSBI6I.js.map → chunk-SGQ4N5FS.js.map} +0 -0
- /package/dist/{chunk-522MBPE5.js.map → chunk-SHEEBRZ4.js.map} +0 -0
- /package/dist/{chunk-EPME33Y4.js.map → chunk-SHYIA73K.js.map} +0 -0
- /package/dist/{chunk-MLCTPWSO.js.map → chunk-TE6LH6J2.js.map} +0 -0
- /package/dist/{chunk-JOCMXSR2.js.map → chunk-UADPR6F4.js.map} +0 -0
- /package/dist/{chunk-SBOHNJUD.js.map → chunk-V6UQZA2H.js.map} +0 -0
- /package/dist/{chunk-KCZAFDP5.js.map → chunk-VH6SOCXH.js.map} +0 -0
- /package/dist/{chunk-4B3DL75F.js.map → chunk-W3G5REIU.js.map} +0 -0
- /package/dist/{chunk-MPPWL64H.js.map → chunk-WBKZUO5V.js.map} +0 -0
- /package/dist/{chunk-WWBC4KLB.js.map → chunk-WO4T4OD5.js.map} +0 -0
- /package/dist/{chunk-7IQWHYL2.js.map → chunk-WZ3NCMK6.js.map} +0 -0
- /package/dist/{chunk-BAAUFCJK.js.map → chunk-X4MVWPHV.js.map} +0 -0
- /package/dist/{chunk-HVPW6PCX.js.map → chunk-XIDQKFZF.js.map} +0 -0
- /package/dist/{chunk-OWOT7CFC.js.map → chunk-Y6B6HVKC.js.map} +0 -0
- /package/dist/{chunk-ICYC5YNI.js.map → chunk-Y6VZQGGH.js.map} +0 -0
- /package/dist/{chunk-ZM72UO3Y.js.map → chunk-ZFUFAHZ3.js.map} +0 -0
- /package/dist/{classified-marker-SVDRXLD3.js.map → classified-marker-EOOSMWFC.js.map} +0 -0
- /package/dist/{computed-33DRJDOC.js.map → collection-facade-TTRF5NFJ.js.map} +0 -0
- /package/dist/{cover-ADBCTIKN.js.map → computed-AB45PS4V.js.map} +0 -0
- /package/dist/{delegation-EV7LKJPH.js.map → cover/index.js.map} +0 -0
- /package/dist/{derive-5LDJW76F.js.map → custody/index.js.map} +0 -0
- /package/dist/{dead-filter-HKDMTMVY.js.map → dead-filter-6DYY7S64.js.map} +0 -0
- /package/dist/{enclave-ZA7C3H2L.js.map → derive-IGGVSUPH.js.map} +0 -0
- /package/dist/{executor-FCJEH3FU.js.map → directory/index.js.map} +0 -0
- /package/dist/{dispatch-SPMYNXNW.js.map → dispatch-7T45NN7C.js.map} +0 -0
- /package/dist/{dispatch-V5MSMQYX.js.map → dispatch-RPTLK7LJ.js.map} +0 -0
- /package/dist/{executor-OHET7TF7.js.map → enclave-CLJVSDFG.js.map} +0 -0
- /package/dist/{executor-SVHAJZ4A.js.map → executor-IEBLTBCW.js.map} +0 -0
- /package/dist/{export-accessible-S35YKIBL.js.map → executor-RM7XWQDU.js.map} +0 -0
- /package/dist/{extract-partition-UVHAM5WZ.js.map → executor-XZYM4KHT.js.map} +0 -0
- /package/dist/{find-LEBUXVL7.js.map → export-accessible-24XCCD3A.js.map} +0 -0
- /package/dist/{issue-5X3SMCF4.js.map → extract-partition-H2TPEEOF.js.map} +0 -0
- /package/dist/{fanout-sidecar-HRMHC34B.js.map → fanout-sidecar-TV7CXAJ6.js.map} +0 -0
- /package/dist/{ledger-K6JBFL3Z.js.map → find-OZMTRIK3.js.map} +0 -0
- /package/dist/{liberate-NHTCKBU4.js.map → introspection/index.js.map} +0 -0
- /package/dist/{link-set-XVZY2ODC.js.map → issue-55HJE7JF.js.map} +0 -0
- /package/dist/{noydb-TI3RFU6M.js.map → ledger-XY6NP3J2.js.map} +0 -0
- /package/dist/{policy-QWGJB7P7.js.map → liberate-LXOJ2EMB.js.map} +0 -0
- /package/dist/{register-CEX7R7NE.js.map → link-set-POQB7BU5.js.map} +0 -0
- /package/dist/{registry-7CZWF3EQ.js.map → money/index.js.map} +0 -0
- /package/dist/{registry-DIKMRXUC.js.map → noydb-KXS35UJS.js.map} +0 -0
- /package/dist/{registry-EWIB5NTI.js.map → policy/index.js.map} +0 -0
- /package/dist/{post-register-5VHHVFJY.js.map → post-register-URQANI3B.js.map} +0 -0
- /package/dist/{registry-VW6P6A3J.js.map → register-5W6CG4RM.js.map} +0 -0
- /package/dist/{request-withdrawal-AAG57QO4.js.map → registry-7Y5WF7GS.js.map} +0 -0
- /package/dist/{revoke-U5LCIJMF.js.map → registry-BWD2ED52.js.map} +0 -0
- /package/dist/{signer-NAA2OX7H.js.map → registry-MCSGBZXI.js.map} +0 -0
- /package/dist/{stale-BJO2WIN7.js.map → registry-UJFP3NWF.js.map} +0 -0
- /package/dist/{storage-FL7XXZTN.js.map → request-withdrawal-IWYDM4SO.js.map} +0 -0
- /package/dist/{reveal-7OOT5XPD.js.map → reveal-BXZGWIOP.js.map} +0 -0
- /package/dist/{withdraw-accessible-GO6KQJVM.js.map → revoke-TINYPHYY.js.map} +0 -0
- /package/dist/{seed-GVOI6QP6.js.map → seed-F7YYQTRC.js.map} +0 -0
- /package/dist/{store-coordination-provider-DX5HECK3.js.map → store-coordination-provider-5LX2UFU2.js.map} +0 -0
- /package/dist/{verify-5X37OXRY.js.map → verify-7XWHJWUN.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ViaGraph, type FieldRef, type EdgeKind, type Grain } from '../../kernel/via/graph.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { DerivationSpec } from './types.js';
|
|
3
3
|
interface RegisteredStrategy {
|
|
4
|
-
spec:
|
|
4
|
+
spec: DerivationSpec<any, any>;
|
|
5
5
|
strategyHash: string;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
@@ -13,7 +13,7 @@ interface RegisteredStrategy {
|
|
|
13
13
|
export declare class DerivationRegistry {
|
|
14
14
|
private readonly _bySource;
|
|
15
15
|
private readonly _byOutput;
|
|
16
|
-
register(spec:
|
|
16
|
+
register(spec: DerivationSpec<any, any>): Promise<void>;
|
|
17
17
|
strategiesForSource(source: string): ReadonlyArray<RegisteredStrategy>;
|
|
18
18
|
strategiesProducingOutput(collection: string): ReadonlyArray<RegisteredStrategy>;
|
|
19
19
|
/**
|
|
@@ -2,7 +2,7 @@ import type { Collection } from '../../kernel/collection.js';
|
|
|
2
2
|
import type { ReadOnlyVaultFacade } from '../../with-audit/guards/types.js';
|
|
3
3
|
import type { TxContext } from '../../with-commit/tx/transaction.js';
|
|
4
4
|
import type { DerivationRegistry } from './registry.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { DerivationSpec } from './types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Accessor shape passed through from the owning Vault. Provides the
|
|
8
8
|
* registry (used to look up strategies and as the WeakMap key) and a
|
|
@@ -29,7 +29,7 @@ export interface DerivationStaleAccessor {
|
|
|
29
29
|
getActiveTxContext(): TxContext | null;
|
|
30
30
|
}
|
|
31
31
|
/** Mark every output of (strategy, sourceId) as stale. */
|
|
32
|
-
export declare function markStale(registry: DerivationRegistry, strategy:
|
|
32
|
+
export declare function markStale(registry: DerivationRegistry, strategy: DerivationSpec<any, any>, sourceId: string): Promise<void>;
|
|
33
33
|
/**
|
|
34
34
|
* Called from `Collection.get` on lazy-mode output collections. If the
|
|
35
35
|
* id has a pending stale flag for any strategy producing this output
|
|
@@ -119,7 +119,7 @@ export type OutputSpec = RecordOutputSpec | ArrayOutputSpec;
|
|
|
119
119
|
* value may be a single record, or — for `shape: 'array'` outputs — an
|
|
120
120
|
* array of records (the fanout sidecar upserts/deletes each row).
|
|
121
121
|
*/
|
|
122
|
-
export interface
|
|
122
|
+
export interface DerivationSpec<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>> {
|
|
123
123
|
/** Source collection name. */
|
|
124
124
|
source: string;
|
|
125
125
|
/**
|
|
@@ -242,7 +242,7 @@ export interface DerivationStrategy<TSource extends Record<string, unknown>, TOu
|
|
|
242
242
|
strict?: boolean;
|
|
243
243
|
}
|
|
244
244
|
/** Returned by `withDerivation()` and consumed by `createNoydb`. */
|
|
245
|
-
export interface
|
|
245
|
+
export interface DerivationStrategy {
|
|
246
246
|
readonly __noydb_strategy: 'derivation';
|
|
247
|
-
readonly spec:
|
|
247
|
+
readonly spec: DerivationSpec<any, any>;
|
|
248
248
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DerivationSpec, DerivationStrategy } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Register a deterministic derivation: one source collection → one or
|
|
4
4
|
* more typed outputs, computed by the user's `derive` function on
|
|
@@ -7,4 +7,4 @@ import type { DerivationStrategy, DerivationStrategyHandle } from './types.js';
|
|
|
7
7
|
*
|
|
8
8
|
* See docs/superpowers/specs/2026-05-01-dim14-derivation-v1-design.md.
|
|
9
9
|
*/
|
|
10
|
-
export declare function withDerivation<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>>(spec:
|
|
10
|
+
export declare function withDerivation<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>>(spec: DerivationSpec<TSource, TOutputs>): DerivationStrategy;
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DerivationStrategy } from './types.js';
|
|
2
|
+
/** Options for {@link withRollup} (#844b — was an inline literal, so unnameable). */
|
|
3
|
+
export interface WithRollupOptions<TChild extends Record<string, unknown> = Record<string, unknown>, TParent extends Record<string, unknown> = Record<string, unknown>> {
|
|
4
|
+
/** Child collection — the trigger. */
|
|
5
|
+
readonly from: string;
|
|
6
|
+
/** FK field on the child pointing at the parent id. */
|
|
7
|
+
readonly key: keyof TChild & string;
|
|
8
|
+
/** Parent collection carrying the maintained summary. */
|
|
9
|
+
readonly into: string;
|
|
10
|
+
/** Field on the parent to maintain. */
|
|
11
|
+
readonly field: keyof TParent & string;
|
|
12
|
+
/** Reduces the matching children to the value written at `field`. */
|
|
13
|
+
readonly compute: (children: TChild[]) => unknown;
|
|
14
|
+
}
|
|
2
15
|
/**
|
|
3
16
|
* `withRollup` — aggregate many child records onto a single field of their
|
|
4
17
|
* parent. The reverse of a join: instead of reading children
|
|
@@ -25,10 +38,4 @@ import type { DerivationStrategyHandle } from './types.js';
|
|
|
25
38
|
* Desugars to a `withDerivation` strategy carrying a `rollup` marker; dispatch
|
|
26
39
|
* handles it without invoking the executor. Eager-only in this slice.
|
|
27
40
|
*/
|
|
28
|
-
export declare function withRollup<TChild extends Record<string, unknown> = Record<string, unknown>, TParent extends Record<string, unknown> = Record<string, unknown>>(
|
|
29
|
-
from: string;
|
|
30
|
-
key: keyof TChild & string;
|
|
31
|
-
into: string;
|
|
32
|
-
field: keyof TParent & string;
|
|
33
|
-
compute: (children: TChild[]) => unknown;
|
|
34
|
-
}): DerivationStrategyHandle;
|
|
41
|
+
export declare function withRollup<TChild extends Record<string, unknown> = Record<string, unknown>, TParent extends Record<string, unknown> = Record<string, unknown>>(opts: WithRollupOptions<TChild, TParent>): DerivationStrategy;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Query } from '../../kernel/query/builder.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MaterializedViewSpec } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Walks a `Query<T>` plan and returns the set of source collection
|
|
5
5
|
* names that any source-write should trigger a refresh on.
|
|
@@ -55,7 +55,7 @@ export declare function summarizeQueryPlan(query: Query<any>): string;
|
|
|
55
55
|
* the MV's `name` (or rely on application-level cache busting) when
|
|
56
56
|
* `map` semantics change non-equivalently.
|
|
57
57
|
*/
|
|
58
|
-
export declare function summarizeUnionPlan<T extends Record<string, unknown>>(spec:
|
|
58
|
+
export declare function summarizeUnionPlan<T extends Record<string, unknown>>(spec: MaterializedViewSpec<T>): string;
|
|
59
59
|
/**
|
|
60
60
|
* Canonical string description of a projection MV's plan (#810), used
|
|
61
61
|
* as input to `computeQueryHash`.
|
|
@@ -70,4 +70,4 @@ export declare function summarizeUnionPlan<T extends Record<string, unknown>>(sp
|
|
|
70
70
|
* the UNION arm `map`); consumers must bump the MV's `name` when
|
|
71
71
|
* `map` semantics change non-equivalently.
|
|
72
72
|
*/
|
|
73
|
-
export declare function summarizeProjectionPlan<T extends Record<string, unknown>>(spec:
|
|
73
|
+
export declare function summarizeProjectionPlan<T extends Record<string, unknown>>(spec: MaterializedViewSpec<T>): string;
|
|
@@ -5,7 +5,7 @@ export { analyzeDependencies, summarizeQueryPlan } from './dependency-analyzer.j
|
|
|
5
5
|
export { computeQueryHash, canonicalizeQueryPlan } from './query-hash.js';
|
|
6
6
|
export { markMVStale, resolveStaleMVOnRead, isMVStale, clearMVStale } from './stale.js';
|
|
7
7
|
export type { MVStaleAccessor } from './stale.js';
|
|
8
|
-
export type {
|
|
8
|
+
export type { MaterializedViewSpec, MaterializedViewStrategy, MaterializedViewOutput, MaterializedFromMeta, UnionSource, UnionArmJoin, ProjectionSpec, ProjectionJoinLeg, } from './types.js';
|
|
9
9
|
export type { RegisteredMV } from './registry.js';
|
|
10
10
|
export type { MVExecutorAccessor, RefreshResult } from './executor.js';
|
|
11
11
|
export { MaterializedViewCycleError, MaterializedViewConfigError, MaterializedViewSourceUnknownError, MaterializedViewTooLargeError, } from '../../kernel/errors.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ViaGraph, FieldRef, EdgeKind, Grain } from '../../kernel/via/graph.js';
|
|
2
2
|
import type { FieldClause } from '../../kernel/query/predicate.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MaterializedViewSpec, MVQueryContext } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* One registered MV strategy alongside its derived metadata. Stored
|
|
6
6
|
* type-erased on `TRow` so the registry can hold heterogeneous MVs.
|
|
7
7
|
*/
|
|
8
8
|
export interface RegisteredMV {
|
|
9
|
-
readonly spec:
|
|
9
|
+
readonly spec: MaterializedViewSpec<any>;
|
|
10
10
|
/** Output collection name (`spec.output?.collection ?? spec.name`). */
|
|
11
11
|
readonly outputCollection: string;
|
|
12
12
|
/** Set of source collections; populated at registration via the analyzer. */
|
|
@@ -65,7 +65,7 @@ export declare class MaterializedViewRegistry {
|
|
|
65
65
|
* surfaces a dependency the vault doesn't know about (when a
|
|
66
66
|
* `knownCollections` checker is supplied).
|
|
67
67
|
*/
|
|
68
|
-
register(spec:
|
|
68
|
+
register(spec: MaterializedViewSpec<any>, db: MVQueryContext, options?: {
|
|
69
69
|
knownCollections?: (name: string) => boolean;
|
|
70
70
|
}): Promise<void>;
|
|
71
71
|
/** All MVs that depend on `source`, in registration order. */
|
|
@@ -125,4 +125,4 @@ export declare class MaterializedViewRegistry {
|
|
|
125
125
|
*
|
|
126
126
|
* @internal
|
|
127
127
|
*/
|
|
128
|
-
export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<
|
|
128
|
+
export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<MaterializedViewSpec<Record<string, unknown>>['predicates']>): MVQueryContext;
|
|
@@ -97,7 +97,7 @@ export interface UnionSource<TRow extends Record<string, unknown>> {
|
|
|
97
97
|
* `as` — the same machinery as the query-form `Query.join()`.
|
|
98
98
|
*
|
|
99
99
|
* The right-side collections must be listed in the strategy's
|
|
100
|
-
* {@link
|
|
100
|
+
* {@link MaterializedViewSpec.sources} so writes to them trigger
|
|
101
101
|
* MV refresh — registration throws `MaterializedViewConfigError`
|
|
102
102
|
* otherwise (the union dependency set comes from arm `collection`s
|
|
103
103
|
* alone, which would not include join targets).
|
|
@@ -185,7 +185,7 @@ export type ProjectionJoinLeg = {
|
|
|
185
185
|
*
|
|
186
186
|
* @typeParam TRow - the materialized row type (the query's result row)
|
|
187
187
|
*/
|
|
188
|
-
export interface
|
|
188
|
+
export interface MaterializedViewSpec<TRow extends Record<string, unknown>> {
|
|
189
189
|
/**
|
|
190
190
|
* Stable identity for this view. Used as the output collection name
|
|
191
191
|
* unless `output.collection` overrides. Must be unique within the vault.
|
|
@@ -393,7 +393,7 @@ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>>
|
|
|
393
393
|
maxRows?: number;
|
|
394
394
|
}
|
|
395
395
|
/** Returned by `withMaterializedView()` and consumed by `createNoydb`. */
|
|
396
|
-
export interface
|
|
396
|
+
export interface MaterializedViewStrategy {
|
|
397
397
|
readonly __noydb_strategy: 'materialized-view';
|
|
398
|
-
readonly spec:
|
|
398
|
+
readonly spec: MaterializedViewSpec<any>;
|
|
399
399
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaterializedViewSpec, MaterializedViewStrategy } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Register a materialized view: a declared query whose result is
|
|
4
4
|
* persisted as a queryable collection and kept fresh as sources
|
|
@@ -25,4 +25,4 @@ import type { MaterializedViewStrategy, MaterializedViewStrategyHandle } from '.
|
|
|
25
25
|
* docs/superpowers/specs/2026-05-21-dim14-mv-multikey-and-union.md (UNION),
|
|
26
26
|
* and docs/superpowers/specs/2026-07-25-join-projection-mv-design.md (projection).
|
|
27
27
|
*/
|
|
28
|
-
export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec:
|
|
28
|
+
export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec: MaterializedViewSpec<TRow>): MaterializedViewStrategy;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { withOverlayedView } from './with-overlayed-view.js';
|
|
2
2
|
export { OverlayedViewRegistry } from './registry.js';
|
|
3
3
|
export { OverlayedCollection } from './virtual-collection.js';
|
|
4
|
-
export type {
|
|
4
|
+
export type { OverlayedViewSpec, OverlayedViewStrategy, OverlayFieldMergeRule, OverlayFieldMergeMode, } from './types.js';
|
|
5
5
|
export { OverlayBaseIsVirtualError, OverlayCollectionUnavailableError, OverlayNameCollisionError, OverlayIdMismatchError, } from '../../kernel/errors.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MaterializedViewRegistry } from '../materialized-views/registry.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { OverlayedViewSpec } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Vault-internal registry of overlay strategies. Resolves the base
|
|
5
5
|
* MV's `rowKey` lazily so virtual-collection writes can derive ids
|
|
@@ -15,12 +15,12 @@ export declare class OverlayedViewRegistry {
|
|
|
15
15
|
* declared without the MV registry context skip cross-registry
|
|
16
16
|
* checks but still validate self-consistency.
|
|
17
17
|
*/
|
|
18
|
-
register(spec:
|
|
18
|
+
register(spec: OverlayedViewSpec, options: {
|
|
19
19
|
isOverlayName?: (name: string) => boolean;
|
|
20
20
|
isMVOutput?: (name: string) => boolean;
|
|
21
21
|
isKnownCollection?: (name: string) => boolean;
|
|
22
22
|
}): void;
|
|
23
|
-
byName(name: string):
|
|
23
|
+
byName(name: string): OverlayedViewSpec | undefined;
|
|
24
24
|
/** All overlay virtual names. */
|
|
25
25
|
names(): ReadonlySet<string>;
|
|
26
26
|
isOverlay(name: string): boolean;
|
|
@@ -31,7 +31,7 @@ export declare class OverlayedViewRegistry {
|
|
|
31
31
|
*
|
|
32
32
|
* Used by `dumpSchema()` to populate the `overlayViews` map.
|
|
33
33
|
*/
|
|
34
|
-
all(): ReadonlyArray<
|
|
34
|
+
all(): ReadonlyArray<OverlayedViewSpec>;
|
|
35
35
|
/**
|
|
36
36
|
* Resolve the `rowKey` function for an overlay's base MV. Returns
|
|
37
37
|
* `undefined` if the base isn't an MV (raw source collection) or
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* v2 ships the read-shadow variant only — arbitrary `mergePolicy`
|
|
7
7
|
* callbacks are deferred to v3.
|
|
8
8
|
*/
|
|
9
|
-
export interface
|
|
9
|
+
export interface OverlayedViewSpec {
|
|
10
10
|
/**
|
|
11
11
|
* Virtual collection name. `vault.collection(name)` returns a
|
|
12
12
|
* proxy that merges `base` and `overlay` per the shadow rule.
|
|
@@ -91,7 +91,7 @@ export interface OverlayFieldMergeMode {
|
|
|
91
91
|
readonly rules: readonly OverlayFieldMergeRule[];
|
|
92
92
|
}
|
|
93
93
|
/** Returned by `withOverlayedView()` and consumed by `createNoydb`. */
|
|
94
|
-
export interface
|
|
94
|
+
export interface OverlayedViewStrategy {
|
|
95
95
|
readonly __noydb_strategy: 'overlayed-view';
|
|
96
|
-
readonly spec:
|
|
96
|
+
readonly spec: OverlayedViewSpec;
|
|
97
97
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Collection } from '../../kernel/collection.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { OverlayedViewSpec } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Virtual-collection proxy returned by `vault.collection(overlayName)`
|
|
5
5
|
* when `overlayName` is a registered `withOverlayedView`.
|
|
@@ -23,7 +23,7 @@ export declare class OverlayedCollection<T extends Record<string, unknown> = any
|
|
|
23
23
|
private readonly baseCollection;
|
|
24
24
|
private readonly overlayCollection;
|
|
25
25
|
private readonly baseRowKey;
|
|
26
|
-
constructor(spec:
|
|
26
|
+
constructor(spec: OverlayedViewSpec, baseCollection: Collection<T>, overlayCollection: Collection<T>, baseRowKey: ((row: Record<string, unknown>) => string) | undefined);
|
|
27
27
|
/**
|
|
28
28
|
* Convenience accessors for advanced callers that need to bypass the
|
|
29
29
|
* virtual layer (bulk imports, direct overlay queries). Mirrors the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OverlayedViewSpec, OverlayedViewStrategy } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Register a read-shadow overlay: bind an MV-owned base collection to
|
|
4
4
|
* a user-writable overlay so consumers can express operator-editable
|
|
@@ -6,4 +6,4 @@ import type { OverlayedViewStrategy, OverlayedViewStrategyHandle } from './types
|
|
|
6
6
|
*
|
|
7
7
|
* See docs/superpowers/specs/2026-05-20-dim14-mv-v2-design.md.
|
|
8
8
|
*/
|
|
9
|
-
export declare function withOverlayedView(spec:
|
|
9
|
+
export declare function withOverlayedView(spec: OverlayedViewSpec): OverlayedViewStrategy;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Active indexing strategy factory. Calling `withIndexing()` returns
|
|
3
|
-
* an `
|
|
3
|
+
* an `IndexingStrategy` whose `createState` constructs a real
|
|
4
4
|
* `CollectionIndexes` (eager) or `PersistedCollectionIndex` (lazy)
|
|
5
5
|
* per Collection, depending on the collection's `prefetch` mode and
|
|
6
6
|
* its declared `IndexDef[]`.
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* subpath — a consumer that never imports the subpath ships none of
|
|
10
10
|
* this (ESM tree-shaking + hub's `"sideEffects": false`).
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { IndexingStrategy } from './strategy.js';
|
|
13
13
|
/**
|
|
14
14
|
* Build the default indexing strategy. Pass into
|
|
15
|
-
* `createNoydb({
|
|
15
|
+
* `createNoydb({ indexingStrategy: withIndexing() })` to light up the
|
|
16
16
|
* eager-mode `==/in` fast-path on `.query()` and the full lazy-mode
|
|
17
17
|
* `.lazyQuery()` + rebuild / reconcile / auto-reconcile surface.
|
|
18
18
|
*
|
|
@@ -23,8 +23,8 @@ import type { IndexStrategy } from './strategy.js';
|
|
|
23
23
|
*
|
|
24
24
|
* const db = await createNoydb({
|
|
25
25
|
* store, user, secret,
|
|
26
|
-
*
|
|
26
|
+
* indexingStrategy: withIndexing(),
|
|
27
27
|
* })
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
export declare function withIndexing():
|
|
30
|
+
export declare function withIndexing(): IndexingStrategy;
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* capability boundary is explicit in import statements.
|
|
19
19
|
*/
|
|
20
20
|
export { withIndexing } from './active.js';
|
|
21
|
-
export type {
|
|
21
|
+
export type { IndexingStrategy, IndexState } from './strategy.js';
|
|
22
22
|
export { CollectionIndexes } from './eager-indexes.js';
|
|
23
23
|
export type { IndexDef, HashIndex } from './eager-indexes.js';
|
|
24
24
|
export { PersistedCollectionIndex, IDX_PREFIX, COMPOSITE_DELIMITER, encodeIdxId, decodeIdxId, isIdxId, compositeKey, } from './persisted-indexes.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strategy seam between core Collection and the optional indexing
|
|
3
|
-
* service. Core imports `
|
|
3
|
+
* service. Core imports `IndexingStrategy` and `IndexState` as
|
|
4
4
|
* TYPE-ONLY symbols and `NO_INDEXING` as a tiny runtime stub.
|
|
5
5
|
*
|
|
6
6
|
* The heavy classes — `CollectionIndexes`, `PersistedCollectionIndex`,
|
|
@@ -39,7 +39,7 @@ export interface IndexState {
|
|
|
39
39
|
*
|
|
40
40
|
* @internal
|
|
41
41
|
*/
|
|
42
|
-
export interface
|
|
42
|
+
export interface IndexingStrategy {
|
|
43
43
|
createState(args: {
|
|
44
44
|
readonly defs: readonly IndexDef[];
|
|
45
45
|
readonly lazy: boolean;
|
|
@@ -53,4 +53,4 @@ export interface IndexStrategy {
|
|
|
53
53
|
*
|
|
54
54
|
* @internal
|
|
55
55
|
*/
|
|
56
|
-
export declare const NO_INDEXING:
|
|
56
|
+
export declare const NO_INDEXING: IndexingStrategy;
|
|
@@ -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';
|
|
@@ -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,7 +144,7 @@ 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
|
|
@@ -151,7 +170,19 @@ export interface RotateResult {
|
|
|
151
170
|
readonly collection: string;
|
|
152
171
|
}>;
|
|
153
172
|
}
|
|
154
|
-
|
|
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
|
+
}
|
|
155
186
|
/**
|
|
156
187
|
* Change the user's secret. Re-wraps every DEK under the new KEK.
|
|
157
188
|
*
|
|
@@ -164,13 +195,11 @@ export declare function rotateKeys(adapter: NoydbStore, vault: string, callerKey
|
|
|
164
195
|
* for re-derivation; `changeSecret` reuses the cached unlocked KEK so
|
|
165
196
|
* the OLD secret is not retyped.
|
|
166
197
|
*/
|
|
167
|
-
export declare function changeSecret(
|
|
168
|
-
allowWeakSecret?: boolean;
|
|
169
|
-
}): Promise<UnlockedKeyring>;
|
|
198
|
+
export declare function changeSecret(store: NoydbStore, vault: string, keyring: UnlockedKeyring, opts: ChangeSecretOptions): Promise<UnlockedKeyring>;
|
|
170
199
|
/**
|
|
171
200
|
* Recipient slot in a re-keyed `.noydb` bundle. Each slot becomes its
|
|
172
201
|
* own keyring file inside the bundle, sealed with its own secret.
|
|
173
|
-
* Same role/permission semantics as `db.grant()` but no
|
|
202
|
+
* Same role/permission semantics as `db.grant()` but no store side
|
|
174
203
|
* effect — the slot only exists inside the bundle bytes.
|
|
175
204
|
*
|
|
176
205
|
* @public
|
|
@@ -212,7 +241,7 @@ export interface BundleRecipient {
|
|
|
212
241
|
}
|
|
213
242
|
/**
|
|
214
243
|
* Build a `KeyringFile` for one bundle recipient, given the source
|
|
215
|
-
* vault's unwrapped DEKs. Mirrors `grant()` minus the
|
|
244
|
+
* vault's unwrapped DEKs. Mirrors `grant()` minus the store write —
|
|
216
245
|
* the produced file is meant to be embedded in the bundle's
|
|
217
246
|
* `keyrings` map, never persisted to the source vault.
|
|
218
247
|
*
|
|
@@ -223,7 +252,7 @@ export interface BundleRecipient {
|
|
|
223
252
|
*/
|
|
224
253
|
export declare function buildRecipientKeyringFile(callerKeyring: UnlockedKeyring, recipient: BundleRecipient): Promise<KeyringFile>;
|
|
225
254
|
/** List all users with access to a vault. */
|
|
226
|
-
export declare function listUsers(
|
|
255
|
+
export declare function listUsers(store: NoydbStore, vault: string): Promise<UserInfo[]>;
|
|
227
256
|
/**
|
|
228
257
|
* Optional filter knobs for {@link listUsersWithEnvelopes}.
|
|
229
258
|
*
|
|
@@ -273,18 +302,18 @@ export interface ListUsersOptions {
|
|
|
273
302
|
* Order matches `listUsers()` (store-defined; sort if you need a
|
|
274
303
|
* stable display order).
|
|
275
304
|
*/
|
|
276
|
-
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<{
|
|
277
306
|
user: UserInfo;
|
|
278
307
|
envelope: UserEnvelope<T> | null;
|
|
279
308
|
}>>;
|
|
280
309
|
/** Ensure a DEK exists for a collection. Generates one if new. */
|
|
281
|
-
export declare function ensureCollectionDEK(
|
|
310
|
+
export declare function ensureCollectionDEK(store: NoydbStore, vault: string, keyring: UnlockedKeyring): Promise<(collectionName: string) => Promise<EnclaveKey>>;
|
|
282
311
|
/** Check if a user has write permission for a collection. */
|
|
283
312
|
export declare function hasWritePermission(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
284
313
|
/** Check if a user has any access to a collection. */
|
|
285
314
|
export declare function hasAccess(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
286
|
-
/** Persist a keyring file to the
|
|
287
|
-
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>;
|
|
288
317
|
/**
|
|
289
318
|
* Check whether a keyring is authorised for a given `@noy-db/as-*`
|
|
290
319
|
* export tier.
|
|
@@ -19,7 +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 } from './keyring.js';
|
|
22
|
+
import type { RotateResult, RotateKeysOptions } from './keyring.js';
|
|
23
23
|
import { type RotateSecretInput, type RecoverSecretInput, type RecoverSecretResult, type RotateRecoveryOptions, type RotateRecoveryResult, type EnrollRecoveryResult, type RecoveryEnrollmentInput, type RecoveryProof } from './rotate-recover.js';
|
|
24
24
|
import { type RecoverUserOptions } from './peer-recover.js';
|
|
25
25
|
import { type PaperRecoveryEntry, type ShamirRecoveryEntry } from './recovery.js';
|
|
@@ -73,7 +73,7 @@ export declare class TeamFacade {
|
|
|
73
73
|
/** Gate + run a `revoke` engine. See `Noydb.revoke` for the public contract. */
|
|
74
74
|
runRevoke(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<void>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
|
|
75
75
|
/** Gate + run a `rotateKeys` engine. See `Noydb.rotate` for the public contract. */
|
|
76
|
-
runRotate(engine: (
|
|
76
|
+
runRotate(engine: (store: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, opts: RotateKeysOptions) => Promise<RotateResult>, vault: string, collections: string[]): Promise<RotateResult>;
|
|
77
77
|
/**
|
|
78
78
|
* Add a tier-2 authenticator slot to the calling user's keyring.
|
|
79
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';
|