@noy-db/hub 0.4.0-pre.1 → 0.4.0-pre.11
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/README.md +3 -4
- package/dist/api-ZDKTWNBB.js +20 -0
- package/dist/attestation/index.js +18 -18
- package/dist/{backup-LU2DTZTI.js → backup-2UX7PRM5.js} +13 -13
- package/dist/blobs/index.js +30 -15
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +12 -12
- package/dist/broker/index.js.map +1 -1
- package/dist/cargo/index.js +53 -43
- package/dist/{chunk-YTGDPCPW.js → chunk-2J6UEN2V.js} +42 -18
- package/dist/chunk-2J6UEN2V.js.map +1 -0
- package/dist/{chunk-IY23KFNZ.js → chunk-35NMVJ7I.js} +3 -3
- package/dist/{chunk-S3BFKGET.js → chunk-3HUYRN24.js} +4 -4
- package/dist/chunk-3HUYRN24.js.map +1 -0
- package/dist/{walk-XS3PKM6I.js → chunk-3V3XR4S4.js} +4 -13
- package/dist/{walk-XS3PKM6I.js.map → chunk-3V3XR4S4.js.map} +1 -1
- package/dist/{chunk-RTEK4C4I.js → chunk-4JQK3L4V.js} +2 -2
- package/dist/{chunk-3ELCWU56.js → chunk-4ZKNC6A6.js} +2 -2
- package/dist/{chunk-VQNJ7UZL.js → chunk-55LKVALY.js} +106 -10
- package/dist/chunk-55LKVALY.js.map +1 -0
- package/dist/{chunk-VAIS3SOM.js → chunk-55LX6FSX.js} +2 -2
- package/dist/chunk-5D2ALSM5.js +19 -0
- package/dist/chunk-5D2ALSM5.js.map +1 -0
- package/dist/{chunk-6HPG2YNX.js → chunk-5DRROK5W.js} +2 -2
- package/dist/{chunk-S6Q37VGE.js → chunk-5GQEU4DN.js} +2 -2
- package/dist/chunk-5JOFWL4G.js +25 -0
- package/dist/chunk-5JOFWL4G.js.map +1 -0
- package/dist/{chunk-TOPYT5U5.js → chunk-63FE525P.js} +6 -6
- package/dist/chunk-6LJY7X5A.js +18 -0
- package/dist/chunk-6LJY7X5A.js.map +1 -0
- package/dist/{chunk-JVBO4SZL.js → chunk-6UBZ6I5Z.js} +2 -2
- package/dist/{chunk-BOKIKJJB.js → chunk-6ZNSB3H6.js} +5 -17
- package/dist/chunk-6ZNSB3H6.js.map +1 -0
- package/dist/{chunk-BMQWTQZ4.js → chunk-7YVBQJ7K.js} +13 -355
- package/dist/chunk-7YVBQJ7K.js.map +1 -0
- package/dist/{chunk-UFEVO57O.js → chunk-ABS7FMMD.js} +6 -6
- package/dist/chunk-AFHQATY4.js +47 -0
- package/dist/chunk-AFHQATY4.js.map +1 -0
- package/dist/{chunk-HOONYZY2.js → chunk-AKKRXT23.js} +7 -7
- package/dist/chunk-AKKRXT23.js.map +1 -0
- package/dist/{chunk-DDHM2TLX.js → chunk-AT2JJEKJ.js} +4 -4
- package/dist/chunk-AT2JJEKJ.js.map +1 -0
- package/dist/{chunk-M75ZZHSR.js → chunk-BLBAQRBM.js} +2 -2
- package/dist/{chunk-3SV2EPMN.js → chunk-BLCWSJLN.js} +88 -81
- package/dist/chunk-BLCWSJLN.js.map +1 -0
- package/dist/chunk-CADUYBQD.js +151 -0
- package/dist/chunk-CADUYBQD.js.map +1 -0
- package/dist/{chunk-G6EQYAL6.js → chunk-CI32CAFS.js} +5 -5
- package/dist/{chunk-FH52K7EG.js → chunk-CUZLNGD5.js} +2 -6
- package/dist/{chunk-FH52K7EG.js.map → chunk-CUZLNGD5.js.map} +1 -1
- package/dist/{chunk-2P7EGNKF.js → chunk-CXQW2NWO.js} +145 -3
- package/dist/chunk-CXQW2NWO.js.map +1 -0
- package/dist/{chunk-6B4DYGWO.js → chunk-DABACXEF.js} +3 -3
- package/dist/{chunk-F6T6L2UK.js → chunk-DMH3VZU5.js} +4 -4
- package/dist/chunk-DSDXAKIP.js +50 -0
- package/dist/chunk-DSDXAKIP.js.map +1 -0
- package/dist/{chunk-MQ6WOPSY.js → chunk-DZ2JXHWK.js} +5 -5
- package/dist/chunk-DZFQVICS.js +23 -0
- package/dist/chunk-DZFQVICS.js.map +1 -0
- package/dist/chunk-E23UGFVC.js +63 -0
- package/dist/chunk-E23UGFVC.js.map +1 -0
- package/dist/{chunk-UBNCR3YK.js → chunk-EE7UHLKH.js} +4 -4
- package/dist/chunk-EIPVYUEP.js +654 -0
- package/dist/chunk-EIPVYUEP.js.map +1 -0
- package/dist/{chunk-EGCRBCNA.js → chunk-EKRSCRNM.js} +3 -3
- package/dist/{chunk-YMUGBZN2.js → chunk-FQ5CHJR7.js} +1 -1
- package/dist/chunk-FQ5CHJR7.js.map +1 -0
- package/dist/{chunk-LB6OH6K2.js → chunk-FQZ6XTQ7.js} +17 -20
- package/dist/chunk-FQZ6XTQ7.js.map +1 -0
- package/dist/{chunk-IRQY7IR5.js → chunk-FRMPM7WG.js} +4 -4
- package/dist/{chunk-DVUZMT2W.js → chunk-G2JUIDFA.js} +9 -9
- package/dist/{chunk-DVUZMT2W.js.map → chunk-G2JUIDFA.js.map} +1 -1
- package/dist/{chunk-RND5ZPNP.js → chunk-G6WWZNJP.js} +13 -13
- package/dist/chunk-G6WWZNJP.js.map +1 -0
- package/dist/chunk-GJW4HX2O.js +1 -0
- package/dist/{chunk-T6GU5PPZ.js → chunk-GU3IP74F.js} +6 -6
- package/dist/{chunk-5OI6BR4H.js → chunk-GWWOGNBK.js} +308 -18
- package/dist/chunk-GWWOGNBK.js.map +1 -0
- package/dist/{chunk-UNCOC7QH.js → chunk-H2GPHUZD.js} +12 -13
- package/dist/chunk-H2GPHUZD.js.map +1 -0
- package/dist/{chunk-7CI6CP7Z.js → chunk-HMU5P6RL.js} +5 -5
- package/dist/chunk-HMU5P6RL.js.map +1 -0
- package/dist/{chunk-YJV2UZ7H.js → chunk-I5GEJX3R.js} +5 -5
- package/dist/chunk-I5GEJX3R.js.map +1 -0
- package/dist/{chunk-GWKAVKHI.js → chunk-IG6KUWBX.js} +2 -2
- package/dist/chunk-IG6KUWBX.js.map +1 -0
- package/dist/{chunk-MTQPRQHB.js → chunk-IPUG56GJ.js} +15 -5
- package/dist/{chunk-MTQPRQHB.js.map → chunk-IPUG56GJ.js.map} +1 -1
- package/dist/{chunk-SMIRGMS7.js → chunk-IXNCZTWA.js} +2 -2
- package/dist/{chunk-RM2XV574.js → chunk-IXTSNGYY.js} +3 -3
- package/dist/{chunk-KUPKLSX5.js → chunk-IYZISPGD.js} +7 -5
- package/dist/chunk-IYZISPGD.js.map +1 -0
- package/dist/{chunk-SMGEYW6G.js → chunk-JDOMW53O.js} +26 -16
- package/dist/chunk-JDOMW53O.js.map +1 -0
- package/dist/{chunk-PK6QCH2C.js → chunk-JJZGIE4U.js} +6 -5
- package/dist/{chunk-DRWBEDYO.js → chunk-JYJFGD2H.js} +2 -2
- package/dist/{chunk-TAGR72IR.js → chunk-KRCBZYTZ.js} +26 -177
- package/dist/chunk-KRCBZYTZ.js.map +1 -0
- package/dist/{chunk-HPUWOVR7.js → chunk-L2DGWBCT.js} +14 -14
- package/dist/chunk-L2DGWBCT.js.map +1 -0
- package/dist/{chunk-VEALDPHW.js → chunk-L3YYLT4E.js} +15 -2
- package/dist/chunk-L3YYLT4E.js.map +1 -0
- package/dist/{chunk-A7JJLVGH.js → chunk-LNPUSMZL.js} +29 -31
- package/dist/chunk-LNPUSMZL.js.map +1 -0
- package/dist/{chunk-KUIB4B5Q.js → chunk-LNZKOUJR.js} +2 -2
- package/dist/{chunk-IM3QVF53.js → chunk-MBKVNOJS.js} +6 -6
- package/dist/chunk-MCHBCNCE.js +367 -0
- package/dist/chunk-MCHBCNCE.js.map +1 -0
- package/dist/{chunk-VCBHAE4R.js → chunk-MHMLXJ3I.js} +2 -2
- package/dist/chunk-MHMLXJ3I.js.map +1 -0
- package/dist/{chunk-WNGGJWF7.js → chunk-MSMJJB4J.js} +2 -2
- package/dist/chunk-MSMJJB4J.js.map +1 -0
- package/dist/{chunk-T36RFODW.js → chunk-MXUT7FTE.js} +2 -2
- package/dist/chunk-MXUT7FTE.js.map +1 -0
- package/dist/{chunk-BGK233EA.js → chunk-N4BBNYIB.js} +11 -9
- package/dist/chunk-N4BBNYIB.js.map +1 -0
- package/dist/{chunk-3PF6CRDT.js → chunk-NFIBXF4V.js} +1082 -1583
- package/dist/chunk-NFIBXF4V.js.map +1 -0
- package/dist/{chunk-LOF2W3JU.js → chunk-NFNJLRY7.js} +368 -52
- package/dist/chunk-NFNJLRY7.js.map +1 -0
- package/dist/{chunk-N6WF5PKC.js → chunk-NFZGZ4AK.js} +2 -2
- package/dist/{chunk-JRBNCUNT.js → chunk-NGSJZFGL.js} +21 -4
- package/dist/chunk-NGSJZFGL.js.map +1 -0
- package/dist/chunk-NJ4DYYO5.js +81 -0
- package/dist/chunk-NJ4DYYO5.js.map +1 -0
- package/dist/{chunk-2IALOXZS.js → chunk-NM5UYF6Q.js} +2 -2
- package/dist/chunk-NM5UYF6Q.js.map +1 -0
- package/dist/{chunk-JBBSYJHP.js → chunk-NYEFP7DY.js} +4 -4
- package/dist/chunk-NYEFP7DY.js.map +1 -0
- package/dist/{chunk-CCOP5XDW.js → chunk-NZ24MX4J.js} +8 -46
- package/dist/chunk-NZ24MX4J.js.map +1 -0
- package/dist/{chunk-KWVJAOIN.js → chunk-OLEPKFTW.js} +4 -4
- package/dist/chunk-OLEPKFTW.js.map +1 -0
- package/dist/{chunk-OF75ACKS.js → chunk-PEATRIYJ.js} +9 -9
- package/dist/chunk-PEOZ34EM.js +13 -0
- package/dist/chunk-PEOZ34EM.js.map +1 -0
- package/dist/{chunk-UC2ETWF3.js → chunk-PTHKZWEH.js} +2 -14
- package/dist/{chunk-UC2ETWF3.js.map → chunk-PTHKZWEH.js.map} +1 -1
- package/dist/chunk-PVEWA2DU.js +23 -0
- package/dist/chunk-PVEWA2DU.js.map +1 -0
- package/dist/{chunk-LSASLXGC.js → chunk-QBAC3GXA.js} +1 -1
- package/dist/chunk-QBAC3GXA.js.map +1 -0
- package/dist/{chunk-RDXW3OBQ.js → chunk-QD46HPZG.js} +2 -2
- package/dist/chunk-QD46HPZG.js.map +1 -0
- package/dist/{chunk-N55W7KUL.js → chunk-QDIH2744.js} +2 -2
- package/dist/{chunk-6HY2X62D.js → chunk-QJNCB5SK.js} +2 -2
- package/dist/{chunk-4BRCIYFG.js → chunk-QX76XVQH.js} +6 -6
- package/dist/chunk-QX76XVQH.js.map +1 -0
- package/dist/{chunk-W2OG6JOL.js → chunk-QZWTRENR.js} +24 -7
- package/dist/chunk-QZWTRENR.js.map +1 -0
- package/dist/{chunk-6NQMXTYC.js → chunk-RO5NM6UI.js} +2 -2
- package/dist/chunk-RO5NM6UI.js.map +1 -0
- package/dist/chunk-SGDPRCC4.js +1075 -0
- package/dist/chunk-SGDPRCC4.js.map +1 -0
- package/dist/{chunk-2PCAVW2I.js → chunk-SHEEBRZ4.js} +2 -2
- package/dist/chunk-SMY5X46Z.js +14 -0
- package/dist/chunk-SMY5X46Z.js.map +1 -0
- package/dist/{chunk-ISMV2QVG.js → chunk-TG634KCO.js} +11 -2
- package/dist/chunk-TG634KCO.js.map +1 -0
- package/dist/{chunk-J6Q7UVQE.js → chunk-TUXQSFHZ.js} +4 -16
- package/dist/{chunk-J6Q7UVQE.js.map → chunk-TUXQSFHZ.js.map} +1 -1
- package/dist/{chunk-GULTLPFB.js → chunk-UADPR6F4.js} +3 -3
- package/dist/{chunk-GULTLPFB.js.map → chunk-UADPR6F4.js.map} +1 -1
- package/dist/{chunk-ZEQWCBCM.js → chunk-UDHBXYGG.js} +27 -5
- package/dist/chunk-UDHBXYGG.js.map +1 -0
- package/dist/{chunk-RA5VTXXG.js → chunk-V6UQZA2H.js} +2 -2
- package/dist/chunk-VG2ZSFYD.js +32 -0
- package/dist/chunk-VG2ZSFYD.js.map +1 -0
- package/dist/chunk-VKQCVU2Z.js +21 -0
- package/dist/chunk-VKQCVU2Z.js.map +1 -0
- package/dist/{chunk-QDPZWTN2.js → chunk-W3G5REIU.js} +2 -2
- package/dist/{chunk-WEYZTLXN.js → chunk-W3L64Y3J.js} +2 -2
- package/dist/{chunk-ONTBCHCP.js → chunk-W66AM5IB.js} +2 -2
- package/dist/chunk-W66AM5IB.js.map +1 -0
- package/dist/{chunk-A5BDDEXK.js → chunk-WBKZUO5V.js} +26 -43
- package/dist/chunk-WBKZUO5V.js.map +1 -0
- package/dist/{chunk-CBSY2N76.js → chunk-WLXMTYGO.js} +2 -2
- package/dist/{chunk-3U3FBR7O.js → chunk-X3F5YJG2.js} +2 -2
- package/dist/{chunk-GQNGCEP5.js → chunk-X45JYIAY.js} +3 -3
- package/dist/chunk-X45JYIAY.js.map +1 -0
- package/dist/{chunk-6XE5TMPR.js → chunk-X4MVWPHV.js} +3 -3
- package/dist/chunk-X4MVWPHV.js.map +1 -0
- package/dist/chunk-XZHEOSQ2.js +16 -0
- package/dist/chunk-XZHEOSQ2.js.map +1 -0
- package/dist/chunk-Y2NBBT6K.js +18 -0
- package/dist/chunk-Y2NBBT6K.js.map +1 -0
- package/dist/{chunk-DDATL6PU.js → chunk-Y2NJBNX3.js} +8 -8
- package/dist/{chunk-DDATL6PU.js.map → chunk-Y2NJBNX3.js.map} +1 -1
- package/dist/chunk-YMUFFJCO.js +23 -0
- package/dist/chunk-YMUFFJCO.js.map +1 -0
- package/dist/{chunk-O7WJ47EF.js → chunk-YWWQM7KP.js} +5 -14
- package/dist/chunk-YWWQM7KP.js.map +1 -0
- package/dist/{chunk-7O3AYBC7.js → chunk-YZJSJOUI.js} +235 -65
- package/dist/chunk-YZJSJOUI.js.map +1 -0
- package/dist/{chunk-5WZXVULX.js → chunk-ZTLOXFPB.js} +2 -2
- package/dist/chunk-ZTLOXFPB.js.map +1 -0
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-WQVIJAW2.js → classified-marker-7PKJBFCG.js} +3 -3
- package/dist/collection-facade-6I5K5IOD.js +45 -0
- package/dist/{computed-DSMPXG2Y.js → computed-AB45PS4V.js} +3 -3
- package/dist/consent/index.js +13 -9
- package/dist/consent/index.js.map +1 -1
- package/dist/cover/index.js +37 -0
- package/dist/crdt/index.js +4 -0
- package/dist/crdt/index.js.map +1 -1
- package/dist/custody/index.js +26 -0
- package/dist/{dead-filter-2A7IAJ3D.js → dead-filter-FL3WIUZS.js} +2 -2
- package/dist/{chunk-GYYCX5K6.js → delegation-QXZ4MPPH.js} +12 -6
- package/dist/{chunk-GYYCX5K6.js.map → delegation-QXZ4MPPH.js.map} +1 -1
- package/dist/derivations/index.js +12 -12
- package/dist/derive-VGS7FKE3.js +22 -0
- package/dist/directory/index.js +46 -0
- package/dist/dispatch-EGGC7UD7.js +72 -0
- package/dist/dispatch-EGGC7UD7.js.map +1 -0
- package/dist/dispatch-GDSTUTVP.js +194 -0
- package/dist/dispatch-GDSTUTVP.js.map +1 -0
- package/dist/{enclave-7MW6ZGXW.js → enclave-SPEEDYZ4.js} +11 -11
- package/dist/executor-IEBLTBCW.js +9 -0
- package/dist/executor-OTF556PL.js +28 -0
- package/dist/executor-RM7XWQDU.js +9 -0
- package/dist/export-accessible-P42BQ4PB.js +23 -0
- package/dist/extract-partition-TCYXRWBN.js +38 -0
- package/dist/{fanout-sidecar-WDYQ77VB.js → fanout-sidecar-SSMRSC2L.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 +6 -6
- package/dist/history/index.js +16 -12
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +16 -14
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +42 -42
- package/dist/index.js +330 -2106
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +4 -2
- package/dist/indexing/index.js.map +1 -1
- package/dist/introspection/index.js +28 -0
- package/dist/issue-FCKN5O6C.js +19 -0
- package/dist/kernel/best-effort-revert.d.ts +9 -1
- package/dist/kernel/collection-config.d.ts +12 -70
- package/dist/kernel/collection.d.ts +11 -23
- package/dist/kernel/enclave/crypto.d.ts +8 -8
- package/dist/kernel/enclave/index.d.ts +3 -3
- package/dist/kernel/errors.d.ts +41 -22
- package/dist/kernel/lazy.d.ts +30 -0
- package/dist/kernel/noydb.d.ts +81 -124
- package/dist/kernel/query/builder.d.ts +10 -10
- package/dist/kernel/query/index.d.ts +0 -6
- package/dist/kernel/query/scan-builder.d.ts +4 -4
- package/dist/kernel/sync-policy.d.ts +76 -4
- package/dist/kernel/types.d.ts +146 -86
- package/dist/kernel/validation.d.ts +33 -33
- package/dist/kernel/vault.d.ts +41 -229
- package/dist/kernel/via/dispatch.d.ts +7 -0
- package/dist/{ledger-33BC4TR7.js → ledger-6XBEVWYP.js} +11 -11
- package/dist/liberate-CYUOS4NC.js +24 -0
- package/dist/{link-set-QK22TDEX.js → link-set-NK6L2A5S.js} +11 -11
- package/dist/materialized-views/index.js +22 -19
- package/dist/money/index.js +31 -0
- package/dist/noydb-FZZIMLCI.js +81 -0
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +15 -13
- package/dist/pod/index.js +26 -12
- package/dist/{policy-NAHB2TUT.js → policy/index.js} +6 -6
- package/dist/port/with/archive-strategy.d.ts +31 -0
- package/dist/port/with/blob-strategy.d.ts +15 -5
- package/dist/port/with/collection-options.d.ts +171 -0
- package/dist/port/with/collection-registries.d.ts +62 -0
- package/dist/port/with/strategies.d.ts +134 -0
- package/dist/port/with/team-strategy.d.ts +3 -2
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-JVTMJ6OW.js → post-register-VFIYISUK.js} +6 -6
- package/dist/query/index.js +6 -46
- package/dist/{aggregate → reduce}/index.js +24 -17
- package/dist/reduce/index.js.map +1 -0
- package/dist/register-UKU2J6MN.js +25 -0
- package/dist/registry-2VCWVHZS.js +19 -0
- package/dist/registry-7Y5WF7GS.js +9 -0
- package/dist/{registry-VW6P6A3J.js → registry-BWD2ED52.js} +2 -2
- package/dist/registry-DTWRJLSF.js +18 -0
- package/dist/request-withdrawal-JYDZ5XY2.js +31 -0
- package/dist/{reveal-LGBOM2BO.js → reveal-CL2BCW6A.js} +6 -6
- package/dist/revoke-2TSAD2T4.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +26 -0
- package/dist/sealed-record/index.js +12 -12
- package/dist/search/index.js +36 -0
- package/dist/{seed-PWK45HDF.js → seed-NUVJEL7T.js} +12 -12
- package/dist/seed-NUVJEL7T.js.map +1 -0
- package/dist/sequence/index.js +30 -0
- package/dist/session/index.js +13 -9
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.js +6 -2
- package/dist/shadow/index.js.map +1 -1
- package/dist/signer-K7Z2EOMG.js +25 -0
- package/dist/snapshots/index.js +14 -10
- package/dist/snapshots/index.js.map +1 -1
- package/dist/{stale-FJED42DM.js → stale-A4J26OIC.js} +11 -10
- package/dist/storage-YVHZUISN.js +23 -0
- package/dist/store/index.js +22 -0
- package/dist/{store-coordination-provider-APODTV4W.js → store-coordination-provider-EWRZL7XF.js} +3 -3
- package/dist/sync/index.js +15 -12
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.js +33 -48
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +1 -1
- package/dist/{tx → transactions}/index.js +7 -3
- package/dist/transactions/index.js.map +1 -0
- package/dist/util/index.js +1 -1
- package/dist/{verify-26Y5GNMK.js → verify-7XWHJWUN.js} +5 -5
- package/dist/via/blob/active.d.ts +23 -7
- package/dist/via/blob/binding.d.ts +1 -1
- package/dist/via/blob/index.d.ts +7 -1
- package/dist/via/i18n/core.d.ts +1 -1
- package/dist/via/i18n/index.d.ts +2 -0
- package/dist/via/money/money-reducer.d.ts +2 -2
- package/dist/walk-P5D6CF4V.js +21 -0
- package/dist/with-audit/consent/index.d.ts +2 -0
- package/dist/with-audit/forget/active.d.ts +3 -3
- package/dist/with-audit/forget/index.d.ts +6 -5
- package/dist/with-audit/forget/strategy.d.ts +3 -3
- package/dist/with-audit/guards/executor.d.ts +4 -4
- package/dist/with-audit/guards/immutable-guard.d.ts +3 -3
- package/dist/with-audit/guards/index.d.ts +1 -1
- package/dist/with-audit/guards/registry.d.ts +3 -3
- package/dist/with-audit/guards/transition-guard.d.ts +3 -3
- package/dist/with-audit/guards/types.d.ts +10 -10
- package/dist/with-audit/guards/with-guard.d.ts +2 -2
- package/dist/with-audit/periods/index.d.ts +2 -0
- package/dist/with-audit/periods/vault-facade.d.ts +6 -0
- package/dist/with-audit/portability/export-accessible.d.ts +4 -4
- package/dist/with-audit/portability/request-withdrawal.d.ts +3 -3
- package/dist/with-audit/portability/withdraw-accessible.d.ts +2 -2
- package/dist/with-audit/sealed-record/strategy.d.ts +1 -1
- package/dist/with-audit/tiers/index.d.ts +1 -0
- package/dist/with-cargo/adopt-partition.d.ts +7 -7
- package/dist/{legacy/kernel.d.ts → with-cargo/floor.d.ts} +4 -4
- package/dist/with-cargo/index.d.ts +9 -2
- package/dist/with-commit/crdt/index.d.ts +2 -0
- package/dist/with-commit/history/index.d.ts +2 -0
- package/dist/with-commit/history/time-machine.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/shadow/index.d.ts +2 -0
- package/dist/with-fork/snapshots/active.d.ts +2 -2
- package/dist/with-fork/snapshots/index.d.ts +3 -1
- package/dist/with-fork/snapshots/noydb-facade.d.ts +3 -3
- package/dist/with-fork/snapshots/strategy.d.ts +2 -2
- package/dist/with-formula/derivations/dispatch.d.ts +98 -0
- package/dist/with-formula/derivations/executor.d.ts +2 -2
- package/dist/with-formula/derivations/index.d.ts +4 -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/dispatch.d.ts +75 -0
- package/dist/with-formula/materialized-views/index.d.ts +2 -1
- package/dist/with-formula/materialized-views/registry.d.ts +4 -4
- package/dist/with-formula/materialized-views/types.d.ts +11 -11
- package/dist/with-formula/materialized-views/with-materialized-view.d.ts +2 -2
- package/dist/with-formula/overlay-views/index.d.ts +1 -1
- package/dist/with-formula/overlay-views/registry.d.ts +4 -4
- package/dist/with-formula/overlay-views/types.d.ts +3 -3
- package/dist/with-formula/overlay-views/virtual-collection.d.ts +2 -2
- package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +2 -2
- package/dist/with-lookup/indexing/active.d.ts +5 -5
- package/dist/with-lookup/indexing/index.d.ts +3 -1
- package/dist/with-lookup/indexing/strategy.d.ts +3 -3
- package/dist/with-lookup/{aggregate → reduce}/active.d.ts +8 -8
- package/dist/with-lookup/{aggregate → reduce}/groupby.d.ts +21 -21
- package/dist/with-lookup/reduce/index.d.ts +34 -0
- package/dist/with-lookup/{aggregate → reduce}/reducers.d.ts +11 -12
- package/dist/with-lookup/{aggregate/aggregation.d.ts → reduce/reduction.d.ts} +21 -21
- package/dist/with-lookup/{aggregate → reduce}/strategy.d.ts +15 -15
- package/dist/with-lookup/search/build-docs.d.ts +7 -2
- package/dist/with-lookup/search/index.d.ts +1 -1
- package/dist/with-party/broker/index.d.ts +1 -0
- package/dist/with-party/broker/seed.d.ts +1 -1
- package/dist/with-party/custody/liberate.d.ts +3 -3
- package/dist/with-party/directory/cover/index.d.ts +1 -5
- package/dist/with-party/directory/cover/schema.d.ts +0 -6
- package/dist/with-party/directory/cover/storage.d.ts +0 -8
- package/dist/with-party/directory/cover/types.d.ts +0 -21
- package/dist/with-party/directory/index.d.ts +2 -0
- package/dist/with-party/session/dev-unlock.d.ts +2 -2
- package/dist/with-party/session/index.d.ts +2 -0
- package/dist/with-party/session/session.d.ts +2 -2
- package/dist/with-party/team/deed.d.ts +8 -8
- package/dist/with-party/team/index.d.ts +4 -7
- package/dist/with-party/team/keyring.d.ts +83 -35
- package/dist/with-party/team/{managed-passphrase.d.ts → managed-secret.d.ts} +27 -27
- package/dist/with-party/team/noydb-facade.d.ts +43 -42
- package/dist/with-party/team/peer-recover.d.ts +13 -13
- package/dist/with-party/team/recovery.d.ts +5 -5
- package/dist/with-party/team/rotate-recover.d.ts +30 -30
- package/dist/with-pod/bundle.d.ts +30 -32
- package/dist/with-pod/format.d.ts +2 -2
- package/dist/with-pod/index.d.ts +2 -1
- package/dist/with-shape/blobs/blob-compaction.d.ts +43 -3
- package/dist/with-shape/blobs/blob-pinning.d.ts +112 -0
- package/dist/with-shape/blobs/blob-set.d.ts +86 -2
- 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/with-store/route-store.d.ts +1 -1
- package/dist/{with-party/team/sync-active.d.ts → with-sync/active.d.ts} +1 -1
- package/dist/{with-party/team/sync-credentials.d.ts → with-sync/credentials.d.ts} +3 -3
- package/dist/{with-party/team/sync.d.ts → with-sync/engine.d.ts} +5 -5
- package/dist/{with-party/sync → with-sync}/index.d.ts +4 -2
- package/dist/{with-party/team/sync-period-scope.d.ts → with-sync/period-scope.d.ts} +2 -2
- package/dist/{with-party/team → with-sync}/presence.d.ts +2 -2
- package/dist/{with-party/team/sync-strategy.d.ts → with-sync/strategy.d.ts} +6 -6
- package/dist/{with-party/team/sync-transaction.d.ts → with-sync/transaction.d.ts} +3 -3
- package/dist/withdraw-accessible-A2PWF5MZ.js +28 -0
- package/package.json +45 -36
- package/dist/aggregate/index.js.map +0 -1
- package/dist/api-IQFZJSQO.js +0 -20
- package/dist/as/index.js +0 -30
- package/dist/at/index.js +0 -1
- package/dist/bundle/index.js +0 -105
- package/dist/by/index.js +0 -11
- package/dist/chunk-2IALOXZS.js.map +0 -1
- package/dist/chunk-2MUZ3LY6.js +0 -205
- package/dist/chunk-2MUZ3LY6.js.map +0 -1
- package/dist/chunk-2P7EGNKF.js.map +0 -1
- package/dist/chunk-3PF6CRDT.js.map +0 -1
- package/dist/chunk-3SV2EPMN.js.map +0 -1
- package/dist/chunk-4BRCIYFG.js.map +0 -1
- package/dist/chunk-5OI6BR4H.js.map +0 -1
- package/dist/chunk-5WZXVULX.js.map +0 -1
- package/dist/chunk-6NQMXTYC.js.map +0 -1
- package/dist/chunk-6XE5TMPR.js.map +0 -1
- package/dist/chunk-7CI6CP7Z.js.map +0 -1
- package/dist/chunk-7O3AYBC7.js.map +0 -1
- package/dist/chunk-A5BDDEXK.js.map +0 -1
- package/dist/chunk-A7JJLVGH.js.map +0 -1
- package/dist/chunk-BGK233EA.js.map +0 -1
- package/dist/chunk-BMQWTQZ4.js.map +0 -1
- package/dist/chunk-BOKIKJJB.js.map +0 -1
- package/dist/chunk-CCOP5XDW.js.map +0 -1
- package/dist/chunk-CHFZDSE4.js +0 -1
- package/dist/chunk-DDHM2TLX.js.map +0 -1
- package/dist/chunk-GQNGCEP5.js.map +0 -1
- package/dist/chunk-GVZQ4NAM.js +0 -14
- package/dist/chunk-GVZQ4NAM.js.map +0 -1
- package/dist/chunk-GWKAVKHI.js.map +0 -1
- package/dist/chunk-HOONYZY2.js.map +0 -1
- package/dist/chunk-HPUWOVR7.js.map +0 -1
- package/dist/chunk-ISMV2QVG.js.map +0 -1
- package/dist/chunk-JBBSYJHP.js.map +0 -1
- package/dist/chunk-JRBNCUNT.js.map +0 -1
- package/dist/chunk-JZWWLLVY.js +0 -99
- package/dist/chunk-JZWWLLVY.js.map +0 -1
- package/dist/chunk-KUPKLSX5.js.map +0 -1
- package/dist/chunk-KWVJAOIN.js.map +0 -1
- package/dist/chunk-LB6OH6K2.js.map +0 -1
- package/dist/chunk-LB7FD65R.js +0 -163
- package/dist/chunk-LB7FD65R.js.map +0 -1
- package/dist/chunk-LOF2W3JU.js.map +0 -1
- package/dist/chunk-LSASLXGC.js.map +0 -1
- package/dist/chunk-O7WJ47EF.js.map +0 -1
- package/dist/chunk-ONTBCHCP.js.map +0 -1
- package/dist/chunk-PT37L5DV.js +0 -255
- package/dist/chunk-PT37L5DV.js.map +0 -1
- package/dist/chunk-RDXW3OBQ.js.map +0 -1
- package/dist/chunk-RND5ZPNP.js.map +0 -1
- package/dist/chunk-S3BFKGET.js.map +0 -1
- package/dist/chunk-SMGEYW6G.js.map +0 -1
- package/dist/chunk-T36RFODW.js.map +0 -1
- package/dist/chunk-TAGR72IR.js.map +0 -1
- package/dist/chunk-UNCOC7QH.js.map +0 -1
- package/dist/chunk-VCBHAE4R.js.map +0 -1
- package/dist/chunk-VEALDPHW.js.map +0 -1
- package/dist/chunk-VQNJ7UZL.js.map +0 -1
- package/dist/chunk-W2OG6JOL.js.map +0 -1
- package/dist/chunk-WNGGJWF7.js.map +0 -1
- package/dist/chunk-YJV2UZ7H.js.map +0 -1
- package/dist/chunk-YMUGBZN2.js.map +0 -1
- package/dist/chunk-YTGDPCPW.js.map +0 -1
- package/dist/chunk-ZEQWCBCM.js.map +0 -1
- package/dist/collection-facade-MJXSC3Q6.js +0 -44
- package/dist/cover-B5SJDHR3.js +0 -52
- package/dist/delegation-A5A75KQO.js +0 -25
- package/dist/derive-HJSMH7RA.js +0 -21
- package/dist/executor-AXE4XMLT.js +0 -26
- package/dist/executor-KGNLJD6M.js +0 -9
- package/dist/executor-XGIS6CR7.js +0 -9
- package/dist/export-accessible-VVBJM3MM.js +0 -23
- package/dist/extract-partition-LGGBTQET.js +0 -38
- package/dist/find-YS6XWB46.js +0 -11
- package/dist/in/index.js +0 -1
- package/dist/issue-LSR5PS6H.js +0 -19
- package/dist/legacy/bundle.d.ts +0 -30
- package/dist/liberate-GBSAYLPJ.js +0 -24
- package/dist/noydb-MTUBMWFE.js +0 -70
- package/dist/on/index.js +0 -17
- package/dist/port/as/index.d.ts +0 -26
- package/dist/port/at/index.d.ts +0 -18
- package/dist/port/in/index.d.ts +0 -21
- package/dist/port/on/index.d.ts +0 -27
- package/dist/port/ui/index.d.ts +0 -21
- package/dist/port/with/index.d.ts +0 -18
- package/dist/register-X462DNDM.js +0 -23
- package/dist/registry-3XMCT7MQ.js +0 -18
- package/dist/registry-KHD2I3M2.js +0 -19
- package/dist/registry-NPOWJHC4.js +0 -9
- package/dist/request-withdrawal-U7K3JTMY.js +0 -31
- package/dist/revoke-OCWDSWRQ.js +0 -24
- package/dist/seed-PWK45HDF.js.map +0 -1
- package/dist/signer-3YFBLZRN.js +0 -25
- package/dist/storage-W3GURVFU.js +0 -23
- package/dist/tx/index.js.map +0 -1
- package/dist/ui/index.js +0 -1
- package/dist/with/index.js +0 -31
- package/dist/with-lookup/aggregate/index.d.ts +0 -23
- package/dist/withdraw-accessible-Y3B2535F.js +0 -28
- /package/dist/{api-IQFZJSQO.js.map → api-ZDKTWNBB.js.map} +0 -0
- /package/dist/{backup-LU2DTZTI.js.map → backup-2UX7PRM5.js.map} +0 -0
- /package/dist/{chunk-IY23KFNZ.js.map → chunk-35NMVJ7I.js.map} +0 -0
- /package/dist/{chunk-RTEK4C4I.js.map → chunk-4JQK3L4V.js.map} +0 -0
- /package/dist/{chunk-3ELCWU56.js.map → chunk-4ZKNC6A6.js.map} +0 -0
- /package/dist/{chunk-VAIS3SOM.js.map → chunk-55LX6FSX.js.map} +0 -0
- /package/dist/{chunk-6HPG2YNX.js.map → chunk-5DRROK5W.js.map} +0 -0
- /package/dist/{chunk-S6Q37VGE.js.map → chunk-5GQEU4DN.js.map} +0 -0
- /package/dist/{chunk-TOPYT5U5.js.map → chunk-63FE525P.js.map} +0 -0
- /package/dist/{chunk-JVBO4SZL.js.map → chunk-6UBZ6I5Z.js.map} +0 -0
- /package/dist/{chunk-UFEVO57O.js.map → chunk-ABS7FMMD.js.map} +0 -0
- /package/dist/{chunk-M75ZZHSR.js.map → chunk-BLBAQRBM.js.map} +0 -0
- /package/dist/{chunk-G6EQYAL6.js.map → chunk-CI32CAFS.js.map} +0 -0
- /package/dist/{chunk-6B4DYGWO.js.map → chunk-DABACXEF.js.map} +0 -0
- /package/dist/{chunk-F6T6L2UK.js.map → chunk-DMH3VZU5.js.map} +0 -0
- /package/dist/{chunk-MQ6WOPSY.js.map → chunk-DZ2JXHWK.js.map} +0 -0
- /package/dist/{chunk-UBNCR3YK.js.map → chunk-EE7UHLKH.js.map} +0 -0
- /package/dist/{chunk-EGCRBCNA.js.map → chunk-EKRSCRNM.js.map} +0 -0
- /package/dist/{chunk-IRQY7IR5.js.map → chunk-FRMPM7WG.js.map} +0 -0
- /package/dist/{as/index.js.map → chunk-GJW4HX2O.js.map} +0 -0
- /package/dist/{chunk-T6GU5PPZ.js.map → chunk-GU3IP74F.js.map} +0 -0
- /package/dist/{chunk-SMIRGMS7.js.map → chunk-IXNCZTWA.js.map} +0 -0
- /package/dist/{chunk-RM2XV574.js.map → chunk-IXTSNGYY.js.map} +0 -0
- /package/dist/{chunk-PK6QCH2C.js.map → chunk-JJZGIE4U.js.map} +0 -0
- /package/dist/{chunk-DRWBEDYO.js.map → chunk-JYJFGD2H.js.map} +0 -0
- /package/dist/{chunk-KUIB4B5Q.js.map → chunk-LNZKOUJR.js.map} +0 -0
- /package/dist/{chunk-IM3QVF53.js.map → chunk-MBKVNOJS.js.map} +0 -0
- /package/dist/{chunk-N6WF5PKC.js.map → chunk-NFZGZ4AK.js.map} +0 -0
- /package/dist/{chunk-OF75ACKS.js.map → chunk-PEATRIYJ.js.map} +0 -0
- /package/dist/{chunk-N55W7KUL.js.map → chunk-QDIH2744.js.map} +0 -0
- /package/dist/{chunk-6HY2X62D.js.map → chunk-QJNCB5SK.js.map} +0 -0
- /package/dist/{chunk-2PCAVW2I.js.map → chunk-SHEEBRZ4.js.map} +0 -0
- /package/dist/{chunk-RA5VTXXG.js.map → chunk-V6UQZA2H.js.map} +0 -0
- /package/dist/{chunk-QDPZWTN2.js.map → chunk-W3G5REIU.js.map} +0 -0
- /package/dist/{chunk-WEYZTLXN.js.map → chunk-W3L64Y3J.js.map} +0 -0
- /package/dist/{chunk-CBSY2N76.js.map → chunk-WLXMTYGO.js.map} +0 -0
- /package/dist/{chunk-3U3FBR7O.js.map → chunk-X3F5YJG2.js.map} +0 -0
- /package/dist/{classified-marker-WQVIJAW2.js.map → classified-marker-7PKJBFCG.js.map} +0 -0
- /package/dist/{at/index.js.map → collection-facade-6I5K5IOD.js.map} +0 -0
- /package/dist/{bundle/index.js.map → computed-AB45PS4V.js.map} +0 -0
- /package/dist/{by → cover}/index.js.map +0 -0
- /package/dist/{in → custody}/index.js.map +0 -0
- /package/dist/{dead-filter-2A7IAJ3D.js.map → dead-filter-FL3WIUZS.js.map} +0 -0
- /package/dist/{chunk-CHFZDSE4.js.map → derive-VGS7FKE3.js.map} +0 -0
- /package/dist/{on → directory}/index.js.map +0 -0
- /package/dist/{collection-facade-MJXSC3Q6.js.map → enclave-SPEEDYZ4.js.map} +0 -0
- /package/dist/{computed-DSMPXG2Y.js.map → executor-IEBLTBCW.js.map} +0 -0
- /package/dist/{cover-B5SJDHR3.js.map → executor-OTF556PL.js.map} +0 -0
- /package/dist/{delegation-A5A75KQO.js.map → executor-RM7XWQDU.js.map} +0 -0
- /package/dist/{derive-HJSMH7RA.js.map → export-accessible-P42BQ4PB.js.map} +0 -0
- /package/dist/{enclave-7MW6ZGXW.js.map → extract-partition-TCYXRWBN.js.map} +0 -0
- /package/dist/{fanout-sidecar-WDYQ77VB.js.map → fanout-sidecar-SSMRSC2L.js.map} +0 -0
- /package/dist/{executor-AXE4XMLT.js.map → find-OZMTRIK3.js.map} +0 -0
- /package/dist/{ui → introspection}/index.js.map +0 -0
- /package/dist/{executor-KGNLJD6M.js.map → issue-FCKN5O6C.js.map} +0 -0
- /package/dist/{executor-XGIS6CR7.js.map → ledger-6XBEVWYP.js.map} +0 -0
- /package/dist/{export-accessible-VVBJM3MM.js.map → liberate-CYUOS4NC.js.map} +0 -0
- /package/dist/{extract-partition-LGGBTQET.js.map → link-set-NK6L2A5S.js.map} +0 -0
- /package/dist/{with → money}/index.js.map +0 -0
- /package/dist/{find-YS6XWB46.js.map → noydb-FZZIMLCI.js.map} +0 -0
- /package/dist/{issue-LSR5PS6H.js.map → policy/index.js.map} +0 -0
- /package/dist/{post-register-JVTMJ6OW.js.map → post-register-VFIYISUK.js.map} +0 -0
- /package/dist/{ledger-33BC4TR7.js.map → register-UKU2J6MN.js.map} +0 -0
- /package/dist/{liberate-GBSAYLPJ.js.map → registry-2VCWVHZS.js.map} +0 -0
- /package/dist/{link-set-QK22TDEX.js.map → registry-7Y5WF7GS.js.map} +0 -0
- /package/dist/{noydb-MTUBMWFE.js.map → registry-BWD2ED52.js.map} +0 -0
- /package/dist/{policy-NAHB2TUT.js.map → registry-DTWRJLSF.js.map} +0 -0
- /package/dist/{register-X462DNDM.js.map → request-withdrawal-JYDZ5XY2.js.map} +0 -0
- /package/dist/{reveal-LGBOM2BO.js.map → reveal-CL2BCW6A.js.map} +0 -0
- /package/dist/{registry-3XMCT7MQ.js.map → revoke-2TSAD2T4.js.map} +0 -0
- /package/dist/{registry-KHD2I3M2.js.map → schema-update/index.js.map} +0 -0
- /package/dist/{registry-NPOWJHC4.js.map → search/index.js.map} +0 -0
- /package/dist/{registry-VW6P6A3J.js.map → sequence/index.js.map} +0 -0
- /package/dist/{request-withdrawal-U7K3JTMY.js.map → signer-K7Z2EOMG.js.map} +0 -0
- /package/dist/{revoke-OCWDSWRQ.js.map → stale-A4J26OIC.js.map} +0 -0
- /package/dist/{signer-3YFBLZRN.js.map → storage-YVHZUISN.js.map} +0 -0
- /package/dist/{stale-FJED42DM.js.map → store/index.js.map} +0 -0
- /package/dist/{store-coordination-provider-APODTV4W.js.map → store-coordination-provider-EWRZL7XF.js.map} +0 -0
- /package/dist/{verify-26Y5GNMK.js.map → verify-7XWHJWUN.js.map} +0 -0
- /package/dist/{storage-W3GURVFU.js.map → walk-P5D6CF4V.js.map} +0 -0
- /package/dist/with-lookup/{aggregate → reduce}/canonical-key.d.ts +0 -0
- /package/dist/{with-party → with-sync}/tab-coordination.d.ts +0 -0
- /package/dist/{with-party → with-sync}/tab-write-relay.d.ts +0 -0
- /package/dist/{withdraw-accessible-Y3B2535F.js.map → withdraw-accessible-A2PWF5MZ.js.map} +0 -0
package/dist/kernel/types.d.ts
CHANGED
|
@@ -24,18 +24,18 @@
|
|
|
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 } from './sync-policy.js';
|
|
28
|
-
import type {
|
|
27
|
+
import type { SyncPolicy, ReadinessState } from './sync-policy.js';
|
|
28
|
+
import type { BlobsStrategy } from '../port/with/blob-strategy.js';
|
|
29
29
|
import type { ArchiveStrategy } from '../with-fork/archive/index.js';
|
|
30
|
-
import type {
|
|
31
|
-
import type {
|
|
30
|
+
import type { IndexingStrategy } from '../with-lookup/indexing/strategy.js';
|
|
31
|
+
import type { ReduceStrategy } from '../with-lookup/reduce/strategy.js';
|
|
32
32
|
import type { ConsentStrategy } from '../with-audit/consent/strategy.js';
|
|
33
33
|
import type { PeriodsStrategy } from '../with-audit/periods/strategy.js';
|
|
34
34
|
import type { ShadowStrategy } from '../with-fork/shadow/strategy.js';
|
|
35
|
-
import type {
|
|
35
|
+
import type { TransactionsStrategy } from '../with-commit/tx/strategy.js';
|
|
36
36
|
import type { HistoryStrategy } from '../with-commit/history/strategy.js';
|
|
37
37
|
import type { ForgetStrategy } from '../with-audit/forget/strategy.js';
|
|
38
|
-
import type {
|
|
38
|
+
import type { SnapshotsStrategy } from '../with-fork/snapshots/strategy.js';
|
|
39
39
|
import type { DerivationSkippedFrozen } from './via/dispatch.js';
|
|
40
40
|
import type { AttestationStrategy } from '../with-audit/attestation/strategy.js';
|
|
41
41
|
import type { ClassifiedStrategy } from '../port/with/classified-strategy.js';
|
|
@@ -51,15 +51,15 @@ import type { SearchStrategy } from '../with-lookup/search/strategy.js';
|
|
|
51
51
|
import type { CargoStrategy } from '../with-cargo/strategy.js';
|
|
52
52
|
import type { Layer, I18nStrategy } from '../port/with/i18n-strategy.js';
|
|
53
53
|
import type { SessionStrategy } from '../with-party/session/strategy.js';
|
|
54
|
-
import type { SyncStrategy } from '../with-
|
|
55
|
-
import type {
|
|
56
|
-
import type {
|
|
54
|
+
import type { SyncStrategy } from '../with-sync/strategy.js';
|
|
55
|
+
import type { GuardStrategyAny } from '../with-audit/guards/types.js';
|
|
56
|
+
import type { DerivationStrategy } from '../with-formula/derivations/types.js';
|
|
57
57
|
import type { UnlockedKeyring } from '../with-party/team/keyring.js';
|
|
58
|
-
import type {
|
|
58
|
+
import type { SecretPolicy } from './validation.js';
|
|
59
59
|
import type { CoverSchema } from '../with-party/directory/cover/types.js';
|
|
60
|
-
import type {
|
|
61
|
-
import type {
|
|
62
|
-
import type { SealingKeyProvider, RecipientHint } from '../with-party/team/managed-
|
|
60
|
+
import type { MaterializedViewStrategy } from '../with-formula/materialized-views/types.js';
|
|
61
|
+
import type { OverlayedViewStrategy } from '../with-formula/overlay-views/types.js';
|
|
62
|
+
import type { SealingKeyProvider, RecipientHint } from '../with-party/team/managed-secret.js';
|
|
63
63
|
import type { ShamirRecoveryProvider } from '../with-party/team/shamir-recovery-provider.js';
|
|
64
64
|
import type { ObjectProjection } from '../with-shape/blobs/object-projection.js';
|
|
65
65
|
import type { CoordinationProvider } from '../port/by/types.js';
|
|
@@ -755,7 +755,7 @@ export type VaultPolicyOnDisk = Record<string, unknown>;
|
|
|
755
755
|
* - `paper` — `on-recovery` codes (the standard end-to-end profile).
|
|
756
756
|
* - `shamir` / `multi-channel` / `admin-mediated` — API surface ships;
|
|
757
757
|
* per-profile dispatch lands in follow-up issues. Calling
|
|
758
|
-
* `db.
|
|
758
|
+
* `db.recoverSecret` against these throws
|
|
759
759
|
* {@link RecoveryProfileNotImplementedError}.
|
|
760
760
|
*/
|
|
761
761
|
export type RecoveryEnrollment = {
|
|
@@ -837,7 +837,7 @@ export interface KeyringAuthenticatorWrappingKEK extends KeyringAuthenticatorBas
|
|
|
837
837
|
*
|
|
838
838
|
* Trade-off: a slot of this kind reconstructs `UnlockedKeyring` with
|
|
839
839
|
* `kek: null` after unlock. That is semantically correct for tier-2
|
|
840
|
-
* (sensitive ops like `enrollAuthenticator` / `
|
|
840
|
+
* (sensitive ops like `enrollAuthenticator` / `rotateSecret`
|
|
841
841
|
* require a tier-1 unlock anyway) and matches how `@noy-db/on-pin`
|
|
842
842
|
* already behaves at tier 3.
|
|
843
843
|
*
|
|
@@ -877,12 +877,12 @@ export interface KeyringFile {
|
|
|
877
877
|
readonly created_at: string;
|
|
878
878
|
readonly granted_by: string;
|
|
879
879
|
/**
|
|
880
|
-
*
|
|
880
|
+
* Secret canary — base64 AES-KW-wrapped form of a known constant
|
|
881
881
|
* 256-bit value, wrapped under the keyring's KEK.
|
|
882
882
|
*
|
|
883
883
|
* Optional: older keyrings load with no canary and fall back to
|
|
884
884
|
* the multi-DEK corruption heuristic. Newer keyrings
|
|
885
|
-
* carry one and let `loadKeyring` distinguish wrong-
|
|
885
|
+
* carry one and let `loadKeyring` distinguish wrong-secret
|
|
886
886
|
* from corruption even when ALL DEKs (including a single-DEK keyring's
|
|
887
887
|
* sole DEK) are corrupted.
|
|
888
888
|
*
|
|
@@ -1247,6 +1247,18 @@ export interface SyncStatus {
|
|
|
1247
1247
|
readonly lastPush: string | null;
|
|
1248
1248
|
readonly lastPull: string | null;
|
|
1249
1249
|
readonly online: boolean;
|
|
1250
|
+
/**
|
|
1251
|
+
* Per-collection readiness under a `'phased'` pull policy (#809). **Absent**
|
|
1252
|
+
* for every other policy, and a collection the sequence never names is absent
|
|
1253
|
+
* from the map — `undefined` means *"no claim made"*, never a reason to gate
|
|
1254
|
+
* a UI. Only `'live'` asserts that a miss from `get()` is a real absence.
|
|
1255
|
+
*/
|
|
1256
|
+
readonly readiness?: ReadonlyMap<string, ReadinessState>;
|
|
1257
|
+
/** 1-based position in the phased sequence; `null` once it has drained. */
|
|
1258
|
+
readonly phase?: {
|
|
1259
|
+
readonly index: number;
|
|
1260
|
+
readonly total: number;
|
|
1261
|
+
} | null;
|
|
1250
1262
|
}
|
|
1251
1263
|
export type SyncTargetRole = 'sync-peer' | 'backup' | 'archive';
|
|
1252
1264
|
/**
|
|
@@ -1263,7 +1275,11 @@ export interface SyncTarget {
|
|
|
1263
1275
|
readonly store: NoydbStore;
|
|
1264
1276
|
/** Role determines sync direction and conflict handling. */
|
|
1265
1277
|
readonly role: SyncTargetRole;
|
|
1266
|
-
/**
|
|
1278
|
+
/**
|
|
1279
|
+
* Per-target sync policy. Inherits the store-category default when absent —
|
|
1280
|
+
* but only a *declared* policy starts automation (#897), so a target with no
|
|
1281
|
+
* `policy` and no instance-level `syncPolicy` syncs on explicit calls only.
|
|
1282
|
+
*/
|
|
1267
1283
|
readonly policy?: SyncPolicy;
|
|
1268
1284
|
/** Human-readable label for DevTools and audit logs. */
|
|
1269
1285
|
readonly label?: string;
|
|
@@ -1395,7 +1411,7 @@ export interface GrantOptions {
|
|
|
1395
1411
|
readonly userId: string;
|
|
1396
1412
|
readonly displayName: string;
|
|
1397
1413
|
readonly role: Role;
|
|
1398
|
-
readonly
|
|
1414
|
+
readonly secret: string;
|
|
1399
1415
|
readonly permissions?: Permissions;
|
|
1400
1416
|
/**
|
|
1401
1417
|
* Optional `@noy-db/as-*` export capability. Omit or
|
|
@@ -1412,9 +1428,9 @@ export interface GrantOptions {
|
|
|
1412
1428
|
/**
|
|
1413
1429
|
* Skip phrase-format strength validation (issue #7). Defaults to
|
|
1414
1430
|
* false — `grant()` rejects phrases that don't meet the configured
|
|
1415
|
-
* `
|
|
1431
|
+
* `SecretPolicy`. Test fixtures and CLI scripts pass `true`.
|
|
1416
1432
|
*/
|
|
1417
|
-
readonly
|
|
1433
|
+
readonly allowWeakSecret?: boolean;
|
|
1418
1434
|
/**
|
|
1419
1435
|
* Initial user-envelope payload for the new principal. Sealed under
|
|
1420
1436
|
* the same vault DEK (the reserved `_users` collection's DEK) and
|
|
@@ -1612,7 +1628,7 @@ export interface SessionPolicy {
|
|
|
1612
1628
|
readonly absoluteTimeoutMs?: number;
|
|
1613
1629
|
/**
|
|
1614
1630
|
* Operations that require the user to re-authenticate (re-enter their
|
|
1615
|
-
*
|
|
1631
|
+
* secret or perform a fresh WebAuthn assertion) before proceeding,
|
|
1616
1632
|
* even if the session is still alive.
|
|
1617
1633
|
*
|
|
1618
1634
|
* Common pattern: `requireReAuthFor: ['export', 'grant']` — allow
|
|
@@ -2012,6 +2028,26 @@ export interface SlotRecord {
|
|
|
2012
2028
|
export interface SlotInfo extends SlotRecord {
|
|
2013
2029
|
/** The slot name (key in the record's slot map). */
|
|
2014
2030
|
readonly name: string;
|
|
2031
|
+
/**
|
|
2032
|
+
* DEVICE-LOCAL (#808): slot is pinned for offline on THIS device. Read from
|
|
2033
|
+
* the `withBlobs()` pin registry at list time — never stored in (or synced
|
|
2034
|
+
* through) the vault store; present only when `true`. Pinned slots are
|
|
2035
|
+
* exempt from `vault.compact()` eviction and the cache-budget pass.
|
|
2036
|
+
*/
|
|
2037
|
+
readonly pinned?: boolean;
|
|
2038
|
+
/**
|
|
2039
|
+
* DEVICE-LOCAL (#808): ISO timestamp of the last local read of this slot on
|
|
2040
|
+
* this device — the LRU input for `vault.compact({ cacheBudget })`. Absent
|
|
2041
|
+
* when the slot was never read here (the budget pass falls back to
|
|
2042
|
+
* `uploadedAt`).
|
|
2043
|
+
*/
|
|
2044
|
+
readonly lastAccessAt?: string;
|
|
2045
|
+
/**
|
|
2046
|
+
* DEVICE-LOCAL (#808): byte size of the local encrypted side-cache copy of
|
|
2047
|
+
* an `external` slot on this device (see `BlobPinEntry.cipher`). Absent for
|
|
2048
|
+
* internal slots and for external slots with no local copy.
|
|
2049
|
+
*/
|
|
2050
|
+
readonly cachedBytes?: number;
|
|
2015
2051
|
}
|
|
2016
2052
|
/**
|
|
2017
2053
|
* Explicitly published version snapshot — an independent reference to a
|
|
@@ -2153,12 +2189,12 @@ export interface NoydbOptions {
|
|
|
2153
2189
|
* from `@noy-db/hub/blobs` to enable `collection.blob(id)` storage.
|
|
2154
2190
|
* When omitted, hub's blob machinery stays out of the bundle (ESM
|
|
2155
2191
|
* tree-shaking) and `collection.blob(id)` throws with a pointer at
|
|
2156
|
-
* the subpath. `
|
|
2192
|
+
* the subpath. `BlobsStrategy` is `@internal` — users only construct
|
|
2157
2193
|
* it via the subpath factory.
|
|
2158
2194
|
*
|
|
2159
2195
|
* @internal
|
|
2160
2196
|
*/
|
|
2161
|
-
readonly
|
|
2197
|
+
readonly blobsStrategy?: BlobsStrategy;
|
|
2162
2198
|
/**
|
|
2163
2199
|
* Cold-storage archival target. `withArchive({ store })` designates a
|
|
2164
2200
|
* second store that holds archived record envelopes. Enables
|
|
@@ -2172,24 +2208,24 @@ export interface NoydbOptions {
|
|
|
2172
2208
|
* and auto-reconcile. When omitted, indexing code never reaches the
|
|
2173
2209
|
* bundle; `.lazyQuery()` throws with a pointer at the subpath, and
|
|
2174
2210
|
* eager-mode collections fall back to linear scans regardless of
|
|
2175
|
-
* `indexes: [...]` declarations. `
|
|
2211
|
+
* `indexes: [...]` declarations. `IndexingStrategy` is `@internal` —
|
|
2176
2212
|
* users only construct it via the subpath factory.
|
|
2177
2213
|
*
|
|
2178
2214
|
* @internal
|
|
2179
2215
|
*/
|
|
2180
|
-
readonly
|
|
2216
|
+
readonly indexingStrategy?: IndexingStrategy;
|
|
2181
2217
|
/**
|
|
2182
2218
|
* tree-shake seam — optional aggregate strategy. Pass
|
|
2183
|
-
* `
|
|
2219
|
+
* `withReduce()` from `@noy-db/hub/reduce` to enable
|
|
2184
2220
|
* `.aggregate()` and `.groupBy()` on Query. When omitted, those
|
|
2185
2221
|
* methods throw with a pointer at the subpath; the ~886 LOC of
|
|
2186
|
-
*
|
|
2222
|
+
* Reduction + GroupedQuery machinery never reaches the bundle.
|
|
2187
2223
|
* Streaming `scan().aggregate()` works independently of this
|
|
2188
|
-
* strategy — it doesn't use the `
|
|
2224
|
+
* strategy — it doesn't use the `Reduction` class.
|
|
2189
2225
|
*
|
|
2190
2226
|
* @internal
|
|
2191
2227
|
*/
|
|
2192
|
-
readonly
|
|
2228
|
+
readonly reduceStrategy?: ReduceStrategy;
|
|
2193
2229
|
/**
|
|
2194
2230
|
* tree-shake seam — optional CRDT strategy. Required when
|
|
2195
2231
|
* any collection is declared with `crdt: 'lww-map' | 'rga' | 'yjs'`;
|
|
@@ -2242,12 +2278,12 @@ export interface NoydbOptions {
|
|
|
2242
2278
|
readonly shadowStrategy?: ShadowStrategy;
|
|
2243
2279
|
/**
|
|
2244
2280
|
* tree-shake seam — optional multi-record transactions. Pass
|
|
2245
|
-
* `withTransactions()` from `@noy-db/hub/
|
|
2281
|
+
* `withTransactions()` from `@noy-db/hub/transactions` to enable
|
|
2246
2282
|
* `db.transaction(fn)`. Without it, calling the method throws.
|
|
2247
2283
|
*
|
|
2248
2284
|
* @internal
|
|
2249
2285
|
*/
|
|
2250
|
-
readonly
|
|
2286
|
+
readonly transactionsStrategy?: TransactionsStrategy;
|
|
2251
2287
|
/**
|
|
2252
2288
|
* tree-shake seam — optional history + ledger + time-machine.
|
|
2253
2289
|
* Pass `withHistory()` from `@noy-db/hub/history` to enable
|
|
@@ -2262,7 +2298,7 @@ export interface NoydbOptions {
|
|
|
2262
2298
|
*/
|
|
2263
2299
|
readonly historyStrategy?: HistoryStrategy;
|
|
2264
2300
|
/**
|
|
2265
|
-
* GDPR right-to-erasure. Pass `
|
|
2301
|
+
* GDPR right-to-erasure. Pass `withForget({ subjects })`
|
|
2266
2302
|
* from `@noy-db/hub/forget` to declare which collections carry erasable
|
|
2267
2303
|
* subject data and the record field naming the data subject. Enables
|
|
2268
2304
|
* `vault.forget(subjectId)` crypto-shred (rewrite-to-tombstone of the live
|
|
@@ -2317,7 +2353,7 @@ export interface NoydbOptions {
|
|
|
2317
2353
|
* `db.snapshot()`, `db.listSnapshots()`, and `db.restoreSnapshot()`.
|
|
2318
2354
|
* When omitted, all three methods throw with a pointer at the subpath.
|
|
2319
2355
|
*/
|
|
2320
|
-
readonly
|
|
2356
|
+
readonly snapshotsStrategy?: SnapshotsStrategy;
|
|
2321
2357
|
/**
|
|
2322
2358
|
* Tree-shake seam — optional attestation capability. Pass
|
|
2323
2359
|
* `withAttestation()` from `@noy-db/hub/attestation` to enable
|
|
@@ -2380,7 +2416,7 @@ export interface NoydbOptions {
|
|
|
2380
2416
|
* throw `TeamNotEnabledError` and the keyring grant/revoke/rotate engines
|
|
2381
2417
|
* are reached only via opt-in — the always-on floor is single-user.
|
|
2382
2418
|
* Single-user primitives (owner keyring, unlock, `listUsers`,
|
|
2383
|
-
* `updateUser`,
|
|
2419
|
+
* `updateUser`, secret rotate/recover) stay ungated, as does the
|
|
2384
2420
|
* `createDeedOwner` free function (no createNoydb instance to gate
|
|
2385
2421
|
* against).
|
|
2386
2422
|
*/
|
|
@@ -2429,7 +2465,7 @@ export interface NoydbOptions {
|
|
|
2429
2465
|
* Multiple guards per collection are allowed; they are dispatched
|
|
2430
2466
|
* in registration order on `collection.put()`.
|
|
2431
2467
|
*/
|
|
2432
|
-
readonly guardStrategies?: ReadonlyArray<
|
|
2468
|
+
readonly guardStrategies?: ReadonlyArray<GuardStrategyAny>;
|
|
2433
2469
|
/**
|
|
2434
2470
|
* Deferred-numbering series declared via `withDeferredNumbering(...)`.
|
|
2435
2471
|
* `vault.sequence(series).next({ for })` then assigns gap-free serials at a
|
|
@@ -2443,7 +2479,7 @@ export interface NoydbOptions {
|
|
|
2443
2479
|
* validates the derivation graph for cycles on `openVault`; a cyclic
|
|
2444
2480
|
* graph throws `DerivationCycleError`.
|
|
2445
2481
|
*/
|
|
2446
|
-
readonly derivationStrategies?: ReadonlyArray<
|
|
2482
|
+
readonly derivationStrategies?: ReadonlyArray<DerivationStrategy>;
|
|
2447
2483
|
/**
|
|
2448
2484
|
* Optional materialized-view strategies.
|
|
2449
2485
|
* Each handle returned by `withMaterializedView()` from
|
|
@@ -2451,7 +2487,7 @@ export interface NoydbOptions {
|
|
|
2451
2487
|
* detection across the MV + derivation graphs at `openVault`; a
|
|
2452
2488
|
* cyclic graph throws `MaterializedViewCycleError`.
|
|
2453
2489
|
*/
|
|
2454
|
-
readonly materializedViewStrategies?: ReadonlyArray<
|
|
2490
|
+
readonly materializedViewStrategies?: ReadonlyArray<MaterializedViewStrategy>;
|
|
2455
2491
|
/**
|
|
2456
2492
|
* Optional overlay strategies. Each handle returned by
|
|
2457
2493
|
* `withOverlayedView()` from `@noy-db/hub/overlay-views`. The vault
|
|
@@ -2459,17 +2495,17 @@ export interface NoydbOptions {
|
|
|
2459
2495
|
* availability at `openVault`; a clash throws one of the
|
|
2460
2496
|
* `Overlay*Error` family.
|
|
2461
2497
|
*/
|
|
2462
|
-
readonly overlayedViewStrategies?: ReadonlyArray<
|
|
2498
|
+
readonly overlayedViewStrategies?: ReadonlyArray<OverlayedViewStrategy>;
|
|
2463
2499
|
/** Optional remote store(s) for sync. Accepts a single store, a SyncTarget, or an array. */
|
|
2464
2500
|
readonly sync?: NoydbStore | SyncTarget | SyncTarget[];
|
|
2465
2501
|
/** User identifier. */
|
|
2466
2502
|
readonly user: string;
|
|
2467
|
-
/**
|
|
2503
|
+
/** Secret for key derivation. Required unless encrypt is false or `getKeyring` is provided. */
|
|
2468
2504
|
readonly secret?: string;
|
|
2469
2505
|
/**
|
|
2470
2506
|
* Optional callback that returns an unlocked keyring for a given vault.
|
|
2471
2507
|
* Use this to plug in WebAuthn / OIDC / Shamir / any unlock path that
|
|
2472
|
-
* produces an `UnlockedKeyring` outside the
|
|
2508
|
+
* produces an `UnlockedKeyring` outside the secret model.
|
|
2473
2509
|
*
|
|
2474
2510
|
* When set, `secret` MUST NOT also be set — `createNoydb` throws if both
|
|
2475
2511
|
* are supplied. When neither is set (and `encrypt !== false`), `createNoydb`
|
|
@@ -2497,32 +2533,32 @@ export interface NoydbOptions {
|
|
|
2497
2533
|
* ```
|
|
2498
2534
|
*
|
|
2499
2535
|
* Note: this callback is responsible for both the "open existing vault"
|
|
2500
|
-
* and the "create new vault" cases. Unlike the
|
|
2536
|
+
* and the "create new vault" cases. Unlike the secret path, there is
|
|
2501
2537
|
* no automatic `NoAccessError` → `createOwnerKeyring` fallback, because
|
|
2502
2538
|
* the callback owner has the UI context to decide which path to run.
|
|
2503
|
-
* For first-time bootstrap, use a
|
|
2539
|
+
* For first-time bootstrap, use a secret or recovery code, enroll
|
|
2504
2540
|
* WebAuthn from the unlocked keyring, then swap to `getKeyring` on
|
|
2505
2541
|
* subsequent sessions.
|
|
2506
2542
|
*/
|
|
2507
2543
|
readonly getKeyring?: (vault: string) => Promise<UnlockedKeyring>;
|
|
2508
2544
|
/**
|
|
2509
|
-
*
|
|
2545
|
+
* Secret mode. Default `'standard'`.
|
|
2510
2546
|
*
|
|
2511
2547
|
* - `'standard'` — the legacy flow. `secret` supplies the
|
|
2512
|
-
* plaintext
|
|
2513
|
-
* `rotate-
|
|
2548
|
+
* plaintext secret, the user knows it, and the policy gate
|
|
2549
|
+
* `rotate-secret` is enabled.
|
|
2514
2550
|
* - `'managed'` — rubber-hose-resistant mode. Hub generates a
|
|
2515
|
-
* 256-bit random
|
|
2551
|
+
* 256-bit random secret at first open and seals it under
|
|
2516
2552
|
* the provided `sealingKey`. The user never sees or types the
|
|
2517
|
-
*
|
|
2553
|
+
* secret, defeating the $5-wrench attack. Mutually
|
|
2518
2554
|
* exclusive with `secret` and `getKeyring`.
|
|
2519
2555
|
*
|
|
2520
|
-
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-
|
|
2556
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-secret mode
|
|
2521
2557
|
*/
|
|
2522
|
-
readonly
|
|
2558
|
+
readonly secretMode?: 'standard' | 'managed';
|
|
2523
2559
|
/**
|
|
2524
2560
|
* Provider that seals/unseals the auto-generated managed-mode
|
|
2525
|
-
*
|
|
2561
|
+
* secret. Required when `secretMode === 'managed'`; ignored
|
|
2526
2562
|
* otherwise. Implementations live in per-platform packages
|
|
2527
2563
|
* (`@noy-db/seal-macos-keychain`, `@noy-db/seal-wincred`,
|
|
2528
2564
|
* `@noy-db/seal-libsecret`, `@noy-db/seal-aws-kms`, …).
|
|
@@ -2531,8 +2567,6 @@ export interface NoydbOptions {
|
|
|
2531
2567
|
/** Required to use `profile: 'shamir'` recovery. Pass
|
|
2532
2568
|
* `shamirRecoveryProvider()` from `@noy-db/on-shamir`. */
|
|
2533
2569
|
readonly shamirRecovery?: ShamirRecoveryProvider;
|
|
2534
|
-
/** Auth method. Default: 'passphrase'. */
|
|
2535
|
-
readonly auth?: 'passphrase' | 'biometric';
|
|
2536
2570
|
/** Enable encryption. Default: true. */
|
|
2537
2571
|
readonly encrypt?: boolean;
|
|
2538
2572
|
/**
|
|
@@ -2559,15 +2593,6 @@ export interface NoydbOptions {
|
|
|
2559
2593
|
* bundle → `debounce 30s`.
|
|
2560
2594
|
*/
|
|
2561
2595
|
readonly syncPolicy?: SyncPolicy;
|
|
2562
|
-
/**
|
|
2563
|
-
* @deprecated Use `syncPolicy` instead. Kept for backward compatibility.
|
|
2564
|
-
* When both are supplied, `syncPolicy` takes precedence.
|
|
2565
|
-
*/
|
|
2566
|
-
readonly autoSync?: boolean;
|
|
2567
|
-
/**
|
|
2568
|
-
* @deprecated Use `syncPolicy` instead. Kept for backward compatibility.
|
|
2569
|
-
*/
|
|
2570
|
-
readonly syncInterval?: number;
|
|
2571
2596
|
/**
|
|
2572
2597
|
* Session timeout in ms. Clears keys after inactivity. Default: none.
|
|
2573
2598
|
* @deprecated Use `sessionPolicy.idleTimeoutMs` instead. This field is
|
|
@@ -2582,17 +2607,17 @@ export interface NoydbOptions {
|
|
|
2582
2607
|
*/
|
|
2583
2608
|
readonly sessionPolicy?: SessionPolicy;
|
|
2584
2609
|
/**
|
|
2585
|
-
* Validate
|
|
2610
|
+
* Validate secret strength against the phrase format
|
|
2586
2611
|
* on first-time keyring creation. When
|
|
2587
|
-
* `true`, weak phrases throw {@link
|
|
2588
|
-
* `createNoydb()` / `db.
|
|
2612
|
+
* `true`, weak phrases throw {@link WeakSecretError} from
|
|
2613
|
+
* `createNoydb()` / `db.team.rotateSecret()`. Default: `false` for
|
|
2589
2614
|
* back-compat; planned to flip to `true` in a future major release.
|
|
2590
2615
|
*/
|
|
2591
|
-
readonly
|
|
2616
|
+
readonly validateSecret?: boolean;
|
|
2592
2617
|
/**
|
|
2593
2618
|
* Vault-level policy gate document. When present, the hub
|
|
2594
2619
|
* persists the merged policy at `_meta/policy` on first-time vault
|
|
2595
|
-
* creation and gates sensitive operations (`db.
|
|
2620
|
+
* creation and gates sensitive operations (`db.rotateSecret`,
|
|
2596
2621
|
* `db.export*`, …) against it. Omitted ⇒ the engine uses
|
|
2597
2622
|
* {@link PERSONAL_POLICY}. Use {@link STRICT_POLICY} for regulated
|
|
2598
2623
|
* deployments.
|
|
@@ -2607,11 +2632,11 @@ export interface NoydbOptions {
|
|
|
2607
2632
|
readonly policy?: VaultPolicy;
|
|
2608
2633
|
/**
|
|
2609
2634
|
* Mandatory recovery profile enrollment. Vaults with
|
|
2610
|
-
* `recover-
|
|
2635
|
+
* `recover-secret` enabled MUST register at least one profile
|
|
2611
2636
|
* before being production-ready, otherwise `createNoydb()` throws
|
|
2612
2637
|
* {@link RecoveryNotEnrolledError}. Set
|
|
2613
|
-
* `policy.gates['recover-
|
|
2614
|
-
* deliberately opt out of recovery (
|
|
2638
|
+
* `policy.gates['recover-secret'].enabled = false` to
|
|
2639
|
+
* deliberately opt out of recovery (secret loss = data loss).
|
|
2615
2640
|
*
|
|
2616
2641
|
* The `'paper'` profile is supported end-to-end. Other
|
|
2617
2642
|
* profiles ship the API shape and throw
|
|
@@ -2638,7 +2663,7 @@ export interface NoydbOptions {
|
|
|
2638
2663
|
* data records but not the keyring row, or a WebAuthn credential was rotated).
|
|
2639
2664
|
* **All previously encrypted data is unrecoverable after a reset.**
|
|
2640
2665
|
*
|
|
2641
|
-
* Only applies to the
|
|
2666
|
+
* Only applies to the secret (`secret`) path. When `getKeyring` is used,
|
|
2642
2667
|
* the callback is responsible for handling stale-keyring detection itself.
|
|
2643
2668
|
*/
|
|
2644
2669
|
readonly onInvalidKey?: 'error' | 'reset';
|
|
@@ -2650,12 +2675,6 @@ export interface NoydbOptions {
|
|
|
2650
2675
|
* without this option carry no cover, full stop.
|
|
2651
2676
|
*/
|
|
2652
2677
|
readonly cover?: true | CoverSchema;
|
|
2653
|
-
/**
|
|
2654
|
-
* @deprecated Use {@link NoydbOptions.cover} (#799 rename). Still
|
|
2655
|
-
* accepted for one pre-release window; when both keys are set,
|
|
2656
|
-
* `cover` wins.
|
|
2657
|
-
*/
|
|
2658
|
-
readonly publicEnvelope?: true | CoverSchema;
|
|
2659
2678
|
/** Audit history configuration. */
|
|
2660
2679
|
readonly history?: HistoryConfig;
|
|
2661
2680
|
/**
|
|
@@ -3034,7 +3053,7 @@ export interface WarningRules {
|
|
|
3034
3053
|
}
|
|
3035
3054
|
/**
|
|
3036
3055
|
* Policy applied to one named gate. `enabled: false` disables the
|
|
3037
|
-
* action entirely (useful in managed-
|
|
3056
|
+
* action entirely (useful in managed-secret mode where rotation is
|
|
3038
3057
|
* impossible by construction).
|
|
3039
3058
|
*/
|
|
3040
3059
|
export interface GatePolicy {
|
|
@@ -3050,11 +3069,11 @@ export interface GatePolicy {
|
|
|
3050
3069
|
* and use the same engine; the engine treats unknown names with no
|
|
3051
3070
|
* configured policy as "no gate" (no-op).
|
|
3052
3071
|
*/
|
|
3053
|
-
export type BuiltInGateName = 'rotate-
|
|
3072
|
+
export type BuiltInGateName = 'rotate-secret' | 'recover-secret' | 'enroll-authenticator' | 'remove-authenticator'
|
|
3054
3073
|
/**
|
|
3055
3074
|
* Authorize a deliberate paper-recovery-code regeneration —
|
|
3056
|
-
* `db.rotateRecovery`. Symmetric to `rotate-
|
|
3057
|
-
* the case where the user remembers their
|
|
3075
|
+
* `db.rotateRecovery`. Symmetric to `rotate-secret` for
|
|
3076
|
+
* the case where the user remembers their secret but wants a
|
|
3058
3077
|
* fresh sheet (lost the printout, suspect compromise of the off-site
|
|
3059
3078
|
* copy). PERSONAL allows tier-1; STRICT requires an off-device
|
|
3060
3079
|
* factor so a stolen unlocked laptop cannot silently mint a new
|
|
@@ -3077,7 +3096,7 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
|
|
|
3077
3096
|
/**
|
|
3078
3097
|
* Authorize an atomic peer-recovery — `db.recoverUser`.
|
|
3079
3098
|
* Distinct from `revoke-user` because peer-recovery is intentional
|
|
3080
|
-
* re-issuance of someone's keyring under a temp
|
|
3099
|
+
* re-issuance of someone's keyring under a temp secret, NOT
|
|
3081
3100
|
* removal. Allows owner→owner natively (matches the threat model:
|
|
3082
3101
|
* a co-owner explicitly recovering another co-owner). Ships with a
|
|
3083
3102
|
* factor-proof default in `STRICT_POLICY` so the issuer must
|
|
@@ -3136,12 +3155,12 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
|
|
|
3136
3155
|
export type GateName = BuiltInGateName | `app:${string}`;
|
|
3137
3156
|
/**
|
|
3138
3157
|
* Top-level policy object. Persisted at `_meta/policy` once at vault
|
|
3139
|
-
* creation. The `
|
|
3140
|
-
* applied at every
|
|
3158
|
+
* creation. The `secret` block configures the strength rules
|
|
3159
|
+
* applied at every secret ingress; `gates` configures
|
|
3141
3160
|
* the action-level requirements.
|
|
3142
3161
|
*/
|
|
3143
3162
|
export interface VaultPolicy {
|
|
3144
|
-
readonly
|
|
3163
|
+
readonly secret?: SecretPolicy;
|
|
3145
3164
|
readonly gates: Partial<Record<GateName, GatePolicy>>;
|
|
3146
3165
|
}
|
|
3147
3166
|
/** Concrete proof an actor presents to {@link checkGate}. */
|
|
@@ -3157,7 +3176,7 @@ export interface FactorProof {
|
|
|
3157
3176
|
* Noydb method. Used as the optional last parameter of every method
|
|
3158
3177
|
* that runs through `checkGate`: `db.grant`, `db.revoke`, `db.updateUser`,
|
|
3159
3178
|
* `db.enrollAuthenticator`, `db.removeAuthenticator`, `db.updateAuthenticator`,
|
|
3160
|
-
* `db.enrollWebAuthn`, `db.
|
|
3179
|
+
* `db.enrollWebAuthn`, `db.rotateSecret`, `db.recoverSecret`,
|
|
3161
3180
|
* `db.recoverUser`, `db.enrollUnlock`, `db.describeUserAuth`,
|
|
3162
3181
|
* `db.describeAllUsersAuth`.
|
|
3163
3182
|
*
|
|
@@ -3283,4 +3302,45 @@ export interface NoydbPolicyDeps {
|
|
|
3283
3302
|
* synchronously — mirrors {@link UserApiFactory}.
|
|
3284
3303
|
*/
|
|
3285
3304
|
export type NoydbPolicyFactory = (deps: NoydbPolicyDeps) => NoydbPolicyApi;
|
|
3305
|
+
/**
|
|
3306
|
+
* Named field-set declarations for a collection's type-level shape (#839).
|
|
3307
|
+
*
|
|
3308
|
+
* Replaces the positional `Collection<T, S, Q, M>` tail at every surface a
|
|
3309
|
+
* consumer touches. The positional form was unreadable and unsafe: `Q` and `M`
|
|
3310
|
+
* are both `keyof T & string`, so swapping them type-checked silently, and
|
|
3311
|
+
* reaching `M` meant writing placeholders —
|
|
3312
|
+
* `collection<Sale, never, never, 'amount' | 'tax'>`.
|
|
3313
|
+
*
|
|
3314
|
+
* ```ts
|
|
3315
|
+
* vault.collection<Sale, { money: 'amount' | 'tax' }>('sales')
|
|
3316
|
+
* vault.collection<Invoice, { sensitive: 'ssn'; indexed: 'clientId' }>('invoices')
|
|
3317
|
+
* ```
|
|
3318
|
+
*
|
|
3319
|
+
* Every member is optional; omitting one keeps that axis permissive, which is
|
|
3320
|
+
* what the `[X] extends [never]` guards in {@link QueryField} /
|
|
3321
|
+
* {@link IndexFieldName} encode. Those guards are NOT removable — they are the
|
|
3322
|
+
* difference between "no indexes declared, so `where()` accepts any field" and
|
|
3323
|
+
* "indexes declared, so `where()` is restricted to them" — so they are
|
|
3324
|
+
* re-expressed against this shape rather than dropped.
|
|
3325
|
+
*/
|
|
3326
|
+
export interface CollectionShape<T> {
|
|
3327
|
+
/** Fields sealed at rest; reads return {@link Sealed} handles. */
|
|
3328
|
+
readonly sensitive?: keyof T & string;
|
|
3329
|
+
/** Fields carrying a declared secondary index; narrows `where()` / `orderBy()`. */
|
|
3330
|
+
readonly indexed?: keyof T & string;
|
|
3331
|
+
/** Fields carrying a money descriptor. */
|
|
3332
|
+
readonly money?: keyof T & string;
|
|
3333
|
+
}
|
|
3334
|
+
/** The `sensitive` field set of a {@link CollectionShape}, or `never` if unset. */
|
|
3335
|
+
export type SensitiveOf<T, O> = O extends {
|
|
3336
|
+
sensitive: infer S;
|
|
3337
|
+
} ? (S & keyof T & string) : never;
|
|
3338
|
+
/** The `indexed` field set of a {@link CollectionShape}, or `never` if unset. */
|
|
3339
|
+
export type IndexedOf<T, O> = O extends {
|
|
3340
|
+
indexed: infer Q;
|
|
3341
|
+
} ? (Q & keyof T & string) : never;
|
|
3342
|
+
/** The `money` field set of a {@link CollectionShape}, or `never` if unset. */
|
|
3343
|
+
export type MoneyOf<T, O> = O extends {
|
|
3344
|
+
money: infer M;
|
|
3345
|
+
} ? (M & keyof T & string) : never;
|
|
3286
3346
|
export {};
|