@noy-db/hub 0.2.0-pre.9 → 0.3.0-pre.1
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 +129 -3
- package/dist/adapter/index.d.ts +5 -0
- package/dist/adapter/index.js +15 -0
- package/dist/aggregate/index.d.ts +6 -2
- package/dist/aggregate/index.js +24 -16
- package/dist/aggregate/index.js.map +1 -1
- package/dist/api-RW3KP7WU.js +14 -0
- package/dist/as/index.d.ts +7 -0
- package/dist/as/index.js +24 -0
- package/dist/at/index.d.ts +5 -0
- package/dist/at/index.js +1 -0
- package/dist/attestation/index.d.ts +15 -47
- package/dist/attestation/index.js +54 -10
- package/dist/attestation/index.js.map +1 -1
- package/dist/backup-XV3IOEGB.js +217 -0
- package/dist/backup-XV3IOEGB.js.map +1 -0
- package/dist/blobs/index.d.ts +6 -8
- package/dist/blobs/index.js +19 -12
- package/dist/blobs/index.js.map +1 -1
- package/dist/bundle/index.d.ts +16 -70
- package/dist/bundle/index.js +39 -476
- package/dist/bundle/index.js.map +1 -1
- package/dist/{ulid-CJ8RzRrm.d.ts → bundle-CH-H06dp.d.ts} +31 -86
- package/dist/by/index.d.ts +1 -0
- package/dist/by/index.js +11 -0
- package/dist/cargo/index.d.ts +9 -0
- package/dist/cargo/index.js +89 -0
- package/dist/chunk-26LGBE4T.js +42 -0
- package/dist/chunk-26LGBE4T.js.map +1 -0
- package/dist/chunk-2P2HZEXU.js +233 -0
- package/dist/chunk-2P2HZEXU.js.map +1 -0
- package/dist/{chunk-K3DK3NU5.js → chunk-3YFXJ3ZP.js} +20 -5
- package/dist/chunk-3YFXJ3ZP.js.map +1 -0
- package/dist/chunk-4Q6HSHHL.js +90 -0
- package/dist/chunk-4Q6HSHHL.js.map +1 -0
- package/dist/chunk-5LUY7UTV.js +380 -0
- package/dist/chunk-5LUY7UTV.js.map +1 -0
- package/dist/chunk-5N6CZTCY.js +367 -0
- package/dist/chunk-5N6CZTCY.js.map +1 -0
- package/dist/chunk-5O3AOPDT.js +992 -0
- package/dist/chunk-5O3AOPDT.js.map +1 -0
- package/dist/chunk-5R3ERCDH.js +239 -0
- package/dist/chunk-5R3ERCDH.js.map +1 -0
- package/dist/{chunk-6CME4UEK.js → chunk-5R5JW2JT.js} +7000 -4827
- package/dist/chunk-5R5JW2JT.js.map +1 -0
- package/dist/chunk-5TDJ56JE.js +32 -0
- package/dist/chunk-5TDJ56JE.js.map +1 -0
- package/dist/{chunk-T7JEBOGN.js → chunk-62QYRORB.js} +18 -11
- package/dist/chunk-62QYRORB.js.map +1 -0
- package/dist/{chunk-J66GRPNH.js → chunk-6S7T6WC4.js} +2 -2
- package/dist/chunk-6S7T6WC4.js.map +1 -0
- package/dist/chunk-76722EBH.js +451 -0
- package/dist/chunk-76722EBH.js.map +1 -0
- package/dist/{chunk-Z6FNBOTC.js → chunk-AIWULCUO.js} +13 -17
- package/dist/chunk-AIWULCUO.js.map +1 -0
- package/dist/{chunk-O3VZPBZG.js → chunk-AQTBSL7R.js} +47 -11
- package/dist/chunk-AQTBSL7R.js.map +1 -0
- package/dist/chunk-AURFOK3D.js +35 -0
- package/dist/chunk-AURFOK3D.js.map +1 -0
- package/dist/{chunk-53XBRIRT.js → chunk-AXRXJTE2.js} +9 -9
- package/dist/chunk-AXRXJTE2.js.map +1 -0
- package/dist/chunk-AZAOEIKW.js +155 -0
- package/dist/chunk-AZAOEIKW.js.map +1 -0
- package/dist/{chunk-HNRHLRDC.js → chunk-BG3SPSR4.js} +3 -3
- package/dist/chunk-BG3SPSR4.js.map +1 -0
- package/dist/chunk-BGIZAFY7.js +1 -0
- package/dist/chunk-CHFZDSE4.js +1 -0
- package/dist/{chunk-DJHHA6XH.js → chunk-CMGR4ZEW.js} +50 -20
- package/dist/chunk-CMGR4ZEW.js.map +1 -0
- package/dist/chunk-CWPPNPOH.js +23 -0
- package/dist/chunk-CWPPNPOH.js.map +1 -0
- package/dist/{chunk-QODLLGQ7.js → chunk-DFEMTNPJ.js} +371 -38
- package/dist/chunk-DFEMTNPJ.js.map +1 -0
- package/dist/{chunk-ZYWZWG6G.js → chunk-DGDI2D4M.js} +10 -10
- package/dist/chunk-DGDI2D4M.js.map +1 -0
- package/dist/{chunk-SYMWGEET.js → chunk-EIZUR2XW.js} +3 -3
- package/dist/chunk-EIZUR2XW.js.map +1 -0
- package/dist/{chunk-BVRYKATC.js → chunk-FISN7WE4.js} +36 -33
- package/dist/chunk-FISN7WE4.js.map +1 -0
- package/dist/chunk-GHVIKOHT.js +1 -0
- package/dist/chunk-GYGWYIOZ.js +200 -0
- package/dist/chunk-GYGWYIOZ.js.map +1 -0
- package/dist/chunk-HCIPRAGS.js +45 -0
- package/dist/chunk-HCIPRAGS.js.map +1 -0
- package/dist/{chunk-PX35GA7L.js → chunk-I2NOIW44.js} +10 -10
- package/dist/chunk-I2NOIW44.js.map +1 -0
- package/dist/{chunk-OIF6LZUR.js → chunk-I3TIKTJO.js} +3 -3
- package/dist/chunk-I3TIKTJO.js.map +1 -0
- package/dist/chunk-I7FD46FF.js +9 -0
- package/dist/chunk-I7FD46FF.js.map +1 -0
- package/dist/chunk-IAGBDSCS.js +40 -0
- package/dist/chunk-IAGBDSCS.js.map +1 -0
- package/dist/{chunk-JWRVQKRZ.js → chunk-IELYAOGG.js} +6 -18
- package/dist/chunk-IELYAOGG.js.map +1 -0
- package/dist/chunk-IGUYVGGI.js +205 -0
- package/dist/chunk-IGUYVGGI.js.map +1 -0
- package/dist/{chunk-U26HQ6KJ.js → chunk-IO6GRPT6.js} +4 -4
- package/dist/chunk-IO6GRPT6.js.map +1 -0
- package/dist/chunk-IPB7FTQX.js +273 -0
- package/dist/chunk-IPB7FTQX.js.map +1 -0
- package/dist/chunk-ITNUCOXM.js +148 -0
- package/dist/chunk-ITNUCOXM.js.map +1 -0
- package/dist/{chunk-WPLVTJ5D.js → chunk-IUEN57TV.js} +10 -10
- package/dist/chunk-IUEN57TV.js.map +1 -0
- package/dist/{chunk-DL3HWOQ5.js → chunk-JNUWZ6D3.js} +9 -9
- package/dist/chunk-JNUWZ6D3.js.map +1 -0
- package/dist/chunk-K2WCO3NX.js +1 -0
- package/dist/chunk-KVOXU4T5.js +30 -0
- package/dist/chunk-KVOXU4T5.js.map +1 -0
- package/dist/chunk-KXGNJJXB.js +135 -0
- package/dist/chunk-KXGNJJXB.js.map +1 -0
- package/dist/chunk-LB7FD65R.js +163 -0
- package/dist/chunk-LB7FD65R.js.map +1 -0
- package/dist/{chunk-22DWZL57.js → chunk-LFLXAY2W.js} +43 -218
- package/dist/chunk-LFLXAY2W.js.map +1 -0
- package/dist/chunk-LMTH2RM6.js +129 -0
- package/dist/chunk-LMTH2RM6.js.map +1 -0
- package/dist/{aggregate/index.cjs → chunk-LV7M27WM.js} +390 -219
- package/dist/chunk-LV7M27WM.js.map +1 -0
- package/dist/{chunk-PE2FR4J3.js → chunk-LXQT4WMP.js} +16 -18
- package/dist/chunk-LXQT4WMP.js.map +1 -0
- package/dist/chunk-M2YKN37S.js +524 -0
- package/dist/chunk-M2YKN37S.js.map +1 -0
- package/dist/chunk-M6OST55S.js +14 -0
- package/dist/chunk-M6OST55S.js.map +1 -0
- package/dist/{chunk-F3GDRNUT.js → chunk-MD3Y6J3L.js} +35 -69
- package/dist/chunk-MD3Y6J3L.js.map +1 -0
- package/dist/{chunk-XJFLDA7A.js → chunk-MTMJVJ5W.js} +8 -7
- package/dist/chunk-MTMJVJ5W.js.map +1 -0
- package/dist/{chunk-DFMLEQZB.js → chunk-NF5JWERG.js} +5 -10
- package/dist/chunk-NF5JWERG.js.map +1 -0
- package/dist/{chunk-DO7C2TOG.js → chunk-PKHL44ER.js} +3 -3
- package/dist/{chunk-DO7C2TOG.js.map → chunk-PKHL44ER.js.map} +1 -1
- package/dist/chunk-PSMV73A5.js +117 -0
- package/dist/chunk-PSMV73A5.js.map +1 -0
- package/dist/chunk-PY4KJPYU.js +9 -0
- package/dist/chunk-PY4KJPYU.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/{chunk-DE6GKS6G.js → chunk-Q7SS3IME.js} +50 -9
- package/dist/chunk-Q7SS3IME.js.map +1 -0
- package/dist/chunk-QHJW5EXU.js +54 -0
- package/dist/chunk-QHJW5EXU.js.map +1 -0
- package/dist/{chunk-NONAAENK.js → chunk-RUEKROOS.js} +11 -4
- package/dist/chunk-RUEKROOS.js.map +1 -0
- package/dist/chunk-RUIMKQTA.js +23 -0
- package/dist/chunk-RUIMKQTA.js.map +1 -0
- package/dist/{chunk-TFBP23BX.js → chunk-SKF73JOP.js} +66 -7
- package/dist/chunk-SKF73JOP.js.map +1 -0
- package/dist/chunk-SM3AVUHC.js +42 -0
- package/dist/chunk-SM3AVUHC.js.map +1 -0
- package/dist/{chunk-ML236QKC.js → chunk-SMXWYP24.js} +5 -5
- package/dist/chunk-SMXWYP24.js.map +1 -0
- package/dist/chunk-SRB2XEWB.js +148 -0
- package/dist/chunk-SRB2XEWB.js.map +1 -0
- package/dist/chunk-SVLR4POP.js +64 -0
- package/dist/chunk-SVLR4POP.js.map +1 -0
- package/dist/chunk-TA66UMI4.js +123 -0
- package/dist/chunk-TA66UMI4.js.map +1 -0
- package/dist/chunk-TEILUWOI.js +664 -0
- package/dist/chunk-TEILUWOI.js.map +1 -0
- package/dist/chunk-TJYQIGAP.js +82 -0
- package/dist/chunk-TJYQIGAP.js.map +1 -0
- package/dist/{chunk-H2X3ISXG.js → chunk-UAG5KWVA.js} +7 -7
- package/dist/chunk-UAG5KWVA.js.map +1 -0
- package/dist/chunk-UDRIWL7A.js +382 -0
- package/dist/chunk-UDRIWL7A.js.map +1 -0
- package/dist/{chunk-2GLDA55J.js → chunk-UIU2THRG.js} +498 -133
- package/dist/chunk-UIU2THRG.js.map +1 -0
- package/dist/{chunk-3YPCK6JX.js → chunk-UPJNJGGA.js} +165 -423
- package/dist/chunk-UPJNJGGA.js.map +1 -0
- package/dist/chunk-UV5MFVO3.js +21 -0
- package/dist/chunk-UV5MFVO3.js.map +1 -0
- package/dist/{chunk-2WUSG3IT.js → chunk-V7RWQRG7.js} +5 -5
- package/dist/chunk-V7RWQRG7.js.map +1 -0
- package/dist/{chunk-VTKGMEPP.js → chunk-VCTFO5CO.js} +13 -3
- package/dist/chunk-VCTFO5CO.js.map +1 -0
- package/dist/{chunk-5T22KDPN.js → chunk-VFQGRQIH.js} +8 -8
- package/dist/chunk-VFQGRQIH.js.map +1 -0
- package/dist/{chunk-2QR2PQTT.js → chunk-VQNJ7UZL.js} +5 -3
- package/dist/chunk-VQNJ7UZL.js.map +1 -0
- package/dist/{chunk-DONMZAD2.js → chunk-WWGT2MDV.js} +43 -165
- package/dist/chunk-WWGT2MDV.js.map +1 -0
- package/dist/{chunk-EMIGCR7X.js → chunk-WXSYDNBT.js} +2 -2
- package/dist/chunk-WXSYDNBT.js.map +1 -0
- package/dist/chunk-WYSO2NIH.js +30 -0
- package/dist/chunk-WYSO2NIH.js.map +1 -0
- package/dist/chunk-XXYIOFUB.js +164 -0
- package/dist/chunk-XXYIOFUB.js.map +1 -0
- package/dist/{chunk-3BFJOWSU.js → chunk-Y22T3KQE.js} +35 -7
- package/dist/chunk-Y22T3KQE.js.map +1 -0
- package/dist/{chunk-A3JMGXPG.js → chunk-YMUGBZN2.js} +2 -2
- package/dist/chunk-YMUGBZN2.js.map +1 -0
- package/dist/{chunk-I5FOWO4J.js → chunk-ZCGAHGUS.js} +52 -73
- package/dist/chunk-ZCGAHGUS.js.map +1 -0
- package/dist/{chunk-FZU343FL.js → chunk-ZJADGNYF.js} +2 -2
- package/dist/chunk-ZJADGNYF.js.map +1 -0
- package/dist/{chunk-B6PB7JLN.js → chunk-ZYUC53LT.js} +427 -6
- package/dist/chunk-ZYUC53LT.js.map +1 -0
- package/dist/collection-facade-GQAOGJP2.js +33 -0
- package/dist/consent/index.d.ts +5 -7
- package/dist/consent/index.js +7 -5
- package/dist/consent/index.js.map +1 -1
- package/dist/crdt/index.d.ts +6 -2
- package/dist/crdt/index.js +3 -2
- package/dist/crdt/index.js.map +1 -1
- package/dist/decrypt-partition-IHtxEnTi.d.ts +21 -0
- package/dist/delegation-UL5HKLER.js +19 -0
- package/dist/derivations/index.d.ts +7 -9
- package/dist/derivations/index.js +11 -6
- package/dist/describe/index.d.ts +1 -0
- package/dist/describe/index.js +1 -0
- package/dist/describe-aBkJR2sd.d.ts +131 -0
- package/dist/{dev-unlock-B4kDxep_.d.ts → dev-unlock-C9Ro3v_O.d.ts} +1 -1
- package/dist/discriminant-BN9REW3o.d.ts +60 -0
- package/dist/enclave-UL5LW66V.js +88 -0
- package/dist/executor-2FWQRLMG.js +15 -0
- package/dist/executor-QZ7BXICW.js +9 -0
- package/dist/executor-Z5ZLJVTV.js +9 -0
- package/dist/export-accessible-KRV5W4GH.js +17 -0
- package/dist/extract-partition-GLKBOXFQ.js +30 -0
- package/dist/{fanout-sidecar-OKPMMPLG.js → fanout-sidecar-GF3DJ6KR.js} +34 -14
- package/dist/fanout-sidecar-GF3DJ6KR.js.map +1 -0
- package/dist/forget/index.d.ts +36 -0
- package/dist/forget/index.js +19 -0
- package/dist/forget/index.js.map +1 -0
- package/dist/guards/index.d.ts +13 -9
- package/dist/guards/index.js +12 -5
- package/dist/{hash-DdpVypUp.d.cts → hash-Cp5uwiox.d.ts} +5 -1
- package/dist/history/index.d.ts +6 -8
- package/dist/history/index.js +19 -12
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.d.ts +5 -7
- package/dist/i18n/index.js +104 -15
- package/dist/i18n/index.js.map +1 -1
- package/dist/in/index.d.ts +5 -0
- package/dist/in/index.js +1 -0
- package/dist/in/index.js.map +1 -0
- package/dist/index-B9QdHytu.d.ts +123 -0
- package/dist/index-BF9_96A5.d.ts +123 -0
- package/dist/{types-Df28QFKb.d.ts → index-BzUo1B6n.d.ts} +16270 -8358
- package/dist/index.d.ts +1088 -450
- package/dist/index.js +1165 -293
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.d.ts +6 -3
- package/dist/indexing/index.js +6 -5
- package/dist/indexing/index.js.map +1 -1
- package/dist/issue-Y6UVIR43.js +13 -0
- package/dist/issue-Y6UVIR43.js.map +1 -0
- package/dist/kernel/index.d.ts +32 -0
- package/dist/kernel/index.js +53 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/{ledger-TMRZYNVJ.js → ledger-RYI35CDS.js} +12 -9
- package/dist/ledger-RYI35CDS.js.map +1 -0
- package/dist/liberate-CRPZEV7O.js +18 -0
- package/dist/liberate-CRPZEV7O.js.map +1 -0
- package/dist/materialized-views/index.d.ts +6 -19
- package/dist/materialized-views/index.js +16 -12
- package/dist/mime-magic-CGhw37_E.d.ts +103 -0
- package/dist/noydb-367AM4HT.js +50 -0
- package/dist/noydb-367AM4HT.js.map +1 -0
- package/dist/on/index.d.ts +5 -0
- package/dist/on/index.js +11 -0
- package/dist/on/index.js.map +1 -0
- package/dist/overlay-views/index.d.ts +27 -11
- package/dist/overlay-views/index.js +7 -6
- package/dist/periods/index.d.ts +5 -7
- package/dist/periods/index.js +13 -9
- package/dist/pod/index.d.ts +63 -0
- package/dist/pod/index.js +61 -0
- package/dist/pod/index.js.map +1 -0
- package/dist/policy-IXK4FVXP.js +41 -0
- package/dist/policy-IXK4FVXP.js.map +1 -0
- package/dist/portability/index.d.ts +20 -0
- package/dist/portability/index.js +43 -0
- package/dist/portability/index.js.map +1 -0
- package/dist/{public-envelope-BW6OXORV.js → public-envelope-JHDQCPSX.js} +6 -5
- package/dist/public-envelope-JHDQCPSX.js.map +1 -0
- package/dist/query/index.d.ts +5 -3
- package/dist/query/index.js +21 -13
- package/dist/read-only-facade-5ADRJVTM.js +8 -0
- package/dist/read-only-facade-5ADRJVTM.js.map +1 -0
- package/dist/registry-45RJNWGU.js +9 -0
- package/dist/registry-45RJNWGU.js.map +1 -0
- package/dist/registry-5GRV5VXI.js +13 -0
- package/dist/registry-5GRV5VXI.js.map +1 -0
- package/dist/registry-VW6P6A3J.js +8 -0
- package/dist/registry-VW6P6A3J.js.map +1 -0
- package/dist/registry-WEUCHBO4.js +11 -0
- package/dist/registry-WEUCHBO4.js.map +1 -0
- package/dist/request-withdrawal-GBPH2FDY.js +25 -0
- package/dist/request-withdrawal-GBPH2FDY.js.map +1 -0
- package/dist/revoke-TUFRGI6S.js +18 -0
- package/dist/revoke-TUFRGI6S.js.map +1 -0
- package/dist/sealed-record/index.d.ts +69 -0
- package/dist/sealed-record/index.js +65 -0
- package/dist/sealed-record/index.js.map +1 -0
- package/dist/session/index.d.ts +6 -8
- package/dist/session/index.js +7 -5
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.d.ts +5 -7
- package/dist/shadow/index.js +4 -3
- package/dist/shadow/index.js.map +1 -1
- package/dist/{signer-72QAUSVW.js → signer-PNKTBVF7.js} +6 -5
- package/dist/signer-PNKTBVF7.js.map +1 -0
- package/dist/snapshots/index.d.ts +6 -8
- package/dist/snapshots/index.js +13 -11
- package/dist/snapshots/index.js.map +1 -1
- package/dist/{stale-6ZDBTQT7.js → stale-3JWHNDIY.js} +3 -2
- package/dist/stale-3JWHNDIY.js.map +1 -0
- package/dist/store-coordination-provider-3I7XWZZK.js +142 -0
- package/dist/store-coordination-provider-3I7XWZZK.js.map +1 -0
- package/dist/subject-index-O75wKshW.d.ts +362 -0
- package/dist/sync/index.d.ts +4 -6
- package/dist/sync/index.js +7 -6
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.d.ts +5 -7
- package/dist/team/index.js +20 -16
- package/dist/tiers/index.d.ts +5 -0
- package/dist/tiers/index.js +33 -0
- package/dist/tiers/index.js.map +1 -0
- package/dist/to/index.d.ts +5 -0
- package/dist/to/index.js +17 -0
- package/dist/to/index.js.map +1 -0
- package/dist/transition-guard-C7ol6oPw.d.ts +165 -0
- package/dist/tx/index.d.ts +23 -9
- package/dist/tx/index.js +13 -8
- package/dist/tx/index.js.map +1 -1
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ulid-DRH25k3y.d.ts +66 -0
- package/dist/ulid-PTAIMDG4.js +10 -0
- package/dist/ulid-PTAIMDG4.js.map +1 -0
- package/dist/util/index.d.ts +2 -0
- package/dist/util/index.js +7 -2
- package/dist/util/index.js.map +1 -1
- package/dist/vault-diff-B5fYNBL7.d.ts +147 -0
- package/dist/with/index.d.ts +38 -0
- package/dist/with/index.js +25 -0
- package/dist/with/index.js.map +1 -0
- package/dist/{with-materialized-view-BLkQxoQN.d.ts → with-materialized-view-6p0Fk8bL.d.ts} +1 -1
- package/dist/{with-overlayed-view-CRsSEwHR.d.ts → with-overlayed-view-BJ6mXGMd.d.ts} +2 -3
- package/dist/with-rollup-BvQo3ROo.d.ts +47 -0
- package/dist/withdraw-accessible-FFS46EOD.js +22 -0
- package/dist/withdraw-accessible-FFS46EOD.js.map +1 -0
- package/dist/zod-HAJM7LMS.js +14763 -0
- package/dist/zod-HAJM7LMS.js.map +1 -0
- package/package.json +121 -201
- package/dist/aggregate/index.cjs.map +0 -1
- package/dist/aggregate/index.d.cts +0 -38
- package/dist/attestation/index.cjs +0 -305
- package/dist/attestation/index.cjs.map +0 -1
- package/dist/attestation/index.d.cts +0 -52
- package/dist/blobs/index.cjs +0 -1480
- package/dist/blobs/index.cjs.map +0 -1
- package/dist/blobs/index.d.cts +0 -46
- package/dist/bundle/index.cjs +0 -19264
- package/dist/bundle/index.cjs.map +0 -1
- package/dist/bundle/index.d.cts +0 -176
- package/dist/chunk-22DWZL57.js.map +0 -1
- package/dist/chunk-2GLDA55J.js.map +0 -1
- package/dist/chunk-2QR2PQTT.js.map +0 -1
- package/dist/chunk-2WUSG3IT.js.map +0 -1
- package/dist/chunk-3BFJOWSU.js.map +0 -1
- package/dist/chunk-3YPCK6JX.js.map +0 -1
- package/dist/chunk-53XBRIRT.js.map +0 -1
- package/dist/chunk-5T22KDPN.js.map +0 -1
- package/dist/chunk-5XHKQ56N.js +0 -340
- package/dist/chunk-5XHKQ56N.js.map +0 -1
- package/dist/chunk-6CME4UEK.js.map +0 -1
- package/dist/chunk-6STK5TQP.js +0 -139
- package/dist/chunk-6STK5TQP.js.map +0 -1
- package/dist/chunk-A3JMGXPG.js.map +0 -1
- package/dist/chunk-B6PB7JLN.js.map +0 -1
- package/dist/chunk-BVRYKATC.js.map +0 -1
- package/dist/chunk-DE6GKS6G.js.map +0 -1
- package/dist/chunk-DFMLEQZB.js.map +0 -1
- package/dist/chunk-DJHHA6XH.js.map +0 -1
- package/dist/chunk-DL3HWOQ5.js.map +0 -1
- package/dist/chunk-DONMZAD2.js.map +0 -1
- package/dist/chunk-EMIGCR7X.js.map +0 -1
- package/dist/chunk-F3GDRNUT.js.map +0 -1
- package/dist/chunk-FZU343FL.js.map +0 -1
- package/dist/chunk-H2X3ISXG.js.map +0 -1
- package/dist/chunk-HNRHLRDC.js.map +0 -1
- package/dist/chunk-I5FOWO4J.js.map +0 -1
- package/dist/chunk-J66GRPNH.js.map +0 -1
- package/dist/chunk-JWRVQKRZ.js.map +0 -1
- package/dist/chunk-K3DK3NU5.js.map +0 -1
- package/dist/chunk-ML236QKC.js.map +0 -1
- package/dist/chunk-NONAAENK.js.map +0 -1
- package/dist/chunk-O3VZPBZG.js.map +0 -1
- package/dist/chunk-OIF6LZUR.js.map +0 -1
- package/dist/chunk-OQ6PIGHA.js +0 -19
- package/dist/chunk-OQ6PIGHA.js.map +0 -1
- package/dist/chunk-PE2FR4J3.js.map +0 -1
- package/dist/chunk-PP6W64Y3.js +0 -275
- package/dist/chunk-PP6W64Y3.js.map +0 -1
- package/dist/chunk-PX35GA7L.js.map +0 -1
- package/dist/chunk-QEILDE6R.js +0 -793
- package/dist/chunk-QEILDE6R.js.map +0 -1
- package/dist/chunk-QODLLGQ7.js.map +0 -1
- package/dist/chunk-RAZ4OVLL.js +0 -51
- package/dist/chunk-RAZ4OVLL.js.map +0 -1
- package/dist/chunk-SYMWGEET.js.map +0 -1
- package/dist/chunk-T7JEBOGN.js.map +0 -1
- package/dist/chunk-TFBP23BX.js.map +0 -1
- package/dist/chunk-TV3YZ35S.js +0 -90
- package/dist/chunk-TV3YZ35S.js.map +0 -1
- package/dist/chunk-U26HQ6KJ.js.map +0 -1
- package/dist/chunk-UF3BUNQZ.js +0 -1
- package/dist/chunk-UMLVJTYV.js +0 -20
- package/dist/chunk-UMLVJTYV.js.map +0 -1
- package/dist/chunk-VTKGMEPP.js.map +0 -1
- package/dist/chunk-W6EQLGMB.js +0 -100
- package/dist/chunk-W6EQLGMB.js.map +0 -1
- package/dist/chunk-WIRRPTFH.js +0 -17
- package/dist/chunk-WIRRPTFH.js.map +0 -1
- package/dist/chunk-WPLVTJ5D.js.map +0 -1
- package/dist/chunk-XJFLDA7A.js.map +0 -1
- package/dist/chunk-Z6FNBOTC.js.map +0 -1
- package/dist/chunk-ZYWZWG6G.js.map +0 -1
- package/dist/consent/index.cjs +0 -204
- package/dist/consent/index.cjs.map +0 -1
- package/dist/consent/index.d.cts +0 -25
- package/dist/crdt/index.cjs +0 -152
- package/dist/crdt/index.cjs.map +0 -1
- package/dist/crdt/index.d.cts +0 -30
- package/dist/crypto-HTZ4FJOP.js +0 -44
- package/dist/delegation-RI54P6I5.js +0 -17
- package/dist/derivations/index.cjs +0 -351
- package/dist/derivations/index.cjs.map +0 -1
- package/dist/derivations/index.d.cts +0 -72
- package/dist/dev-unlock-BIoEFbwm.d.cts +0 -263
- package/dist/executor-5PNY7LGW.js +0 -8
- package/dist/executor-B4QIYGZX.js +0 -8
- package/dist/executor-BWXXDQ7K.js +0 -11
- package/dist/fanout-sidecar-OKPMMPLG.js.map +0 -1
- package/dist/guards/index.cjs +0 -322
- package/dist/guards/index.cjs.map +0 -1
- package/dist/guards/index.d.cts +0 -31
- package/dist/hash-HJqD14vS.d.ts +0 -63
- package/dist/history/index.cjs +0 -1222
- package/dist/history/index.cjs.map +0 -1
- package/dist/history/index.d.cts +0 -63
- package/dist/i18n/index.cjs +0 -1100
- package/dist/i18n/index.cjs.map +0 -1
- package/dist/i18n/index.d.cts +0 -39
- package/dist/index-4fBVt8j9.d.cts +0 -2387
- package/dist/index-D8I_pyJD.d.ts +0 -2387
- package/dist/index.cjs +0 -24487
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -776
- package/dist/indexing/index.cjs +0 -742
- package/dist/indexing/index.cjs.map +0 -1
- package/dist/indexing/index.d.cts +0 -36
- package/dist/issue-VGDPP4B5.js +0 -12
- package/dist/lazy-builder-7tIpFyWN.d.ts +0 -304
- package/dist/lazy-builder-wY4pMCEe.d.cts +0 -304
- package/dist/materialized-views/index.cjs +0 -854
- package/dist/materialized-views/index.cjs.map +0 -1
- package/dist/materialized-views/index.d.cts +0 -186
- package/dist/mime-magic-CBBSOkjm.d.cts +0 -50
- package/dist/mime-magic-CBBSOkjm.d.ts +0 -50
- package/dist/noydb-G725ZSZG.js +0 -34
- package/dist/overlay-views/index.cjs +0 -359
- package/dist/overlay-views/index.cjs.map +0 -1
- package/dist/overlay-views/index.d.cts +0 -82
- package/dist/periods/index.cjs +0 -1041
- package/dist/periods/index.cjs.map +0 -1
- package/dist/periods/index.d.cts +0 -22
- package/dist/predicate-BSAGEyu5.d.cts +0 -209
- package/dist/predicate-BSAGEyu5.d.ts +0 -209
- package/dist/query/index.cjs +0 -2375
- package/dist/query/index.cjs.map +0 -1
- package/dist/query/index.d.cts +0 -3
- package/dist/read-only-facade-ITU6L7BL.js +0 -7
- package/dist/registry-3QP3YKQS.js +0 -8
- package/dist/registry-DKEXOJVO.js +0 -7
- package/dist/registry-OJIOSBV6.js +0 -10
- package/dist/registry-USRVT6YF.js +0 -8
- package/dist/revoke-JCC7N56X.js +0 -17
- package/dist/session/index.cjs +0 -495
- package/dist/session/index.cjs.map +0 -1
- package/dist/session/index.d.cts +0 -46
- package/dist/shadow/index.cjs +0 -133
- package/dist/shadow/index.cjs.map +0 -1
- package/dist/shadow/index.d.cts +0 -17
- package/dist/snapshots/index.cjs +0 -937
- package/dist/snapshots/index.cjs.map +0 -1
- package/dist/snapshots/index.d.cts +0 -28
- package/dist/store/index.cjs +0 -1083
- package/dist/store/index.cjs.map +0 -1
- package/dist/store/index.d.cts +0 -492
- package/dist/store/index.d.ts +0 -492
- package/dist/store/index.js +0 -37
- package/dist/strategy-BSxFXGzb.d.cts +0 -110
- package/dist/strategy-BSxFXGzb.d.ts +0 -110
- package/dist/strategy-DSTrsZ8t.d.cts +0 -601
- package/dist/strategy-DSTrsZ8t.d.ts +0 -601
- package/dist/sync/index.cjs +0 -1062
- package/dist/sync/index.cjs.map +0 -1
- package/dist/sync/index.d.cts +0 -43
- package/dist/team/index.cjs +0 -2798
- package/dist/team/index.cjs.map +0 -1
- package/dist/team/index.d.cts +0 -118
- package/dist/tx/index.cjs +0 -544
- package/dist/tx/index.cjs.map +0 -1
- package/dist/tx/index.d.cts +0 -21
- package/dist/types-DyXYr8rE.d.cts +0 -12818
- package/dist/ulid-COREQ2RQ.js +0 -9
- package/dist/ulid-Drr7ykr6.d.cts +0 -603
- package/dist/util/index.cjs +0 -230
- package/dist/util/index.cjs.map +0 -1
- package/dist/util/index.d.cts +0 -77
- package/dist/with-derivation-DFnFByiQ.d.ts +0 -13
- package/dist/with-derivation-DU3Sjazm.d.cts +0 -13
- package/dist/with-guard-ByyxmEe7.d.cts +0 -18
- package/dist/with-guard-qube6BMI.d.ts +0 -18
- package/dist/with-materialized-view-BmEToIR1.d.cts +0 -27
- package/dist/with-overlayed-view-BMsQQbWm.d.cts +0 -13
- /package/dist/{store → adapter}/index.js.map +0 -0
- /package/dist/{chunk-UF3BUNQZ.js.map → api-RW3KP7WU.js.map} +0 -0
- /package/dist/{crypto-HTZ4FJOP.js.map → as/index.js.map} +0 -0
- /package/dist/{delegation-RI54P6I5.js.map → at/index.js.map} +0 -0
- /package/dist/{executor-5PNY7LGW.js.map → by/index.js.map} +0 -0
- /package/dist/{executor-B4QIYGZX.js.map → cargo/index.js.map} +0 -0
- /package/dist/{executor-BWXXDQ7K.js.map → chunk-BGIZAFY7.js.map} +0 -0
- /package/dist/{issue-VGDPP4B5.js.map → chunk-CHFZDSE4.js.map} +0 -0
- /package/dist/{ledger-TMRZYNVJ.js.map → chunk-GHVIKOHT.js.map} +0 -0
- /package/dist/{noydb-G725ZSZG.js.map → chunk-K2WCO3NX.js.map} +0 -0
- /package/dist/{public-envelope-BW6OXORV.js.map → chunk-PZ5AY32C.js.map} +0 -0
- /package/dist/{read-only-facade-ITU6L7BL.js.map → collection-facade-GQAOGJP2.js.map} +0 -0
- /package/dist/{registry-3QP3YKQS.js.map → delegation-UL5HKLER.js.map} +0 -0
- /package/dist/{registry-DKEXOJVO.js.map → describe/index.js.map} +0 -0
- /package/dist/{registry-OJIOSBV6.js.map → enclave-UL5LW66V.js.map} +0 -0
- /package/dist/{registry-USRVT6YF.js.map → executor-2FWQRLMG.js.map} +0 -0
- /package/dist/{revoke-JCC7N56X.js.map → executor-QZ7BXICW.js.map} +0 -0
- /package/dist/{signer-72QAUSVW.js.map → executor-Z5ZLJVTV.js.map} +0 -0
- /package/dist/{stale-6ZDBTQT7.js.map → export-accessible-KRV5W4GH.js.map} +0 -0
- /package/dist/{ulid-COREQ2RQ.js.map → extract-partition-GLKBOXFQ.js.map} +0 -0
|
@@ -1,45 +1,153 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import {
|
|
2
|
+
MoneyUnsupportedError,
|
|
3
|
+
formatScaledInt,
|
|
4
|
+
parseToScaledInt,
|
|
5
|
+
readPath,
|
|
6
|
+
scaleForCurrency
|
|
7
|
+
} from "./chunk-M2YKN37S.js";
|
|
8
|
+
import {
|
|
9
|
+
applyI18nLocale
|
|
10
|
+
} from "./chunk-5LUY7UTV.js";
|
|
11
|
+
import {
|
|
12
|
+
GroupCardinalityError
|
|
13
|
+
} from "./chunk-ZYUC53LT.js";
|
|
14
|
+
|
|
15
|
+
// src/with-lookup/aggregate/reducers.ts
|
|
16
|
+
function count(opts) {
|
|
17
|
+
const _seed = opts?.seed;
|
|
18
|
+
void _seed;
|
|
19
|
+
return {
|
|
20
|
+
op: "count",
|
|
21
|
+
init: () => 0,
|
|
22
|
+
step: (state) => state + 1,
|
|
23
|
+
remove: (state) => state - 1,
|
|
24
|
+
finalize: (state) => state,
|
|
25
|
+
merge: (a, b) => a + b
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function sum(field, opts) {
|
|
29
|
+
const _seed = opts?.seed;
|
|
30
|
+
void _seed;
|
|
31
|
+
return {
|
|
32
|
+
op: "sum",
|
|
33
|
+
field,
|
|
34
|
+
// Money-only metadata, read by `wrapMoneyReducers`. No effect on a
|
|
35
|
+
// generic numeric sum.
|
|
36
|
+
...opts?.convertTo !== void 0 ? { convertTo: opts.convertTo } : {},
|
|
37
|
+
...opts?.fx !== void 0 ? { fx: opts.fx } : {},
|
|
38
|
+
init: () => 0,
|
|
39
|
+
step: (state, record) => state + readNumber(record, field),
|
|
40
|
+
remove: (state, record) => state - readNumber(record, field),
|
|
41
|
+
finalize: (state) => state,
|
|
42
|
+
merge: (a, b) => a + b
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function avg(field, opts) {
|
|
46
|
+
const _seed = opts?.seed;
|
|
47
|
+
void _seed;
|
|
48
|
+
return {
|
|
49
|
+
op: "avg",
|
|
50
|
+
field,
|
|
51
|
+
init: () => ({ sum: 0, count: 0 }),
|
|
52
|
+
step: (state, record) => ({
|
|
53
|
+
sum: state.sum + readNumber(record, field),
|
|
54
|
+
count: state.count + 1
|
|
55
|
+
}),
|
|
56
|
+
remove: (state, record) => ({
|
|
57
|
+
sum: state.sum - readNumber(record, field),
|
|
58
|
+
count: state.count - 1
|
|
59
|
+
}),
|
|
60
|
+
finalize: (state) => state.count === 0 ? null : state.sum / state.count,
|
|
61
|
+
merge: (a, b) => ({ sum: a.sum + b.sum, count: a.count + b.count })
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function pushValue(state, value) {
|
|
65
|
+
return { values: [...state.values, value] };
|
|
66
|
+
}
|
|
67
|
+
function removeValue(state, value) {
|
|
68
|
+
const idx = state.values.indexOf(value);
|
|
69
|
+
if (idx < 0) return state;
|
|
70
|
+
const next = state.values.slice();
|
|
71
|
+
next.splice(idx, 1);
|
|
72
|
+
return { values: next };
|
|
73
|
+
}
|
|
74
|
+
function min(field, opts) {
|
|
75
|
+
const _seed = opts?.seed;
|
|
76
|
+
void _seed;
|
|
77
|
+
return {
|
|
78
|
+
op: "min",
|
|
79
|
+
field,
|
|
80
|
+
init: () => ({ values: [] }),
|
|
81
|
+
step: (state, record) => pushValue(state, readNumber(record, field)),
|
|
82
|
+
remove: (state, record) => removeValue(state, readNumber(record, field)),
|
|
83
|
+
finalize: (state) => {
|
|
84
|
+
if (state.values.length === 0) return null;
|
|
85
|
+
let out = state.values[0];
|
|
86
|
+
for (let i = 1; i < state.values.length; i++) {
|
|
87
|
+
const v = state.values[i];
|
|
88
|
+
if (v < out) out = v;
|
|
89
|
+
}
|
|
90
|
+
return out;
|
|
91
|
+
},
|
|
92
|
+
merge: (a, b) => ({ values: [...a.values, ...b.values] })
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function max(field, opts) {
|
|
96
|
+
const _seed = opts?.seed;
|
|
97
|
+
void _seed;
|
|
98
|
+
return {
|
|
99
|
+
op: "max",
|
|
100
|
+
field,
|
|
101
|
+
init: () => ({ values: [] }),
|
|
102
|
+
step: (state, record) => pushValue(state, readNumber(record, field)),
|
|
103
|
+
remove: (state, record) => removeValue(state, readNumber(record, field)),
|
|
104
|
+
finalize: (state) => {
|
|
105
|
+
if (state.values.length === 0) return null;
|
|
106
|
+
let out = state.values[0];
|
|
107
|
+
for (let i = 1; i < state.values.length; i++) {
|
|
108
|
+
const v = state.values[i];
|
|
109
|
+
if (v > out) out = v;
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
},
|
|
113
|
+
merge: (a, b) => ({ values: [...a.values, ...b.values] })
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function moneySum(field, opts) {
|
|
117
|
+
return sum(field, opts);
|
|
118
|
+
}
|
|
119
|
+
function moneyMin(field, opts) {
|
|
120
|
+
return min(field, opts);
|
|
121
|
+
}
|
|
122
|
+
function moneyMax(field, opts) {
|
|
123
|
+
return max(field, opts);
|
|
124
|
+
}
|
|
125
|
+
var reducerBuilder = {
|
|
126
|
+
count,
|
|
127
|
+
// The generic F parameter on sum/min/max in the interface is type-only; the
|
|
128
|
+
// standalone factories are plain `(field: string)` functions. With M=never the
|
|
129
|
+
// conditional return collapses to the numeric branch, matching the factories'
|
|
130
|
+
// return type, but TypeScript cannot verify that collapse for a generic method
|
|
131
|
+
// signature — so each factory is cast directly to the method's type.
|
|
132
|
+
sum,
|
|
133
|
+
avg,
|
|
134
|
+
min,
|
|
135
|
+
max,
|
|
136
|
+
moneySum,
|
|
137
|
+
moneyMin,
|
|
138
|
+
moneyMax
|
|
9
139
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
140
|
+
function readNumber(record, field) {
|
|
141
|
+
const value = readPath(record, field);
|
|
142
|
+
if (typeof value === "object" && value !== null && "amount" in value && "currency" in value) {
|
|
143
|
+
throw new Error(
|
|
144
|
+
`aggregate: field "${field}" holds a money value but was not money-aware \u2014 declare it in the collection's moneyFields so sum/min/max stay exact`
|
|
145
|
+
);
|
|
15
146
|
}
|
|
16
|
-
return
|
|
17
|
-
}
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/aggregate/index.ts
|
|
21
|
-
var aggregate_exports = {};
|
|
22
|
-
__export(aggregate_exports, {
|
|
23
|
-
Aggregation: () => Aggregation,
|
|
24
|
-
GROUPBY_MAX_CARDINALITY: () => GROUPBY_MAX_CARDINALITY,
|
|
25
|
-
GROUPBY_WARN_CARDINALITY: () => GROUPBY_WARN_CARDINALITY,
|
|
26
|
-
GroupedAggregation: () => GroupedAggregation,
|
|
27
|
-
GroupedQuery: () => GroupedQuery,
|
|
28
|
-
GroupedQueryN: () => GroupedQueryN,
|
|
29
|
-
avg: () => avg,
|
|
30
|
-
buildLiveAggregation: () => buildLiveAggregation,
|
|
31
|
-
count: () => count,
|
|
32
|
-
groupAndReduce: () => groupAndReduce,
|
|
33
|
-
max: () => max,
|
|
34
|
-
min: () => min,
|
|
35
|
-
reduceRecords: () => reduceRecords,
|
|
36
|
-
resetGroupByWarnings: () => resetGroupByWarnings,
|
|
37
|
-
sum: () => sum,
|
|
38
|
-
withAggregate: () => withAggregate
|
|
39
|
-
});
|
|
40
|
-
module.exports = __toCommonJS(aggregate_exports);
|
|
147
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
148
|
+
}
|
|
41
149
|
|
|
42
|
-
// src/aggregate/aggregation.ts
|
|
150
|
+
// src/with-lookup/aggregate/aggregation.ts
|
|
43
151
|
function reduceRecords(records, spec) {
|
|
44
152
|
const state = {};
|
|
45
153
|
for (const key of Object.keys(spec)) {
|
|
@@ -162,22 +270,7 @@ function buildLiveAggregation(recompute, upstreams) {
|
|
|
162
270
|
return new LiveAggregationImpl(recompute, upstreams);
|
|
163
271
|
}
|
|
164
272
|
|
|
165
|
-
// src/
|
|
166
|
-
function readPath(record, path) {
|
|
167
|
-
if (record === null || record === void 0) return void 0;
|
|
168
|
-
if (!path.includes(".")) {
|
|
169
|
-
return record[path];
|
|
170
|
-
}
|
|
171
|
-
const segments = path.split(".");
|
|
172
|
-
let cursor = record;
|
|
173
|
-
for (const segment of segments) {
|
|
174
|
-
if (cursor === null || cursor === void 0) return void 0;
|
|
175
|
-
cursor = cursor[segment];
|
|
176
|
-
}
|
|
177
|
-
return cursor;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// src/aggregate/canonical-key.ts
|
|
273
|
+
// src/with-lookup/aggregate/canonical-key.ts
|
|
181
274
|
function canonicalGroupKey(fields, row) {
|
|
182
275
|
const sorted = [...fields].sort();
|
|
183
276
|
const parts = [];
|
|
@@ -189,36 +282,192 @@ function canonicalGroupKey(fields, row) {
|
|
|
189
282
|
return parts.join("|");
|
|
190
283
|
}
|
|
191
284
|
|
|
192
|
-
// src/
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
this.name = "NoydbError";
|
|
199
|
-
this.code = code;
|
|
285
|
+
// src/with-shape/money/money-reducer.ts
|
|
286
|
+
function toScaledIntFromAny(v, scale) {
|
|
287
|
+
if (typeof v === "bigint") return v;
|
|
288
|
+
if (typeof v === "number") {
|
|
289
|
+
const r = parseToScaledInt(v, scale);
|
|
290
|
+
return r.ok ? r.value : null;
|
|
200
291
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
"GROUP_CARDINALITY",
|
|
212
|
-
`.groupBy("${field}") produced ${cardinality} distinct groups, exceeding the ${maxGroups}-group ceiling. This is almost always a query mistake \u2014 grouping on a high-uniqueness field like "id" or "createdAt" produces one bucket per record. Narrow the query with .where() before grouping, or group on a lower-cardinality field (status, category, clientId). If you genuinely need high-cardinality grouping, file an issue with your use case.`
|
|
213
|
-
);
|
|
214
|
-
this.name = "GroupCardinalityError";
|
|
215
|
-
this.field = field;
|
|
216
|
-
this.cardinality = cardinality;
|
|
217
|
-
this.maxGroups = maxGroups;
|
|
292
|
+
if (typeof v === "string") {
|
|
293
|
+
if (!v.includes(".")) {
|
|
294
|
+
try {
|
|
295
|
+
return BigInt(v);
|
|
296
|
+
} catch {
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const r = parseToScaledInt(v, scale);
|
|
301
|
+
return r.ok ? r.value : null;
|
|
218
302
|
}
|
|
219
|
-
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
function readMoney(record, field, desc) {
|
|
306
|
+
const raw = readPath(record, field);
|
|
307
|
+
if (raw === null || raw === void 0) return null;
|
|
308
|
+
if (desc.mode === "fixed") {
|
|
309
|
+
const cur = desc.fixedCurrency;
|
|
310
|
+
const value2 = toScaledIntFromAny(raw, desc.scaleFor(cur));
|
|
311
|
+
return value2 === null ? null : { currency: cur, value: value2 };
|
|
312
|
+
}
|
|
313
|
+
if (typeof raw !== "object") return null;
|
|
314
|
+
const o = raw;
|
|
315
|
+
if (typeof o.currency !== "string") return null;
|
|
316
|
+
const scale = desc.allows(o.currency) ? desc.scaleFor(o.currency) : 0;
|
|
317
|
+
const value = toScaledIntFromAny(o.amount, scale);
|
|
318
|
+
return value === null ? null : { currency: o.currency, value };
|
|
319
|
+
}
|
|
320
|
+
function targetScaleFor(desc, currency) {
|
|
321
|
+
if (desc.allows(currency)) return desc.scaleFor(currency);
|
|
322
|
+
const s = scaleForCurrency(currency);
|
|
323
|
+
if (s === null) {
|
|
324
|
+
throw new Error(`money: cannot determine scale for conversion target "${currency}"`);
|
|
325
|
+
}
|
|
326
|
+
return s;
|
|
327
|
+
}
|
|
328
|
+
function parseRate(rate) {
|
|
329
|
+
const s = String(rate).trim();
|
|
330
|
+
const neg = s.startsWith("-");
|
|
331
|
+
const body = neg ? s.slice(1) : s;
|
|
332
|
+
const dot = body.indexOf(".");
|
|
333
|
+
const intPart = dot === -1 ? body : body.slice(0, dot);
|
|
334
|
+
const fracPart = dot === -1 ? "" : body.slice(dot + 1);
|
|
335
|
+
const int = BigInt((intPart === "" ? "0" : intPart) + fracPart);
|
|
336
|
+
return { int: neg ? -int : int, scale: fracPart.length };
|
|
337
|
+
}
|
|
338
|
+
function divRoundHalfEven(n, d) {
|
|
339
|
+
const q = n / d;
|
|
340
|
+
const r = n % d;
|
|
341
|
+
const twiceR = (r < 0n ? -r : r) * 2n;
|
|
342
|
+
if (twiceR < d) return q;
|
|
343
|
+
if (twiceR > d) return q + (n < 0n ? -1n : 1n);
|
|
344
|
+
return q % 2n === 0n ? q : q + (n < 0n ? -1n : 1n);
|
|
345
|
+
}
|
|
346
|
+
function convertScaled(value, srcScale, rate, targetScale) {
|
|
347
|
+
const { int: rateInt, scale: rateScale } = parseRate(rate);
|
|
348
|
+
const product = value * rateInt;
|
|
349
|
+
const curScale = srcScale + rateScale;
|
|
350
|
+
if (curScale === targetScale) return product;
|
|
351
|
+
if (curScale < targetScale) return product * 10n ** BigInt(targetScale - curScale);
|
|
352
|
+
return divRoundHalfEven(product, 10n ** BigInt(curScale - targetScale));
|
|
353
|
+
}
|
|
354
|
+
function finalizeSum(state, desc, convertTo, fx) {
|
|
355
|
+
if (convertTo !== void 0) {
|
|
356
|
+
if (fx === void 0) {
|
|
357
|
+
throw new Error(`money: sum convertTo "${convertTo}" requires an fx rate map`);
|
|
358
|
+
}
|
|
359
|
+
const targetScale = targetScaleFor(desc, convertTo);
|
|
360
|
+
let total = 0n;
|
|
361
|
+
for (const [cur, v] of state) {
|
|
362
|
+
if (cur === convertTo) {
|
|
363
|
+
total += convertScaled(v, desc.scaleFor(cur), 1, targetScale);
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
const rate = fx[`${cur}->${convertTo}`];
|
|
367
|
+
if (rate === void 0) {
|
|
368
|
+
throw new Error(`money: no fx rate for "${cur}->${convertTo}"`);
|
|
369
|
+
}
|
|
370
|
+
total += convertScaled(v, desc.scaleFor(cur), rate, targetScale);
|
|
371
|
+
}
|
|
372
|
+
return formatScaledInt(total, targetScale);
|
|
373
|
+
}
|
|
374
|
+
if (desc.mode === "fixed") {
|
|
375
|
+
const cur = desc.fixedCurrency;
|
|
376
|
+
return formatScaledInt(state.get(cur) ?? 0n, desc.scaleFor(cur));
|
|
377
|
+
}
|
|
378
|
+
const out = {};
|
|
379
|
+
for (const [cur, v] of state) out[cur] = formatScaledInt(v, desc.scaleFor(cur));
|
|
380
|
+
return out;
|
|
381
|
+
}
|
|
382
|
+
function moneySumReducer(field, desc, convertTo, fx) {
|
|
383
|
+
return {
|
|
384
|
+
op: "sum",
|
|
385
|
+
field,
|
|
386
|
+
init: () => /* @__PURE__ */ new Map(),
|
|
387
|
+
step: (state, record) => {
|
|
388
|
+
const m = readMoney(record, field, desc);
|
|
389
|
+
if (m) state.set(m.currency, (state.get(m.currency) ?? 0n) + m.value);
|
|
390
|
+
return state;
|
|
391
|
+
},
|
|
392
|
+
remove: (state, record) => {
|
|
393
|
+
const m = readMoney(record, field, desc);
|
|
394
|
+
if (m) state.set(m.currency, (state.get(m.currency) ?? 0n) - m.value);
|
|
395
|
+
return state;
|
|
396
|
+
},
|
|
397
|
+
finalize: (state) => finalizeSum(state, desc, convertTo, fx)
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
function extremum(values, op) {
|
|
401
|
+
let out = values[0];
|
|
402
|
+
for (let i = 1; i < values.length; i++) {
|
|
403
|
+
const v = values[i];
|
|
404
|
+
if (op === "min" ? v < out : v > out) out = v;
|
|
405
|
+
}
|
|
406
|
+
return out;
|
|
407
|
+
}
|
|
408
|
+
function moneyMinMaxReducer(op, field, desc) {
|
|
409
|
+
return {
|
|
410
|
+
op,
|
|
411
|
+
field,
|
|
412
|
+
init: () => /* @__PURE__ */ new Map(),
|
|
413
|
+
step: (state, record) => {
|
|
414
|
+
const m = readMoney(record, field, desc);
|
|
415
|
+
if (m) {
|
|
416
|
+
const arr = state.get(m.currency);
|
|
417
|
+
if (arr) arr.push(m.value);
|
|
418
|
+
else state.set(m.currency, [m.value]);
|
|
419
|
+
}
|
|
420
|
+
return state;
|
|
421
|
+
},
|
|
422
|
+
remove: (state, record) => {
|
|
423
|
+
const m = readMoney(record, field, desc);
|
|
424
|
+
if (m) {
|
|
425
|
+
const arr = state.get(m.currency);
|
|
426
|
+
if (arr) {
|
|
427
|
+
const idx = arr.indexOf(m.value);
|
|
428
|
+
if (idx >= 0) arr.splice(idx, 1);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
return state;
|
|
432
|
+
},
|
|
433
|
+
finalize: (state) => {
|
|
434
|
+
if (desc.mode === "fixed") {
|
|
435
|
+
const cur = desc.fixedCurrency;
|
|
436
|
+
const arr = state.get(cur);
|
|
437
|
+
if (!arr || arr.length === 0) return null;
|
|
438
|
+
return formatScaledInt(extremum(arr, op), desc.scaleFor(cur));
|
|
439
|
+
}
|
|
440
|
+
const out = {};
|
|
441
|
+
for (const [cur, arr] of state) {
|
|
442
|
+
if (arr.length > 0) out[cur] = formatScaledInt(extremum(arr, op), desc.scaleFor(cur));
|
|
443
|
+
}
|
|
444
|
+
return out;
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
function wrapMoneyReducers(spec, moneyFields) {
|
|
449
|
+
let changed = false;
|
|
450
|
+
const out = {};
|
|
451
|
+
for (const [key, reducer] of Object.entries(spec)) {
|
|
452
|
+
const field = reducer.field;
|
|
453
|
+
const desc = field ? moneyFields[field] : void 0;
|
|
454
|
+
if (desc && reducer.op === "avg") {
|
|
455
|
+
throw new MoneyUnsupportedError(
|
|
456
|
+
field,
|
|
457
|
+
`avg() is not supported on money field "${field}" in v1 \u2014 use sum() and count() and divide at the boundary.`
|
|
458
|
+
);
|
|
459
|
+
}
|
|
460
|
+
if (desc && (reducer.op === "sum" || reducer.op === "min" || reducer.op === "max")) {
|
|
461
|
+
changed = true;
|
|
462
|
+
out[key] = reducer.op === "sum" ? moneySumReducer(field, desc, reducer.convertTo, reducer.fx) : moneyMinMaxReducer(reducer.op, field, desc);
|
|
463
|
+
} else {
|
|
464
|
+
out[key] = reducer;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
return changed ? out : spec;
|
|
468
|
+
}
|
|
220
469
|
|
|
221
|
-
// src/aggregate/groupby.ts
|
|
470
|
+
// src/with-lookup/aggregate/groupby.ts
|
|
222
471
|
var GROUPBY_WARN_CARDINALITY = 1e4;
|
|
223
472
|
var GROUPBY_MAX_CARDINALITY = 1e5;
|
|
224
473
|
var warnedCardinalityFields = /* @__PURE__ */ new Set();
|
|
@@ -235,15 +484,17 @@ function resetGroupByWarnings() {
|
|
|
235
484
|
warnedCardinalityFields.clear();
|
|
236
485
|
}
|
|
237
486
|
var GroupedQueryBase = class {
|
|
238
|
-
constructor(executeRecords, fieldOrFields, upstreams, dictLabelResolver) {
|
|
487
|
+
constructor(executeRecords, fieldOrFields, upstreams, dictLabelResolver, moneyFields) {
|
|
239
488
|
this.executeRecords = executeRecords;
|
|
240
489
|
this.upstreams = upstreams;
|
|
241
490
|
this.dictLabelResolver = dictLabelResolver;
|
|
491
|
+
this.moneyFields = moneyFields;
|
|
242
492
|
this.fields = typeof fieldOrFields === "string" ? [fieldOrFields] : [...fieldOrFields];
|
|
243
493
|
}
|
|
244
494
|
executeRecords;
|
|
245
495
|
upstreams;
|
|
246
496
|
dictLabelResolver;
|
|
497
|
+
moneyFields;
|
|
247
498
|
/**
|
|
248
499
|
* Field set this grouped query buckets on. Stored in declaration
|
|
249
500
|
* order — the same order is preserved on every result row by
|
|
@@ -251,40 +502,43 @@ var GroupedQueryBase = class {
|
|
|
251
502
|
* `[field]`.
|
|
252
503
|
*/
|
|
253
504
|
fields;
|
|
505
|
+
/** Apply money-aware reducer rewriting when money fields are declared. */
|
|
506
|
+
wrapSpec(spec) {
|
|
507
|
+
return this.moneyFields ? wrapMoneyReducers(spec, this.moneyFields) : spec;
|
|
508
|
+
}
|
|
254
509
|
};
|
|
255
510
|
var GroupedQuery = class extends GroupedQueryBase {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
* with `.run()`, `.runAsync()`, and `.live()` terminals — same shape
|
|
259
|
-
* as the non-grouped `.aggregate()` wrapper, just with an array
|
|
260
|
-
* result (one row per bucket) instead of a single reduced object.
|
|
261
|
-
*/
|
|
262
|
-
aggregate(spec) {
|
|
511
|
+
aggregate(specOrBuild) {
|
|
512
|
+
const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
|
|
263
513
|
return new GroupedAggregation(
|
|
264
514
|
this.executeRecords,
|
|
265
515
|
this.fields,
|
|
266
|
-
spec,
|
|
516
|
+
this.wrapSpec(spec),
|
|
267
517
|
this.upstreams,
|
|
268
518
|
this.dictLabelResolver
|
|
269
519
|
);
|
|
270
520
|
}
|
|
271
521
|
};
|
|
272
522
|
var GroupedQueryN = class extends GroupedQueryBase {
|
|
273
|
-
aggregate(
|
|
523
|
+
aggregate(specOrBuild) {
|
|
524
|
+
const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
|
|
274
525
|
return new GroupedAggregation(
|
|
275
526
|
this.executeRecords,
|
|
276
527
|
this.fields,
|
|
277
|
-
spec,
|
|
528
|
+
this.wrapSpec(spec),
|
|
278
529
|
this.upstreams,
|
|
279
530
|
this.dictLabelResolver
|
|
280
531
|
);
|
|
281
532
|
}
|
|
282
533
|
};
|
|
283
|
-
function groupAndReduce(records, fieldOrFields, spec) {
|
|
534
|
+
function groupAndReduce(records, fieldOrFields, spec, moneyFields) {
|
|
284
535
|
const fields = typeof fieldOrFields === "string" ? [fieldOrFields] : fieldOrFields;
|
|
285
536
|
if (fields.length === 0) {
|
|
286
537
|
throw new Error(".groupBy() requires at least one field");
|
|
287
538
|
}
|
|
539
|
+
if (moneyFields) {
|
|
540
|
+
spec = wrapMoneyReducers(spec, moneyFields);
|
|
541
|
+
}
|
|
288
542
|
const buckets = /* @__PURE__ */ new Map();
|
|
289
543
|
const fieldLabel = fields.length === 1 ? fields[0] : `[${fields.join(", ")}]`;
|
|
290
544
|
for (const record of records) {
|
|
@@ -346,9 +600,29 @@ var GroupedAggregation = class {
|
|
|
346
600
|
upstreams;
|
|
347
601
|
dictLabelResolver;
|
|
348
602
|
fields;
|
|
349
|
-
/**
|
|
350
|
-
|
|
351
|
-
|
|
603
|
+
/**
|
|
604
|
+
* Execute the query, group, reduce, and return an array of rows.
|
|
605
|
+
*
|
|
606
|
+
* `opts` (query-form MV grouping): when a `locale` + `i18nFields` are
|
|
607
|
+
* given, the declared group-key `i18nText` fields are resolved to that locale
|
|
608
|
+
* at the `mv` layer BEFORE bucketing — so an i18n group key is a stable string
|
|
609
|
+
* instead of a raw `{locale}` map. The MV executor passes the MV's
|
|
610
|
+
* `i18nLocale`/`i18nFields`; ordinary `.run()` callers pass nothing and are
|
|
611
|
+
* unaffected.
|
|
612
|
+
*/
|
|
613
|
+
run(opts) {
|
|
614
|
+
let records = this.executeRecords();
|
|
615
|
+
if (opts?.locale !== void 0 && opts.i18nFields !== void 0) {
|
|
616
|
+
const groupI18n = {};
|
|
617
|
+
for (const f of this.fields) {
|
|
618
|
+
const d = opts.i18nFields[f];
|
|
619
|
+
if (d !== void 0) groupI18n[f] = d;
|
|
620
|
+
}
|
|
621
|
+
if (Object.keys(groupI18n).length > 0) {
|
|
622
|
+
records = records.map((r) => applyI18nLocale(r, groupI18n, opts.locale, void 0, "mv"));
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
return groupAndReduce(records, this.fields, this.spec);
|
|
352
626
|
}
|
|
353
627
|
/**
|
|
354
628
|
* Execute the query, group, reduce, and resolve `<field>Label` for
|
|
@@ -402,130 +676,27 @@ var GroupedAggregation = class {
|
|
|
402
676
|
}
|
|
403
677
|
};
|
|
404
678
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
async scanAggregate(iter, spec) {
|
|
418
|
-
const collected = [];
|
|
419
|
-
for await (const record of iter) collected.push(record);
|
|
420
|
-
return reduceRecords(collected, spec);
|
|
421
|
-
}
|
|
422
|
-
};
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
// src/aggregate/reducers.ts
|
|
426
|
-
function count(opts) {
|
|
427
|
-
const _seed = opts?.seed;
|
|
428
|
-
void _seed;
|
|
429
|
-
return {
|
|
430
|
-
init: () => 0,
|
|
431
|
-
step: (state) => state + 1,
|
|
432
|
-
remove: (state) => state - 1,
|
|
433
|
-
finalize: (state) => state
|
|
434
|
-
};
|
|
435
|
-
}
|
|
436
|
-
function sum(field, opts) {
|
|
437
|
-
const _seed = opts?.seed;
|
|
438
|
-
void _seed;
|
|
439
|
-
return {
|
|
440
|
-
init: () => 0,
|
|
441
|
-
step: (state, record) => state + readNumber(record, field),
|
|
442
|
-
remove: (state, record) => state - readNumber(record, field),
|
|
443
|
-
finalize: (state) => state
|
|
444
|
-
};
|
|
445
|
-
}
|
|
446
|
-
function avg(field, opts) {
|
|
447
|
-
const _seed = opts?.seed;
|
|
448
|
-
void _seed;
|
|
449
|
-
return {
|
|
450
|
-
init: () => ({ sum: 0, count: 0 }),
|
|
451
|
-
step: (state, record) => ({
|
|
452
|
-
sum: state.sum + readNumber(record, field),
|
|
453
|
-
count: state.count + 1
|
|
454
|
-
}),
|
|
455
|
-
remove: (state, record) => ({
|
|
456
|
-
sum: state.sum - readNumber(record, field),
|
|
457
|
-
count: state.count - 1
|
|
458
|
-
}),
|
|
459
|
-
finalize: (state) => state.count === 0 ? null : state.sum / state.count
|
|
460
|
-
};
|
|
461
|
-
}
|
|
462
|
-
function pushValue(state, value) {
|
|
463
|
-
return { values: [...state.values, value] };
|
|
464
|
-
}
|
|
465
|
-
function removeValue(state, value) {
|
|
466
|
-
const idx = state.values.indexOf(value);
|
|
467
|
-
if (idx < 0) return state;
|
|
468
|
-
const next = state.values.slice();
|
|
469
|
-
next.splice(idx, 1);
|
|
470
|
-
return { values: next };
|
|
471
|
-
}
|
|
472
|
-
function min(field, opts) {
|
|
473
|
-
const _seed = opts?.seed;
|
|
474
|
-
void _seed;
|
|
475
|
-
return {
|
|
476
|
-
init: () => ({ values: [] }),
|
|
477
|
-
step: (state, record) => pushValue(state, readNumber(record, field)),
|
|
478
|
-
remove: (state, record) => removeValue(state, readNumber(record, field)),
|
|
479
|
-
finalize: (state) => {
|
|
480
|
-
if (state.values.length === 0) return null;
|
|
481
|
-
let out = state.values[0];
|
|
482
|
-
for (let i = 1; i < state.values.length; i++) {
|
|
483
|
-
const v = state.values[i];
|
|
484
|
-
if (v < out) out = v;
|
|
485
|
-
}
|
|
486
|
-
return out;
|
|
487
|
-
}
|
|
488
|
-
};
|
|
489
|
-
}
|
|
490
|
-
function max(field, opts) {
|
|
491
|
-
const _seed = opts?.seed;
|
|
492
|
-
void _seed;
|
|
493
|
-
return {
|
|
494
|
-
init: () => ({ values: [] }),
|
|
495
|
-
step: (state, record) => pushValue(state, readNumber(record, field)),
|
|
496
|
-
remove: (state, record) => removeValue(state, readNumber(record, field)),
|
|
497
|
-
finalize: (state) => {
|
|
498
|
-
if (state.values.length === 0) return null;
|
|
499
|
-
let out = state.values[0];
|
|
500
|
-
for (let i = 1; i < state.values.length; i++) {
|
|
501
|
-
const v = state.values[i];
|
|
502
|
-
if (v > out) out = v;
|
|
503
|
-
}
|
|
504
|
-
return out;
|
|
505
|
-
}
|
|
506
|
-
};
|
|
507
|
-
}
|
|
508
|
-
function readNumber(record, field) {
|
|
509
|
-
const value = readPath(record, field);
|
|
510
|
-
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
511
|
-
}
|
|
512
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
513
|
-
0 && (module.exports = {
|
|
679
|
+
export {
|
|
680
|
+
count,
|
|
681
|
+
sum,
|
|
682
|
+
avg,
|
|
683
|
+
min,
|
|
684
|
+
max,
|
|
685
|
+
moneySum,
|
|
686
|
+
moneyMin,
|
|
687
|
+
moneyMax,
|
|
688
|
+
reducerBuilder,
|
|
689
|
+
wrapMoneyReducers,
|
|
690
|
+
reduceRecords,
|
|
514
691
|
Aggregation,
|
|
515
|
-
|
|
692
|
+
buildLiveAggregation,
|
|
693
|
+
canonicalGroupKey,
|
|
516
694
|
GROUPBY_WARN_CARDINALITY,
|
|
517
|
-
|
|
695
|
+
GROUPBY_MAX_CARDINALITY,
|
|
696
|
+
resetGroupByWarnings,
|
|
518
697
|
GroupedQuery,
|
|
519
698
|
GroupedQueryN,
|
|
520
|
-
avg,
|
|
521
|
-
buildLiveAggregation,
|
|
522
|
-
count,
|
|
523
699
|
groupAndReduce,
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
resetGroupByWarnings,
|
|
528
|
-
sum,
|
|
529
|
-
withAggregate
|
|
530
|
-
});
|
|
531
|
-
//# sourceMappingURL=index.cjs.map
|
|
700
|
+
GroupedAggregation
|
|
701
|
+
};
|
|
702
|
+
//# sourceMappingURL=chunk-LV7M27WM.js.map
|