@noy-db/hub 0.4.0 → 0.6.0-pre.0
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-67SBPMMH.js +20 -0
- package/dist/attestation/index.js +18 -18
- package/dist/{backup-X7F3TCFV.js → backup-GAYWQAFN.js} +16 -11
- package/dist/backup-GAYWQAFN.js.map +1 -0
- package/dist/blobs/index.js +20 -20
- package/dist/broker/index.js +12 -12
- package/dist/bundle-handle-5OUAI7CV.js +36 -0
- package/dist/bundle-handle-5OUAI7CV.js.map +1 -0
- package/dist/cargo/index.js +36 -36
- package/dist/{chunk-DQZXPGGZ.js → chunk-24UICKTB.js} +3 -3
- package/dist/{chunk-77AEMXFA.js → chunk-24ZLWWEO.js} +1 -1
- package/dist/chunk-24ZLWWEO.js.map +1 -0
- package/dist/{chunk-2BET5QTS.js → chunk-27TCYH6G.js} +5 -5
- package/dist/{chunk-MSMJJB4J.js → chunk-2KIV7BEK.js} +2 -2
- package/dist/{chunk-6ZNSB3H6.js → chunk-2LGDCNFJ.js} +2 -2
- package/dist/{chunk-GTYFIVIZ.js → chunk-35EBKWQU.js} +5 -5
- package/dist/chunk-35EBKWQU.js.map +1 -0
- package/dist/{chunk-WBKZUO5V.js → chunk-3737A6EA.js} +3 -3
- package/dist/{chunk-ZBYFMI6D.js → chunk-3CLZY46Y.js} +638 -300
- package/dist/chunk-3CLZY46Y.js.map +1 -0
- package/dist/{chunk-HLKXPJ4V.js → chunk-3EO7RZLJ.js} +6 -6
- package/dist/{chunk-JYJFGD2H.js → chunk-3FSX6LDG.js} +2 -2
- package/dist/{chunk-MXUT7FTE.js → chunk-3HYWYLXL.js} +2 -2
- package/dist/{chunk-IVYQAVWO.js → chunk-3IIPWA75.js} +11 -11
- package/dist/{chunk-7H3WWH6J.js → chunk-3UK6STWO.js} +3 -3
- package/dist/chunk-46V67XP5.js +117 -0
- package/dist/chunk-46V67XP5.js.map +1 -0
- package/dist/{chunk-NJ4DYYO5.js → chunk-4HDYQL3J.js} +2 -2
- package/dist/{chunk-P4JO3H6R.js → chunk-4MQDV3HZ.js} +2 -2
- package/dist/{chunk-X4MVWPHV.js → chunk-4UVDI4XE.js} +3 -3
- package/dist/{chunk-LXRTP3AQ.js → chunk-4VCWI42L.js} +2 -2
- package/dist/{chunk-QJNCB5SK.js → chunk-747LRSOO.js} +2 -2
- package/dist/{chunk-3HUYRN24.js → chunk-7F4DBNSP.js} +3 -3
- package/dist/{chunk-UADPR6F4.js → chunk-7G6VDWXB.js} +3 -3
- package/dist/{chunk-PTHKZWEH.js → chunk-AHLJSVRL.js} +2 -2
- package/dist/{chunk-NFZGZ4AK.js → chunk-AR2JDFAE.js} +2 -2
- package/dist/{chunk-3ECU57YH.js → chunk-BPTZ4K5L.js} +11 -11
- package/dist/{chunk-KRCBZYTZ.js → chunk-CCZJJ4I2.js} +4 -4
- package/dist/{chunk-NYEFP7DY.js → chunk-CJ73OLMW.js} +2 -2
- package/dist/{chunk-Q36YXK77.js → chunk-CYQOUTMY.js} +3 -3
- package/dist/{chunk-RBTVFPHF.js → chunk-DCMQR46R.js} +5 -5
- package/dist/{chunk-TG634KCO.js → chunk-DG27IUVI.js} +2 -2
- package/dist/{chunk-E23UGFVC.js → chunk-DMQCLZ4Z.js} +8 -6
- package/dist/chunk-DMQCLZ4Z.js.map +1 -0
- package/dist/{chunk-ZNWSG7XC.js → chunk-DPJTDNUF.js} +68 -34
- package/dist/chunk-DPJTDNUF.js.map +1 -0
- package/dist/{chunk-V6UQZA2H.js → chunk-E6427JU2.js} +2 -2
- package/dist/{chunk-JEI6JJNI.js → chunk-EK7DT5BT.js} +220 -13
- package/dist/chunk-EK7DT5BT.js.map +1 -0
- package/dist/chunk-EPFF7LOX.js +14 -0
- package/dist/chunk-EPFF7LOX.js.map +1 -0
- package/dist/{chunk-TWPK7KUJ.js → chunk-F3GVO44K.js} +6 -6
- package/dist/{chunk-QD46HPZG.js → chunk-FAXZQ5UF.js} +2 -2
- package/dist/{chunk-IG6KUWBX.js → chunk-FNSMZQS4.js} +2 -2
- package/dist/{chunk-BLBAQRBM.js → chunk-FUHKW252.js} +2 -2
- package/dist/{chunk-SU6SGWXM.js → chunk-FY343IZR.js} +8 -8
- package/dist/{chunk-KPZS5QAQ.js → chunk-GQ3BX5EA.js} +9 -1
- package/dist/chunk-GQ3BX5EA.js.map +1 -0
- package/dist/{chunk-DAFBJS4Y.js → chunk-GS5RT2KK.js} +4 -4
- package/dist/{chunk-5UQ7Y6SQ.js → chunk-HFKGIBMD.js} +3 -3
- package/dist/{chunk-QZWTRENR.js → chunk-HNGSV2YC.js} +133 -1
- package/dist/chunk-HNGSV2YC.js.map +1 -0
- package/dist/chunk-HNHCQ556.js +63 -0
- package/dist/chunk-HNHCQ556.js.map +1 -0
- package/dist/chunk-HS7HNYBD.js +91 -0
- package/dist/chunk-HS7HNYBD.js.map +1 -0
- package/dist/{chunk-SHEEBRZ4.js → chunk-HVQGCKY4.js} +2 -2
- package/dist/{chunk-35NMVJ7I.js → chunk-HXGUIPQB.js} +3 -3
- package/dist/{chunk-ERGECZEI.js → chunk-JEM2IGS3.js} +9 -9
- package/dist/chunk-JH3OHQM4.js +260 -0
- package/dist/chunk-JH3OHQM4.js.map +1 -0
- package/dist/{chunk-L3YYLT4E.js → chunk-JIUVJ4M7.js} +2 -2
- package/dist/{chunk-55LX6FSX.js → chunk-JRCYZEHU.js} +2 -2
- package/dist/{chunk-SFBYQMZM.js → chunk-JSRU5W2M.js} +5 -5
- package/dist/{chunk-NM5UYF6Q.js → chunk-JXIDGFKS.js} +2 -2
- package/dist/{chunk-VYYM3MEN.js → chunk-KHKKD62N.js} +16 -2
- package/dist/chunk-KHKKD62N.js.map +1 -0
- package/dist/{chunk-FQ5CHJR7.js → chunk-KUDZVJKQ.js} +21 -2
- package/dist/chunk-KUDZVJKQ.js.map +1 -0
- package/dist/{chunk-RO5NM6UI.js → chunk-KZ3KMDN3.js} +2 -2
- package/dist/{chunk-HZZP2ZIG.js → chunk-LBGPO5RL.js} +6 -6
- package/dist/{chunk-ZFG5EBI3.js → chunk-LTU4FLHG.js} +57 -27
- package/dist/chunk-LTU4FLHG.js.map +1 -0
- package/dist/{chunk-CLE3TMIS.js → chunk-MC2LFTQM.js} +5 -2
- package/dist/{chunk-467SWYT5.js → chunk-MJWCLSQL.js} +17 -8
- package/dist/chunk-MJWCLSQL.js.map +1 -0
- package/dist/{chunk-W3G5REIU.js → chunk-MSWYQLMQ.js} +2 -2
- package/dist/{chunk-WK7ULBTP.js → chunk-MVOWXQHN.js} +5 -3
- package/dist/chunk-MVOWXQHN.js.map +1 -0
- package/dist/{chunk-2J6UEN2V.js → chunk-MXZ5TSTR.js} +118 -4
- package/dist/chunk-MXZ5TSTR.js.map +1 -0
- package/dist/{chunk-SGDPRCC4.js → chunk-MZ5ZFO2D.js} +3 -3
- package/dist/{chunk-NBXFCQX4.js → chunk-NQCNSVGI.js} +9 -9
- package/dist/chunk-NQCNSVGI.js.map +1 -0
- package/dist/{chunk-EFJAAFBW.js → chunk-NQRJ5AJO.js} +2 -2
- package/dist/{chunk-Q2SEJMP2.js → chunk-NVU7ZMPN.js} +2 -2
- package/dist/{chunk-ZTLOXFPB.js → chunk-OF3L2SD6.js} +2 -2
- package/dist/{chunk-LLYIMSQQ.js → chunk-OMSAULZM.js} +11 -11
- package/dist/{chunk-SF2ZIRD6.js → chunk-OSFPNKY4.js} +3 -3
- package/dist/{chunk-WUHEP3HH.js → chunk-P7NGLLUF.js} +5 -5
- package/dist/{chunk-RQ4ZI4ZI.js → chunk-PGAPBZEK.js} +7 -7
- package/dist/{chunk-T2MOJF76.js → chunk-PP5CO2PR.js} +6 -6
- package/dist/{chunk-Q5YJCVJY.js → chunk-RLWY6Z44.js} +227 -41
- package/dist/chunk-RLWY6Z44.js.map +1 -0
- package/dist/{chunk-QGIBI6GL.js → chunk-ROWL352P.js} +5 -5
- package/dist/{chunk-ZHDSUZQU.js → chunk-RPXL6KSX.js} +4 -4
- package/dist/{chunk-DTFA5DO4.js → chunk-SKONR2OL.js} +3 -3
- package/dist/{chunk-AT2JJEKJ.js → chunk-SRGJET2F.js} +16 -5
- package/dist/chunk-SRGJET2F.js.map +1 -0
- package/dist/{chunk-4ZKNC6A6.js → chunk-T4GPR2IR.js} +2 -2
- package/dist/{chunk-NLYALJMY.js → chunk-TFZ7LLOQ.js} +113 -36
- package/dist/chunk-TFZ7LLOQ.js.map +1 -0
- package/dist/{chunk-TS5XLBZR.js → chunk-TLNNHG3A.js} +4 -4
- package/dist/{chunk-6UBZ6I5Z.js → chunk-UHXCLPGC.js} +2 -2
- package/dist/{chunk-KD4HGBJV.js → chunk-V5C5NNBR.js} +4 -4
- package/dist/{chunk-WYUAEZSC.js → chunk-VBY6ZLJT.js} +15 -14
- package/dist/chunk-VBY6ZLJT.js.map +1 -0
- package/dist/{chunk-AKKRXT23.js → chunk-VCETL77O.js} +34 -16
- package/dist/chunk-VCETL77O.js.map +1 -0
- package/dist/{chunk-5GQEU4DN.js → chunk-VJFMXYKP.js} +2 -2
- package/dist/{chunk-5DRROK5W.js → chunk-VMCCGUQB.js} +2 -2
- package/dist/{chunk-IXNCZTWA.js → chunk-W3TVWF6N.js} +2 -2
- package/dist/{chunk-W66AM5IB.js → chunk-WLYIROCJ.js} +2 -2
- package/dist/{chunk-OWHP3H5C.js → chunk-XB7LUDKM.js} +4 -4
- package/dist/{chunk-KYRDJI5O.js → chunk-XBLKM73C.js} +10 -10
- package/dist/{chunk-MHMLXJ3I.js → chunk-YAWK6AWF.js} +2 -2
- package/dist/{chunk-PWPYO73B.js → chunk-ZGGVOADG.js} +5 -5
- package/dist/{chunk-YGK2HMLR.js → chunk-ZK4CO2KZ.js} +9 -9
- package/dist/chunk-ZK4CO2KZ.js.map +1 -0
- package/dist/{chunk-DSDXAKIP.js → chunk-ZVF37PKE.js} +34 -5
- package/dist/chunk-ZVF37PKE.js.map +1 -0
- package/dist/{chunk-IFOH7RBI.js → chunk-ZWMO5GL5.js} +5 -5
- package/dist/{chunk-LRRX57UA.js → chunk-ZXJXDHNK.js} +4 -4
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-LE54HWSX.js → classified-marker-MH3ON5OL.js} +3 -3
- package/dist/collection-facade-AHT7FATG.js +45 -0
- package/dist/{computed-AB45PS4V.js → computed-6G5M3UPH.js} +3 -3
- package/dist/consent/index.js +9 -9
- package/dist/cover/index.js +3 -3
- package/dist/custody/index.js +11 -11
- package/dist/{dead-filter-V3LVWYEJ.js → dead-filter-U575NGSH.js} +2 -2
- package/dist/debug/index.js +1 -1
- package/dist/{delegation-JDUMAF6L.js → delegation-PDYL6RWT.js} +10 -10
- package/dist/derivations/index.js +12 -12
- package/dist/derive-AKT4KU36.js +22 -0
- package/dist/directory/index.js +10 -10
- package/dist/{dispatch-6TV3DGO6.js → dispatch-4XIJSFTT.js} +5 -5
- package/dist/{dispatch-W7NWQ637.js → dispatch-N5HGVUGU.js} +18 -18
- package/dist/{enclave-YFCLPIDR.js → enclave-OPK24QDR.js} +13 -9
- package/dist/executor-3JZ4POTW.js +28 -0
- package/dist/executor-CYJQLKKI.js +9 -0
- package/dist/executor-S4QIKEHW.js +9 -0
- package/dist/export-accessible-CPTP5STN.js +23 -0
- package/dist/extract-partition-TWXPHVU7.js +38 -0
- package/dist/{fanout-sidecar-273RDMYS.js → fanout-sidecar-T2ZGLQFE.js} +9 -9
- package/dist/find-RBBYKXI7.js +11 -0
- package/dist/forget/index.js +9 -9
- package/dist/guards/index.js +6 -6
- package/dist/history/index.js +15 -15
- package/dist/i18n/index.js +14 -14
- package/dist/index.d.ts +35 -7
- package/dist/index.js +279 -202
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +3 -3
- package/dist/introspection/index.js +12 -12
- package/dist/issue-N74C55X6.js +19 -0
- package/dist/kernel/collection-config.d.ts +4 -0
- package/dist/kernel/collection.d.ts +34 -8
- package/dist/kernel/cutover-transform.d.ts +64 -0
- package/dist/kernel/enclave/crypto.d.ts +24 -0
- package/dist/kernel/enclave/index.d.ts +2 -1
- package/dist/kernel/errors.d.ts +138 -0
- package/dist/kernel/noydb.d.ts +10 -1
- package/dist/kernel/put-many-atomic.d.ts +45 -0
- package/dist/kernel/secret-mode.d.ts +59 -0
- package/dist/kernel/types.d.ts +98 -7
- package/dist/kernel/validation.d.ts +33 -0
- package/dist/kernel/vault.d.ts +32 -6
- package/dist/{ledger-XE7JF2I2.js → ledger-DONWFC5M.js} +11 -11
- package/dist/liberate-KICI7AJN.js +24 -0
- package/dist/{link-set-CGYC3OH5.js → link-set-2TTP4VLO.js} +11 -11
- package/dist/managed-secret-EAOYWRYF.js +27 -0
- package/dist/materialized-views/index.js +19 -19
- package/dist/money/index.js +3 -3
- package/dist/noydb-6W2XGQCS.js +83 -0
- package/dist/overlay-views/index.js +6 -6
- package/dist/periods/index.js +16 -16
- package/dist/pod/index.js +121 -12
- package/dist/policy/index.js +4 -4
- package/dist/port/to/index.d.ts +3 -1
- package/dist/port/to/locator.d.ts +84 -0
- package/dist/port/with/device-seal-strategy.d.ts +16 -0
- package/dist/port/with/strategies.d.ts +2 -0
- package/dist/port/with/write-hooks.d.ts +6 -0
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-LY35EDTJ.js → post-register-ORQOQJCS.js} +6 -6
- package/dist/query/index.js +4 -4
- package/dist/reduce/index.js +4 -4
- package/dist/register-LHETZRJM.js +32 -0
- package/dist/registry-AMAZ6QRZ.js +19 -0
- package/dist/registry-CZVINVQH.js +9 -0
- package/dist/registry-IKUR2MXD.js +9 -0
- package/dist/registry-JRIN447B.js +18 -0
- package/dist/request-withdrawal-2DN2RGCO.js +31 -0
- package/dist/{reveal-T34ADTPY.js → reveal-AG4SCHUQ.js} +6 -6
- package/dist/revoke-ZX4NM2CJ.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +6 -6
- package/dist/sealed-record/index.js +12 -12
- package/dist/search/index.js +4 -4
- package/dist/{seed-JOV54PB3.js → seed-IRCDGIRK.js} +15 -15
- package/dist/seed-IRCDGIRK.js.map +1 -0
- package/dist/sequence/index.js +9 -9
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-7KHD4OL2.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/{stale-T3V7XEOB.js → stale-K734VACF.js} +10 -10
- package/dist/storage-4H2GF6RQ.js +23 -0
- package/dist/{store-coordination-provider-AHGFEMFA.js → store-coordination-provider-4SKLSFUG.js} +3 -3
- package/dist/sync/index.js +10 -10
- package/dist/team/index.js +27 -15
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +28 -3
- package/dist/to/index.js.map +1 -1
- package/dist/transactions/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/{verify-7XWHJWUN.js → verify-RO5RTZOJ.js} +5 -5
- package/dist/walk-MQHYNDLZ.js +21 -0
- package/dist/with-audit/guards/registry.d.ts +8 -1
- package/dist/with-audit/guards/types.d.ts +5 -0
- package/dist/with-audit/periods/index.d.ts +1 -1
- package/dist/with-audit/periods/periods.d.ts +7 -0
- package/dist/with-commit/tx/atomic-eligibility.d.ts +13 -11
- package/dist/with-formula/derivations/registry.d.ts +6 -0
- package/dist/with-formula/derivations/types.d.ts +5 -0
- package/dist/with-lookup/indexing/eager-indexes.d.ts +10 -0
- package/dist/with-party/team/device-seal.d.ts +25 -0
- package/dist/with-party/team/echo-ceremony.d.ts +74 -0
- package/dist/with-party/team/echo-secret.d.ts +56 -0
- package/dist/with-party/team/index.d.ts +8 -0
- package/dist/with-party/team/keyring.d.ts +71 -9
- package/dist/with-party/team/rotate-recover.d.ts +99 -5
- package/dist/with-pod/bundle-handle.d.ts +9 -0
- package/dist/with-pod/bundle.d.ts +100 -2
- package/dist/with-pod/format.d.ts +92 -1
- package/dist/with-pod/index.d.ts +22 -1
- package/dist/with-pod/open.d.ts +117 -0
- package/dist/with-pod/redirect.d.ts +78 -0
- package/dist/with-pod/signature.d.ts +13 -0
- package/dist/with-shape/introspection/behaviors.d.ts +100 -0
- package/dist/with-shape/introspection/derivation-key.d.ts +17 -0
- package/dist/with-shape/introspection/describe.d.ts +36 -0
- package/dist/with-shape/introspection/index.d.ts +1 -0
- package/dist/with-shape/introspection/subsystem-matrix.d.ts +22 -0
- package/dist/with-shape/introspection/types.d.ts +2 -1
- package/dist/with-shape/links/names.d.ts +14 -0
- package/dist/with-shape/manifest/derive.d.ts +86 -0
- package/dist/with-shape/manifest/reserved-collections.d.ts +27 -0
- package/dist/with-shape/manifest/storage.d.ts +62 -0
- package/dist/with-shape/manifest/sync.d.ts +135 -0
- package/dist/with-shape/manifest/types.d.ts +49 -0
- package/dist/with-shape/manifest/writer.d.ts +32 -0
- package/dist/with-shape/persisted-schemas/field-ids.d.ts +29 -0
- package/dist/with-shape/persisted-schemas/register.d.ts +3 -0
- package/dist/with-shape/persisted-schemas/types.d.ts +17 -0
- package/dist/with-shape/schema-update/fence-controller.d.ts +34 -0
- package/dist/with-shape/schema-update/fence.d.ts +9 -0
- package/dist/with-shape/schema-update/strategies.d.ts +18 -2
- package/dist/with-shape/schema-update/types.d.ts +11 -0
- package/dist/with-sync/engine.d.ts +17 -0
- package/dist/with-sync/presence.d.ts +31 -1
- package/dist/withdraw-accessible-JSDQHXHE.js +28 -0
- package/dist/withdraw-accessible-JSDQHXHE.js.map +1 -0
- package/package.json +3 -3
- package/dist/api-SI2IVBQO.js +0 -20
- package/dist/backup-X7F3TCFV.js.map +0 -1
- package/dist/chunk-2J6UEN2V.js.map +0 -1
- package/dist/chunk-467SWYT5.js.map +0 -1
- package/dist/chunk-4JQK3L4V.js +0 -41
- package/dist/chunk-4JQK3L4V.js.map +0 -1
- package/dist/chunk-77AEMXFA.js.map +0 -1
- package/dist/chunk-AKKRXT23.js.map +0 -1
- package/dist/chunk-AT2JJEKJ.js.map +0 -1
- package/dist/chunk-DSDXAKIP.js.map +0 -1
- package/dist/chunk-E23UGFVC.js.map +0 -1
- package/dist/chunk-FQ5CHJR7.js.map +0 -1
- package/dist/chunk-GTYFIVIZ.js.map +0 -1
- package/dist/chunk-JEI6JJNI.js.map +0 -1
- package/dist/chunk-JQ2AX4T5.js +0 -23
- package/dist/chunk-JQ2AX4T5.js.map +0 -1
- package/dist/chunk-KPZS5QAQ.js.map +0 -1
- package/dist/chunk-NBXFCQX4.js.map +0 -1
- package/dist/chunk-NLYALJMY.js.map +0 -1
- package/dist/chunk-Q5YJCVJY.js.map +0 -1
- package/dist/chunk-QZWTRENR.js.map +0 -1
- package/dist/chunk-S7GIXBXV.js +0 -129
- package/dist/chunk-S7GIXBXV.js.map +0 -1
- package/dist/chunk-SBHN6QUT.js +0 -25
- package/dist/chunk-SBHN6QUT.js.map +0 -1
- package/dist/chunk-VYYM3MEN.js.map +0 -1
- package/dist/chunk-WK7ULBTP.js.map +0 -1
- package/dist/chunk-WYUAEZSC.js.map +0 -1
- package/dist/chunk-YGK2HMLR.js.map +0 -1
- package/dist/chunk-ZBYFMI6D.js.map +0 -1
- package/dist/chunk-ZFG5EBI3.js.map +0 -1
- package/dist/chunk-ZNWSG7XC.js.map +0 -1
- package/dist/collection-facade-DO2AABZT.js +0 -45
- package/dist/derive-ZPGVLE2Q.js +0 -22
- package/dist/executor-FPHKWDWT.js +0 -28
- package/dist/executor-IEBLTBCW.js +0 -9
- package/dist/executor-RM7XWQDU.js +0 -9
- package/dist/export-accessible-EKM3HGB2.js +0 -23
- package/dist/extract-partition-LS4ET5A6.js +0 -38
- package/dist/find-OZMTRIK3.js +0 -11
- package/dist/issue-LIA7FXBJ.js +0 -19
- package/dist/liberate-WZ3RHVKW.js +0 -24
- package/dist/noydb-ZLPVCDES.js +0 -81
- package/dist/register-6RIBIT3I.js +0 -25
- package/dist/registry-7Y5WF7GS.js +0 -9
- package/dist/registry-BWD2ED52.js +0 -8
- package/dist/registry-MUSL4AW6.js +0 -19
- package/dist/registry-RON4WHAP.js +0 -18
- package/dist/request-withdrawal-FT3ORAWN.js +0 -31
- package/dist/revoke-HC7WG3HE.js +0 -24
- package/dist/seed-JOV54PB3.js.map +0 -1
- package/dist/signer-CTWOH6KT.js +0 -25
- package/dist/storage-LLNLPWWB.js +0 -23
- package/dist/walk-G3NFEP5L.js +0 -21
- package/dist/withdraw-accessible-ANSVG6XG.js +0 -28
- /package/dist/{api-SI2IVBQO.js.map → api-67SBPMMH.js.map} +0 -0
- /package/dist/{chunk-DQZXPGGZ.js.map → chunk-24UICKTB.js.map} +0 -0
- /package/dist/{chunk-2BET5QTS.js.map → chunk-27TCYH6G.js.map} +0 -0
- /package/dist/{chunk-MSMJJB4J.js.map → chunk-2KIV7BEK.js.map} +0 -0
- /package/dist/{chunk-6ZNSB3H6.js.map → chunk-2LGDCNFJ.js.map} +0 -0
- /package/dist/{chunk-WBKZUO5V.js.map → chunk-3737A6EA.js.map} +0 -0
- /package/dist/{chunk-HLKXPJ4V.js.map → chunk-3EO7RZLJ.js.map} +0 -0
- /package/dist/{chunk-JYJFGD2H.js.map → chunk-3FSX6LDG.js.map} +0 -0
- /package/dist/{chunk-MXUT7FTE.js.map → chunk-3HYWYLXL.js.map} +0 -0
- /package/dist/{chunk-IVYQAVWO.js.map → chunk-3IIPWA75.js.map} +0 -0
- /package/dist/{chunk-7H3WWH6J.js.map → chunk-3UK6STWO.js.map} +0 -0
- /package/dist/{chunk-NJ4DYYO5.js.map → chunk-4HDYQL3J.js.map} +0 -0
- /package/dist/{chunk-P4JO3H6R.js.map → chunk-4MQDV3HZ.js.map} +0 -0
- /package/dist/{chunk-X4MVWPHV.js.map → chunk-4UVDI4XE.js.map} +0 -0
- /package/dist/{chunk-LXRTP3AQ.js.map → chunk-4VCWI42L.js.map} +0 -0
- /package/dist/{chunk-QJNCB5SK.js.map → chunk-747LRSOO.js.map} +0 -0
- /package/dist/{chunk-3HUYRN24.js.map → chunk-7F4DBNSP.js.map} +0 -0
- /package/dist/{chunk-UADPR6F4.js.map → chunk-7G6VDWXB.js.map} +0 -0
- /package/dist/{chunk-PTHKZWEH.js.map → chunk-AHLJSVRL.js.map} +0 -0
- /package/dist/{chunk-NFZGZ4AK.js.map → chunk-AR2JDFAE.js.map} +0 -0
- /package/dist/{chunk-3ECU57YH.js.map → chunk-BPTZ4K5L.js.map} +0 -0
- /package/dist/{chunk-KRCBZYTZ.js.map → chunk-CCZJJ4I2.js.map} +0 -0
- /package/dist/{chunk-NYEFP7DY.js.map → chunk-CJ73OLMW.js.map} +0 -0
- /package/dist/{chunk-Q36YXK77.js.map → chunk-CYQOUTMY.js.map} +0 -0
- /package/dist/{chunk-RBTVFPHF.js.map → chunk-DCMQR46R.js.map} +0 -0
- /package/dist/{chunk-TG634KCO.js.map → chunk-DG27IUVI.js.map} +0 -0
- /package/dist/{chunk-V6UQZA2H.js.map → chunk-E6427JU2.js.map} +0 -0
- /package/dist/{chunk-TWPK7KUJ.js.map → chunk-F3GVO44K.js.map} +0 -0
- /package/dist/{chunk-QD46HPZG.js.map → chunk-FAXZQ5UF.js.map} +0 -0
- /package/dist/{chunk-IG6KUWBX.js.map → chunk-FNSMZQS4.js.map} +0 -0
- /package/dist/{chunk-BLBAQRBM.js.map → chunk-FUHKW252.js.map} +0 -0
- /package/dist/{chunk-SU6SGWXM.js.map → chunk-FY343IZR.js.map} +0 -0
- /package/dist/{chunk-DAFBJS4Y.js.map → chunk-GS5RT2KK.js.map} +0 -0
- /package/dist/{chunk-5UQ7Y6SQ.js.map → chunk-HFKGIBMD.js.map} +0 -0
- /package/dist/{chunk-SHEEBRZ4.js.map → chunk-HVQGCKY4.js.map} +0 -0
- /package/dist/{chunk-35NMVJ7I.js.map → chunk-HXGUIPQB.js.map} +0 -0
- /package/dist/{chunk-ERGECZEI.js.map → chunk-JEM2IGS3.js.map} +0 -0
- /package/dist/{chunk-L3YYLT4E.js.map → chunk-JIUVJ4M7.js.map} +0 -0
- /package/dist/{chunk-55LX6FSX.js.map → chunk-JRCYZEHU.js.map} +0 -0
- /package/dist/{chunk-SFBYQMZM.js.map → chunk-JSRU5W2M.js.map} +0 -0
- /package/dist/{chunk-NM5UYF6Q.js.map → chunk-JXIDGFKS.js.map} +0 -0
- /package/dist/{chunk-RO5NM6UI.js.map → chunk-KZ3KMDN3.js.map} +0 -0
- /package/dist/{chunk-HZZP2ZIG.js.map → chunk-LBGPO5RL.js.map} +0 -0
- /package/dist/{chunk-CLE3TMIS.js.map → chunk-MC2LFTQM.js.map} +0 -0
- /package/dist/{chunk-W3G5REIU.js.map → chunk-MSWYQLMQ.js.map} +0 -0
- /package/dist/{chunk-SGDPRCC4.js.map → chunk-MZ5ZFO2D.js.map} +0 -0
- /package/dist/{chunk-EFJAAFBW.js.map → chunk-NQRJ5AJO.js.map} +0 -0
- /package/dist/{chunk-Q2SEJMP2.js.map → chunk-NVU7ZMPN.js.map} +0 -0
- /package/dist/{chunk-ZTLOXFPB.js.map → chunk-OF3L2SD6.js.map} +0 -0
- /package/dist/{chunk-LLYIMSQQ.js.map → chunk-OMSAULZM.js.map} +0 -0
- /package/dist/{chunk-SF2ZIRD6.js.map → chunk-OSFPNKY4.js.map} +0 -0
- /package/dist/{chunk-WUHEP3HH.js.map → chunk-P7NGLLUF.js.map} +0 -0
- /package/dist/{chunk-RQ4ZI4ZI.js.map → chunk-PGAPBZEK.js.map} +0 -0
- /package/dist/{chunk-T2MOJF76.js.map → chunk-PP5CO2PR.js.map} +0 -0
- /package/dist/{chunk-QGIBI6GL.js.map → chunk-ROWL352P.js.map} +0 -0
- /package/dist/{chunk-ZHDSUZQU.js.map → chunk-RPXL6KSX.js.map} +0 -0
- /package/dist/{chunk-DTFA5DO4.js.map → chunk-SKONR2OL.js.map} +0 -0
- /package/dist/{chunk-4ZKNC6A6.js.map → chunk-T4GPR2IR.js.map} +0 -0
- /package/dist/{chunk-TS5XLBZR.js.map → chunk-TLNNHG3A.js.map} +0 -0
- /package/dist/{chunk-6UBZ6I5Z.js.map → chunk-UHXCLPGC.js.map} +0 -0
- /package/dist/{chunk-KD4HGBJV.js.map → chunk-V5C5NNBR.js.map} +0 -0
- /package/dist/{chunk-5GQEU4DN.js.map → chunk-VJFMXYKP.js.map} +0 -0
- /package/dist/{chunk-5DRROK5W.js.map → chunk-VMCCGUQB.js.map} +0 -0
- /package/dist/{chunk-IXNCZTWA.js.map → chunk-W3TVWF6N.js.map} +0 -0
- /package/dist/{chunk-W66AM5IB.js.map → chunk-WLYIROCJ.js.map} +0 -0
- /package/dist/{chunk-OWHP3H5C.js.map → chunk-XB7LUDKM.js.map} +0 -0
- /package/dist/{chunk-KYRDJI5O.js.map → chunk-XBLKM73C.js.map} +0 -0
- /package/dist/{chunk-MHMLXJ3I.js.map → chunk-YAWK6AWF.js.map} +0 -0
- /package/dist/{chunk-PWPYO73B.js.map → chunk-ZGGVOADG.js.map} +0 -0
- /package/dist/{chunk-IFOH7RBI.js.map → chunk-ZWMO5GL5.js.map} +0 -0
- /package/dist/{chunk-LRRX57UA.js.map → chunk-ZXJXDHNK.js.map} +0 -0
- /package/dist/{classified-marker-LE54HWSX.js.map → classified-marker-MH3ON5OL.js.map} +0 -0
- /package/dist/{collection-facade-DO2AABZT.js.map → collection-facade-AHT7FATG.js.map} +0 -0
- /package/dist/{computed-AB45PS4V.js.map → computed-6G5M3UPH.js.map} +0 -0
- /package/dist/{dead-filter-V3LVWYEJ.js.map → dead-filter-U575NGSH.js.map} +0 -0
- /package/dist/{delegation-JDUMAF6L.js.map → delegation-PDYL6RWT.js.map} +0 -0
- /package/dist/{derive-ZPGVLE2Q.js.map → derive-AKT4KU36.js.map} +0 -0
- /package/dist/{dispatch-6TV3DGO6.js.map → dispatch-4XIJSFTT.js.map} +0 -0
- /package/dist/{dispatch-W7NWQ637.js.map → dispatch-N5HGVUGU.js.map} +0 -0
- /package/dist/{enclave-YFCLPIDR.js.map → enclave-OPK24QDR.js.map} +0 -0
- /package/dist/{executor-FPHKWDWT.js.map → executor-3JZ4POTW.js.map} +0 -0
- /package/dist/{executor-IEBLTBCW.js.map → executor-CYJQLKKI.js.map} +0 -0
- /package/dist/{executor-RM7XWQDU.js.map → executor-S4QIKEHW.js.map} +0 -0
- /package/dist/{export-accessible-EKM3HGB2.js.map → export-accessible-CPTP5STN.js.map} +0 -0
- /package/dist/{extract-partition-LS4ET5A6.js.map → extract-partition-TWXPHVU7.js.map} +0 -0
- /package/dist/{fanout-sidecar-273RDMYS.js.map → fanout-sidecar-T2ZGLQFE.js.map} +0 -0
- /package/dist/{find-OZMTRIK3.js.map → find-RBBYKXI7.js.map} +0 -0
- /package/dist/{issue-LIA7FXBJ.js.map → issue-N74C55X6.js.map} +0 -0
- /package/dist/{ledger-XE7JF2I2.js.map → ledger-DONWFC5M.js.map} +0 -0
- /package/dist/{liberate-WZ3RHVKW.js.map → liberate-KICI7AJN.js.map} +0 -0
- /package/dist/{link-set-CGYC3OH5.js.map → link-set-2TTP4VLO.js.map} +0 -0
- /package/dist/{noydb-ZLPVCDES.js.map → managed-secret-EAOYWRYF.js.map} +0 -0
- /package/dist/{register-6RIBIT3I.js.map → noydb-6W2XGQCS.js.map} +0 -0
- /package/dist/{post-register-LY35EDTJ.js.map → post-register-ORQOQJCS.js.map} +0 -0
- /package/dist/{registry-7Y5WF7GS.js.map → register-LHETZRJM.js.map} +0 -0
- /package/dist/{registry-BWD2ED52.js.map → registry-AMAZ6QRZ.js.map} +0 -0
- /package/dist/{registry-MUSL4AW6.js.map → registry-CZVINVQH.js.map} +0 -0
- /package/dist/{registry-RON4WHAP.js.map → registry-IKUR2MXD.js.map} +0 -0
- /package/dist/{request-withdrawal-FT3ORAWN.js.map → registry-JRIN447B.js.map} +0 -0
- /package/dist/{revoke-HC7WG3HE.js.map → request-withdrawal-2DN2RGCO.js.map} +0 -0
- /package/dist/{reveal-T34ADTPY.js.map → reveal-AG4SCHUQ.js.map} +0 -0
- /package/dist/{signer-CTWOH6KT.js.map → revoke-ZX4NM2CJ.js.map} +0 -0
- /package/dist/{stale-T3V7XEOB.js.map → signer-7KHD4OL2.js.map} +0 -0
- /package/dist/{storage-LLNLPWWB.js.map → stale-K734VACF.js.map} +0 -0
- /package/dist/{walk-G3NFEP5L.js.map → storage-4H2GF6RQ.js.map} +0 -0
- /package/dist/{store-coordination-provider-AHGFEMFA.js.map → store-coordination-provider-4SKLSFUG.js.map} +0 -0
- /package/dist/{verify-7XWHJWUN.js.map → verify-RO5RTZOJ.js.map} +0 -0
- /package/dist/{withdraw-accessible-ANSVG6XG.js.map → walk-MQHYNDLZ.js.map} +0 -0
package/dist/kernel/errors.d.ts
CHANGED
|
@@ -288,6 +288,23 @@ export declare class KeyringExpiredError extends NoydbError {
|
|
|
288
288
|
expiresAt: string;
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Thrown when a plain single-string secret is offered against an
|
|
293
|
+
* echo-mode keyring. Echo keyrings unlock ONLY via the stepwise
|
|
294
|
+
* ceremony (`beginEchoUnlock`) or a structured `EchoSecretParts`
|
|
295
|
+
* value — never a single field (spec AG-1, #940).
|
|
296
|
+
*/
|
|
297
|
+
export declare class EchoCeremonyRequiredError extends NoydbError {
|
|
298
|
+
constructor();
|
|
299
|
+
}
|
|
300
|
+
/** Echo ceremony: the typed prompt failed its verifier. */
|
|
301
|
+
export declare class WrongPromptError extends NoydbError {
|
|
302
|
+
constructor();
|
|
303
|
+
}
|
|
304
|
+
/** Echo ceremony (degraded path): the TYPED echo failed its verifier. */
|
|
305
|
+
export declare class WrongEchoError extends NoydbError {
|
|
306
|
+
constructor();
|
|
307
|
+
}
|
|
291
308
|
/**
|
|
292
309
|
* Thrown when an `@noy-db/as-*` import is attempted but the invoking
|
|
293
310
|
* keyring lacks the required import-capability bit.
|
|
@@ -361,6 +378,35 @@ export declare class StoreCapabilityError extends NoydbError {
|
|
|
361
378
|
readonly capability: string;
|
|
362
379
|
constructor(capability: string, callerApi: string, storeName?: string);
|
|
363
380
|
}
|
|
381
|
+
/**
|
|
382
|
+
* Thrown by `StoreLocator.resolve()` (the `@noy-db/hub/to` Locator seam,
|
|
383
|
+
* #945) when a `StoreDescriptor.kind` has no registered factory. Names both
|
|
384
|
+
* the offending kind and every kind currently registered on the locator, so
|
|
385
|
+
* the fix — register the missing factory, or correct a typo'd kind string —
|
|
386
|
+
* is visible without a debugger.
|
|
387
|
+
*/
|
|
388
|
+
export declare class UnknownStoreKindError extends NoydbError {
|
|
389
|
+
/** The unregistered descriptor kind that was looked up. */
|
|
390
|
+
readonly kind: string;
|
|
391
|
+
/** Every kind currently registered on the locator, for comparison. */
|
|
392
|
+
readonly registeredKinds: readonly string[];
|
|
393
|
+
constructor(kind: string, registeredKinds: readonly string[]);
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Thrown by `StoreLocator.register()` (the `@noy-db/hub/to` Locator seam,
|
|
397
|
+
* #945) when `kind` is already registered on the locator. A locator
|
|
398
|
+
* registers each kind exactly once — a duplicate registration is almost
|
|
399
|
+
* always a mistake (a copy-pasted setup block, two satellite packages
|
|
400
|
+
* fighting over the same kind string) — so it fails loudly at the mistake's
|
|
401
|
+
* source rather than silently overwriting (last-wins) and surfacing
|
|
402
|
+
* confusion at some unrelated `resolve()` call later. Mirrors
|
|
403
|
+
* `DuplicateBehaviorNameError`.
|
|
404
|
+
*/
|
|
405
|
+
export declare class DuplicateStoreKindError extends NoydbError {
|
|
406
|
+
/** The kind string that was already registered. */
|
|
407
|
+
readonly kind: string;
|
|
408
|
+
constructor(kind: string);
|
|
409
|
+
}
|
|
364
410
|
export declare class PrivilegeEscalationError extends NoydbError {
|
|
365
411
|
readonly offendingCollection: string;
|
|
366
412
|
constructor(offendingCollection: string, message?: string);
|
|
@@ -617,6 +663,39 @@ export declare class ConflictError extends NoydbError {
|
|
|
617
663
|
readonly version: number;
|
|
618
664
|
constructor(version: number, message?: string);
|
|
619
665
|
}
|
|
666
|
+
/**
|
|
667
|
+
* #935 — identity-safe ConflictError detection for store-boundary catches.
|
|
668
|
+
*
|
|
669
|
+
* A store may bind a DIFFERENT copy of `@noy-db/hub/to` than the caller
|
|
670
|
+
* (npm failing to dedupe hub within the peer range in production;
|
|
671
|
+
* src-vs-dist inside the workspace), so its ConflictError is a foreign
|
|
672
|
+
* class identity and a bare `instanceof` silently misses it — CAS retry
|
|
673
|
+
* loops rethrow instead of retrying, and the sync engine misfiles the
|
|
674
|
+
* conflict under `errors` with no resolution run. Every site that catches
|
|
675
|
+
* an error a STORE may have thrown must use this predicate; `instanceof`
|
|
676
|
+
* stays correct only for errors that never cross the store seam.
|
|
677
|
+
* The name check is the contract: every copy sets `name = 'ConflictError'`
|
|
678
|
+
* in its constructor, and the structural `version` field rides along.
|
|
679
|
+
*/
|
|
680
|
+
export declare function isConflictError(err: unknown): err is ConflictError;
|
|
681
|
+
/**
|
|
682
|
+
* Thrown by the schema-manifest writer (`with-shape/manifest/writer.ts`,
|
|
683
|
+
* #941 AC #1) when a strict-CAS write to the `_manifest/schema` record
|
|
684
|
+
* loses the race — the stored `_v` no longer matches `expectedVersion`.
|
|
685
|
+
*
|
|
686
|
+
* Unlike {@link ConflictError} (which every other reserved-collection
|
|
687
|
+
* writer catches and retries), the manifest writer REFUSES: it does not
|
|
688
|
+
* re-read, re-apply, and retry. Two concurrent direct edits to the
|
|
689
|
+
* manifest must be refused and surfaced to the caller, never silently
|
|
690
|
+
* merged.
|
|
691
|
+
*/
|
|
692
|
+
export declare class ManifestConflictError extends NoydbError {
|
|
693
|
+
/** The actual stored `_v` at the time of conflict. */
|
|
694
|
+
readonly foundVersion: number;
|
|
695
|
+
/** The `expectedVersion` the caller supplied. */
|
|
696
|
+
readonly expectedVersion: number;
|
|
697
|
+
constructor(foundVersion: number, expectedVersion: number, message?: string);
|
|
698
|
+
}
|
|
620
699
|
/**
|
|
621
700
|
* Thrown by `LedgerStore.append()` after exhausting its CAS retry
|
|
622
701
|
* budget under multi-writer contention. Two browser tabs, a
|
|
@@ -946,6 +1025,18 @@ export declare class FieldNotQueryableError extends NoydbError {
|
|
|
946
1025
|
export declare class BundleIntegrityError extends NoydbError {
|
|
947
1026
|
constructor(message: string);
|
|
948
1027
|
}
|
|
1028
|
+
/**
|
|
1029
|
+
* Thrown by `open()` (`with-pod/open.ts`, #941) when the caller supplied
|
|
1030
|
+
* `trustedKeys` and `verifyPodHeader` reports `'untrusted'` or `'tampered'`.
|
|
1031
|
+
* Both are treated the same, fail-closed — same posture as
|
|
1032
|
+
* `RedirectBadSignatureError`: once a caller opts into signature
|
|
1033
|
+
* verification, an unverifiable header is a hard stop, not a soft signal.
|
|
1034
|
+
* `'unsigned'` is deliberately NOT included — a legacy/unsigned pod is
|
|
1035
|
+
* benign and open() proceeds, surfacing the status via `OpenPodResult.verification`.
|
|
1036
|
+
*/
|
|
1037
|
+
export declare class PodHeaderVerificationError extends NoydbError {
|
|
1038
|
+
constructor(status: 'untrusted' | 'tampered', keyId?: string);
|
|
1039
|
+
}
|
|
949
1040
|
/**
|
|
950
1041
|
* Thrown by `readPod` when the bundle carries
|
|
951
1042
|
* sealed per-user secrets but no supplied `SealingKeyProvider`
|
|
@@ -973,6 +1064,40 @@ export declare class BundleSealMismatchError extends NoydbError {
|
|
|
973
1064
|
readonly pid: string;
|
|
974
1065
|
constructor(userId: string, pid: string);
|
|
975
1066
|
}
|
|
1067
|
+
/**
|
|
1068
|
+
* Thrown by `followRedirects` when the number of hops followed exceeds
|
|
1069
|
+
* `maxDepth` (default 8) without reaching a terminal (non-redirect) pod.
|
|
1070
|
+
*/
|
|
1071
|
+
export declare class RedirectDepthExceededError extends NoydbError {
|
|
1072
|
+
constructor(maxDepth: number);
|
|
1073
|
+
}
|
|
1074
|
+
/**
|
|
1075
|
+
* Thrown by `followRedirects` when a redirect chain revisits a target it has
|
|
1076
|
+
* already followed — an infinite loop rather than progress toward a terminal
|
|
1077
|
+
* pod.
|
|
1078
|
+
*/
|
|
1079
|
+
export declare class RedirectLoopError extends NoydbError {
|
|
1080
|
+
constructor(target: string);
|
|
1081
|
+
}
|
|
1082
|
+
/**
|
|
1083
|
+
* Thrown by `followRedirects` when a hop's Redirect record fails
|
|
1084
|
+
* verification — either its `issuedBy` is not in the caller's `trustedKeys`
|
|
1085
|
+
* or its signature does not match the record contents. Both cases are
|
|
1086
|
+
* treated the same, fail-closed: a Redirect is required to be signed by a
|
|
1087
|
+
* trusted key, so an untrusted or forged hop is invalid for following, not
|
|
1088
|
+
* merely "unverified".
|
|
1089
|
+
*/
|
|
1090
|
+
export declare class RedirectBadSignatureError extends NoydbError {
|
|
1091
|
+
constructor(target: string);
|
|
1092
|
+
}
|
|
1093
|
+
/**
|
|
1094
|
+
* Thrown by `followRedirects` when the caller's `fetcher` cannot produce the
|
|
1095
|
+
* pod bytes for a hop's target — it returned `null` or threw. `cause` carries
|
|
1096
|
+
* the underlying fetcher error, when there was one.
|
|
1097
|
+
*/
|
|
1098
|
+
export declare class RedirectUnreachableError extends NoydbError {
|
|
1099
|
+
constructor(target: string, cause?: unknown);
|
|
1100
|
+
}
|
|
976
1101
|
/**
|
|
977
1102
|
* Thrown when `vault.collection()` is called with a name that is
|
|
978
1103
|
* reserved for NOYDB internal use (any name starting with `_dict_`).
|
|
@@ -1653,6 +1778,19 @@ export declare class OverlayIdMismatchError extends NoydbError {
|
|
|
1653
1778
|
readonly expected: string;
|
|
1654
1779
|
constructor(actual: string, expected: string);
|
|
1655
1780
|
}
|
|
1781
|
+
/**
|
|
1782
|
+
* Thrown at registration if a guard or derivation declares a `name` that
|
|
1783
|
+
* is already registered by another behavior of the same kind in this
|
|
1784
|
+
* vault. `name` is optional on both `GuardSpec` and `DerivationSpec` —
|
|
1785
|
+
* unnamed behaviors never trigger this check — but once given, a name is
|
|
1786
|
+
* the stable per-vault identifier a behavior manifest references, so it
|
|
1787
|
+
* must be unique among behaviors of the same `kind`.
|
|
1788
|
+
*/
|
|
1789
|
+
export declare class DuplicateBehaviorNameError extends NoydbError {
|
|
1790
|
+
readonly behaviorName: string;
|
|
1791
|
+
readonly kind: 'guard' | 'derivation';
|
|
1792
|
+
constructor(name: string, kind: 'guard' | 'derivation');
|
|
1793
|
+
}
|
|
1656
1794
|
/**
|
|
1657
1795
|
* Thrown when a requested snapshot version does not exist in the
|
|
1658
1796
|
* snapshot store — either it was never created, was pruned by the
|
package/dist/kernel/noydb.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RotateResult } from '../with-party/team/keyring.js';
|
|
2
|
-
import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, PushOptions, PullOptions, SyncStatus, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
|
|
2
|
+
import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, PushOptions, PullOptions, SyncStatus, SyncTargetInfo, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
|
|
3
3
|
import type { SecretPolicy } from './validation.js';
|
|
4
4
|
import { type CoordinationProvider } from '../port/by/default-provider.js';
|
|
5
5
|
import type { Cover } from '../with-party/directory/cover/types.js';
|
|
@@ -502,6 +502,8 @@ export declare class Noydb {
|
|
|
502
502
|
* @internal
|
|
503
503
|
*/
|
|
504
504
|
get _store(): NoydbStore;
|
|
505
|
+
/** The default store this instance was opened with (#948). */
|
|
506
|
+
get store(): NoydbStore;
|
|
505
507
|
/**
|
|
506
508
|
* Currently-running multi-record transaction, or `null` outside
|
|
507
509
|
* Phase 2. `Collection.dispatchDerivations` consults this so a
|
|
@@ -547,6 +549,13 @@ export declare class Noydb {
|
|
|
547
549
|
_clearActiveTxContext(ctx: TxContext): void;
|
|
548
550
|
/** Get sync status for a vault. */
|
|
549
551
|
syncStatus(vault: string): SyncStatus;
|
|
552
|
+
/**
|
|
553
|
+
* Enumerate the sync targets wired for `vault` (#948) — the primary engine
|
|
554
|
+
* (keyed by vault name) plus any additional targets (keyed `vault::label`
|
|
555
|
+
* or `vault::role`). No preset name: a resolved `SyncPolicy` doesn't retain
|
|
556
|
+
* which preset (if any) produced it.
|
|
557
|
+
*/
|
|
558
|
+
listSyncTargets(vault: string): SyncTargetInfo[];
|
|
550
559
|
private getSyncEngine;
|
|
551
560
|
_forEachSyncEngine(vault: string, fn: (engine: SyncEngine) => void): void;
|
|
552
561
|
on<K extends keyof NoydbEventMap>(event: K, handler: (data: NoydbEventMap[K]) => void): void;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { PreparedPut } from './prepared-write.js';
|
|
2
|
+
import type { EncryptedEnvelope, NoydbStore, PutManyItemOptions, PutManyResult } from './types.js';
|
|
3
|
+
/** @internal Structural view of one executed op on a transaction context. */
|
|
4
|
+
interface BulkExecutedOp {
|
|
5
|
+
readonly op: {
|
|
6
|
+
readonly type: 'put' | 'delete';
|
|
7
|
+
readonly vaultName: string;
|
|
8
|
+
readonly collectionName: string;
|
|
9
|
+
readonly id: string;
|
|
10
|
+
};
|
|
11
|
+
readonly priorEnvelope: EncryptedEnvelope | null;
|
|
12
|
+
}
|
|
13
|
+
/** @internal Structural slice of `with-commit`'s `TxContext` this module drives. */
|
|
14
|
+
interface BulkTxContext {
|
|
15
|
+
readonly _executed: BulkExecutedOp[];
|
|
16
|
+
}
|
|
17
|
+
/** @internal The slice of `Collection` both branches drive. */
|
|
18
|
+
export interface PutManyAtomicHost<T> {
|
|
19
|
+
put(id: string, record: T): Promise<void>;
|
|
20
|
+
_preparePut(id: string, record: T): Promise<PreparedPut<T>>;
|
|
21
|
+
_finalizePut(prepared: PreparedPut<T>): Promise<void>;
|
|
22
|
+
_fireAtomicAfterWrite(opType: 'put', prepared: PreparedPut<T>): Promise<void>;
|
|
23
|
+
_assertWriteGates(): Promise<void>;
|
|
24
|
+
_txAtomicSafe(opType: 'put' | 'delete'): boolean;
|
|
25
|
+
_invalidateCacheEntry(id: string): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/** @internal The owning collection's private coordinates + wiring. */
|
|
28
|
+
export interface PutManyAtomicContext<T> {
|
|
29
|
+
readonly host: PutManyAtomicHost<T>;
|
|
30
|
+
readonly store: NoydbStore;
|
|
31
|
+
readonly vault: string;
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly derivationSource?: {
|
|
34
|
+
createTxContext(): BulkTxContext;
|
|
35
|
+
setActiveTxContext(ctx: BulkTxContext): void;
|
|
36
|
+
clearActiveTxContext(ctx: BulkTxContext): void;
|
|
37
|
+
getCollection(name: string): {
|
|
38
|
+
_invalidateCacheEntry(id: string): Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
} | undefined;
|
|
41
|
+
}
|
|
42
|
+
type PutManyEntries<T> = ReadonlyArray<readonly [id: string, record: T, opts?: PutManyItemOptions]>;
|
|
43
|
+
/** @internal Atomic-mode implementation of `Collection.putMany`. */
|
|
44
|
+
export declare function runPutManyAtomic<T>(ctx: PutManyAtomicContext<T>, entries: PutManyEntries<T>): Promise<PutManyResult>;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret-mode rules for `createNoydb` / keyring unlock — the option
|
|
3
|
+
* cross-checks and the per-mode secret resolution for the three
|
|
4
|
+
* {@link NoydbOptions.secretMode} values (`standard` / `managed` / `echo`).
|
|
5
|
+
*
|
|
6
|
+
* Extracted out of `kernel/noydb.ts` (which is under a line ceiling — see
|
|
7
|
+
* `check-architecture`'s `kernel-surface` rule) when echo mode was wired in
|
|
8
|
+
* (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940). The
|
|
9
|
+
* managed-mode rules and their exact messages moved verbatim; the echo rules
|
|
10
|
+
* are the addition.
|
|
11
|
+
*
|
|
12
|
+
* Nothing here is re-exported from a package barrel — it is kernel-internal.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { NoydbOptions, NoydbStore } from './types.js';
|
|
17
|
+
import type { EchoSecretParts } from './enclave/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* Cross-check the secret-mode-related options at `createNoydb` time, before
|
|
20
|
+
* any store touch. Throws `ValidationError` on the first violation.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateSecretModeOptions(options: NoydbOptions): void;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the secret that actually unlocks (or creates) `vault`'s keyring.
|
|
25
|
+
*
|
|
26
|
+
* Managed-secret mode resolves before falling into the normal load/create
|
|
27
|
+
* path: the first call mints + seals + persists, subsequent calls unseal
|
|
28
|
+
* what's there. The returned string takes the place of `options.secret` for
|
|
29
|
+
* the rest of the unlock (and is NOT persisted on the options).
|
|
30
|
+
*
|
|
31
|
+
* Standard and echo mode both hand back `options.secret` unchanged — a
|
|
32
|
+
* string for standard, an {@link EchoSecretParts} struct for echo; the KDF
|
|
33
|
+
* dispatch on that shape happens in `deriveKekForKeyring`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveEffectiveSecret(options: NoydbOptions, store: NoydbStore, vault: string): Promise<string | EchoSecretParts | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Build the `createOwnerKeyring` bag for a first-boot (or `onInvalidKey:
|
|
38
|
+
* 'reset'`) enrollment under the current secret mode.
|
|
39
|
+
*
|
|
40
|
+
* Managed mode generates 256-bit base64 strings that don't satisfy the
|
|
41
|
+
* human-secret strength rules (no spaces, no "words"), so it skips
|
|
42
|
+
* validation — the entropy floor is already 256 bits by construction. Echo
|
|
43
|
+
* mode does NOT skip it: the parts are human-chosen, so `validateSecret`
|
|
44
|
+
* applies exactly as it does in standard mode.
|
|
45
|
+
*
|
|
46
|
+
* The return type is inferred rather than annotated as
|
|
47
|
+
* `CreateOwnerKeyringOptions` — naming that type here would be a static
|
|
48
|
+
* spine→service import, which `port-layering` forbids even type-only. The
|
|
49
|
+
* shape is still checked: `noydb.ts` passes the result straight into
|
|
50
|
+
* `createOwnerKeyring`, so any drift fails typecheck at the call site.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ownerKeyringOptions(options: NoydbOptions, secret: string | EchoSecretParts): {
|
|
53
|
+
echoMaskHint?: string;
|
|
54
|
+
echoSecretPolicy?: import("./validation.js").EchoSecretPolicy;
|
|
55
|
+
deviceSeal?: import("../index.js").DeviceSealProvider;
|
|
56
|
+
userId: string;
|
|
57
|
+
secret: string | EchoSecretParts;
|
|
58
|
+
validate: boolean;
|
|
59
|
+
};
|
package/dist/kernel/types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import type { StandardSchemaV1 } from './schema.js';
|
|
26
26
|
import type { DeferredNumberingConfig } from '../with-commit/numbering/descriptor.js';
|
|
27
|
-
import type { SyncPolicy, ReadinessState } from './sync-policy.js';
|
|
27
|
+
import type { SyncPolicy, ReadinessState, PushMode, PullMode } from './sync-policy.js';
|
|
28
28
|
import type { BlobsStrategy } from '../port/with/blob-strategy.js';
|
|
29
29
|
import type { ArchiveStrategy } from '../with-fork/archive/index.js';
|
|
30
30
|
import type { IndexingStrategy } from '../with-lookup/indexing/strategy.js';
|
|
@@ -55,7 +55,7 @@ import type { SyncStrategy } from '../with-sync/strategy.js';
|
|
|
55
55
|
import type { GuardStrategyAny } from '../with-audit/guards/types.js';
|
|
56
56
|
import type { DerivationStrategy } from '../with-formula/derivations/types.js';
|
|
57
57
|
import type { UnlockedKeyring } from '../with-party/team/keyring.js';
|
|
58
|
-
import type { SecretPolicy } from './validation.js';
|
|
58
|
+
import type { SecretPolicy, EchoSecretPolicy } from './validation.js';
|
|
59
59
|
import type { CoverSchema } from '../with-party/directory/cover/types.js';
|
|
60
60
|
import type { MaterializedViewStrategy } from '../with-formula/materialized-views/types.js';
|
|
61
61
|
import type { OverlayedViewStrategy } from '../with-formula/overlay-views/types.js';
|
|
@@ -65,7 +65,9 @@ import type { ObjectProjection } from '../with-shape/blobs/object-projection.js'
|
|
|
65
65
|
import type { CoordinationProvider } from '../port/by/types.js';
|
|
66
66
|
import type { ScriptWarning } from '../port/with/i18n-strategy.js';
|
|
67
67
|
import type { ViaDescriptor } from './via/index.js';
|
|
68
|
-
import type { EnclaveKey } from './enclave/index.js';
|
|
68
|
+
import type { EnclaveKey, EchoSecretParts } from './enclave/index.js';
|
|
69
|
+
import type { DeviceSealProvider } from '../port/with/device-seal-strategy.js';
|
|
70
|
+
export type { EchoSecretParts };
|
|
69
71
|
/** Format version for encrypted record envelopes. */
|
|
70
72
|
export declare const NOYDB_FORMAT_VERSION: 1;
|
|
71
73
|
/** Format version for keyring files. */
|
|
@@ -869,6 +871,36 @@ export interface KeyringAuthenticatorWrappingDEKs extends KeyringAuthenticatorBa
|
|
|
869
871
|
* dispatch is safe.
|
|
870
872
|
*/
|
|
871
873
|
export type KeyringAuthenticator = KeyringAuthenticatorWrappingKEK | KeyringAuthenticatorWrappingDEKs;
|
|
874
|
+
/**
|
|
875
|
+
* Echo-secret (3-part ceremony) declaration on a keyring — spec
|
|
876
|
+
* docs/superpowers/specs/2026-08-02-echo-secret-design.md (#940).
|
|
877
|
+
* Optional / append-only: keyrings written before the extension (or
|
|
878
|
+
* using standard/managed modes) simply lack it.
|
|
879
|
+
*/
|
|
880
|
+
export interface KeyringEchoBlock {
|
|
881
|
+
readonly v: 1;
|
|
882
|
+
/** Salt + AES-KW verifier gating the reveal on the typed prompt (600K PBKDF2). */
|
|
883
|
+
readonly prompt_salt: string;
|
|
884
|
+
readonly prompt_verifier: string;
|
|
885
|
+
/** Salt + AES-KW verifier for a TYPED echo (degraded path). */
|
|
886
|
+
readonly echo_salt: string;
|
|
887
|
+
readonly echo_verifier: string;
|
|
888
|
+
/** Hybrid reveal policy (spec decision 4). */
|
|
889
|
+
readonly reveal: {
|
|
890
|
+
readonly kind: 'portable';
|
|
891
|
+
readonly blob: string;
|
|
892
|
+
readonly iv: string;
|
|
893
|
+
readonly salt: string;
|
|
894
|
+
} | {
|
|
895
|
+
readonly kind: 'sealed';
|
|
896
|
+
readonly blob: string;
|
|
897
|
+
readonly provider_hint: string;
|
|
898
|
+
} | {
|
|
899
|
+
readonly kind: 'none';
|
|
900
|
+
};
|
|
901
|
+
/** Optional display-masking hint — pure player-UI concern. */
|
|
902
|
+
readonly mask_hint?: string;
|
|
903
|
+
}
|
|
872
904
|
export interface KeyringFile {
|
|
873
905
|
readonly _noydb_keyring: typeof NOYDB_KEYRING_VERSION;
|
|
874
906
|
readonly user_id: string;
|
|
@@ -942,6 +974,11 @@ export interface KeyringFile {
|
|
|
942
974
|
* highest tier they have DEKs for at grant time.
|
|
943
975
|
*/
|
|
944
976
|
readonly clearance?: number;
|
|
977
|
+
/**
|
|
978
|
+
* Echo-secret (3-part ceremony) declaration. Absent for keyrings
|
|
979
|
+
* using standard/managed mode, or written before this extension.
|
|
980
|
+
*/
|
|
981
|
+
readonly echo?: KeyringEchoBlock;
|
|
945
982
|
}
|
|
946
983
|
export interface VaultBackup {
|
|
947
984
|
readonly _noydb_backup: typeof NOYDB_BACKUP_VERSION;
|
|
@@ -1287,6 +1324,23 @@ export interface SyncTarget {
|
|
|
1287
1324
|
/** Human-readable label for DevTools and audit logs. */
|
|
1288
1325
|
readonly label?: string;
|
|
1289
1326
|
}
|
|
1327
|
+
/**
|
|
1328
|
+
* Introspection view of a wired sync target, returned by `Noydb.listSyncTargets()`
|
|
1329
|
+
* (#948). Deliberately omits any preset *name* — a resolved `SyncPolicy` doesn't
|
|
1330
|
+
* retain which preset (if any) it came from, so only its push/pull mode is surfaced.
|
|
1331
|
+
*/
|
|
1332
|
+
export interface SyncTargetInfo {
|
|
1333
|
+
readonly label: string | undefined;
|
|
1334
|
+
readonly role: SyncTargetRole;
|
|
1335
|
+
readonly policy: {
|
|
1336
|
+
readonly push: {
|
|
1337
|
+
readonly mode: PushMode;
|
|
1338
|
+
};
|
|
1339
|
+
readonly pull: {
|
|
1340
|
+
readonly mode: PullMode;
|
|
1341
|
+
};
|
|
1342
|
+
} | undefined;
|
|
1343
|
+
}
|
|
1290
1344
|
export interface ChangeEvent {
|
|
1291
1345
|
readonly vault: string;
|
|
1292
1346
|
readonly collection: string;
|
|
@@ -2503,8 +2557,13 @@ export interface NoydbOptions {
|
|
|
2503
2557
|
readonly sync?: NoydbStore | SyncTarget | SyncTarget[];
|
|
2504
2558
|
/** User identifier. */
|
|
2505
2559
|
readonly user: string;
|
|
2506
|
-
/**
|
|
2507
|
-
|
|
2560
|
+
/**
|
|
2561
|
+
* Secret for key derivation. Required unless encrypt is false or
|
|
2562
|
+
* `getKeyring` is provided. A plain `string` for `'standard'` /
|
|
2563
|
+
* `'managed'` mode; an {@link EchoSecretParts} 3-part struct for
|
|
2564
|
+
* `'echo'` mode (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940).
|
|
2565
|
+
*/
|
|
2566
|
+
readonly secret?: string | EchoSecretParts;
|
|
2508
2567
|
/**
|
|
2509
2568
|
* Optional callback that returns an unlocked keyring for a given vault.
|
|
2510
2569
|
* Use this to plug in WebAuthn / OIDC / Shamir / any unlock path that
|
|
@@ -2555,10 +2614,13 @@ export interface NoydbOptions {
|
|
|
2555
2614
|
* the provided `sealingKey`. The user never sees or types the
|
|
2556
2615
|
* secret, defeating the $5-wrench attack. Mutually
|
|
2557
2616
|
* exclusive with `secret` and `getKeyring`.
|
|
2617
|
+
* - `'echo'` — 3-part ceremony (prompt / echo / key). `secret`
|
|
2618
|
+
* takes an {@link EchoSecretParts} struct instead of a plain
|
|
2619
|
+
* string (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940).
|
|
2558
2620
|
*
|
|
2559
2621
|
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-secret mode
|
|
2560
2622
|
*/
|
|
2561
|
-
readonly secretMode?: 'standard' | 'managed';
|
|
2623
|
+
readonly secretMode?: 'standard' | 'echo' | 'managed';
|
|
2562
2624
|
/**
|
|
2563
2625
|
* Provider that seals/unseals the auto-generated managed-mode
|
|
2564
2626
|
* secret. Required when `secretMode === 'managed'`; ignored
|
|
@@ -2567,6 +2629,23 @@ export interface NoydbOptions {
|
|
|
2567
2629
|
* `@noy-db/seal-libsecret`, `@noy-db/seal-aws-kms`, …).
|
|
2568
2630
|
*/
|
|
2569
2631
|
readonly sealingKey?: SealingKeyProvider;
|
|
2632
|
+
/**
|
|
2633
|
+
* Device-local sealer for the echo reveal-blob. Echo mode only.
|
|
2634
|
+
* Absent ⇒ live keyrings enroll `reveal: 'portable'`; present ⇒
|
|
2635
|
+
* `sealed` (attacker-B resistance). Spec resolved question 4.
|
|
2636
|
+
*/
|
|
2637
|
+
readonly deviceSeal?: DeviceSealProvider;
|
|
2638
|
+
/**
|
|
2639
|
+
* Echo enrollment only: optional display hint for the masked echo,
|
|
2640
|
+
* threaded to the owner keyring's `KeyringEchoBlock.mask_hint` (surfaced
|
|
2641
|
+
* later by `beginEchoUnlock`'s `maskHint`). Echo mode only — rejected
|
|
2642
|
+
* (`ValidationError`) when `secretMode` isn't `'echo'`.
|
|
2643
|
+
*
|
|
2644
|
+
* Counterpart of `RotateSecretInput.echoOptions.maskHint` /
|
|
2645
|
+
* `CreateOwnerKeyringOptions.echoMaskHint` for first-boot enrollment via
|
|
2646
|
+
* `createNoydb` instead of a later `rotateSecret`.
|
|
2647
|
+
*/
|
|
2648
|
+
readonly echoMaskHint?: string;
|
|
2570
2649
|
/** Required to use `profile: 'shamir'` recovery. Pass
|
|
2571
2650
|
* `shamirRecoveryProvider()` from `@noy-db/on-shamir`. */
|
|
2572
2651
|
readonly shamirRecovery?: ShamirRecoveryProvider;
|
|
@@ -2617,6 +2696,19 @@ export interface NoydbOptions {
|
|
|
2617
2696
|
* back-compat; planned to flip to `true` in a future major release.
|
|
2618
2697
|
*/
|
|
2619
2698
|
readonly validateSecret?: boolean;
|
|
2699
|
+
/**
|
|
2700
|
+
* Per-vault strength-policy knobs for the ECHO (3-part) secret's
|
|
2701
|
+
* prompt / combined floors, applied at first-time keyring creation
|
|
2702
|
+
* when `validateSecret` is on. Echo mode only — rejected
|
|
2703
|
+
* (`ValidationError`) when `secretMode` isn't `'echo'`.
|
|
2704
|
+
*
|
|
2705
|
+
* This is the parts-path counterpart of `SecretPolicy` (there is no
|
|
2706
|
+
* `secretPolicy` field on `NoydbOptions` itself — the standard/string
|
|
2707
|
+
* secret path has no per-`createNoydb` override point today; see
|
|
2708
|
+
* `RotateSecretInput.secretPolicy` / `RecoverSecretInput.secretPolicy`
|
|
2709
|
+
* for where the string-path pairing lives).
|
|
2710
|
+
*/
|
|
2711
|
+
readonly echoSecretPolicy?: EchoSecretPolicy;
|
|
2620
2712
|
/**
|
|
2621
2713
|
* Vault-level policy gate document. When present, the hub
|
|
2622
2714
|
* persists the merged policy at `_meta/policy` on first-time vault
|
|
@@ -3346,4 +3438,3 @@ export type IndexedOf<T, O> = O extends {
|
|
|
3346
3438
|
export type MoneyOf<T, O> = O extends {
|
|
3347
3439
|
money: infer M;
|
|
3348
3440
|
} ? (M & keyof T & string) : never;
|
|
3349
|
-
export {};
|
|
@@ -128,3 +128,36 @@ export declare function estimateEntropy(secret: string): number;
|
|
|
128
128
|
* @internal
|
|
129
129
|
*/
|
|
130
130
|
export declare function legacyAssertSecret(s: string): void;
|
|
131
|
+
/** Dedicated floors for the echo mode's three parts (spec resolved Q1/Q5). */
|
|
132
|
+
export interface EchoSecretPolicy {
|
|
133
|
+
/** Floor for the typed prompt — the brute-forceable-in-isolation part. */
|
|
134
|
+
readonly prompt?: SecretPolicy;
|
|
135
|
+
/** Policy for the combined parts (defaults to the standard whole-secret rules). */
|
|
136
|
+
readonly combined?: SecretPolicy;
|
|
137
|
+
}
|
|
138
|
+
export declare const DEFAULT_ECHO_PROMPT_MIN_WORDS = 3;
|
|
139
|
+
/**
|
|
140
|
+
* Default per-word character floor for echo-mode validation (prompt AND
|
|
141
|
+
* combined checks). Relaxed to 1 from the standard 3-char floor
|
|
142
|
+
* ({@link DEFAULT_MIN_WORD_LENGTH}) — echo secrets are natural-language
|
|
143
|
+
* sentences (spec #940's canonical example is Italian), and Romance
|
|
144
|
+
* languages are full of 2-letter function words ("mi", "da", "al") that
|
|
145
|
+
* the standard floor would otherwise reject even though the combined
|
|
146
|
+
* secret is plenty strong. Word-COUNT floors (prompt 3, combined 6) are
|
|
147
|
+
* unchanged — this only relaxes per-word length.
|
|
148
|
+
*/
|
|
149
|
+
export declare const DEFAULT_ECHO_MIN_WORD_LENGTH = 1;
|
|
150
|
+
/** Validate a 3-part echo secret. Never throws. */
|
|
151
|
+
export declare function validateEchoSecret(parts: {
|
|
152
|
+
readonly prompt: string;
|
|
153
|
+
readonly echo: string;
|
|
154
|
+
readonly key: string;
|
|
155
|
+
}, opts?: EchoSecretPolicy): SecretValidationResult;
|
|
156
|
+
/** Throwing form of {@link validateEchoSecret}. */
|
|
157
|
+
export declare function assertStrongEchoSecret(parts: {
|
|
158
|
+
readonly prompt: string;
|
|
159
|
+
readonly echo: string;
|
|
160
|
+
readonly key: string;
|
|
161
|
+
}, opts?: EchoSecretPolicy & {
|
|
162
|
+
allowWeakSecret?: boolean;
|
|
163
|
+
}): void;
|
package/dist/kernel/vault.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ import type { GuardStrategyAny } from '../with-audit/guards/types.js';
|
|
|
39
39
|
import type { ReadOnlyVaultFacade } from '../with-audit/guards/read-only-facade.js';
|
|
40
40
|
import type { DerivationRegistry } from '../with-formula/derivations/registry.js';
|
|
41
41
|
import type { DerivationStrategy } from '../with-formula/derivations/types.js';
|
|
42
|
+
import { type BehaviorSummary } from '../with-shape/introspection/behaviors.js';
|
|
42
43
|
import type { JoinedHandle } from '../with-shape/satellites/types.js';
|
|
43
44
|
import { type PeriodRecord, type ClosePeriodOptions, type OpenPeriodOptions } from '../with-audit/periods/index.js';
|
|
44
45
|
import { type EnclaveKey } from './enclave/index.js';
|
|
@@ -401,7 +402,7 @@ export declare class Vault {
|
|
|
401
402
|
*
|
|
402
403
|
* Emits no ledger/event itself — its callers (#604's `freezePeriod`, #615's
|
|
403
404
|
* `purgePeriodTargets`) own the audit record. The sweep body is shared via
|
|
404
|
-
*
|
|
405
|
+
* `purgeMarkersOn`, which #615 also aims at push-only sync targets.
|
|
405
406
|
*
|
|
406
407
|
* Purges the local adapter only. Markers already pushed to the vault's
|
|
407
408
|
* push-only (`backup`/`archive`) sync targets are reclaimed by #615's
|
|
@@ -409,11 +410,6 @@ export declare class Vault {
|
|
|
409
410
|
* them would re-open the resurrection window — the deferred half of #611).
|
|
410
411
|
*/
|
|
411
412
|
_purgeDeleteMarkers(before: string, collections?: string[]): Promise<number>;
|
|
412
|
-
/**
|
|
413
|
-
* @internal #615. Sweep delete markers with `_ts < before` off ANY store
|
|
414
|
-
* (local adapter or a push-only sync target). Returns the count removed.
|
|
415
|
-
*/
|
|
416
|
-
private _purgeMarkersOn;
|
|
417
413
|
/**
|
|
418
414
|
* @internal #613. Relocate this closed period's in-window records (those
|
|
419
415
|
* with `_ts < before`) from the hot store to the configured cold tier,
|
|
@@ -723,6 +719,15 @@ export declare class Vault {
|
|
|
723
719
|
unrevokeAttestation(docId: string): Promise<void>;
|
|
724
720
|
getRevokedDocIds(): Promise<string[]>;
|
|
725
721
|
publishRevocationList(): Promise<RevocationList>;
|
|
722
|
+
/**
|
|
723
|
+
* @internal #943 — read-only access to this vault's persisted document
|
|
724
|
+
* signer, for pod export signing. Never mints and does NOT require the
|
|
725
|
+
* `withAttestation()` opt-in (role-agnostic, pure read): if no signer has
|
|
726
|
+
* ever been minted, resolves to `null` (unsigned pod) rather than throwing
|
|
727
|
+
* or minting one. Dynamic-imports `signer.js` (the S4 gate escape hatch —
|
|
728
|
+
* see `_ensureFenceCoordination` above) since it is a with-* service path.
|
|
729
|
+
*/
|
|
730
|
+
_loadPodSigner(): Promise<import('../with-audit/attestation/signer.js').DocSigner | null>;
|
|
726
731
|
private writeExportAudit;
|
|
727
732
|
/**
|
|
728
733
|
* Read-only accessor for the invoking keyring's export capability,
|
|
@@ -766,6 +771,20 @@ export declare class Vault {
|
|
|
766
771
|
* cascade guard. See `with-shape/links/vault-facade.ts`.
|
|
767
772
|
*/
|
|
768
773
|
enforceRefsOnDelete(collectionName: string, id: string): Promise<void>;
|
|
774
|
+
/**
|
|
775
|
+
* #922 — can a delete on `collectionName` trigger ANY cross-record work in
|
|
776
|
+
* `enforceRefsOnDelete` above? Unions ALL THREE of its cascade sources —
|
|
777
|
+
* lookup-ref edges (`graph.referencingEdgesOf`), classic inbound refs
|
|
778
|
+
* (`refRegistry.getInbound`), and managed link sets whose either endpoint
|
|
779
|
+
* is this collection. `Collection._txAtomicSafe('delete')` consults this
|
|
780
|
+
* instead of the pre-#922 blanket enforcer-presence check: `_prepareDelete`
|
|
781
|
+
* runs those cascades DURING prepare (not abortable), so a delete may take
|
|
782
|
+
* the atomic tx path only when all three sources are provably absent.
|
|
783
|
+
* Registry state only — no store reads, safe to call at commit time.
|
|
784
|
+
*
|
|
785
|
+
* @internal
|
|
786
|
+
*/
|
|
787
|
+
_deleteCascadesPossible(collectionName: string): boolean;
|
|
769
788
|
/**
|
|
770
789
|
* Look up the `RefDescriptor` the left collection declared for a
|
|
771
790
|
* given field name. Returns `null` when the field has no ref
|
|
@@ -967,6 +986,13 @@ export declare class Vault {
|
|
|
967
986
|
* vaults with no overlays registered.
|
|
968
987
|
*/
|
|
969
988
|
_getOverlayedViewRegistry(): OverlayedViewRegistry | null;
|
|
989
|
+
/**
|
|
990
|
+
* Read-only enumeration of the five behavior registries — guards,
|
|
991
|
+
* derivations, materialized views, overlays, satellites — each entry
|
|
992
|
+
* carrying its name and the serializable half of its spec (never a
|
|
993
|
+
* function body). @see with-shape/introspection/behaviors.ts
|
|
994
|
+
*/
|
|
995
|
+
listBehaviors(): BehaviorSummary;
|
|
970
996
|
/** @internal — ctx for `putDerivedOutput`'s frozen-period skip+audit (#638 Task 5). */
|
|
971
997
|
private _dispatchCtx;
|
|
972
998
|
/**
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
LedgerStore,
|
|
4
4
|
applyPatch,
|
|
5
5
|
computePatch
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZK4CO2KZ.js";
|
|
7
7
|
import {
|
|
8
8
|
LEDGER_COLLECTION,
|
|
9
9
|
LEDGER_DELTAS_COLLECTION
|
|
@@ -15,16 +15,16 @@ import {
|
|
|
15
15
|
paddedIndex,
|
|
16
16
|
parseIndex,
|
|
17
17
|
sha256Hex
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-24UICKTB.js";
|
|
19
|
+
import "./chunk-FY343IZR.js";
|
|
20
|
+
import "./chunk-NQRJ5AJO.js";
|
|
21
|
+
import "./chunk-HXGUIPQB.js";
|
|
22
|
+
import "./chunk-AR2JDFAE.js";
|
|
23
|
+
import "./chunk-747LRSOO.js";
|
|
24
24
|
import "./chunk-LP7BEXCT.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-VCETL77O.js";
|
|
26
|
+
import "./chunk-24ZLWWEO.js";
|
|
27
|
+
import "./chunk-HNGSV2YC.js";
|
|
28
28
|
import "./chunk-PZ5AY32C.js";
|
|
29
29
|
export {
|
|
30
30
|
LEDGER_COLLECTION,
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
parseIndex,
|
|
40
40
|
sha256Hex
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=ledger-
|
|
42
|
+
//# sourceMappingURL=ledger-DONWFC5M.js.map
|