@noy-db/hub 0.2.0-pre.13 → 0.2.0-pre.15
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/dist/aggregate/index.cjs +56 -56
- package/dist/aggregate/index.cjs.map +1 -1
- package/dist/aggregate/index.d.cts +2 -2
- package/dist/aggregate/index.d.ts +2 -2
- package/dist/aggregate/index.js +4 -4
- package/dist/attestation/index.cjs.map +1 -1
- package/dist/attestation/index.d.cts +5 -5
- package/dist/attestation/index.d.ts +5 -5
- package/dist/attestation/index.js +5 -5
- package/dist/blobs/index.cjs.map +1 -1
- package/dist/blobs/index.d.cts +6 -6
- package/dist/blobs/index.d.ts +6 -6
- package/dist/blobs/index.js +4 -4
- package/dist/bundle/index.cjs +559 -76
- package/dist/bundle/index.cjs.map +1 -1
- package/dist/bundle/index.d.cts +7 -7
- package/dist/bundle/index.d.ts +7 -7
- package/dist/bundle/index.js +8 -8
- package/dist/{chunk-YWBHS25M.js → chunk-3EWXMOK3.js} +8 -267
- package/dist/chunk-3EWXMOK3.js.map +1 -0
- package/dist/{chunk-SJ24GHID.js → chunk-4TBBMHVC.js} +2 -2
- package/dist/{chunk-NKGY3C53.js → chunk-535SSHBS.js} +8 -1
- package/dist/{chunk-NKGY3C53.js.map → chunk-535SSHBS.js.map} +1 -1
- package/dist/{chunk-HQXOEWLZ.js → chunk-56DJ7JVK.js} +3 -3
- package/dist/{chunk-KKB42D3Q.js → chunk-5LQG6ZO2.js} +2 -2
- package/dist/{chunk-TDECYU4Y.js → chunk-6AJBSQU4.js} +2 -2
- package/dist/{chunk-O2JW656W.js → chunk-6RR3MNMG.js} +3 -3
- package/dist/{chunk-P5MW7BG2.js → chunk-7EFFHEN5.js} +57 -50
- package/dist/chunk-7EFFHEN5.js.map +1 -0
- package/dist/{chunk-7TEI2K2A.js → chunk-7HT2MEZ5.js} +4 -4
- package/dist/{chunk-WQKZIQIL.js → chunk-7PS7EOCF.js} +3 -3
- package/dist/{chunk-C3WRKABE.js → chunk-A5ZOOZFB.js} +3 -3
- package/dist/{chunk-5NISHSBO.js → chunk-AAVWKNZW.js} +2 -2
- package/dist/{chunk-SOU42FGB.js → chunk-BIYRQQV6.js} +4 -4
- package/dist/{chunk-ILWQGTNH.js → chunk-BQ65SS5A.js} +2 -2
- package/dist/{chunk-CWFQTAD4.js → chunk-C5T5AFWN.js} +4 -4
- package/dist/chunk-CJORTUJ2.js +524 -0
- package/dist/chunk-CJORTUJ2.js.map +1 -0
- package/dist/{chunk-SYSKC237.js → chunk-COFPAMX6.js} +5 -5
- package/dist/{chunk-D5Y3HIC6.js → chunk-CZI2A4MQ.js} +3 -3
- package/dist/{chunk-KJF7EPUE.js → chunk-DKO2QFSA.js} +2 -2
- package/dist/{chunk-QFYVGJLI.js → chunk-DQU36Q7I.js} +2 -2
- package/dist/{chunk-NIUXQDWD.js → chunk-EGD5DXFT.js} +2 -2
- package/dist/{chunk-NJMKHRQI.js → chunk-EYVQHAGH.js} +267 -67
- package/dist/chunk-EYVQHAGH.js.map +1 -0
- package/dist/{chunk-KHQ3N5AB.js → chunk-F4OJZIWQ.js} +4 -4
- package/dist/{chunk-3OUCWHV6.js → chunk-FWPKCXTN.js} +2 -2
- package/dist/{chunk-QIVFGU2M.js → chunk-HOR4R722.js} +3 -3
- package/dist/{chunk-NP6EZT44.js → chunk-IQLVUT37.js} +2 -2
- package/dist/{chunk-4VCQH32J.js → chunk-JD3OZAI4.js} +2 -2
- package/dist/{chunk-J67BP5EP.js → chunk-KI6HAJWL.js} +3 -3
- package/dist/{chunk-AYNF7PVX.js → chunk-KIP6JLTF.js} +2 -2
- package/dist/{chunk-PW26DAXS.js → chunk-L2FE64BU.js} +3 -3
- package/dist/{chunk-QAWCVWCX.js → chunk-LX3CB26H.js} +4 -4
- package/dist/{chunk-VAK6NQAK.js → chunk-NSCVNK5K.js} +4 -4
- package/dist/{chunk-4YDZ7JPZ.js → chunk-NU6Q3FOR.js} +4 -4
- package/dist/chunk-NU6Q3FOR.js.map +1 -0
- package/dist/{chunk-3XZRRBFW.js → chunk-OHVFWCJP.js} +2 -2
- package/dist/{chunk-TEQGXA7L.js → chunk-PE4AQGFH.js} +4 -4
- package/dist/{chunk-UNQEWORI.js → chunk-TS26M2SB.js} +2 -2
- package/dist/{chunk-FNVFT4HZ.js → chunk-VU7SWWT5.js} +2 -2
- package/dist/{chunk-GZJ5JBED.js → chunk-WBAYSNUQ.js} +3 -3
- package/dist/{chunk-HHZ77DHM.js → chunk-WGHU7BLI.js} +2 -2
- package/dist/{chunk-GL3Z7LH7.js → chunk-X73VS74Y.js} +2 -2
- package/dist/{chunk-WIBHRONM.js → chunk-XWH4MXIU.js} +2 -2
- package/dist/{chunk-M6KXHRIA.js → chunk-YHPM5D7Y.js} +3 -3
- package/dist/{chunk-E3DIBDKA.js → chunk-YULZKK4F.js} +2 -2
- package/dist/{chunk-JWFNOD2T.js → chunk-Z4DO7YSI.js} +2 -2
- package/dist/{chunk-JPOQMXGT.js → chunk-ZNQYHJXX.js} +2 -2
- package/dist/consent/index.cjs.map +1 -1
- package/dist/consent/index.d.cts +6 -6
- package/dist/consent/index.d.ts +6 -6
- package/dist/consent/index.js +3 -3
- package/dist/{crypto-YXH6SAOW.js → crypto-QXQOHMHF.js} +3 -3
- package/dist/{delegation-K5ERUH6A.js → delegation-NIQ43IPU.js} +5 -5
- package/dist/derivations/index.cjs.map +1 -1
- package/dist/derivations/index.d.cts +7 -7
- package/dist/derivations/index.d.ts +7 -7
- package/dist/derivations/index.js +4 -4
- package/dist/{dev-unlock-BW0GNBEV.d.ts → dev-unlock-iAS8z9jc.d.ts} +1 -1
- package/dist/{dev-unlock-a7SOtaV0.d.cts → dev-unlock-nVkuRLLe.d.cts} +1 -1
- package/dist/executor-6ZDSDZ6V.js +8 -0
- package/dist/executor-HSSRXDOB.js +11 -0
- package/dist/executor-IDZDAFNH.js +8 -0
- package/dist/guards/index.cjs.map +1 -1
- package/dist/guards/index.d.cts +7 -7
- package/dist/guards/index.d.ts +7 -7
- package/dist/guards/index.js +3 -3
- package/dist/{hash-B0cLQcq_.d.cts → hash-Cv6byZs7.d.cts} +1 -1
- package/dist/{hash-uMNIAAW8.d.ts → hash-DHOnRarj.d.ts} +1 -1
- package/dist/history/index.cjs.map +1 -1
- package/dist/history/index.d.cts +7 -7
- package/dist/history/index.d.ts +7 -7
- package/dist/history/index.js +4 -4
- package/dist/i18n/index.cjs.map +1 -1
- package/dist/i18n/index.d.cts +6 -6
- package/dist/i18n/index.d.ts +6 -6
- package/dist/i18n/index.js +5 -5
- package/dist/{immutable-guard-B0h-ipLz.d.ts → immutable-guard-BehB1YGB.d.ts} +1 -1
- package/dist/{immutable-guard-BZIcYhYX.d.cts → immutable-guard-yBEOYmif.d.cts} +1 -1
- package/dist/{index-CUVOMtgg.d.cts → index-D95VK1Qy.d.cts} +11 -3
- package/dist/{index-Cqzp4tt9.d.ts → index-XNB2r6bX.d.ts} +11 -3
- package/dist/index.cjs +700 -78
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +145 -15
- package/dist/index.d.ts +145 -15
- package/dist/index.js +164 -48
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.cjs +92 -31
- package/dist/indexing/index.cjs.map +1 -1
- package/dist/indexing/index.d.cts +3 -3
- package/dist/indexing/index.d.ts +3 -3
- package/dist/indexing/index.js +4 -4
- package/dist/issue-ADVS4OVP.js +12 -0
- package/dist/{lazy-builder-D5GU14TS.d.ts → lazy-builder-ChSqcF5t.d.ts} +1 -1
- package/dist/{lazy-builder-Ci5_YG73.d.cts → lazy-builder-eYZzLEL1.d.cts} +1 -1
- package/dist/{ledger-64TTQMRS.js → ledger-CWSE3BLF.js} +4 -4
- package/dist/materialized-views/index.cjs +2 -2
- package/dist/materialized-views/index.cjs.map +1 -1
- package/dist/materialized-views/index.d.cts +7 -7
- package/dist/materialized-views/index.d.ts +7 -7
- package/dist/materialized-views/index.js +7 -7
- package/dist/noydb-GZGFBA4E.js +35 -0
- package/dist/overlay-views/index.cjs.map +1 -1
- package/dist/overlay-views/index.d.cts +7 -7
- package/dist/overlay-views/index.d.ts +7 -7
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.cjs.map +1 -1
- package/dist/periods/index.d.cts +6 -6
- package/dist/periods/index.d.ts +6 -6
- package/dist/periods/index.js +4 -4
- package/dist/{predicate-Bt5ft-9c.d.cts → predicate-BmhBSPCH.d.cts} +59 -2
- package/dist/{predicate-Bt5ft-9c.d.ts → predicate-BmhBSPCH.d.ts} +59 -2
- package/dist/{public-envelope-MHG6YVXW.js → public-envelope-SYHEYQ3X.js} +3 -3
- package/dist/query/index.cjs +580 -195
- package/dist/query/index.cjs.map +1 -1
- package/dist/query/index.d.cts +3 -3
- package/dist/query/index.d.ts +3 -3
- package/dist/query/index.js +6 -6
- package/dist/{registry-PV4G3OPA.js → registry-DK5YWAAA.js} +3 -3
- package/dist/registry-IUZQVVBB.js +8 -0
- package/dist/registry-XGLNADIE.js +8 -0
- package/dist/{revoke-5BOLVJ3N.js → revoke-ZDFKMR5E.js} +5 -5
- package/dist/session/index.cjs.map +1 -1
- package/dist/session/index.d.cts +7 -7
- package/dist/session/index.d.ts +7 -7
- package/dist/session/index.js +3 -3
- package/dist/shadow/index.cjs.map +1 -1
- package/dist/shadow/index.d.cts +6 -6
- package/dist/shadow/index.d.ts +6 -6
- package/dist/shadow/index.js +2 -2
- package/dist/{signer-GRIYBA22.js → signer-P5D7Y72U.js} +4 -4
- package/dist/snapshots/index.cjs.map +1 -1
- package/dist/snapshots/index.d.cts +6 -6
- package/dist/snapshots/index.d.ts +6 -6
- package/dist/snapshots/index.js +3 -3
- package/dist/{stale-LZYMMDDS.js → stale-JH67FU57.js} +2 -2
- package/dist/{state-vault-QFJWU23A.js → state-vault-TMXZRTY5.js} +3 -3
- package/dist/store/index.cjs.map +1 -1
- package/dist/store/index.d.cts +6 -6
- package/dist/store/index.d.ts +6 -6
- package/dist/store/index.js +2 -2
- package/dist/{strategy-CrS7PnbE.d.ts → strategy-CbneC7bS.d.cts} +1 -1
- package/dist/{strategy-CrS7PnbE.d.cts → strategy-CbneC7bS.d.ts} +1 -1
- package/dist/sync/index.cjs.map +1 -1
- package/dist/sync/index.d.cts +5 -5
- package/dist/sync/index.d.ts +5 -5
- package/dist/sync/index.js +3 -3
- package/dist/team/index.cjs.map +1 -1
- package/dist/team/index.d.cts +6 -6
- package/dist/team/index.d.ts +6 -6
- package/dist/team/index.js +7 -7
- package/dist/tx/index.cjs.map +1 -1
- package/dist/tx/index.d.cts +6 -6
- package/dist/tx/index.d.ts +6 -6
- package/dist/tx/index.js +3 -3
- package/dist/{types-pax34sec.d.ts → types-4t1-tWS4.d.ts} +77 -9
- package/dist/{types-CDwSSXiI.d.cts → types-BpPV5uyy.d.cts} +77 -9
- package/dist/{ulid-7bCSgIgb.d.cts → ulid-CiPrpGqm.d.cts} +1 -1
- package/dist/{ulid-C_t4hL3d.d.ts → ulid-DAfenvFd.d.ts} +1 -1
- package/dist/util/index.cjs.map +1 -1
- package/dist/util/index.js +1 -1
- package/dist/{vault-group-UO4YUZOG.js → vault-group-KOM7QRJG.js} +125 -11
- package/dist/vault-group-KOM7QRJG.js.map +1 -0
- package/dist/{with-derivation-D8wFlb6V.d.cts → with-derivation-DBqJB3dQ.d.cts} +1 -1
- package/dist/{with-derivation-BjdOxUBn.d.ts → with-derivation-OK9M2sJE.d.ts} +1 -1
- package/dist/{with-materialized-view-DJb-HO65.d.ts → with-materialized-view-Dt-ufPWQ.d.ts} +1 -1
- package/dist/{with-materialized-view-5QMF1rS_.d.cts → with-materialized-view-NzuxYPDF.d.cts} +1 -1
- package/dist/{with-overlayed-view-DDNflPvC.d.cts → with-overlayed-view-CC0_ocy-.d.cts} +1 -1
- package/dist/{with-overlayed-view-CkqTefbz.d.ts → with-overlayed-view-eDvMs6LO.d.ts} +1 -1
- package/package.json +3 -3
- package/dist/chunk-4YDZ7JPZ.js.map +0 -1
- package/dist/chunk-NJMKHRQI.js.map +0 -1
- package/dist/chunk-P5MW7BG2.js.map +0 -1
- package/dist/chunk-TV3YZ35S.js +0 -90
- package/dist/chunk-TV3YZ35S.js.map +0 -1
- package/dist/chunk-YWBHS25M.js.map +0 -1
- package/dist/executor-AVJ7UEWA.js +0 -8
- package/dist/executor-IQO3KGXQ.js +0 -11
- package/dist/executor-VT7TKGE4.js +0 -8
- package/dist/issue-ZH27C23Y.js +0 -12
- package/dist/noydb-O76SKBST.js +0 -35
- package/dist/registry-2PKBQDCH.js +0 -8
- package/dist/registry-4VXFKCBJ.js +0 -8
- package/dist/vault-group-UO4YUZOG.js.map +0 -1
- /package/dist/{chunk-SJ24GHID.js.map → chunk-4TBBMHVC.js.map} +0 -0
- /package/dist/{chunk-HQXOEWLZ.js.map → chunk-56DJ7JVK.js.map} +0 -0
- /package/dist/{chunk-KKB42D3Q.js.map → chunk-5LQG6ZO2.js.map} +0 -0
- /package/dist/{chunk-TDECYU4Y.js.map → chunk-6AJBSQU4.js.map} +0 -0
- /package/dist/{chunk-O2JW656W.js.map → chunk-6RR3MNMG.js.map} +0 -0
- /package/dist/{chunk-7TEI2K2A.js.map → chunk-7HT2MEZ5.js.map} +0 -0
- /package/dist/{chunk-WQKZIQIL.js.map → chunk-7PS7EOCF.js.map} +0 -0
- /package/dist/{chunk-C3WRKABE.js.map → chunk-A5ZOOZFB.js.map} +0 -0
- /package/dist/{chunk-5NISHSBO.js.map → chunk-AAVWKNZW.js.map} +0 -0
- /package/dist/{chunk-SOU42FGB.js.map → chunk-BIYRQQV6.js.map} +0 -0
- /package/dist/{chunk-ILWQGTNH.js.map → chunk-BQ65SS5A.js.map} +0 -0
- /package/dist/{chunk-CWFQTAD4.js.map → chunk-C5T5AFWN.js.map} +0 -0
- /package/dist/{chunk-SYSKC237.js.map → chunk-COFPAMX6.js.map} +0 -0
- /package/dist/{chunk-D5Y3HIC6.js.map → chunk-CZI2A4MQ.js.map} +0 -0
- /package/dist/{chunk-KJF7EPUE.js.map → chunk-DKO2QFSA.js.map} +0 -0
- /package/dist/{chunk-QFYVGJLI.js.map → chunk-DQU36Q7I.js.map} +0 -0
- /package/dist/{chunk-NIUXQDWD.js.map → chunk-EGD5DXFT.js.map} +0 -0
- /package/dist/{chunk-KHQ3N5AB.js.map → chunk-F4OJZIWQ.js.map} +0 -0
- /package/dist/{chunk-3OUCWHV6.js.map → chunk-FWPKCXTN.js.map} +0 -0
- /package/dist/{chunk-QIVFGU2M.js.map → chunk-HOR4R722.js.map} +0 -0
- /package/dist/{chunk-NP6EZT44.js.map → chunk-IQLVUT37.js.map} +0 -0
- /package/dist/{chunk-4VCQH32J.js.map → chunk-JD3OZAI4.js.map} +0 -0
- /package/dist/{chunk-J67BP5EP.js.map → chunk-KI6HAJWL.js.map} +0 -0
- /package/dist/{chunk-AYNF7PVX.js.map → chunk-KIP6JLTF.js.map} +0 -0
- /package/dist/{chunk-PW26DAXS.js.map → chunk-L2FE64BU.js.map} +0 -0
- /package/dist/{chunk-QAWCVWCX.js.map → chunk-LX3CB26H.js.map} +0 -0
- /package/dist/{chunk-VAK6NQAK.js.map → chunk-NSCVNK5K.js.map} +0 -0
- /package/dist/{chunk-3XZRRBFW.js.map → chunk-OHVFWCJP.js.map} +0 -0
- /package/dist/{chunk-TEQGXA7L.js.map → chunk-PE4AQGFH.js.map} +0 -0
- /package/dist/{chunk-UNQEWORI.js.map → chunk-TS26M2SB.js.map} +0 -0
- /package/dist/{chunk-FNVFT4HZ.js.map → chunk-VU7SWWT5.js.map} +0 -0
- /package/dist/{chunk-GZJ5JBED.js.map → chunk-WBAYSNUQ.js.map} +0 -0
- /package/dist/{chunk-HHZ77DHM.js.map → chunk-WGHU7BLI.js.map} +0 -0
- /package/dist/{chunk-GL3Z7LH7.js.map → chunk-X73VS74Y.js.map} +0 -0
- /package/dist/{chunk-WIBHRONM.js.map → chunk-XWH4MXIU.js.map} +0 -0
- /package/dist/{chunk-M6KXHRIA.js.map → chunk-YHPM5D7Y.js.map} +0 -0
- /package/dist/{chunk-E3DIBDKA.js.map → chunk-YULZKK4F.js.map} +0 -0
- /package/dist/{chunk-JWFNOD2T.js.map → chunk-Z4DO7YSI.js.map} +0 -0
- /package/dist/{chunk-JPOQMXGT.js.map → chunk-ZNQYHJXX.js.map} +0 -0
- /package/dist/{crypto-YXH6SAOW.js.map → crypto-QXQOHMHF.js.map} +0 -0
- /package/dist/{delegation-K5ERUH6A.js.map → delegation-NIQ43IPU.js.map} +0 -0
- /package/dist/{executor-AVJ7UEWA.js.map → executor-6ZDSDZ6V.js.map} +0 -0
- /package/dist/{executor-IQO3KGXQ.js.map → executor-HSSRXDOB.js.map} +0 -0
- /package/dist/{executor-VT7TKGE4.js.map → executor-IDZDAFNH.js.map} +0 -0
- /package/dist/{issue-ZH27C23Y.js.map → issue-ADVS4OVP.js.map} +0 -0
- /package/dist/{ledger-64TTQMRS.js.map → ledger-CWSE3BLF.js.map} +0 -0
- /package/dist/{noydb-O76SKBST.js.map → noydb-GZGFBA4E.js.map} +0 -0
- /package/dist/{public-envelope-MHG6YVXW.js.map → public-envelope-SYHEYQ3X.js.map} +0 -0
- /package/dist/{registry-2PKBQDCH.js.map → registry-DK5YWAAA.js.map} +0 -0
- /package/dist/{registry-4VXFKCBJ.js.map → registry-IUZQVVBB.js.map} +0 -0
- /package/dist/{registry-PV4G3OPA.js.map → registry-XGLNADIE.js.map} +0 -0
- /package/dist/{revoke-5BOLVJ3N.js.map → revoke-ZDFKMR5E.js.map} +0 -0
- /package/dist/{signer-GRIYBA22.js.map → signer-P5D7Y72U.js.map} +0 -0
- /package/dist/{stale-LZYMMDDS.js.map → stale-JH67FU57.js.map} +0 -0
- /package/dist/{state-vault-QFJWU23A.js.map → state-vault-TMXZRTY5.js.map} +0 -0
package/dist/indexing/index.cjs
CHANGED
|
@@ -33,6 +33,92 @@ __export(indexing_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(indexing_exports);
|
|
35
35
|
|
|
36
|
+
// src/errors.ts
|
|
37
|
+
var NoydbError = class extends Error {
|
|
38
|
+
/** Machine-readable error code. Stable across library versions. */
|
|
39
|
+
code;
|
|
40
|
+
constructor(code, message) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.name = "NoydbError";
|
|
43
|
+
this.code = code;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var IndexRequiredError = class extends NoydbError {
|
|
47
|
+
collection;
|
|
48
|
+
touchedFields;
|
|
49
|
+
missingFields;
|
|
50
|
+
constructor(args) {
|
|
51
|
+
super(
|
|
52
|
+
"INDEX_REQUIRED",
|
|
53
|
+
`Collection "${args.collection}": query references unindexed fields in lazy mode (missing: ${args.missingFields.join(", ")}). Declare an index on each field, or use collection.scan() for non-indexed iteration.`
|
|
54
|
+
);
|
|
55
|
+
this.name = "IndexRequiredError";
|
|
56
|
+
this.collection = args.collection;
|
|
57
|
+
this.touchedFields = [...args.touchedFields];
|
|
58
|
+
this.missingFields = [...args.missingFields];
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// src/money/where.ts
|
|
63
|
+
function isMoneyValueObject(v) {
|
|
64
|
+
return typeof v === "object" && v !== null && "currency" in v;
|
|
65
|
+
}
|
|
66
|
+
function readStored(actual, operand) {
|
|
67
|
+
let amount;
|
|
68
|
+
let currency;
|
|
69
|
+
if (operand.mode === "fixed") {
|
|
70
|
+
if (typeof actual !== "string" && typeof actual !== "number") return null;
|
|
71
|
+
amount = actual;
|
|
72
|
+
currency = operand.entries[0]?.currency ?? "";
|
|
73
|
+
} else {
|
|
74
|
+
if (!isMoneyValueObject(actual)) return null;
|
|
75
|
+
if (typeof actual.currency !== "string") return null;
|
|
76
|
+
amount = actual.amount;
|
|
77
|
+
currency = actual.currency;
|
|
78
|
+
}
|
|
79
|
+
if (typeof amount !== "string" && typeof amount !== "number") return null;
|
|
80
|
+
try {
|
|
81
|
+
return { scaled: BigInt(amount).toString(), currency };
|
|
82
|
+
} catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function evaluateMoneyClause(actual, op, operand) {
|
|
87
|
+
const stored = readStored(actual, operand);
|
|
88
|
+
if (stored === null) return op === "!=";
|
|
89
|
+
const a = BigInt(stored.scaled);
|
|
90
|
+
if (op === "in") {
|
|
91
|
+
return operand.entries.some(
|
|
92
|
+
(e2) => e2.currency === stored.currency && BigInt(e2.scaled) === a
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
if (op === "between") {
|
|
96
|
+
const [lo, hi] = operand.entries;
|
|
97
|
+
if (!lo || !hi || lo.currency !== stored.currency) return false;
|
|
98
|
+
return a >= BigInt(lo.scaled) && a <= BigInt(hi.scaled);
|
|
99
|
+
}
|
|
100
|
+
const e = operand.entries[0];
|
|
101
|
+
if (!e) return false;
|
|
102
|
+
if (e.currency !== stored.currency) return op === "!=";
|
|
103
|
+
const b = BigInt(e.scaled);
|
|
104
|
+
switch (op) {
|
|
105
|
+
case "==":
|
|
106
|
+
return a === b;
|
|
107
|
+
case "!=":
|
|
108
|
+
return a !== b;
|
|
109
|
+
case "<":
|
|
110
|
+
return a < b;
|
|
111
|
+
case "<=":
|
|
112
|
+
return a <= b;
|
|
113
|
+
case ">":
|
|
114
|
+
return a > b;
|
|
115
|
+
case ">=":
|
|
116
|
+
return a >= b;
|
|
117
|
+
default:
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
36
122
|
// src/query/predicate.ts
|
|
37
123
|
function readPath(record, path) {
|
|
38
124
|
if (record === null || record === void 0) return void 0;
|
|
@@ -50,6 +136,7 @@ function readPath(record, path) {
|
|
|
50
136
|
function evaluateFieldClause(record, clause) {
|
|
51
137
|
const actual = readPath(record, clause.field);
|
|
52
138
|
const { op, value } = clause;
|
|
139
|
+
if (clause.money) return evaluateMoneyClause(actual, op, clause.money);
|
|
53
140
|
switch (op) {
|
|
54
141
|
case "==":
|
|
55
142
|
return actual === value;
|
|
@@ -90,14 +177,14 @@ function isComparable(a, b) {
|
|
|
90
177
|
if (a instanceof Date && b instanceof Date) return true;
|
|
91
178
|
return false;
|
|
92
179
|
}
|
|
93
|
-
function evaluateClause(record, clause) {
|
|
180
|
+
function evaluateClause(record, clause, fnRecord) {
|
|
94
181
|
switch (clause.type) {
|
|
95
182
|
case "field":
|
|
96
183
|
return evaluateFieldClause(record, clause);
|
|
97
184
|
case "filter":
|
|
98
|
-
return clause.fn(record);
|
|
185
|
+
return clause.fn(fnRecord !== void 0 ? fnRecord : record);
|
|
99
186
|
case "wherePredicate":
|
|
100
|
-
return clause.fn(record, clause.ctx);
|
|
187
|
+
return clause.fn(fnRecord !== void 0 ? fnRecord : record, clause.ctx);
|
|
101
188
|
case "crossJoin":
|
|
102
189
|
throw new Error(
|
|
103
190
|
`evaluateClause: 'crossJoin' clauses are expansion primitives and are not evaluated per-record. This is a query planner routing error \u2014 crossJoin clauses must be extracted from the clause list before calling evaluateClause or filterRecords.`
|
|
@@ -105,12 +192,12 @@ function evaluateClause(record, clause) {
|
|
|
105
192
|
case "group":
|
|
106
193
|
if (clause.op === "and") {
|
|
107
194
|
for (const child of clause.clauses) {
|
|
108
|
-
if (!evaluateClause(record, child)) return false;
|
|
195
|
+
if (!evaluateClause(record, child, fnRecord)) return false;
|
|
109
196
|
}
|
|
110
197
|
return true;
|
|
111
198
|
} else {
|
|
112
199
|
for (const child of clause.clauses) {
|
|
113
|
-
if (evaluateClause(record, child)) return true;
|
|
200
|
+
if (evaluateClause(record, child, fnRecord)) return true;
|
|
114
201
|
}
|
|
115
202
|
return false;
|
|
116
203
|
}
|
|
@@ -545,32 +632,6 @@ function makeLazyState(persisted) {
|
|
|
545
632
|
};
|
|
546
633
|
}
|
|
547
634
|
|
|
548
|
-
// src/errors.ts
|
|
549
|
-
var NoydbError = class extends Error {
|
|
550
|
-
/** Machine-readable error code. Stable across library versions. */
|
|
551
|
-
code;
|
|
552
|
-
constructor(code, message) {
|
|
553
|
-
super(message);
|
|
554
|
-
this.name = "NoydbError";
|
|
555
|
-
this.code = code;
|
|
556
|
-
}
|
|
557
|
-
};
|
|
558
|
-
var IndexRequiredError = class extends NoydbError {
|
|
559
|
-
collection;
|
|
560
|
-
touchedFields;
|
|
561
|
-
missingFields;
|
|
562
|
-
constructor(args) {
|
|
563
|
-
super(
|
|
564
|
-
"INDEX_REQUIRED",
|
|
565
|
-
`Collection "${args.collection}": query references unindexed fields in lazy mode (missing: ${args.missingFields.join(", ")}). Declare an index on each field, or use collection.scan() for non-indexed iteration.`
|
|
566
|
-
);
|
|
567
|
-
this.name = "IndexRequiredError";
|
|
568
|
-
this.collection = args.collection;
|
|
569
|
-
this.touchedFields = [...args.touchedFields];
|
|
570
|
-
this.missingFields = [...args.missingFields];
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
|
|
574
635
|
// src/indexing/lazy-builder.ts
|
|
575
636
|
var EMPTY_PLAN = {
|
|
576
637
|
clauses: [],
|