@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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Aggregate execution — the runtime behind `Query.aggregate()`.
|
|
3
3
|
*
|
|
4
|
-
* takes an `
|
|
4
|
+
* takes an `ReduceSpec` (a record of named reducers
|
|
5
5
|
* built from `reducers.ts`) and runs every reducer over the records
|
|
6
6
|
* produced by the underlying query. Two terminal surfaces:
|
|
7
7
|
*
|
|
8
8
|
* - `.run(): R` — synchronous one-shot reduction. Matches the
|
|
9
9
|
* existing `Query.toArray()` / `.first()` / `.count()` style.
|
|
10
|
-
* - `.live():
|
|
10
|
+
* - `.live(): LiveReduction<R>` — reactive primitive that
|
|
11
11
|
* re-runs the reduction whenever the query's source notifies of
|
|
12
12
|
* a change. uses naive full re-run; incremental delta
|
|
13
13
|
* maintenance is admitted by the reducer protocol (`remove()`)
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* can switch from full re-run to delta-based without breaking
|
|
16
16
|
* the public API. Consumers get correct, reactive values today.
|
|
17
17
|
*
|
|
18
|
-
* The `
|
|
18
|
+
* The `Reduction<R>` wrapper is deliberately tiny — it exists so
|
|
19
19
|
* `.aggregate(spec)` can be chained with either `.run()` or `.live()`
|
|
20
20
|
* without the builder needing two separate terminal methods. It
|
|
21
21
|
* holds the closure over the query execution (produces the current
|
|
@@ -39,9 +39,9 @@ import type { Reducer } from './reducers.js';
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
export type
|
|
42
|
+
export type ReduceSpec = Readonly<Record<string, Reducer<unknown, unknown>>>;
|
|
43
43
|
/**
|
|
44
|
-
* Map an `
|
|
44
|
+
* Map an `ReduceSpec` to its reduced result shape — each key
|
|
45
45
|
* carries the finalized result type from its reducer. A spec built
|
|
46
46
|
* from `{ total: sum('amount'), n: count() }` yields a result of
|
|
47
47
|
* `{ total: number, n: number }`.
|
|
@@ -50,26 +50,26 @@ export type AggregateSpec = Readonly<Record<string, Reducer<unknown, unknown>>>;
|
|
|
50
50
|
* each `Reducer<R, _>`. The `infer` captures the user-visible result
|
|
51
51
|
* type, discarding the internal state type `S`.
|
|
52
52
|
*/
|
|
53
|
-
export type
|
|
53
|
+
export type ReduceResult<Spec extends ReduceSpec> = {
|
|
54
54
|
[K in keyof Spec]: Spec[K] extends Reducer<infer R, unknown> ? R : never;
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* Pure reduction over a record array. Runs every reducer's
|
|
58
58
|
* `init → step* → finalize` pipeline exactly once over the records.
|
|
59
59
|
*
|
|
60
|
-
* Called by `
|
|
60
|
+
* Called by `Reduction.run()` and by the live-mode refresh path.
|
|
61
61
|
* Exported for tests and for future `scan().aggregate()` reuse
|
|
62
62
|
* — the streaming path will call the same reducer protocol with a
|
|
63
63
|
* per-page loop instead of a single array.
|
|
64
64
|
*/
|
|
65
|
-
export declare function reduceRecords<Spec extends
|
|
65
|
+
export declare function reduceRecords<Spec extends ReduceSpec>(records: readonly unknown[], spec: Spec): ReduceResult<Spec>;
|
|
66
66
|
/**
|
|
67
|
-
* A minimal reactive primitive for
|
|
67
|
+
* A minimal reactive primitive for reduction results.
|
|
68
68
|
*
|
|
69
69
|
* Same spirit as the `LiveQuery` in : frame-agnostic, a plain
|
|
70
70
|
* object with `value` / `error` fields and a `subscribe(cb)`
|
|
71
71
|
* notification channel that Vue / React / Solid adapters wrap in
|
|
72
|
-
* their own primitive. Intentionally NOT a Promise —
|
|
72
|
+
* their own primitive. Intentionally NOT a Promise — reductions
|
|
73
73
|
* have a well-defined "current value" at every instant, and the
|
|
74
74
|
* reactive consumer wants to read that value synchronously.
|
|
75
75
|
*
|
|
@@ -86,7 +86,7 @@ export declare function reduceRecords<Spec extends AggregateSpec>(records: reado
|
|
|
86
86
|
* Always call `stop()` when done; Vue's `onUnmounted` is the
|
|
87
87
|
* canonical place. Raw consumers must do it themselves.
|
|
88
88
|
*/
|
|
89
|
-
export interface
|
|
89
|
+
export interface LiveReduction<R> {
|
|
90
90
|
/** Current reduced value. Undefined only if the first compute threw. */
|
|
91
91
|
readonly value: R | undefined;
|
|
92
92
|
/** Last execution error, if any. Cleared on the next successful run. */
|
|
@@ -97,14 +97,14 @@ export interface LiveAggregation<R> {
|
|
|
97
97
|
stop(): void;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
* Upstream change-notification hook for live
|
|
100
|
+
* Upstream change-notification hook for live reduction.
|
|
101
101
|
*
|
|
102
102
|
* Matches the shape that `QuerySource.subscribe` already uses — a
|
|
103
103
|
* single method that accepts a callback and returns an unsubscribe
|
|
104
|
-
* function. The `
|
|
104
|
+
* function. The `Reduction` wrapper collects upstreams from the
|
|
105
105
|
* query's source and wires them into a single re-run trigger.
|
|
106
106
|
*/
|
|
107
|
-
export interface
|
|
107
|
+
export interface ReductionUpstream {
|
|
108
108
|
subscribe(cb: () => void): () => void;
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
@@ -120,14 +120,14 @@ export interface AggregationUpstream {
|
|
|
120
120
|
* `.aggregate(spec).live()`. Wrapping lets the spec be named once
|
|
121
121
|
* and reused for either terminal, and keeps the `Query` class
|
|
122
122
|
* from growing a pair of near-duplicate method overloads
|
|
123
|
-
* (`
|
|
123
|
+
* (`reduceRun` / `reduceLive`) that would be harder to
|
|
124
124
|
* discover.
|
|
125
125
|
*/
|
|
126
|
-
export declare class
|
|
126
|
+
export declare class Reduction<R> {
|
|
127
127
|
private readonly executeRecords;
|
|
128
128
|
private readonly spec;
|
|
129
129
|
private readonly upstreams;
|
|
130
|
-
constructor(executeRecords: () => readonly unknown[], spec:
|
|
130
|
+
constructor(executeRecords: () => readonly unknown[], spec: ReduceSpec, upstreams: readonly ReductionUpstream[]);
|
|
131
131
|
/**
|
|
132
132
|
* Execute the query and reduce the results synchronously.
|
|
133
133
|
* Returns the reduced shape matching the spec — e.g. a spec of
|
|
@@ -136,7 +136,7 @@ export declare class Aggregation<R> {
|
|
|
136
136
|
*/
|
|
137
137
|
run(): R;
|
|
138
138
|
/**
|
|
139
|
-
* Build a reactive `
|
|
139
|
+
* Build a reactive `LiveReduction<R>` that re-runs the reduction
|
|
140
140
|
* whenever any upstream source notifies of a change. The initial
|
|
141
141
|
* value is computed eagerly in the constructor, so consumers can
|
|
142
142
|
* read `live.value` immediately after calling `.live()`.
|
|
@@ -153,14 +153,14 @@ export declare class Aggregation<R> {
|
|
|
153
153
|
* correct, reactive values today; future PRs can switch to
|
|
154
154
|
* delta-based maintenance without changing this API.
|
|
155
155
|
*/
|
|
156
|
-
live():
|
|
156
|
+
live(): LiveReduction<R>;
|
|
157
157
|
}
|
|
158
158
|
/**
|
|
159
|
-
* Build a `
|
|
159
|
+
* Build a `LiveReduction<V>` from a recompute closure and a list
|
|
160
160
|
* of upstreams. Exposed so sibling files in the query DSL
|
|
161
161
|
* (currently `groupby.ts`) can reuse the reactive primitive
|
|
162
162
|
* without reaching into `LiveAggregationImpl` directly. This keeps
|
|
163
163
|
* the implementation class private while still allowing planned
|
|
164
164
|
* composition with `.groupBy().aggregate().live()`.
|
|
165
165
|
*/
|
|
166
|
-
export declare function
|
|
166
|
+
export declare function buildLiveReduction<V>(recompute: () => V, upstreams: readonly ReductionUpstream[]): LiveReduction<V>;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strategy seam between the core Query / ScanBuilder chain and the
|
|
3
3
|
* optional aggregate / groupBy service. Core imports
|
|
4
|
-
* `
|
|
4
|
+
* `ReduceStrategy` as a TYPE-ONLY symbol and `NO_REDUCE` as a
|
|
5
5
|
* tiny runtime stub.
|
|
6
6
|
*
|
|
7
|
-
* The heavy machinery — `
|
|
8
|
-
* reducer-step logic — is only reachable from `
|
|
7
|
+
* The heavy machinery — `Reduction`, `GroupedQuery`, the
|
|
8
|
+
* reducer-step logic — is only reachable from `withReduce()` in
|
|
9
9
|
* `./active.ts`, which is only exported through the
|
|
10
|
-
* `@noy-db/hub/
|
|
10
|
+
* `@noy-db/hub/reduce` subpath. Consumers that don't import the
|
|
11
11
|
* subpath ship none of the ~886 LOC.
|
|
12
12
|
*
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
|
-
import type {
|
|
15
|
+
import type { Reduction, ReduceSpec, ReduceResult, ReductionUpstream } from './reduction.js';
|
|
16
16
|
import type { GroupedQuery, GroupedQueryN } from './groupby.js';
|
|
17
17
|
import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
18
18
|
/**
|
|
@@ -21,39 +21,39 @@ import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
|
21
21
|
*
|
|
22
22
|
* @internal
|
|
23
23
|
*/
|
|
24
|
-
export interface
|
|
24
|
+
export interface ReduceStrategy {
|
|
25
25
|
/**
|
|
26
|
-
* Build an `
|
|
26
|
+
* Build an `Reduction<R>` for `Query.aggregate(spec)`. `executeRecords`
|
|
27
27
|
* is a closure that produces the matching record set when the
|
|
28
|
-
*
|
|
29
|
-
* constructs a real `
|
|
28
|
+
* reduction runs. NO_REDUCE throws; the active strategy
|
|
29
|
+
* constructs a real `Reduction`.
|
|
30
30
|
*/
|
|
31
|
-
aggregate<Spec extends
|
|
31
|
+
aggregate<Spec extends ReduceSpec>(executeRecords: () => readonly unknown[], spec: Spec, upstreams: readonly ReductionUpstream[]): Reduction<ReduceResult<Spec>>;
|
|
32
32
|
/**
|
|
33
33
|
* Build a `GroupedQuery<T, F, S>` for `Query.groupBy(field)`. Same
|
|
34
34
|
* closure / upstream inputs as `aggregate` plus the group key field.
|
|
35
35
|
*/
|
|
36
|
-
groupBy<T, F extends string, S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], field: F, upstreams: readonly
|
|
36
|
+
groupBy<T, F extends string, S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], field: F, upstreams: readonly ReductionUpstream[], dictLabelResolver?: (key: string, locale: string, fallback?: string | readonly string[]) => Promise<string | undefined>, via?: ViaPipeline): GroupedQuery<T, F, S, M>;
|
|
37
37
|
/**
|
|
38
38
|
* Variadic-keyed sibling — builds a `GroupedQueryN<T, F, S>` for
|
|
39
39
|
* `Query.groupBy(...fields)`. No dictLabelResolver — `<field>Label`
|
|
40
40
|
* projection only applies to single-field groupings, which dispatch
|
|
41
41
|
* through `groupBy` above.
|
|
42
42
|
*/
|
|
43
|
-
groupByN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], fields: F, upstreams: readonly
|
|
43
|
+
groupByN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never>(executeRecords: () => readonly unknown[], fields: F, upstreams: readonly ReductionUpstream[], via?: ViaPipeline): GroupedQueryN<T, F, S, M>;
|
|
44
44
|
/**
|
|
45
45
|
* Terminal streaming aggregator for `ScanBuilder.aggregate(spec)`.
|
|
46
46
|
* Takes an async iterable of decrypted records + the spec and
|
|
47
47
|
* returns the reduced result.
|
|
48
48
|
*/
|
|
49
|
-
scanAggregate<Spec extends
|
|
49
|
+
scanAggregate<Spec extends ReduceSpec>(iter: AsyncIterable<unknown>, spec: Spec): Promise<ReduceResult<Spec>>;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* No-aggregate stub. Every `.aggregate()` / `.groupBy()` / streaming
|
|
53
53
|
* `scan().aggregate()` call throws with a pointer at the subpath. The
|
|
54
|
-
* real `
|
|
54
|
+
* real `Reduction` / `GroupedQuery` classes are never referenced at
|
|
55
55
|
* runtime, so the bundler drops the ~886 LOC.
|
|
56
56
|
*
|
|
57
57
|
* @internal
|
|
58
58
|
*/
|
|
59
|
-
export declare const
|
|
59
|
+
export declare const NO_REDUCE: ReduceStrategy;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
2
2
|
import type { DictKeyDescriptor, StaticDictDescriptor } from '../../via/i18n/dictionary.js';
|
|
3
3
|
import type { IndexDoc } from './inverted-index.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* One entry in an {@link IndexDoc}'s `fields` array — the return shape of the
|
|
6
|
+
* `build*FieldEntries` helpers. Exported so `@noy-db/hub/search` can name the
|
|
7
|
+
* return type of its own public functions (#843 C1: the subpath's first
|
|
8
|
+
* type-reachability gap).
|
|
9
|
+
*/
|
|
10
|
+
export type FieldEntry = IndexDoc['fields'][number];
|
|
5
11
|
export declare function buildStringFieldEntries(record: Record<string, unknown>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
6
12
|
export declare function buildI18nFieldEntries(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
7
13
|
/** label map: field -> (key -> { locale -> label }). Precomputed in the collection (async for dynamic dicts). */
|
|
@@ -12,4 +18,3 @@ export declare function buildDictKeyFieldEntries(record: Record<string, unknown>
|
|
|
12
18
|
* caller). Bytes are never tokenized; only the slot `filename` is indexed.
|
|
13
19
|
*/
|
|
14
20
|
export declare function buildBlobFieldEntries(filenamesByField: Map<string, string[]>): FieldEntry[];
|
|
15
|
-
export {};
|
|
@@ -11,7 +11,7 @@ export { segmentTokens, segmentTokenizer, type Token } from './segment.js';
|
|
|
11
11
|
export { InvertedIndex, type IndexDoc, type IndexHit, type QueryOptions } from './inverted-index.js';
|
|
12
12
|
export { extractSnippet } from './snippet.js';
|
|
13
13
|
export { MemoryIndexStore, type IndexStore } from './index-store.js';
|
|
14
|
-
export { buildStringFieldEntries } from './build-docs.js';
|
|
14
|
+
export { buildStringFieldEntries, type FieldEntry } from './build-docs.js';
|
|
15
15
|
export type { RetrieveOptions, RetrieveHit } from './retrieve-types.js';
|
|
16
16
|
export { fuseRetrieval, type FuseOptions } from './fuse.js';
|
|
17
17
|
export { withSearch } from './active.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `_broker` reserved-collection seed lifecycle (#479, credential-broker
|
|
3
|
-
* spec §2/§3). Modeled on `with-
|
|
3
|
+
* spec §2/§3). Modeled on `with-sync/credentials.ts`: a
|
|
4
4
|
* `_`-prefixed reserved collection, record id = `brokerId`, encrypted under
|
|
5
5
|
* the collection's own DEK, `requireAdminAccess` role gate (owner/admin
|
|
6
6
|
* only — custodian intentionally excluded, same rationale as
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* unseal the original sealed owner. The old sealed-owner credential is left
|
|
25
25
|
* untouched and ORPHANED (its `_keyring/<id>` file remains, its KEK is still
|
|
26
26
|
* sealed under the non-firm provider), never impersonated. The new owner is a
|
|
27
|
-
* DISTINCT principal under a fresh KEK derived from `
|
|
27
|
+
* DISTINCT principal under a fresh KEK derived from `newOwnerSecret`. This
|
|
28
28
|
* preserves the inalienability floor: the act of claiming ownership is itself
|
|
29
29
|
* auditable and produces a different principal, rather than silently assuming
|
|
30
30
|
* the latent owner's identity.
|
|
@@ -47,8 +47,8 @@ import type { FrozenSnapshotRef } from '../../with-audit/portability/withdraw-ac
|
|
|
47
47
|
export interface LiberateOptions {
|
|
48
48
|
/** The id of the new owner principal the custodian mints by claiming ownership. */
|
|
49
49
|
readonly newOwnerId: string;
|
|
50
|
-
/** The
|
|
51
|
-
readonly
|
|
50
|
+
/** The secret that derives the new owner's KEK (the DEKs are re-wrapped under it). */
|
|
51
|
+
readonly newOwnerSecret: string;
|
|
52
52
|
/** Legal/contractual basis recorded in the audit (e.g. 'contractual-handover'). */
|
|
53
53
|
readonly legalBasis: string;
|
|
54
54
|
readonly factors?: FactorProofBundle;
|
|
@@ -8,12 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type { Cover, CoverText, CoverSchema, CoverField, JsonValue, ResolvedCoverSchema, } from './types.js';
|
|
10
10
|
export { COVER_FIELDS, DEFAULT_COVER_SCHEMA, resolveSchema, } from './types.js';
|
|
11
|
+
export { resolveSchema as resolveCoverSchema } from './types.js';
|
|
11
12
|
export type { SetCoverInput } from './schema.js';
|
|
12
13
|
export { validateCoverInput, isCover } from './schema.js';
|
|
13
14
|
export { mergeCustom, validateCoverSize } from './custom.js';
|
|
14
15
|
export { loadCover, saveCover, readCover, resolveLocale, pickLocale, COVER_RECORD_ID, } from './storage.js';
|
|
15
|
-
export type { PublicEnvelope, PublicEnvelopeText, PublicEnvelopeSchema, PublicEnvelopeField, ResolvedPublicEnvelopeSchema, } from './types.js';
|
|
16
|
-
export { PUBLIC_ENVELOPE_FIELDS, DEFAULT_PUBLIC_ENVELOPE_SCHEMA, } from './types.js';
|
|
17
|
-
export type { SetPublicEnvelopeInput } from './schema.js';
|
|
18
|
-
export { validatePublicEnvelopeInput, isPublicEnvelope } from './schema.js';
|
|
19
|
-
export { loadPublicEnvelope, savePublicEnvelope, readPublicEnvelope, PUBLIC_ENVELOPE_RECORD_ID, } from './storage.js';
|
|
@@ -31,9 +31,3 @@ export declare function validateCoverInput(input: SetCoverInput, schema: Resolve
|
|
|
31
31
|
* discriminator keeps its frozen name: `_noydb_public: 1`.)
|
|
32
32
|
*/
|
|
33
33
|
export declare function isCover(x: unknown): x is Cover;
|
|
34
|
-
/** @deprecated Use {@link SetCoverInput}. */
|
|
35
|
-
export type SetPublicEnvelopeInput = SetCoverInput;
|
|
36
|
-
/** @deprecated Use {@link validateCoverInput}. */
|
|
37
|
-
export declare const validatePublicEnvelopeInput: typeof validateCoverInput;
|
|
38
|
-
/** @deprecated Use {@link isCover}. */
|
|
39
|
-
export declare const isPublicEnvelope: typeof isCover;
|
|
@@ -61,11 +61,3 @@ export declare function resolveLocale(cover: Cover, locale: string): Cover;
|
|
|
61
61
|
* This deviation is documented in `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md`.
|
|
62
62
|
*/
|
|
63
63
|
export declare function pickLocale(value: string | Record<string, string>, locale: string, defaultLocale: string | undefined): string;
|
|
64
|
-
/** @deprecated Use {@link COVER_RECORD_ID}. */
|
|
65
|
-
export declare const PUBLIC_ENVELOPE_RECORD_ID = "public-envelope";
|
|
66
|
-
/** @deprecated Use {@link loadCover}. */
|
|
67
|
-
export declare const loadPublicEnvelope: typeof loadCover;
|
|
68
|
-
/** @deprecated Use {@link saveCover}. */
|
|
69
|
-
export declare const savePublicEnvelope: typeof saveCover;
|
|
70
|
-
/** @deprecated Use {@link readCover}. */
|
|
71
|
-
export declare const readPublicEnvelope: typeof readCover;
|
|
@@ -126,24 +126,3 @@ export interface ResolvedCoverSchema {
|
|
|
126
126
|
* overrides the keys it provides.
|
|
127
127
|
*/
|
|
128
128
|
export declare function resolveSchema(schema: true | CoverSchema | undefined): ResolvedCoverSchema | undefined;
|
|
129
|
-
/** @deprecated Use {@link Cover}. */
|
|
130
|
-
export type PublicEnvelope = Cover;
|
|
131
|
-
/** @deprecated Use {@link CoverText}. */
|
|
132
|
-
export type PublicEnvelopeText = CoverText;
|
|
133
|
-
/** @deprecated Use {@link CoverField}. */
|
|
134
|
-
export type PublicEnvelopeField = CoverField;
|
|
135
|
-
/** @deprecated Use {@link CoverSchema}. */
|
|
136
|
-
export type PublicEnvelopeSchema = CoverSchema;
|
|
137
|
-
/** @deprecated Use {@link ResolvedCoverSchema}. */
|
|
138
|
-
export type ResolvedPublicEnvelopeSchema = ResolvedCoverSchema;
|
|
139
|
-
/** @deprecated Use {@link COVER_FIELDS}. */
|
|
140
|
-
export declare const PUBLIC_ENVELOPE_FIELDS: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale", "custom"];
|
|
141
|
-
/** @deprecated Use {@link DEFAULT_COVER_SCHEMA}. */
|
|
142
|
-
export declare const DEFAULT_PUBLIC_ENVELOPE_SCHEMA: {
|
|
143
|
-
readonly fields: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale"];
|
|
144
|
-
readonly maxIconBytes: number;
|
|
145
|
-
readonly iconMimeTypes: readonly ["image/png", "image/svg+xml"];
|
|
146
|
-
readonly maxStringChars: 200;
|
|
147
|
-
readonly maxCustomBytes: number;
|
|
148
|
-
readonly maxCoverBytes: number;
|
|
149
|
-
};
|
|
@@ -7,5 +7,7 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
export type { DirectoryConfig, UserVisibility } from './types.js';
|
|
10
|
+
export { loadUserEnvelope, saveUserEnvelope, deleteUserEnvelope, listUserEnvelopeIds, } from './user-envelope/storage.js';
|
|
11
|
+
export { UserApi } from './user-envelope/api.js';
|
|
10
12
|
export { readDirectoryConfig, persistDirectoryConfig, META_COLLECTION, DIRECTORY_RECORD_ID, } from './storage.js';
|
|
11
13
|
export { readUserVisibility, persistUserVisibility, deleteUserVisibility, visibilityRecordId, VISIBILITY_RECORD_PREFIX, } from './visibility.js';
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Dev-mode persistent unlock —
|
|
3
3
|
*
|
|
4
4
|
* Solves the developer inner-loop friction: hot-reload destroys the session
|
|
5
|
-
* (page navigation semantics), forcing a
|
|
5
|
+
* (page navigation semantics), forcing a secret re-entry every refresh.
|
|
6
6
|
*
|
|
7
7
|
* This module provides an opt-in, deliberately-named escape hatch that lets
|
|
8
8
|
* developers store the keyring payload in sessionStorage or localStorage so
|
|
9
|
-
* the vault auto-unlocks on every page load — without a
|
|
9
|
+
* the vault auto-unlocks on every page load — without a secret,
|
|
10
10
|
* without a biometric prompt, without any OIDC flow.
|
|
11
11
|
*
|
|
12
12
|
* ⚠️ WARNING — this is a loaded footgun ⚠️
|
|
@@ -21,3 +21,5 @@ export type { DevUnlockOptions } from './dev-unlock.js';
|
|
|
21
21
|
export { withSession } from './active.js';
|
|
22
22
|
export type { SessionStrategy } from './strategy.js';
|
|
23
23
|
export { SessionExpiredError, SessionNotFoundError, SessionPolicyError, } from '../../kernel/errors.js';
|
|
24
|
+
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
25
|
+
export { NO_SESSION } from './strategy.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Session tokens —
|
|
3
3
|
*
|
|
4
|
-
* After a vault is unlocked (via
|
|
4
|
+
* After a vault is unlocked (via secret, WebAuthn, OIDC, or magic-
|
|
5
5
|
* link), the caller can call `createSession()` to get a session token that
|
|
6
6
|
* allows re-establishing the KEK for the session lifetime without re-running
|
|
7
7
|
* PBKDF2 or any interactive auth challenge.
|
|
@@ -75,7 +75,7 @@ export interface CreateSessionOptions {
|
|
|
75
75
|
/**
|
|
76
76
|
* Create a session for an already-unlocked keyring.
|
|
77
77
|
*
|
|
78
|
-
* Call this after any successful unlock (
|
|
78
|
+
* Call this after any successful unlock (secret, WebAuthn, OIDC,
|
|
79
79
|
* magic-link). The returned `sessionId` is the handle for later
|
|
80
80
|
* `resolveSession()` and `revokeSession()` calls.
|
|
81
81
|
*
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* FR-6 — Deed: sealed / hidden-owner provisioning.
|
|
3
3
|
*
|
|
4
4
|
* A **Deed** is a vault owned by a *latent* principal who never
|
|
5
|
-
* authenticates. The owner credential (the random
|
|
5
|
+
* authenticates. The owner credential (the random secret that
|
|
6
6
|
* derives `KEK_owner`) is minted machine-side and sealed under a
|
|
7
7
|
* **non-firm** {@link SealingKeyProvider} — that sealing boundary is
|
|
8
8
|
* the cryptographic *inalienability anchor*: whoever holds the
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Provisioning reuses the managed-mode seam:
|
|
15
15
|
* - {@link resolveManagedSecret} mints + seals + persists the random
|
|
16
|
-
*
|
|
16
|
+
* secret at `_meta/sealed-secret` (and unseals it on every
|
|
17
17
|
* subsequent open through the same provider).
|
|
18
18
|
* - {@link createOwnerKeyring} derives `KEK_owner` from that
|
|
19
|
-
*
|
|
19
|
+
* secret and writes the `_keyring/<ownerUserId>` file.
|
|
20
20
|
*
|
|
21
21
|
* On top of that, a Deed writes a `_meta/deed` **marker**. The marker
|
|
22
22
|
* is PLAINTEXT metadata — it records WHO the latent owner is and WHICH
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
32
32
|
import type { UnlockedKeyring } from './keyring.js';
|
|
33
|
-
import type { SealingKeyProvider } from './managed-
|
|
33
|
+
import type { SealingKeyProvider } from './managed-secret.js';
|
|
34
34
|
/** Reserved id for the Deed marker under `_meta`. */
|
|
35
35
|
export declare const DEED_RECORD_ID: "deed";
|
|
36
36
|
/**
|
|
@@ -60,7 +60,7 @@ export interface DeedMarker {
|
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Provision a Deed: a latent owner whose credential is sealed under
|
|
63
|
-
* `sealing` (a NON-firm provider). Mints + seals the owner
|
|
63
|
+
* `sealing` (a NON-firm provider). Mints + seals the owner secret
|
|
64
64
|
* via {@link resolveManagedSecret}, derives the owner keyring via
|
|
65
65
|
* {@link createOwnerKeyring}, then writes the plaintext `_meta/deed`
|
|
66
66
|
* marker. Returns the unlocked owner keyring.
|
|
@@ -68,8 +68,8 @@ export interface DeedMarker {
|
|
|
68
68
|
* The returned keyring is the only in-memory window onto `KEK_owner`
|
|
69
69
|
* for this call; the persistent re-entry point is the sealing provider
|
|
70
70
|
* (re-run {@link resolveManagedSecret} with the same provider to
|
|
71
|
-
* re-resolve the
|
|
72
|
-
* unlock — no interactive
|
|
71
|
+
* re-resolve the secret, then {@link createOwnerKeyring}/load to
|
|
72
|
+
* unlock — no interactive secret is ever required).
|
|
73
73
|
*
|
|
74
74
|
* There is deliberately no firm-controlled fallback: the marker's
|
|
75
75
|
* `sealedUnder` is the single cryptographic anchor of ownership.
|
|
@@ -85,7 +85,7 @@ export declare function loadDeedMarker(store: NoydbStore, vault: string): Promis
|
|
|
85
85
|
export declare function isDeedVault(store: NoydbStore, vault: string): Promise<boolean>;
|
|
86
86
|
/**
|
|
87
87
|
* Persist a {@link DeedMarker} at `_meta/deed`. Mirrors
|
|
88
|
-
* `
|
|
88
|
+
* `saveSealedSecret`'s envelope shape: a standard
|
|
89
89
|
* {@link EncryptedEnvelope} with AES-GCM bypassed (`_iv: ''`), the
|
|
90
90
|
* payload stored as plaintext JSON in `_data`. The marker is metadata,
|
|
91
91
|
* not a secret — sealing it would defeat its purpose (auditors /
|
|
@@ -18,10 +18,11 @@ export { TeamNotEnabledError } from '../../kernel/errors.js';
|
|
|
18
18
|
export type { UnlockedKeyring } from './keyring.js';
|
|
19
19
|
export { loadKeyring, createOwnerKeyring, grant, revoke, changeSecret, listUsers, listUsersWithEnvelopes, ensureCollectionDEK, persistKeyring, updateKeyringIdentity, buildRecipientKeyringFile, } from './keyring.js';
|
|
20
20
|
export type { BundleRecipient, ListUsersOptions } from './keyring.js';
|
|
21
|
+
export type { LoadKeyringOptions, CreateOwnerKeyringOptions, RotateKeysOptions, ChangeSecretOptions, } from './keyring.js';
|
|
21
22
|
export { enrollAuthenticator, removeAuthenticator, updateAuthenticator, findAuthenticator, } from './authenticators.js';
|
|
22
23
|
export type { EnrollAuthenticatorOptions, EnrollAuthenticatorWrappingKEKOptions, EnrollAuthenticatorWrappingDEKsOptions, UpdateAuthenticatorOptions, } from './authenticators.js';
|
|
23
|
-
export {
|
|
24
|
-
export type {
|
|
24
|
+
export { rotateSecret, recoverSecret, } from './rotate-recover.js';
|
|
25
|
+
export type { RotateSecretInput, RecoverSecretInput, RecoverSecretResult, RecoveryProof, SlotRewrapContext, SlotRewrapCeremony, } from './rotate-recover.js';
|
|
25
26
|
export { recoverUser } from './peer-recover.js';
|
|
26
27
|
export type { RecoverUserOptions } from './peer-recover.js';
|
|
27
28
|
export { mintPaperRecoveryEntry, unwrapDeksFromPaperEntry, loadPaperRecoveryEntries, savePaperRecoveryEntries, burnPaperRecoveryEntry, } from './recovery.js';
|
|
@@ -31,8 +32,4 @@ export type { WrappedDeksBlob } from './wrapped-deks.js';
|
|
|
31
32
|
export { writeMagicLinkGrant, readMagicLinkGrantRecord, listMagicLinkGrants, unwrapMagicLinkGrant, revokeMagicLinkGrant, deriveMagicLinkContentKey, magicLinkGrantRecordId, isMagicLinkGrantExpired, } from './magic-link-grant.js';
|
|
32
33
|
export { hasExportCapability, evaluateExportCapability, } from './keyring.js';
|
|
33
34
|
export { hasImportCapability, evaluateImportCapability, } from './keyring.js';
|
|
34
|
-
export {
|
|
35
|
-
export { SyncTransaction } from './sync-transaction.js';
|
|
36
|
-
export { PresenceHandle } from './presence.js';
|
|
37
|
-
export { putCredential, getCredential, deleteCredential, listCredentials, credentialStatus, SYNC_CREDENTIALS_COLLECTION, } from './sync-credentials.js';
|
|
38
|
-
export type { SyncCredential } from './sync-credentials.js';
|
|
35
|
+
export { describeAuthConfig, diagramAuthConfig, describeUserAuth, describeAllUsersAuth, } from '../auth-introspection/index.js';
|