@noy-db/hub 0.4.0-pre.0 → 0.4.0-pre.10
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-YPUEKIJC.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 +58 -29
- 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-IPLXE36W.js → chunk-3V3XR4S4.js} +4 -13
- package/dist/{walk-IPLXE36W.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-ZXEZCY6F.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-IK43HLDQ.js → chunk-7YVBQJ7K.js} +13 -355
- package/dist/chunk-7YVBQJ7K.js.map +1 -0
- package/dist/{chunk-VRBTNCM4.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-554KLAAN.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-WOM2HTML.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-U6JMEH2P.js → chunk-CXQW2NWO.js} +145 -3
- package/dist/chunk-CXQW2NWO.js.map +1 -0
- package/dist/{chunk-EO43ANYJ.js → chunk-DABACXEF.js} +3 -3
- package/dist/{chunk-CJ5KKU6X.js → chunk-DMH3VZU5.js} +4 -4
- package/dist/chunk-DSDXAKIP.js +50 -0
- package/dist/chunk-DSDXAKIP.js.map +1 -0
- package/dist/{chunk-WZSHL6DQ.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-Z4PD65VQ.js → chunk-EE7UHLKH.js} +4 -4
- package/dist/chunk-EIPVYUEP.js +654 -0
- package/dist/chunk-EIPVYUEP.js.map +1 -0
- package/dist/{chunk-RNG4VRP4.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-RFI7GGFO.js → chunk-FQZ6XTQ7.js} +17 -20
- package/dist/chunk-FQZ6XTQ7.js.map +1 -0
- package/dist/{chunk-MT62YSPZ.js → chunk-FRMPM7WG.js} +4 -4
- package/dist/{chunk-W4TCUGQR.js → chunk-G2JUIDFA.js} +13 -9
- package/dist/{chunk-W4TCUGQR.js.map → chunk-G2JUIDFA.js.map} +1 -1
- package/dist/{chunk-T3GY65MA.js → chunk-G6WWZNJP.js} +13 -13
- package/dist/chunk-G6WWZNJP.js.map +1 -0
- package/dist/chunk-GJW4HX2O.js +1 -0
- package/dist/{chunk-KS6SAVCZ.js → chunk-GU3IP74F.js} +6 -6
- package/dist/{chunk-UHNGNKLV.js → chunk-GWWOGNBK.js} +308 -18
- package/dist/chunk-GWWOGNBK.js.map +1 -0
- package/dist/{chunk-5PFOMHTB.js → chunk-H2GPHUZD.js} +12 -13
- package/dist/chunk-H2GPHUZD.js.map +1 -0
- package/dist/{chunk-H2KSZMIX.js → chunk-HMU5P6RL.js} +5 -5
- package/dist/chunk-HMU5P6RL.js.map +1 -0
- package/dist/{chunk-JFCV5QIK.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-LVGTA624.js → chunk-IPUG56GJ.js} +15 -5
- package/dist/{chunk-LVGTA624.js.map → chunk-IPUG56GJ.js.map} +1 -1
- package/dist/{chunk-SMIRGMS7.js → chunk-IXNCZTWA.js} +2 -2
- package/dist/{chunk-WQIYTNJV.js → chunk-IXTSNGYY.js} +3 -3
- package/dist/{chunk-WHXXI3W5.js → chunk-IYZISPGD.js} +7 -5
- package/dist/chunk-IYZISPGD.js.map +1 -0
- package/dist/{chunk-HQBM64EE.js → chunk-JDOMW53O.js} +145 -16
- package/dist/chunk-JDOMW53O.js.map +1 -0
- package/dist/{chunk-NCCBLYEB.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-DSBQODMZ.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-FXZDAV62.js → chunk-LNPUSMZL.js} +29 -31
- package/dist/chunk-LNPUSMZL.js.map +1 -0
- package/dist/{chunk-XJMBYYQK.js → chunk-LNZKOUJR.js} +2 -2
- package/dist/{chunk-R3BLCFD2.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-WG4QBZDN.js → chunk-N4BBNYIB.js} +11 -9
- package/dist/chunk-N4BBNYIB.js.map +1 -0
- package/dist/{chunk-PK6JIDQ4.js → chunk-NFIBXF4V.js} +1084 -1583
- package/dist/chunk-NFIBXF4V.js.map +1 -0
- package/dist/{chunk-VKCADNMR.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-NM5UYF6Q.js +24 -0
- 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-GDG5VVYG.js → chunk-NZ24MX4J.js} +8 -46
- package/dist/chunk-NZ24MX4J.js.map +1 -0
- package/dist/{chunk-IFJTPAQQ.js → chunk-OLEPKFTW.js} +4 -4
- package/dist/chunk-OLEPKFTW.js.map +1 -0
- package/dist/{chunk-THVIPWRF.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-VCTXU4AT.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-YZQOGE2L.js → chunk-QDIH2744.js} +2 -2
- package/dist/{chunk-6HY2X62D.js → chunk-QJNCB5SK.js} +2 -2
- package/dist/{chunk-IAO54J4R.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-XUW3PXHU.js → chunk-TUXQSFHZ.js} +4 -16
- package/dist/{chunk-XUW3PXHU.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-XTHCN77N.js → chunk-UDHBXYGG.js} +29 -19
- 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-A4FXFAKF.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-XDIAFPUM.js → chunk-WLXMTYGO.js} +2 -2
- package/dist/{chunk-RJ6K6K5M.js → chunk-X3F5YJG2.js} +2 -2
- package/dist/{chunk-WKGF2TJR.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-CZTLE22N.js → chunk-Y2NJBNX3.js} +8 -8
- package/dist/{chunk-CZTLE22N.js.map → chunk-Y2NJBNX3.js.map} +1 -1
- package/dist/{chunk-YTGDPCPW.js → chunk-Y6B6HVKC.js} +2 -2
- package/dist/chunk-YMUFFJCO.js +23 -0
- package/dist/chunk-YMUFFJCO.js.map +1 -0
- package/dist/{chunk-SV6EAJEP.js → chunk-YWWQM7KP.js} +5 -14
- package/dist/chunk-YWWQM7KP.js.map +1 -0
- package/dist/{chunk-UDSR4X4L.js → chunk-YZJSJOUI.js} +239 -16
- 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-QWMASIT7.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-66VGI6JV.js → dead-filter-FL3WIUZS.js} +2 -2
- package/dist/{chunk-OCVM6KDH.js → delegation-QXZ4MPPH.js} +12 -6
- package/dist/{chunk-OCVM6KDH.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-TKPN2G2U.js → enclave-SPEEDYZ4.js} +13 -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-B5LVUMQX.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 +4 -4
- package/dist/history/index.js +16 -12
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +16 -14
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +42 -42
- package/dist/index.js +332 -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 +4 -4
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +8 -0
- 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 +187 -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-PTK7XZYT.js → ledger-6XBEVWYP.js} +11 -11
- package/dist/liberate-CYUOS4NC.js +24 -0
- package/dist/{link-set-SLJHDNRB.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 +21 -17
- package/dist/pod/index.js +26 -12
- package/dist/{policy-YDLCOX4P.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-2YHSADFI.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-HWO4YMTJ.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-3ZMF5EQA.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/share-link/index.d.ts +19 -0
- package/dist/share-link/index.js +201 -0
- package/dist/share-link/index.js.map +1 -0
- package/dist/share-link/share-link.d.ts +123 -0
- 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-VZL4OGUB.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-FKX3F6TQ.js → store-coordination-provider-EWRZL7XF.js} +3 -3
- package/dist/sync/index.js +15 -11
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.js +33 -47
- 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/periods.d.ts +1 -16
- package/dist/with-audit/periods/vault-facade.d.ts +6 -0
- package/dist/with-audit/periods/window.d.ts +16 -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 +15 -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} +17 -4
- package/dist/{with-party/sync → with-sync}/index.d.ts +4 -2
- package/dist/with-sync/period-scope.d.ts +78 -0
- 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/dist/withdraw-accessible-A2PWF5MZ.js.map +1 -0
- package/package.json +49 -36
- package/dist/aggregate/index.js.map +0 -1
- package/dist/api-3A3S4SHH.js +0 -20
- package/dist/as/index.js +0 -30
- package/dist/at/index.js +0 -1
- package/dist/bundle/index.js +0 -153
- package/dist/bundle/index.js.map +0 -1
- package/dist/by/index.js +0 -11
- package/dist/chunk-554KLAAN.js.map +0 -1
- package/dist/chunk-5PFOMHTB.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-A5BDDEXK.js.map +0 -1
- package/dist/chunk-ANATMTOA.js +0 -205
- package/dist/chunk-ANATMTOA.js.map +0 -1
- package/dist/chunk-BOKIKJJB.js.map +0 -1
- package/dist/chunk-CHFZDSE4.js +0 -1
- package/dist/chunk-DDHM2TLX.js.map +0 -1
- package/dist/chunk-DSBQODMZ.js.map +0 -1
- package/dist/chunk-EWPOHMN2.js +0 -255
- package/dist/chunk-EWPOHMN2.js.map +0 -1
- package/dist/chunk-FXZDAV62.js.map +0 -1
- package/dist/chunk-GDG5VVYG.js.map +0 -1
- package/dist/chunk-GWKAVKHI.js.map +0 -1
- package/dist/chunk-H2KSZMIX.js.map +0 -1
- package/dist/chunk-HOONYZY2.js.map +0 -1
- package/dist/chunk-HQBM64EE.js.map +0 -1
- package/dist/chunk-IAO54J4R.js.map +0 -1
- package/dist/chunk-IFJTPAQQ.js.map +0 -1
- package/dist/chunk-IK43HLDQ.js.map +0 -1
- package/dist/chunk-ISMV2QVG.js.map +0 -1
- package/dist/chunk-JBBSYJHP.js.map +0 -1
- package/dist/chunk-JFCV5QIK.js.map +0 -1
- package/dist/chunk-JRBNCUNT.js.map +0 -1
- package/dist/chunk-LB7FD65R.js +0 -163
- package/dist/chunk-LB7FD65R.js.map +0 -1
- package/dist/chunk-ONTBCHCP.js.map +0 -1
- package/dist/chunk-PK6JIDQ4.js.map +0 -1
- package/dist/chunk-RDXW3OBQ.js.map +0 -1
- package/dist/chunk-RFI7GGFO.js.map +0 -1
- package/dist/chunk-S3BFKGET.js.map +0 -1
- package/dist/chunk-SV6EAJEP.js.map +0 -1
- package/dist/chunk-T36RFODW.js.map +0 -1
- package/dist/chunk-T3GY65MA.js.map +0 -1
- package/dist/chunk-TAGR72IR.js.map +0 -1
- package/dist/chunk-TIGPQDYP.js +0 -14
- package/dist/chunk-TIGPQDYP.js.map +0 -1
- package/dist/chunk-U6JMEH2P.js.map +0 -1
- package/dist/chunk-UDSR4X4L.js.map +0 -1
- package/dist/chunk-UHNGNKLV.js.map +0 -1
- package/dist/chunk-VCBHAE4R.js.map +0 -1
- package/dist/chunk-VCTXU4AT.js.map +0 -1
- package/dist/chunk-VEALDPHW.js.map +0 -1
- package/dist/chunk-VKCADNMR.js.map +0 -1
- package/dist/chunk-VQNJ7UZL.js.map +0 -1
- package/dist/chunk-W2OG6JOL.js.map +0 -1
- package/dist/chunk-WG4QBZDN.js.map +0 -1
- package/dist/chunk-WHXXI3W5.js.map +0 -1
- package/dist/chunk-WKGF2TJR.js.map +0 -1
- package/dist/chunk-WNGGJWF7.js.map +0 -1
- package/dist/chunk-XTHCN77N.js.map +0 -1
- package/dist/chunk-YCH5GBN6.js +0 -99
- package/dist/chunk-YCH5GBN6.js.map +0 -1
- package/dist/chunk-YMUGBZN2.js.map +0 -1
- package/dist/collection-facade-KMBWNCYP.js +0 -44
- package/dist/cover-QJRXINN5.js +0 -52
- package/dist/delegation-SU6CV3W7.js +0 -25
- package/dist/derive-6RWU4EOA.js +0 -21
- package/dist/executor-KGNLJD6M.js +0 -9
- package/dist/executor-UX4FASYZ.js +0 -26
- package/dist/executor-XGIS6CR7.js +0 -9
- package/dist/export-accessible-LKW3QV22.js +0 -23
- package/dist/extract-partition-UP2ARO75.js +0 -38
- package/dist/find-YS6XWB46.js +0 -11
- package/dist/in/index.js +0 -1
- package/dist/issue-3ACYX7LO.js +0 -19
- package/dist/legacy/bundle.d.ts +0 -30
- package/dist/liberate-MQQXBUCY.js +0 -24
- package/dist/noydb-ANIW5FLE.js +0 -69
- 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-PAM3ASRZ.js +0 -23
- package/dist/registry-4S2U2TR4.js +0 -19
- package/dist/registry-NPOWJHC4.js +0 -9
- package/dist/registry-VZ3CCI2R.js +0 -18
- package/dist/request-withdrawal-DI3H5WUI.js +0 -31
- package/dist/revoke-R5CZSVUT.js +0 -24
- package/dist/seed-3ZMF5EQA.js.map +0 -1
- package/dist/signer-MBVHW4WE.js +0 -25
- package/dist/storage-3MEJUENZ.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-TZDATQVR.js +0 -28
- /package/dist/{api-3A3S4SHH.js.map → api-ZDKTWNBB.js.map} +0 -0
- /package/dist/{backup-YPUEKIJC.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-ZXEZCY6F.js.map → chunk-63FE525P.js.map} +0 -0
- /package/dist/{chunk-JVBO4SZL.js.map → chunk-6UBZ6I5Z.js.map} +0 -0
- /package/dist/{chunk-VRBTNCM4.js.map → chunk-ABS7FMMD.js.map} +0 -0
- /package/dist/{chunk-M75ZZHSR.js.map → chunk-BLBAQRBM.js.map} +0 -0
- /package/dist/{chunk-WOM2HTML.js.map → chunk-CI32CAFS.js.map} +0 -0
- /package/dist/{chunk-EO43ANYJ.js.map → chunk-DABACXEF.js.map} +0 -0
- /package/dist/{chunk-CJ5KKU6X.js.map → chunk-DMH3VZU5.js.map} +0 -0
- /package/dist/{chunk-WZSHL6DQ.js.map → chunk-DZ2JXHWK.js.map} +0 -0
- /package/dist/{chunk-Z4PD65VQ.js.map → chunk-EE7UHLKH.js.map} +0 -0
- /package/dist/{chunk-RNG4VRP4.js.map → chunk-EKRSCRNM.js.map} +0 -0
- /package/dist/{chunk-MT62YSPZ.js.map → chunk-FRMPM7WG.js.map} +0 -0
- /package/dist/{as/index.js.map → chunk-GJW4HX2O.js.map} +0 -0
- /package/dist/{chunk-KS6SAVCZ.js.map → chunk-GU3IP74F.js.map} +0 -0
- /package/dist/{chunk-SMIRGMS7.js.map → chunk-IXNCZTWA.js.map} +0 -0
- /package/dist/{chunk-WQIYTNJV.js.map → chunk-IXTSNGYY.js.map} +0 -0
- /package/dist/{chunk-NCCBLYEB.js.map → chunk-JJZGIE4U.js.map} +0 -0
- /package/dist/{chunk-DRWBEDYO.js.map → chunk-JYJFGD2H.js.map} +0 -0
- /package/dist/{chunk-XJMBYYQK.js.map → chunk-LNZKOUJR.js.map} +0 -0
- /package/dist/{chunk-R3BLCFD2.js.map → chunk-MBKVNOJS.js.map} +0 -0
- /package/dist/{chunk-N6WF5PKC.js.map → chunk-NFZGZ4AK.js.map} +0 -0
- /package/dist/{chunk-THVIPWRF.js.map → chunk-PEATRIYJ.js.map} +0 -0
- /package/dist/{chunk-YZQOGE2L.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-A4FXFAKF.js.map → chunk-W3L64Y3J.js.map} +0 -0
- /package/dist/{chunk-XDIAFPUM.js.map → chunk-WLXMTYGO.js.map} +0 -0
- /package/dist/{chunk-RJ6K6K5M.js.map → chunk-X3F5YJG2.js.map} +0 -0
- /package/dist/{chunk-YTGDPCPW.js.map → chunk-Y6B6HVKC.js.map} +0 -0
- /package/dist/{classified-marker-QWMASIT7.js.map → classified-marker-7PKJBFCG.js.map} +0 -0
- /package/dist/{at/index.js.map → collection-facade-6I5K5IOD.js.map} +0 -0
- /package/dist/{by/index.js.map → computed-AB45PS4V.js.map} +0 -0
- /package/dist/{in → cover}/index.js.map +0 -0
- /package/dist/{on → custody}/index.js.map +0 -0
- /package/dist/{dead-filter-66VGI6JV.js.map → dead-filter-FL3WIUZS.js.map} +0 -0
- /package/dist/{chunk-CHFZDSE4.js.map → derive-VGS7FKE3.js.map} +0 -0
- /package/dist/{ui → directory}/index.js.map +0 -0
- /package/dist/{collection-facade-KMBWNCYP.js.map → enclave-SPEEDYZ4.js.map} +0 -0
- /package/dist/{computed-DSMPXG2Y.js.map → executor-IEBLTBCW.js.map} +0 -0
- /package/dist/{cover-QJRXINN5.js.map → executor-OTF556PL.js.map} +0 -0
- /package/dist/{delegation-SU6CV3W7.js.map → executor-RM7XWQDU.js.map} +0 -0
- /package/dist/{derive-6RWU4EOA.js.map → export-accessible-P42BQ4PB.js.map} +0 -0
- /package/dist/{enclave-TKPN2G2U.js.map → extract-partition-TCYXRWBN.js.map} +0 -0
- /package/dist/{fanout-sidecar-B5LVUMQX.js.map → fanout-sidecar-SSMRSC2L.js.map} +0 -0
- /package/dist/{executor-KGNLJD6M.js.map → find-OZMTRIK3.js.map} +0 -0
- /package/dist/{with → introspection}/index.js.map +0 -0
- /package/dist/{executor-UX4FASYZ.js.map → issue-FCKN5O6C.js.map} +0 -0
- /package/dist/{executor-XGIS6CR7.js.map → ledger-6XBEVWYP.js.map} +0 -0
- /package/dist/{export-accessible-LKW3QV22.js.map → liberate-CYUOS4NC.js.map} +0 -0
- /package/dist/{extract-partition-UP2ARO75.js.map → link-set-NK6L2A5S.js.map} +0 -0
- /package/dist/{find-YS6XWB46.js.map → money/index.js.map} +0 -0
- /package/dist/{issue-3ACYX7LO.js.map → noydb-FZZIMLCI.js.map} +0 -0
- /package/dist/{ledger-PTK7XZYT.js.map → policy/index.js.map} +0 -0
- /package/dist/{post-register-2YHSADFI.js.map → post-register-VFIYISUK.js.map} +0 -0
- /package/dist/{liberate-MQQXBUCY.js.map → register-UKU2J6MN.js.map} +0 -0
- /package/dist/{link-set-SLJHDNRB.js.map → registry-2VCWVHZS.js.map} +0 -0
- /package/dist/{noydb-ANIW5FLE.js.map → registry-7Y5WF7GS.js.map} +0 -0
- /package/dist/{policy-YDLCOX4P.js.map → registry-BWD2ED52.js.map} +0 -0
- /package/dist/{register-PAM3ASRZ.js.map → registry-DTWRJLSF.js.map} +0 -0
- /package/dist/{registry-4S2U2TR4.js.map → request-withdrawal-JYDZ5XY2.js.map} +0 -0
- /package/dist/{reveal-HWO4YMTJ.js.map → reveal-CL2BCW6A.js.map} +0 -0
- /package/dist/{registry-NPOWJHC4.js.map → revoke-2TSAD2T4.js.map} +0 -0
- /package/dist/{registry-VW6P6A3J.js.map → schema-update/index.js.map} +0 -0
- /package/dist/{registry-VZ3CCI2R.js.map → search/index.js.map} +0 -0
- /package/dist/{request-withdrawal-DI3H5WUI.js.map → sequence/index.js.map} +0 -0
- /package/dist/{revoke-R5CZSVUT.js.map → signer-K7Z2EOMG.js.map} +0 -0
- /package/dist/{signer-MBVHW4WE.js.map → stale-A4J26OIC.js.map} +0 -0
- /package/dist/{stale-VZL4OGUB.js.map → storage-YVHZUISN.js.map} +0 -0
- /package/dist/{storage-3MEJUENZ.js.map → store/index.js.map} +0 -0
- /package/dist/{store-coordination-provider-FKX3F6TQ.js.map → store-coordination-provider-EWRZL7XF.js.map} +0 -0
- /package/dist/{verify-26Y5GNMK.js.map → verify-7XWHJWUN.js.map} +0 -0
- /package/dist/{withdraw-accessible-TZDATQVR.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/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
|
*
|
|
@@ -1184,6 +1184,24 @@ export interface PullOptions {
|
|
|
1184
1184
|
* to a full scan with client-side filtering.
|
|
1185
1185
|
*/
|
|
1186
1186
|
modifiedSince?: string;
|
|
1187
|
+
/**
|
|
1188
|
+
* #807 — period-scoped pull (thin-client bootstrap). `{ current: true }`
|
|
1189
|
+
* pulls only records at-or-after the latest closed period's boundary;
|
|
1190
|
+
* an array of closed-period names backfills exactly those periods'
|
|
1191
|
+
* windows. Membership is by envelope write-time `_ts` (the freeze/
|
|
1192
|
+
* archive store-tier law — the engine never sees business dates).
|
|
1193
|
+
*
|
|
1194
|
+
* Never filtered regardless of this option: the `_periods` summaries +
|
|
1195
|
+
* companions (always pulled first — the navigation index), delete
|
|
1196
|
+
* markers/tombstones (the #589/#590 convergence law), and reserved
|
|
1197
|
+
* lookup collections. Composes with `collections` as an intersection.
|
|
1198
|
+
* Requires the periods service (`periodsStrategy: withPeriods()`) to
|
|
1199
|
+
* resolve windows once the vault holds `_periods` records. Push is
|
|
1200
|
+
* never period-filtered.
|
|
1201
|
+
*/
|
|
1202
|
+
periods?: string[] | {
|
|
1203
|
+
current: true;
|
|
1204
|
+
};
|
|
1187
1205
|
}
|
|
1188
1206
|
export interface PushResult {
|
|
1189
1207
|
readonly pushed: number;
|
|
@@ -1198,6 +1216,23 @@ export interface PullResult {
|
|
|
1198
1216
|
readonly errors: Error[];
|
|
1199
1217
|
/** #590: tombstone enforcements applied during this run (never resolver-visible). */
|
|
1200
1218
|
readonly erasures?: ErasureEnforcement[];
|
|
1219
|
+
/**
|
|
1220
|
+
* #807: present on period-scoped pulls only — per-phase KPI counters
|
|
1221
|
+
* (`summaries` = the `_periods` navigation index + companions; `records`
|
|
1222
|
+
* = everything after it). `records`/`bytes` count envelopes applied to
|
|
1223
|
+
* the local store; `bytes` approximates ciphertext payload size
|
|
1224
|
+
* (`_data` + `_iv` length), for bounding a first sync's download budget.
|
|
1225
|
+
*/
|
|
1226
|
+
readonly phases?: {
|
|
1227
|
+
readonly summaries: {
|
|
1228
|
+
readonly records: number;
|
|
1229
|
+
readonly bytes: number;
|
|
1230
|
+
};
|
|
1231
|
+
readonly records: {
|
|
1232
|
+
readonly records: number;
|
|
1233
|
+
readonly bytes: number;
|
|
1234
|
+
};
|
|
1235
|
+
};
|
|
1201
1236
|
}
|
|
1202
1237
|
/** Result of a sync transaction commit. */
|
|
1203
1238
|
export interface SyncTransactionResult {
|
|
@@ -1212,6 +1247,18 @@ export interface SyncStatus {
|
|
|
1212
1247
|
readonly lastPush: string | null;
|
|
1213
1248
|
readonly lastPull: string | null;
|
|
1214
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;
|
|
1215
1262
|
}
|
|
1216
1263
|
export type SyncTargetRole = 'sync-peer' | 'backup' | 'archive';
|
|
1217
1264
|
/**
|
|
@@ -1228,7 +1275,11 @@ export interface SyncTarget {
|
|
|
1228
1275
|
readonly store: NoydbStore;
|
|
1229
1276
|
/** Role determines sync direction and conflict handling. */
|
|
1230
1277
|
readonly role: SyncTargetRole;
|
|
1231
|
-
/**
|
|
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
|
+
*/
|
|
1232
1283
|
readonly policy?: SyncPolicy;
|
|
1233
1284
|
/** Human-readable label for DevTools and audit logs. */
|
|
1234
1285
|
readonly label?: string;
|
|
@@ -1360,7 +1411,7 @@ export interface GrantOptions {
|
|
|
1360
1411
|
readonly userId: string;
|
|
1361
1412
|
readonly displayName: string;
|
|
1362
1413
|
readonly role: Role;
|
|
1363
|
-
readonly
|
|
1414
|
+
readonly secret: string;
|
|
1364
1415
|
readonly permissions?: Permissions;
|
|
1365
1416
|
/**
|
|
1366
1417
|
* Optional `@noy-db/as-*` export capability. Omit or
|
|
@@ -1377,9 +1428,9 @@ export interface GrantOptions {
|
|
|
1377
1428
|
/**
|
|
1378
1429
|
* Skip phrase-format strength validation (issue #7). Defaults to
|
|
1379
1430
|
* false — `grant()` rejects phrases that don't meet the configured
|
|
1380
|
-
* `
|
|
1431
|
+
* `SecretPolicy`. Test fixtures and CLI scripts pass `true`.
|
|
1381
1432
|
*/
|
|
1382
|
-
readonly
|
|
1433
|
+
readonly allowWeakSecret?: boolean;
|
|
1383
1434
|
/**
|
|
1384
1435
|
* Initial user-envelope payload for the new principal. Sealed under
|
|
1385
1436
|
* the same vault DEK (the reserved `_users` collection's DEK) and
|
|
@@ -1577,7 +1628,7 @@ export interface SessionPolicy {
|
|
|
1577
1628
|
readonly absoluteTimeoutMs?: number;
|
|
1578
1629
|
/**
|
|
1579
1630
|
* Operations that require the user to re-authenticate (re-enter their
|
|
1580
|
-
*
|
|
1631
|
+
* secret or perform a fresh WebAuthn assertion) before proceeding,
|
|
1581
1632
|
* even if the session is still alive.
|
|
1582
1633
|
*
|
|
1583
1634
|
* Common pattern: `requireReAuthFor: ['export', 'grant']` — allow
|
|
@@ -1977,6 +2028,26 @@ export interface SlotRecord {
|
|
|
1977
2028
|
export interface SlotInfo extends SlotRecord {
|
|
1978
2029
|
/** The slot name (key in the record's slot map). */
|
|
1979
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;
|
|
1980
2051
|
}
|
|
1981
2052
|
/**
|
|
1982
2053
|
* Explicitly published version snapshot — an independent reference to a
|
|
@@ -2044,6 +2115,12 @@ export type StoreCredentials = {
|
|
|
2044
2115
|
readonly kind: 'token';
|
|
2045
2116
|
readonly token: string;
|
|
2046
2117
|
readonly expiresAt?: string;
|
|
2118
|
+
} | {
|
|
2119
|
+
readonly kind: 'password';
|
|
2120
|
+
readonly username: string;
|
|
2121
|
+
readonly password: string;
|
|
2122
|
+
readonly domain?: string;
|
|
2123
|
+
readonly expiresAt?: string;
|
|
2047
2124
|
};
|
|
2048
2125
|
/** Refresh hook a store calls when it has no credentials or they are near expiry. */
|
|
2049
2126
|
export type StoreCredentialSource = () => Promise<StoreCredentials>;
|
|
@@ -2112,12 +2189,12 @@ export interface NoydbOptions {
|
|
|
2112
2189
|
* from `@noy-db/hub/blobs` to enable `collection.blob(id)` storage.
|
|
2113
2190
|
* When omitted, hub's blob machinery stays out of the bundle (ESM
|
|
2114
2191
|
* tree-shaking) and `collection.blob(id)` throws with a pointer at
|
|
2115
|
-
* the subpath. `
|
|
2192
|
+
* the subpath. `BlobsStrategy` is `@internal` — users only construct
|
|
2116
2193
|
* it via the subpath factory.
|
|
2117
2194
|
*
|
|
2118
2195
|
* @internal
|
|
2119
2196
|
*/
|
|
2120
|
-
readonly
|
|
2197
|
+
readonly blobsStrategy?: BlobsStrategy;
|
|
2121
2198
|
/**
|
|
2122
2199
|
* Cold-storage archival target. `withArchive({ store })` designates a
|
|
2123
2200
|
* second store that holds archived record envelopes. Enables
|
|
@@ -2131,24 +2208,24 @@ export interface NoydbOptions {
|
|
|
2131
2208
|
* and auto-reconcile. When omitted, indexing code never reaches the
|
|
2132
2209
|
* bundle; `.lazyQuery()` throws with a pointer at the subpath, and
|
|
2133
2210
|
* eager-mode collections fall back to linear scans regardless of
|
|
2134
|
-
* `indexes: [...]` declarations. `
|
|
2211
|
+
* `indexes: [...]` declarations. `IndexingStrategy` is `@internal` —
|
|
2135
2212
|
* users only construct it via the subpath factory.
|
|
2136
2213
|
*
|
|
2137
2214
|
* @internal
|
|
2138
2215
|
*/
|
|
2139
|
-
readonly
|
|
2216
|
+
readonly indexingStrategy?: IndexingStrategy;
|
|
2140
2217
|
/**
|
|
2141
2218
|
* tree-shake seam — optional aggregate strategy. Pass
|
|
2142
|
-
* `
|
|
2219
|
+
* `withReduce()` from `@noy-db/hub/reduce` to enable
|
|
2143
2220
|
* `.aggregate()` and `.groupBy()` on Query. When omitted, those
|
|
2144
2221
|
* methods throw with a pointer at the subpath; the ~886 LOC of
|
|
2145
|
-
*
|
|
2222
|
+
* Reduction + GroupedQuery machinery never reaches the bundle.
|
|
2146
2223
|
* Streaming `scan().aggregate()` works independently of this
|
|
2147
|
-
* strategy — it doesn't use the `
|
|
2224
|
+
* strategy — it doesn't use the `Reduction` class.
|
|
2148
2225
|
*
|
|
2149
2226
|
* @internal
|
|
2150
2227
|
*/
|
|
2151
|
-
readonly
|
|
2228
|
+
readonly reduceStrategy?: ReduceStrategy;
|
|
2152
2229
|
/**
|
|
2153
2230
|
* tree-shake seam — optional CRDT strategy. Required when
|
|
2154
2231
|
* any collection is declared with `crdt: 'lww-map' | 'rga' | 'yjs'`;
|
|
@@ -2201,12 +2278,12 @@ export interface NoydbOptions {
|
|
|
2201
2278
|
readonly shadowStrategy?: ShadowStrategy;
|
|
2202
2279
|
/**
|
|
2203
2280
|
* tree-shake seam — optional multi-record transactions. Pass
|
|
2204
|
-
* `withTransactions()` from `@noy-db/hub/
|
|
2281
|
+
* `withTransactions()` from `@noy-db/hub/transactions` to enable
|
|
2205
2282
|
* `db.transaction(fn)`. Without it, calling the method throws.
|
|
2206
2283
|
*
|
|
2207
2284
|
* @internal
|
|
2208
2285
|
*/
|
|
2209
|
-
readonly
|
|
2286
|
+
readonly transactionsStrategy?: TransactionsStrategy;
|
|
2210
2287
|
/**
|
|
2211
2288
|
* tree-shake seam — optional history + ledger + time-machine.
|
|
2212
2289
|
* Pass `withHistory()` from `@noy-db/hub/history` to enable
|
|
@@ -2221,7 +2298,7 @@ export interface NoydbOptions {
|
|
|
2221
2298
|
*/
|
|
2222
2299
|
readonly historyStrategy?: HistoryStrategy;
|
|
2223
2300
|
/**
|
|
2224
|
-
* GDPR right-to-erasure. Pass `
|
|
2301
|
+
* GDPR right-to-erasure. Pass `withForget({ subjects })`
|
|
2225
2302
|
* from `@noy-db/hub/forget` to declare which collections carry erasable
|
|
2226
2303
|
* subject data and the record field naming the data subject. Enables
|
|
2227
2304
|
* `vault.forget(subjectId)` crypto-shred (rewrite-to-tombstone of the live
|
|
@@ -2276,7 +2353,7 @@ export interface NoydbOptions {
|
|
|
2276
2353
|
* `db.snapshot()`, `db.listSnapshots()`, and `db.restoreSnapshot()`.
|
|
2277
2354
|
* When omitted, all three methods throw with a pointer at the subpath.
|
|
2278
2355
|
*/
|
|
2279
|
-
readonly
|
|
2356
|
+
readonly snapshotsStrategy?: SnapshotsStrategy;
|
|
2280
2357
|
/**
|
|
2281
2358
|
* Tree-shake seam — optional attestation capability. Pass
|
|
2282
2359
|
* `withAttestation()` from `@noy-db/hub/attestation` to enable
|
|
@@ -2339,7 +2416,7 @@ export interface NoydbOptions {
|
|
|
2339
2416
|
* throw `TeamNotEnabledError` and the keyring grant/revoke/rotate engines
|
|
2340
2417
|
* are reached only via opt-in — the always-on floor is single-user.
|
|
2341
2418
|
* Single-user primitives (owner keyring, unlock, `listUsers`,
|
|
2342
|
-
* `updateUser`,
|
|
2419
|
+
* `updateUser`, secret rotate/recover) stay ungated, as does the
|
|
2343
2420
|
* `createDeedOwner` free function (no createNoydb instance to gate
|
|
2344
2421
|
* against).
|
|
2345
2422
|
*/
|
|
@@ -2388,7 +2465,7 @@ export interface NoydbOptions {
|
|
|
2388
2465
|
* Multiple guards per collection are allowed; they are dispatched
|
|
2389
2466
|
* in registration order on `collection.put()`.
|
|
2390
2467
|
*/
|
|
2391
|
-
readonly guardStrategies?: ReadonlyArray<
|
|
2468
|
+
readonly guardStrategies?: ReadonlyArray<GuardStrategyAny>;
|
|
2392
2469
|
/**
|
|
2393
2470
|
* Deferred-numbering series declared via `withDeferredNumbering(...)`.
|
|
2394
2471
|
* `vault.sequence(series).next({ for })` then assigns gap-free serials at a
|
|
@@ -2402,7 +2479,7 @@ export interface NoydbOptions {
|
|
|
2402
2479
|
* validates the derivation graph for cycles on `openVault`; a cyclic
|
|
2403
2480
|
* graph throws `DerivationCycleError`.
|
|
2404
2481
|
*/
|
|
2405
|
-
readonly derivationStrategies?: ReadonlyArray<
|
|
2482
|
+
readonly derivationStrategies?: ReadonlyArray<DerivationStrategy>;
|
|
2406
2483
|
/**
|
|
2407
2484
|
* Optional materialized-view strategies.
|
|
2408
2485
|
* Each handle returned by `withMaterializedView()` from
|
|
@@ -2410,7 +2487,7 @@ export interface NoydbOptions {
|
|
|
2410
2487
|
* detection across the MV + derivation graphs at `openVault`; a
|
|
2411
2488
|
* cyclic graph throws `MaterializedViewCycleError`.
|
|
2412
2489
|
*/
|
|
2413
|
-
readonly materializedViewStrategies?: ReadonlyArray<
|
|
2490
|
+
readonly materializedViewStrategies?: ReadonlyArray<MaterializedViewStrategy>;
|
|
2414
2491
|
/**
|
|
2415
2492
|
* Optional overlay strategies. Each handle returned by
|
|
2416
2493
|
* `withOverlayedView()` from `@noy-db/hub/overlay-views`. The vault
|
|
@@ -2418,17 +2495,17 @@ export interface NoydbOptions {
|
|
|
2418
2495
|
* availability at `openVault`; a clash throws one of the
|
|
2419
2496
|
* `Overlay*Error` family.
|
|
2420
2497
|
*/
|
|
2421
|
-
readonly overlayedViewStrategies?: ReadonlyArray<
|
|
2498
|
+
readonly overlayedViewStrategies?: ReadonlyArray<OverlayedViewStrategy>;
|
|
2422
2499
|
/** Optional remote store(s) for sync. Accepts a single store, a SyncTarget, or an array. */
|
|
2423
2500
|
readonly sync?: NoydbStore | SyncTarget | SyncTarget[];
|
|
2424
2501
|
/** User identifier. */
|
|
2425
2502
|
readonly user: string;
|
|
2426
|
-
/**
|
|
2503
|
+
/** Secret for key derivation. Required unless encrypt is false or `getKeyring` is provided. */
|
|
2427
2504
|
readonly secret?: string;
|
|
2428
2505
|
/**
|
|
2429
2506
|
* Optional callback that returns an unlocked keyring for a given vault.
|
|
2430
2507
|
* Use this to plug in WebAuthn / OIDC / Shamir / any unlock path that
|
|
2431
|
-
* produces an `UnlockedKeyring` outside the
|
|
2508
|
+
* produces an `UnlockedKeyring` outside the secret model.
|
|
2432
2509
|
*
|
|
2433
2510
|
* When set, `secret` MUST NOT also be set — `createNoydb` throws if both
|
|
2434
2511
|
* are supplied. When neither is set (and `encrypt !== false`), `createNoydb`
|
|
@@ -2456,32 +2533,32 @@ export interface NoydbOptions {
|
|
|
2456
2533
|
* ```
|
|
2457
2534
|
*
|
|
2458
2535
|
* Note: this callback is responsible for both the "open existing vault"
|
|
2459
|
-
* and the "create new vault" cases. Unlike the
|
|
2536
|
+
* and the "create new vault" cases. Unlike the secret path, there is
|
|
2460
2537
|
* no automatic `NoAccessError` → `createOwnerKeyring` fallback, because
|
|
2461
2538
|
* the callback owner has the UI context to decide which path to run.
|
|
2462
|
-
* For first-time bootstrap, use a
|
|
2539
|
+
* For first-time bootstrap, use a secret or recovery code, enroll
|
|
2463
2540
|
* WebAuthn from the unlocked keyring, then swap to `getKeyring` on
|
|
2464
2541
|
* subsequent sessions.
|
|
2465
2542
|
*/
|
|
2466
2543
|
readonly getKeyring?: (vault: string) => Promise<UnlockedKeyring>;
|
|
2467
2544
|
/**
|
|
2468
|
-
*
|
|
2545
|
+
* Secret mode. Default `'standard'`.
|
|
2469
2546
|
*
|
|
2470
2547
|
* - `'standard'` — the legacy flow. `secret` supplies the
|
|
2471
|
-
* plaintext
|
|
2472
|
-
* `rotate-
|
|
2548
|
+
* plaintext secret, the user knows it, and the policy gate
|
|
2549
|
+
* `rotate-secret` is enabled.
|
|
2473
2550
|
* - `'managed'` — rubber-hose-resistant mode. Hub generates a
|
|
2474
|
-
* 256-bit random
|
|
2551
|
+
* 256-bit random secret at first open and seals it under
|
|
2475
2552
|
* the provided `sealingKey`. The user never sees or types the
|
|
2476
|
-
*
|
|
2553
|
+
* secret, defeating the $5-wrench attack. Mutually
|
|
2477
2554
|
* exclusive with `secret` and `getKeyring`.
|
|
2478
2555
|
*
|
|
2479
|
-
* @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
|
|
2480
2557
|
*/
|
|
2481
|
-
readonly
|
|
2558
|
+
readonly secretMode?: 'standard' | 'managed';
|
|
2482
2559
|
/**
|
|
2483
2560
|
* Provider that seals/unseals the auto-generated managed-mode
|
|
2484
|
-
*
|
|
2561
|
+
* secret. Required when `secretMode === 'managed'`; ignored
|
|
2485
2562
|
* otherwise. Implementations live in per-platform packages
|
|
2486
2563
|
* (`@noy-db/seal-macos-keychain`, `@noy-db/seal-wincred`,
|
|
2487
2564
|
* `@noy-db/seal-libsecret`, `@noy-db/seal-aws-kms`, …).
|
|
@@ -2490,8 +2567,6 @@ export interface NoydbOptions {
|
|
|
2490
2567
|
/** Required to use `profile: 'shamir'` recovery. Pass
|
|
2491
2568
|
* `shamirRecoveryProvider()` from `@noy-db/on-shamir`. */
|
|
2492
2569
|
readonly shamirRecovery?: ShamirRecoveryProvider;
|
|
2493
|
-
/** Auth method. Default: 'passphrase'. */
|
|
2494
|
-
readonly auth?: 'passphrase' | 'biometric';
|
|
2495
2570
|
/** Enable encryption. Default: true. */
|
|
2496
2571
|
readonly encrypt?: boolean;
|
|
2497
2572
|
/**
|
|
@@ -2518,15 +2593,6 @@ export interface NoydbOptions {
|
|
|
2518
2593
|
* bundle → `debounce 30s`.
|
|
2519
2594
|
*/
|
|
2520
2595
|
readonly syncPolicy?: SyncPolicy;
|
|
2521
|
-
/**
|
|
2522
|
-
* @deprecated Use `syncPolicy` instead. Kept for backward compatibility.
|
|
2523
|
-
* When both are supplied, `syncPolicy` takes precedence.
|
|
2524
|
-
*/
|
|
2525
|
-
readonly autoSync?: boolean;
|
|
2526
|
-
/**
|
|
2527
|
-
* @deprecated Use `syncPolicy` instead. Kept for backward compatibility.
|
|
2528
|
-
*/
|
|
2529
|
-
readonly syncInterval?: number;
|
|
2530
2596
|
/**
|
|
2531
2597
|
* Session timeout in ms. Clears keys after inactivity. Default: none.
|
|
2532
2598
|
* @deprecated Use `sessionPolicy.idleTimeoutMs` instead. This field is
|
|
@@ -2541,17 +2607,17 @@ export interface NoydbOptions {
|
|
|
2541
2607
|
*/
|
|
2542
2608
|
readonly sessionPolicy?: SessionPolicy;
|
|
2543
2609
|
/**
|
|
2544
|
-
* Validate
|
|
2610
|
+
* Validate secret strength against the phrase format
|
|
2545
2611
|
* on first-time keyring creation. When
|
|
2546
|
-
* `true`, weak phrases throw {@link
|
|
2547
|
-
* `createNoydb()` / `db.
|
|
2612
|
+
* `true`, weak phrases throw {@link WeakSecretError} from
|
|
2613
|
+
* `createNoydb()` / `db.team.rotateSecret()`. Default: `false` for
|
|
2548
2614
|
* back-compat; planned to flip to `true` in a future major release.
|
|
2549
2615
|
*/
|
|
2550
|
-
readonly
|
|
2616
|
+
readonly validateSecret?: boolean;
|
|
2551
2617
|
/**
|
|
2552
2618
|
* Vault-level policy gate document. When present, the hub
|
|
2553
2619
|
* persists the merged policy at `_meta/policy` on first-time vault
|
|
2554
|
-
* creation and gates sensitive operations (`db.
|
|
2620
|
+
* creation and gates sensitive operations (`db.rotateSecret`,
|
|
2555
2621
|
* `db.export*`, …) against it. Omitted ⇒ the engine uses
|
|
2556
2622
|
* {@link PERSONAL_POLICY}. Use {@link STRICT_POLICY} for regulated
|
|
2557
2623
|
* deployments.
|
|
@@ -2566,11 +2632,11 @@ export interface NoydbOptions {
|
|
|
2566
2632
|
readonly policy?: VaultPolicy;
|
|
2567
2633
|
/**
|
|
2568
2634
|
* Mandatory recovery profile enrollment. Vaults with
|
|
2569
|
-
* `recover-
|
|
2635
|
+
* `recover-secret` enabled MUST register at least one profile
|
|
2570
2636
|
* before being production-ready, otherwise `createNoydb()` throws
|
|
2571
2637
|
* {@link RecoveryNotEnrolledError}. Set
|
|
2572
|
-
* `policy.gates['recover-
|
|
2573
|
-
* deliberately opt out of recovery (
|
|
2638
|
+
* `policy.gates['recover-secret'].enabled = false` to
|
|
2639
|
+
* deliberately opt out of recovery (secret loss = data loss).
|
|
2574
2640
|
*
|
|
2575
2641
|
* The `'paper'` profile is supported end-to-end. Other
|
|
2576
2642
|
* profiles ship the API shape and throw
|
|
@@ -2597,7 +2663,7 @@ export interface NoydbOptions {
|
|
|
2597
2663
|
* data records but not the keyring row, or a WebAuthn credential was rotated).
|
|
2598
2664
|
* **All previously encrypted data is unrecoverable after a reset.**
|
|
2599
2665
|
*
|
|
2600
|
-
* Only applies to the
|
|
2666
|
+
* Only applies to the secret (`secret`) path. When `getKeyring` is used,
|
|
2601
2667
|
* the callback is responsible for handling stale-keyring detection itself.
|
|
2602
2668
|
*/
|
|
2603
2669
|
readonly onInvalidKey?: 'error' | 'reset';
|
|
@@ -2609,12 +2675,6 @@ export interface NoydbOptions {
|
|
|
2609
2675
|
* without this option carry no cover, full stop.
|
|
2610
2676
|
*/
|
|
2611
2677
|
readonly cover?: true | CoverSchema;
|
|
2612
|
-
/**
|
|
2613
|
-
* @deprecated Use {@link NoydbOptions.cover} (#799 rename). Still
|
|
2614
|
-
* accepted for one pre-release window; when both keys are set,
|
|
2615
|
-
* `cover` wins.
|
|
2616
|
-
*/
|
|
2617
|
-
readonly publicEnvelope?: true | CoverSchema;
|
|
2618
2678
|
/** Audit history configuration. */
|
|
2619
2679
|
readonly history?: HistoryConfig;
|
|
2620
2680
|
/**
|
|
@@ -2993,7 +3053,7 @@ export interface WarningRules {
|
|
|
2993
3053
|
}
|
|
2994
3054
|
/**
|
|
2995
3055
|
* Policy applied to one named gate. `enabled: false` disables the
|
|
2996
|
-
* action entirely (useful in managed-
|
|
3056
|
+
* action entirely (useful in managed-secret mode where rotation is
|
|
2997
3057
|
* impossible by construction).
|
|
2998
3058
|
*/
|
|
2999
3059
|
export interface GatePolicy {
|
|
@@ -3009,11 +3069,11 @@ export interface GatePolicy {
|
|
|
3009
3069
|
* and use the same engine; the engine treats unknown names with no
|
|
3010
3070
|
* configured policy as "no gate" (no-op).
|
|
3011
3071
|
*/
|
|
3012
|
-
export type BuiltInGateName = 'rotate-
|
|
3072
|
+
export type BuiltInGateName = 'rotate-secret' | 'recover-secret' | 'enroll-authenticator' | 'remove-authenticator'
|
|
3013
3073
|
/**
|
|
3014
3074
|
* Authorize a deliberate paper-recovery-code regeneration —
|
|
3015
|
-
* `db.rotateRecovery`. Symmetric to `rotate-
|
|
3016
|
-
* 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
|
|
3017
3077
|
* fresh sheet (lost the printout, suspect compromise of the off-site
|
|
3018
3078
|
* copy). PERSONAL allows tier-1; STRICT requires an off-device
|
|
3019
3079
|
* factor so a stolen unlocked laptop cannot silently mint a new
|
|
@@ -3036,7 +3096,7 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
|
|
|
3036
3096
|
/**
|
|
3037
3097
|
* Authorize an atomic peer-recovery — `db.recoverUser`.
|
|
3038
3098
|
* Distinct from `revoke-user` because peer-recovery is intentional
|
|
3039
|
-
* re-issuance of someone's keyring under a temp
|
|
3099
|
+
* re-issuance of someone's keyring under a temp secret, NOT
|
|
3040
3100
|
* removal. Allows owner→owner natively (matches the threat model:
|
|
3041
3101
|
* a co-owner explicitly recovering another co-owner). Ships with a
|
|
3042
3102
|
* factor-proof default in `STRICT_POLICY` so the issuer must
|
|
@@ -3095,12 +3155,12 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
|
|
|
3095
3155
|
export type GateName = BuiltInGateName | `app:${string}`;
|
|
3096
3156
|
/**
|
|
3097
3157
|
* Top-level policy object. Persisted at `_meta/policy` once at vault
|
|
3098
|
-
* creation. The `
|
|
3099
|
-
* applied at every
|
|
3158
|
+
* creation. The `secret` block configures the strength rules
|
|
3159
|
+
* applied at every secret ingress; `gates` configures
|
|
3100
3160
|
* the action-level requirements.
|
|
3101
3161
|
*/
|
|
3102
3162
|
export interface VaultPolicy {
|
|
3103
|
-
readonly
|
|
3163
|
+
readonly secret?: SecretPolicy;
|
|
3104
3164
|
readonly gates: Partial<Record<GateName, GatePolicy>>;
|
|
3105
3165
|
}
|
|
3106
3166
|
/** Concrete proof an actor presents to {@link checkGate}. */
|
|
@@ -3116,7 +3176,7 @@ export interface FactorProof {
|
|
|
3116
3176
|
* Noydb method. Used as the optional last parameter of every method
|
|
3117
3177
|
* that runs through `checkGate`: `db.grant`, `db.revoke`, `db.updateUser`,
|
|
3118
3178
|
* `db.enrollAuthenticator`, `db.removeAuthenticator`, `db.updateAuthenticator`,
|
|
3119
|
-
* `db.enrollWebAuthn`, `db.
|
|
3179
|
+
* `db.enrollWebAuthn`, `db.rotateSecret`, `db.recoverSecret`,
|
|
3120
3180
|
* `db.recoverUser`, `db.enrollUnlock`, `db.describeUserAuth`,
|
|
3121
3181
|
* `db.describeAllUsersAuth`.
|
|
3122
3182
|
*
|
|
@@ -3242,4 +3302,45 @@ export interface NoydbPolicyDeps {
|
|
|
3242
3302
|
* synchronously — mirrors {@link UserApiFactory}.
|
|
3243
3303
|
*/
|
|
3244
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;
|
|
3245
3346
|
export {};
|