@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,12 +1,12 @@
|
|
|
1
1
|
import type { ViaGraph, FieldRef, EdgeKind, Grain } from '../../kernel/via/graph.js';
|
|
2
2
|
import type { FieldClause } from '../../kernel/query/predicate.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MaterializedViewSpec, MVQueryContext } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* One registered MV strategy alongside its derived metadata. Stored
|
|
6
6
|
* type-erased on `TRow` so the registry can hold heterogeneous MVs.
|
|
7
7
|
*/
|
|
8
8
|
export interface RegisteredMV {
|
|
9
|
-
readonly spec:
|
|
9
|
+
readonly spec: MaterializedViewSpec<any>;
|
|
10
10
|
/** Output collection name (`spec.output?.collection ?? spec.name`). */
|
|
11
11
|
readonly outputCollection: string;
|
|
12
12
|
/** Set of source collections; populated at registration via the analyzer. */
|
|
@@ -65,7 +65,7 @@ export declare class MaterializedViewRegistry {
|
|
|
65
65
|
* surfaces a dependency the vault doesn't know about (when a
|
|
66
66
|
* `knownCollections` checker is supplied).
|
|
67
67
|
*/
|
|
68
|
-
register(spec:
|
|
68
|
+
register(spec: MaterializedViewSpec<any>, db: MVQueryContext, options?: {
|
|
69
69
|
knownCollections?: (name: string) => boolean;
|
|
70
70
|
}): Promise<void>;
|
|
71
71
|
/** All MVs that depend on `source`, in registration order. */
|
|
@@ -125,4 +125,4 @@ export declare class MaterializedViewRegistry {
|
|
|
125
125
|
*
|
|
126
126
|
* @internal
|
|
127
127
|
*/
|
|
128
|
-
export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<
|
|
128
|
+
export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<MaterializedViewSpec<Record<string, unknown>>['predicates']>): MVQueryContext;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Query } from '../../kernel/query/builder.js';
|
|
2
2
|
import type { Collection } from '../../kernel/collection.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { ReduceSpec, Reduction } from '../../with-lookup/reduce/reduction.js';
|
|
4
|
+
import type { GroupedReduction } from '../../with-lookup/reduce/groupby.js';
|
|
5
5
|
import type { JoinStrategy } from '../../kernel/query/join.js';
|
|
6
6
|
import type { MoneyDescriptor } from '../../via/money/descriptor.js';
|
|
7
7
|
import type { I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
@@ -97,7 +97,7 @@ export interface UnionSource<TRow extends Record<string, unknown>> {
|
|
|
97
97
|
* `as` — the same machinery as the query-form `Query.join()`.
|
|
98
98
|
*
|
|
99
99
|
* The right-side collections must be listed in the strategy's
|
|
100
|
-
* {@link
|
|
100
|
+
* {@link MaterializedViewSpec.sources} so writes to them trigger
|
|
101
101
|
* MV refresh — registration throws `MaterializedViewConfigError`
|
|
102
102
|
* otherwise (the union dependency set comes from arm `collection`s
|
|
103
103
|
* alone, which would not include join targets).
|
|
@@ -185,7 +185,7 @@ export type ProjectionJoinLeg = {
|
|
|
185
185
|
*
|
|
186
186
|
* @typeParam TRow - the materialized row type (the query's result row)
|
|
187
187
|
*/
|
|
188
|
-
export interface
|
|
188
|
+
export interface MaterializedViewSpec<TRow extends Record<string, unknown>> {
|
|
189
189
|
/**
|
|
190
190
|
* Stable identity for this view. Used as the output collection name
|
|
191
191
|
* unless `output.collection` overrides. Must be unique within the vault.
|
|
@@ -207,7 +207,7 @@ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>>
|
|
|
207
207
|
* (multi-source UNION). Registration throws
|
|
208
208
|
* `MaterializedViewConfigError` if both are set or neither is set.
|
|
209
209
|
*/
|
|
210
|
-
query?: (db: MVQueryContext) => Query<TRow> |
|
|
210
|
+
query?: (db: MVQueryContext) => Query<TRow> | Reduction<TRow> | GroupedReduction<TRow>;
|
|
211
211
|
/**
|
|
212
212
|
* UNION-form sources: an explicit list of sibling collections
|
|
213
213
|
* that contribute rows to a single MV. Each arm's `map` projects a
|
|
@@ -261,14 +261,14 @@ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>>
|
|
|
261
261
|
*/
|
|
262
262
|
groupBy?: string | ReadonlyArray<string>;
|
|
263
263
|
/**
|
|
264
|
-
*
|
|
264
|
+
* Reduction spec for UNION mode. Applied per-group after
|
|
265
265
|
* {@link groupBy} buckets the concatenated mapped-row stream from
|
|
266
|
-
* {@link unionSources}. Same shape as the `
|
|
266
|
+
* {@link unionSources}. Same shape as the `ReduceSpec` passed to
|
|
267
267
|
* `Query.aggregate()`.
|
|
268
268
|
*
|
|
269
269
|
* UNION-mode only. Ignored if {@link query} is set.
|
|
270
270
|
*/
|
|
271
|
-
aggregate?:
|
|
271
|
+
aggregate?: ReduceSpec;
|
|
272
272
|
/**
|
|
273
273
|
* Money descriptors for the UNION-mode aggregate, keyed by the
|
|
274
274
|
* OUTPUT/intermediate field name as it appears in the mapped row and
|
|
@@ -325,7 +325,7 @@ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>>
|
|
|
325
325
|
rowKey: (row: TRow) => string;
|
|
326
326
|
/**
|
|
327
327
|
* Explicit source collections. Required when `query()` returns
|
|
328
|
-
* an `
|
|
328
|
+
* an `Reduction` or `GroupedReduction` rather than a `Query<T>`
|
|
329
329
|
* — the dependency analyzer can't introspect through `groupBy().aggregate()`
|
|
330
330
|
* back to the source. Optional for plain `Query<T>` results — the
|
|
331
331
|
* analyzer extracts dependencies automatically from the query plan.
|
|
@@ -393,7 +393,7 @@ export interface MaterializedViewStrategy<TRow extends Record<string, unknown>>
|
|
|
393
393
|
maxRows?: number;
|
|
394
394
|
}
|
|
395
395
|
/** Returned by `withMaterializedView()` and consumed by `createNoydb`. */
|
|
396
|
-
export interface
|
|
396
|
+
export interface MaterializedViewStrategy {
|
|
397
397
|
readonly __noydb_strategy: 'materialized-view';
|
|
398
|
-
readonly spec:
|
|
398
|
+
readonly spec: MaterializedViewSpec<any>;
|
|
399
399
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaterializedViewSpec, MaterializedViewStrategy } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Register a materialized view: a declared query whose result is
|
|
4
4
|
* persisted as a queryable collection and kept fresh as sources
|
|
@@ -25,4 +25,4 @@ import type { MaterializedViewStrategy, MaterializedViewStrategyHandle } from '.
|
|
|
25
25
|
* docs/superpowers/specs/2026-05-21-dim14-mv-multikey-and-union.md (UNION),
|
|
26
26
|
* and docs/superpowers/specs/2026-07-25-join-projection-mv-design.md (projection).
|
|
27
27
|
*/
|
|
28
|
-
export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec:
|
|
28
|
+
export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec: MaterializedViewSpec<TRow>): MaterializedViewStrategy;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { withOverlayedView } from './with-overlayed-view.js';
|
|
2
2
|
export { OverlayedViewRegistry } from './registry.js';
|
|
3
3
|
export { OverlayedCollection } from './virtual-collection.js';
|
|
4
|
-
export type {
|
|
4
|
+
export type { OverlayedViewSpec, OverlayedViewStrategy, OverlayFieldMergeRule, OverlayFieldMergeMode, } from './types.js';
|
|
5
5
|
export { OverlayBaseIsVirtualError, OverlayCollectionUnavailableError, OverlayNameCollisionError, OverlayIdMismatchError, } from '../../kernel/errors.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MaterializedViewRegistry } from '../materialized-views/registry.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { OverlayedViewSpec } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Vault-internal registry of overlay strategies. Resolves the base
|
|
5
5
|
* MV's `rowKey` lazily so virtual-collection writes can derive ids
|
|
@@ -15,12 +15,12 @@ export declare class OverlayedViewRegistry {
|
|
|
15
15
|
* declared without the MV registry context skip cross-registry
|
|
16
16
|
* checks but still validate self-consistency.
|
|
17
17
|
*/
|
|
18
|
-
register(spec:
|
|
18
|
+
register(spec: OverlayedViewSpec, options: {
|
|
19
19
|
isOverlayName?: (name: string) => boolean;
|
|
20
20
|
isMVOutput?: (name: string) => boolean;
|
|
21
21
|
isKnownCollection?: (name: string) => boolean;
|
|
22
22
|
}): void;
|
|
23
|
-
byName(name: string):
|
|
23
|
+
byName(name: string): OverlayedViewSpec | undefined;
|
|
24
24
|
/** All overlay virtual names. */
|
|
25
25
|
names(): ReadonlySet<string>;
|
|
26
26
|
isOverlay(name: string): boolean;
|
|
@@ -31,7 +31,7 @@ export declare class OverlayedViewRegistry {
|
|
|
31
31
|
*
|
|
32
32
|
* Used by `dumpSchema()` to populate the `overlayViews` map.
|
|
33
33
|
*/
|
|
34
|
-
all(): ReadonlyArray<
|
|
34
|
+
all(): ReadonlyArray<OverlayedViewSpec>;
|
|
35
35
|
/**
|
|
36
36
|
* Resolve the `rowKey` function for an overlay's base MV. Returns
|
|
37
37
|
* `undefined` if the base isn't an MV (raw source collection) or
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* v2 ships the read-shadow variant only — arbitrary `mergePolicy`
|
|
7
7
|
* callbacks are deferred to v3.
|
|
8
8
|
*/
|
|
9
|
-
export interface
|
|
9
|
+
export interface OverlayedViewSpec {
|
|
10
10
|
/**
|
|
11
11
|
* Virtual collection name. `vault.collection(name)` returns a
|
|
12
12
|
* proxy that merges `base` and `overlay` per the shadow rule.
|
|
@@ -91,7 +91,7 @@ export interface OverlayFieldMergeMode {
|
|
|
91
91
|
readonly rules: readonly OverlayFieldMergeRule[];
|
|
92
92
|
}
|
|
93
93
|
/** Returned by `withOverlayedView()` and consumed by `createNoydb`. */
|
|
94
|
-
export interface
|
|
94
|
+
export interface OverlayedViewStrategy {
|
|
95
95
|
readonly __noydb_strategy: 'overlayed-view';
|
|
96
|
-
readonly spec:
|
|
96
|
+
readonly spec: OverlayedViewSpec;
|
|
97
97
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Collection } from '../../kernel/collection.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { OverlayedViewSpec } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Virtual-collection proxy returned by `vault.collection(overlayName)`
|
|
5
5
|
* when `overlayName` is a registered `withOverlayedView`.
|
|
@@ -23,7 +23,7 @@ export declare class OverlayedCollection<T extends Record<string, unknown> = any
|
|
|
23
23
|
private readonly baseCollection;
|
|
24
24
|
private readonly overlayCollection;
|
|
25
25
|
private readonly baseRowKey;
|
|
26
|
-
constructor(spec:
|
|
26
|
+
constructor(spec: OverlayedViewSpec, baseCollection: Collection<T>, overlayCollection: Collection<T>, baseRowKey: ((row: Record<string, unknown>) => string) | undefined);
|
|
27
27
|
/**
|
|
28
28
|
* Convenience accessors for advanced callers that need to bypass the
|
|
29
29
|
* virtual layer (bulk imports, direct overlay queries). Mirrors the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OverlayedViewSpec, OverlayedViewStrategy } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Register a read-shadow overlay: bind an MV-owned base collection to
|
|
4
4
|
* a user-writable overlay so consumers can express operator-editable
|
|
@@ -6,4 +6,4 @@ import type { OverlayedViewStrategy, OverlayedViewStrategyHandle } from './types
|
|
|
6
6
|
*
|
|
7
7
|
* See docs/superpowers/specs/2026-05-20-dim14-mv-v2-design.md.
|
|
8
8
|
*/
|
|
9
|
-
export declare function withOverlayedView(spec:
|
|
9
|
+
export declare function withOverlayedView(spec: OverlayedViewSpec): OverlayedViewStrategy;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Active indexing strategy factory. Calling `withIndexing()` returns
|
|
3
|
-
* an `
|
|
3
|
+
* an `IndexingStrategy` whose `createState` constructs a real
|
|
4
4
|
* `CollectionIndexes` (eager) or `PersistedCollectionIndex` (lazy)
|
|
5
5
|
* per Collection, depending on the collection's `prefetch` mode and
|
|
6
6
|
* its declared `IndexDef[]`.
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* subpath — a consumer that never imports the subpath ships none of
|
|
10
10
|
* this (ESM tree-shaking + hub's `"sideEffects": false`).
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { IndexingStrategy } from './strategy.js';
|
|
13
13
|
/**
|
|
14
14
|
* Build the default indexing strategy. Pass into
|
|
15
|
-
* `createNoydb({
|
|
15
|
+
* `createNoydb({ indexingStrategy: withIndexing() })` to light up the
|
|
16
16
|
* eager-mode `==/in` fast-path on `.query()` and the full lazy-mode
|
|
17
17
|
* `.lazyQuery()` + rebuild / reconcile / auto-reconcile surface.
|
|
18
18
|
*
|
|
@@ -23,8 +23,8 @@ import type { IndexStrategy } from './strategy.js';
|
|
|
23
23
|
*
|
|
24
24
|
* const db = await createNoydb({
|
|
25
25
|
* store, user, secret,
|
|
26
|
-
*
|
|
26
|
+
* indexingStrategy: withIndexing(),
|
|
27
27
|
* })
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
export declare function withIndexing():
|
|
30
|
+
export declare function withIndexing(): IndexingStrategy;
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
* capability boundary is explicit in import statements.
|
|
19
19
|
*/
|
|
20
20
|
export { withIndexing } from './active.js';
|
|
21
|
-
export type {
|
|
21
|
+
export type { IndexingStrategy, IndexState } from './strategy.js';
|
|
22
22
|
export { CollectionIndexes } from './eager-indexes.js';
|
|
23
23
|
export type { IndexDef, HashIndex } from './eager-indexes.js';
|
|
24
24
|
export { PersistedCollectionIndex, IDX_PREFIX, COMPOSITE_DELIMITER, encodeIdxId, decodeIdxId, isIdxId, compositeKey, } from './persisted-indexes.js';
|
|
25
25
|
export type { OrderedEntry, IngestRow, PersistedIndexDef, } from './persisted-indexes.js';
|
|
26
26
|
export { LazyQuery } from './lazy-builder.js';
|
|
27
27
|
export type { LazyQuerySource, LazyOrderBy } from './lazy-builder.js';
|
|
28
|
+
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
29
|
+
export { NO_INDEXING } from './strategy.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strategy seam between core Collection and the optional indexing
|
|
3
|
-
* service. Core imports `
|
|
3
|
+
* service. Core imports `IndexingStrategy` and `IndexState` as
|
|
4
4
|
* TYPE-ONLY symbols and `NO_INDEXING` as a tiny runtime stub.
|
|
5
5
|
*
|
|
6
6
|
* The heavy classes — `CollectionIndexes`, `PersistedCollectionIndex`,
|
|
@@ -39,7 +39,7 @@ export interface IndexState {
|
|
|
39
39
|
*
|
|
40
40
|
* @internal
|
|
41
41
|
*/
|
|
42
|
-
export interface
|
|
42
|
+
export interface IndexingStrategy {
|
|
43
43
|
createState(args: {
|
|
44
44
|
readonly defs: readonly IndexDef[];
|
|
45
45
|
readonly lazy: boolean;
|
|
@@ -53,4 +53,4 @@ export interface IndexStrategy {
|
|
|
53
53
|
*
|
|
54
54
|
* @internal
|
|
55
55
|
*/
|
|
56
|
-
export declare const NO_INDEXING:
|
|
56
|
+
export declare const NO_INDEXING: IndexingStrategy;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Active aggregate strategy factory. Calling `
|
|
3
|
-
* an `
|
|
2
|
+
* Active aggregate strategy factory. Calling `withReduce()` returns
|
|
3
|
+
* an `ReduceStrategy` whose methods construct real `Reduction` /
|
|
4
4
|
* `GroupedQuery` instances and run the streaming reducer protocol.
|
|
5
5
|
*
|
|
6
|
-
* This module is only reachable through the `@noy-db/hub/
|
|
6
|
+
* This module is only reachable through the `@noy-db/hub/reduce`
|
|
7
7
|
* subpath — a consumer that never imports the subpath ships none of
|
|
8
8
|
* this (ESM tree-shaking + hub's `"sideEffects": false`).
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
10
|
+
import type { ReduceStrategy } from './strategy.js';
|
|
11
11
|
/**
|
|
12
12
|
* Build the default aggregate strategy. Pass into
|
|
13
|
-
* `createNoydb({
|
|
13
|
+
* `createNoydb({ reduceStrategy: withReduce() })` to light up
|
|
14
14
|
* `.aggregate()` and `.groupBy()` on `Query` and `ScanBuilder`.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```ts
|
|
18
18
|
* import { createNoydb } from '@noy-db/hub'
|
|
19
|
-
* import {
|
|
19
|
+
* import { withReduce, sum, count } from '@noy-db/hub/reduce'
|
|
20
20
|
*
|
|
21
21
|
* const db = await createNoydb({
|
|
22
22
|
* store, user, secret,
|
|
23
|
-
*
|
|
23
|
+
* reduceStrategy: withReduce(),
|
|
24
24
|
* })
|
|
25
25
|
*
|
|
26
26
|
* const totals = invoices.query()
|
|
@@ -30,4 +30,4 @@ import type { AggregateStrategy } from './strategy.js';
|
|
|
30
30
|
* .run()
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
export declare function
|
|
33
|
+
export declare function withReduce(): ReduceStrategy;
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
* groupBy doesn't need its own seam for the moment, because it
|
|
59
59
|
* delegates to the reducer protocol for all per-bucket state.
|
|
60
60
|
*/
|
|
61
|
-
import type {
|
|
61
|
+
import type { ReduceSpec, ReduceResult, ReductionUpstream, LiveReduction } from './reduction.js';
|
|
62
62
|
import type { ReducerBuilder } from './reducers.js';
|
|
63
63
|
import type { MoneyDescriptor } from '../../via/money/descriptor.js';
|
|
64
64
|
import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
@@ -78,7 +78,7 @@ export declare const GROUPBY_MAX_CARDINALITY = 100000;
|
|
|
78
78
|
*/
|
|
79
79
|
export declare function resetGroupByWarnings(): void;
|
|
80
80
|
/**
|
|
81
|
-
* Result row shape for a grouped
|
|
81
|
+
* Result row shape for a grouped reduction. Each row carries the
|
|
82
82
|
* group key value under the grouping field name plus every reducer
|
|
83
83
|
* output from the spec.
|
|
84
84
|
*
|
|
@@ -116,7 +116,7 @@ export type GroupedRowN<F extends readonly string[], R> = {
|
|
|
116
116
|
*/
|
|
117
117
|
declare abstract class GroupedQueryBase {
|
|
118
118
|
protected readonly executeRecords: () => readonly unknown[];
|
|
119
|
-
protected readonly upstreams: readonly
|
|
119
|
+
protected readonly upstreams: readonly ReductionUpstream[];
|
|
120
120
|
/**
|
|
121
121
|
* Optional dict label resolver attached by the query builder when
|
|
122
122
|
* the grouping field is a dictKey. Variadic groupings always pass
|
|
@@ -137,7 +137,7 @@ declare abstract class GroupedQueryBase {
|
|
|
137
137
|
* `[field]`.
|
|
138
138
|
*/
|
|
139
139
|
protected readonly fields: readonly string[];
|
|
140
|
-
constructor(executeRecords: () => readonly unknown[], fieldOrFields: string | readonly string[], upstreams: readonly
|
|
140
|
+
constructor(executeRecords: () => readonly unknown[], fieldOrFields: string | readonly string[], upstreams: readonly ReductionUpstream[],
|
|
141
141
|
/**
|
|
142
142
|
* Optional dict label resolver attached by the query builder when
|
|
143
143
|
* the grouping field is a dictKey. Variadic groupings always pass
|
|
@@ -152,21 +152,21 @@ declare abstract class GroupedQueryBase {
|
|
|
152
152
|
*/
|
|
153
153
|
via?: ViaPipeline | undefined);
|
|
154
154
|
/** Apply Via-aware reducer rewriting (e.g. money) when the source declares one. */
|
|
155
|
-
protected wrapSpec<Spec extends
|
|
155
|
+
protected wrapSpec<Spec extends ReduceSpec>(spec: Spec): Spec;
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
158
|
* Chainable wrapper returned by `Query.groupBy(field)`. Terminates
|
|
159
|
-
* with `.aggregate(spec)` which returns a `
|
|
159
|
+
* with `.aggregate(spec)` which returns a `GroupedReduction`.
|
|
160
160
|
*
|
|
161
161
|
* Kept minimal — the only operation on a grouped query is
|
|
162
|
-
*
|
|
162
|
+
* reduction. Ordering, limiting, and further filtering belong on
|
|
163
163
|
* the underlying `Query` before `.groupBy()` is called; applying
|
|
164
164
|
* them post-group would be a different operation (`having` /
|
|
165
165
|
* `groupOrderBy`), out of scope for.
|
|
166
166
|
*/
|
|
167
167
|
export declare class GroupedQuery<T, F extends string, S extends keyof T = never, M extends keyof T & string = never> extends GroupedQueryBase {
|
|
168
168
|
/**
|
|
169
|
-
* Build a grouped
|
|
169
|
+
* Build a grouped reduction. Returns a `GroupedReduction`
|
|
170
170
|
* with `.run()`, `.runAsync()`, and `.live()` terminals — same shape
|
|
171
171
|
* as the non-grouped `.aggregate()` wrapper, just with an array
|
|
172
172
|
* result (one row per bucket) instead of a single reduced object.
|
|
@@ -178,8 +178,8 @@ export declare class GroupedQuery<T, F extends string, S extends keyof T = never
|
|
|
178
178
|
* declared `moneyFields` (`M`) member return a `MoneyString`. The
|
|
179
179
|
* bare-spec overload is preserved for backward compatibility.
|
|
180
180
|
*/
|
|
181
|
-
aggregate<Spec extends
|
|
182
|
-
aggregate<Spec extends
|
|
181
|
+
aggregate<Spec extends ReduceSpec>(spec: Spec): GroupedReduction<GroupedRow<F, ReduceResult<Spec>>>;
|
|
182
|
+
aggregate<Spec extends ReduceSpec>(build: (b: ReducerBuilder<T, S, M>) => Spec): GroupedReduction<GroupedRow<F, ReduceResult<Spec>>>;
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
185
185
|
* Variadic-keyed sibling of `GroupedQuery<T, F>`. Constructed by the
|
|
@@ -187,12 +187,12 @@ export declare class GroupedQuery<T, F extends string, S extends keyof T = never
|
|
|
187
187
|
* identical — only the type-level result-row narrowing differs.
|
|
188
188
|
*/
|
|
189
189
|
export declare class GroupedQueryN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never> extends GroupedQueryBase {
|
|
190
|
-
aggregate<Spec extends
|
|
191
|
-
aggregate<Spec extends
|
|
190
|
+
aggregate<Spec extends ReduceSpec>(spec: Spec): GroupedReduction<GroupedRowN<F, ReduceResult<Spec>>>;
|
|
191
|
+
aggregate<Spec extends ReduceSpec>(build: (b: ReducerBuilder<T, S, M>) => Spec): GroupedReduction<GroupedRowN<F, ReduceResult<Spec>>>;
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
194
194
|
* Execute the group-and-reduce pipeline. Pure function over a
|
|
195
|
-
* record array and a spec — shared by `
|
|
195
|
+
* record array and a spec — shared by `GroupedReduction.run()`
|
|
196
196
|
* and the live-mode refresh path. Exported for tests and for any
|
|
197
197
|
* future `scan().groupBy().aggregate()` reuse.
|
|
198
198
|
*
|
|
@@ -201,10 +201,10 @@ export declare class GroupedQueryN<T, F extends readonly string[], S extends key
|
|
|
201
201
|
* bucket would be created — the consumer doesn't have to wait for
|
|
202
202
|
* the full partition to materialize before the error fires.
|
|
203
203
|
*/
|
|
204
|
-
export declare function groupAndReduce<R>(records: readonly unknown[], fieldOrFields: string | readonly string[], spec:
|
|
204
|
+
export declare function groupAndReduce<R>(records: readonly unknown[], fieldOrFields: string | readonly string[], spec: ReduceSpec, moneyFields?: Record<string, MoneyDescriptor>): R[];
|
|
205
205
|
/**
|
|
206
|
-
* Grouped
|
|
207
|
-
* terminal. Shape mirrors `
|
|
206
|
+
* Grouped reduction wrapper — the `.groupBy(field).aggregate(spec)`
|
|
207
|
+
* terminal. Shape mirrors `Reduction<R>` from aggregate.ts: two
|
|
208
208
|
* terminals (`.run()` and `.live()`), spec bound at construction
|
|
209
209
|
* time, upstreams collected for live mode.
|
|
210
210
|
*
|
|
@@ -212,7 +212,7 @@ export declare function groupAndReduce<R>(records: readonly unknown[], fieldOrFi
|
|
|
212
212
|
* grouped row), and the terminals return `R[]` — one row per
|
|
213
213
|
* bucket.
|
|
214
214
|
*/
|
|
215
|
-
export declare class
|
|
215
|
+
export declare class GroupedReduction<R> {
|
|
216
216
|
private readonly executeRecords;
|
|
217
217
|
private readonly spec;
|
|
218
218
|
private readonly upstreams;
|
|
@@ -222,7 +222,7 @@ export declare class GroupedAggregation<R> {
|
|
|
222
222
|
*/
|
|
223
223
|
private readonly dictLabelResolver?;
|
|
224
224
|
private readonly fields;
|
|
225
|
-
constructor(executeRecords: () => readonly unknown[], fields: string | readonly string[], spec:
|
|
225
|
+
constructor(executeRecords: () => readonly unknown[], fields: string | readonly string[], spec: ReduceSpec, upstreams: readonly ReductionUpstream[],
|
|
226
226
|
/**
|
|
227
227
|
* Optional dict label resolver for `<field>Label` projection
|
|
228
228
|
*. Present when the grouping field is a dictKey.
|
|
@@ -260,10 +260,10 @@ export declare class GroupedAggregation<R> {
|
|
|
260
260
|
fallback?: string | readonly string[];
|
|
261
261
|
}): Promise<R[]>;
|
|
262
262
|
/**
|
|
263
|
-
* Build a reactive `
|
|
263
|
+
* Build a reactive `LiveReduction<R[]>` that re-runs the full
|
|
264
264
|
* group-and-reduce pipeline whenever any upstream source notifies
|
|
265
265
|
* of a change. Same error-isolation and idempotent-stop contract
|
|
266
|
-
* as `
|
|
266
|
+
* as `Reduction.live()` — the implementation delegates to the
|
|
267
267
|
* same `LiveAggregationImpl` class by threading a fresh
|
|
268
268
|
* recompute closure through the existing constructor.
|
|
269
269
|
*
|
|
@@ -275,6 +275,6 @@ export declare class GroupedAggregation<R> {
|
|
|
275
275
|
*
|
|
276
276
|
* Always call `live.stop()` when finished.
|
|
277
277
|
*/
|
|
278
|
-
live():
|
|
278
|
+
live(): LiveReduction<R[]>;
|
|
279
279
|
}
|
|
280
280
|
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @noy-db/hub/reduce — opt-in reduction + groupBy service.
|
|
3
|
+
*
|
|
4
|
+
* @category capability
|
|
5
|
+
*
|
|
6
|
+
* Groups every file whose reason-for-existing is record reduction:
|
|
7
|
+
* - `reduction` (`Reduction<R>`, `reduceRecords`, `buildLiveReduction`)
|
|
8
|
+
* - `groupby` (`GroupedQuery`, `GroupedReduction`, cardinality guards)
|
|
9
|
+
* - `reducers` (`count`, `sum`, `avg`, `min`, `max` factories)
|
|
10
|
+
*
|
|
11
|
+
* The root barrel (`@noy-db/hub`) and the `@noy-db/hub/query` subpath
|
|
12
|
+
* continue to re-export the same symbols for backward compatibility
|
|
13
|
+
* with consumers written before the relocation. New code should
|
|
14
|
+
* prefer this subpath.
|
|
15
|
+
*/
|
|
16
|
+
export { withReduce } from './active.js';
|
|
17
|
+
export type { ReduceStrategy } from './strategy.js';
|
|
18
|
+
export { Reduction, reduceRecords, buildLiveReduction } from './reduction.js';
|
|
19
|
+
export type { ReduceSpec, ReduceResult, ReductionUpstream, LiveReduction, } from './reduction.js';
|
|
20
|
+
export { GroupedQuery, GroupedQueryN, GroupedReduction, groupAndReduce, resetGroupByWarnings, GROUPBY_WARN_CARDINALITY, GROUPBY_MAX_CARDINALITY, } from './groupby.js';
|
|
21
|
+
export type { GroupedRow, GroupedRowN } from './groupby.js';
|
|
22
|
+
export { count, sum, avg, min, max, moneySum, moneyMin, moneyMax, reducerBuilder } from './reducers.js';
|
|
23
|
+
export type { Reducer, ReducerOptions, ReducerBuilder } from './reducers.js';
|
|
24
|
+
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
25
|
+
export { NO_REDUCE } from './strategy.js';
|
|
26
|
+
/**
|
|
27
|
+
* Types named by this entry's own signatures (#843a). `min`/`max` return a
|
|
28
|
+
* `MinMaxState`, and the money reducers speak `MoneyString`; both must be
|
|
29
|
+
* nameable from the entry that exports the functions, or a caller can invoke
|
|
30
|
+
* them and cannot annotate the result.
|
|
31
|
+
*/
|
|
32
|
+
export type { MinMaxState } from './reducers.js';
|
|
33
|
+
export type { MoneyString } from '../../via/money/branded.js';
|
|
34
|
+
export type { MoneyDescriptor } from '../../via/money/descriptor.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Reduction reducers for the query DSL.
|
|
3
3
|
*
|
|
4
4
|
* the reducer protocol plus five built-in factories
|
|
5
5
|
* (`count`, `sum`, `avg`, `min`, `max`) consumed by `Query.aggregate()`
|
|
6
6
|
* and, in the future, `Scan.aggregate()`. Every factory accepts
|
|
7
7
|
* an optional `{ seed }` parameter that is plumbed through the
|
|
8
8
|
* protocol but unused by the executor — that's the load-bearing
|
|
9
|
-
* half of constraint #2. When partition-aware
|
|
9
|
+
* half of constraint #2. When partition-aware reduction
|
|
10
10
|
* lands, the seed carries the previous partition's running total into
|
|
11
11
|
* the next partition without requiring a protocol change.
|
|
12
12
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Reducers are pure data — `init` / `step` / `finalize` / optional
|
|
20
20
|
* `remove` are stateless functions that receive and return `S`. This
|
|
21
21
|
* is the shape that admits O(1) incremental maintenance in a future
|
|
22
|
-
* optimization (delta-aware `
|
|
22
|
+
* optimization (delta-aware `LiveReduction` applies `step` or
|
|
23
23
|
* `remove` per delta), without blocking the simpler "full re-run on
|
|
24
24
|
* source change" that ships.
|
|
25
25
|
*/
|
|
@@ -30,19 +30,19 @@ import type { QueryField } from '../../kernel/types.js';
|
|
|
30
30
|
* `.aggregate()` spec.
|
|
31
31
|
*
|
|
32
32
|
* Type parameters:
|
|
33
|
-
* - `R` — user-visible result type (what the
|
|
33
|
+
* - `R` — user-visible result type (what the reduction returns
|
|
34
34
|
* for this slot, e.g. `number` for `sum()`)
|
|
35
35
|
* - `S` — internal state type, defaults to `R` for simple reducers
|
|
36
36
|
* that don't need compound bookkeeping
|
|
37
37
|
*
|
|
38
38
|
* A reducer is stateless: every method is pure over `S`. `init()` is
|
|
39
|
-
* called once per
|
|
39
|
+
* called once per reduction run to build the initial state; `step()`
|
|
40
40
|
* folds a record into the state; `remove()` (optional) un-folds a
|
|
41
41
|
* record, enabling incremental live maintenance; `finalize()` reads
|
|
42
42
|
* the final answer out of the state at the end of the run.
|
|
43
43
|
*/
|
|
44
44
|
export interface Reducer<R, S = R> {
|
|
45
|
-
/** Build the initial state for a fresh
|
|
45
|
+
/** Build the initial state for a fresh reduction run. */
|
|
46
46
|
init(): S;
|
|
47
47
|
/** Fold a record into the state. Returns the new state. */
|
|
48
48
|
step(state: S, record: unknown): S;
|
|
@@ -63,7 +63,7 @@ export interface Reducer<R, S = R> {
|
|
|
63
63
|
* Combine two independent partial states into one (then `finalize` once).
|
|
64
64
|
* Optional. MUST be associative + commutative with `init()` as identity.
|
|
65
65
|
* Never merge finalized results — only states. Enables parallel /
|
|
66
|
-
* hierarchical
|
|
66
|
+
* hierarchical reduction (e.g. cross-shard or advisor→firm rollup).
|
|
67
67
|
*/
|
|
68
68
|
merge?(a: S, b: S): S;
|
|
69
69
|
/**
|
|
@@ -94,10 +94,10 @@ export interface Reducer<R, S = R> {
|
|
|
94
94
|
*
|
|
95
95
|
* `seed` — optional initial value for the internal state. **Unused by
|
|
96
96
|
* the executor**, plumbed through the protocol for constraint
|
|
97
|
-
* #2 (partition-aware
|
|
98
|
-
*
|
|
97
|
+
* #2 (partition-aware reduction seam). In, partitioned
|
|
98
|
+
* reductions will pass the previous partition's carry as `seed` so
|
|
99
99
|
* a long time series can be rolled forward one partition at a time
|
|
100
|
-
* without re-
|
|
100
|
+
* without re-reducing closed partitions.
|
|
101
101
|
*
|
|
102
102
|
* always uses `init()` with the factory's zero value, regardless
|
|
103
103
|
* of whether `seed` was passed. Do not remove the parameter — that's
|
|
@@ -156,7 +156,7 @@ export declare function avg(field: string, opts?: ReducerOptions<{
|
|
|
156
156
|
sum: number;
|
|
157
157
|
count: number;
|
|
158
158
|
}>;
|
|
159
|
-
interface MinMaxState {
|
|
159
|
+
export interface MinMaxState {
|
|
160
160
|
/**
|
|
161
161
|
* Multiset of contributing field values. Stored as a plain array
|
|
162
162
|
* because we need to support `remove` and a plain array gives us
|
|
@@ -254,4 +254,3 @@ export interface ReducerBuilder<T, S extends keyof T = never, M extends keyof T
|
|
|
254
254
|
* parameter-contravariance, so this single instance works for all `T`/`S`.
|
|
255
255
|
*/
|
|
256
256
|
export declare const reducerBuilder: ReducerBuilder<Record<string, unknown>>;
|
|
257
|
-
export {};
|