proto.io 0.0.204 → 0.0.206

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.
Files changed (68) hide show
  1. package/dist/adapters/file/aliyun-oss.d.ts +3 -3
  2. package/dist/adapters/file/aliyun-oss.js +2 -2
  3. package/dist/adapters/file/aliyun-oss.mjs +2 -2
  4. package/dist/adapters/file/database.d.ts +2 -2
  5. package/dist/adapters/file/database.js +3 -3
  6. package/dist/adapters/file/database.mjs +3 -3
  7. package/dist/adapters/file/filesystem.d.ts +3 -3
  8. package/dist/adapters/file/filesystem.js +2 -2
  9. package/dist/adapters/file/filesystem.mjs +2 -2
  10. package/dist/adapters/file/google-cloud-storage.d.ts +3 -3
  11. package/dist/adapters/file/google-cloud-storage.js +2 -2
  12. package/dist/adapters/file/google-cloud-storage.mjs +2 -2
  13. package/dist/adapters/storage/progres.d.ts +5 -8
  14. package/dist/adapters/storage/progres.js +13 -17
  15. package/dist/adapters/storage/progres.js.map +1 -1
  16. package/dist/adapters/storage/progres.mjs +13 -17
  17. package/dist/adapters/storage/progres.mjs.map +1 -1
  18. package/dist/client.d.ts +3 -3
  19. package/dist/client.js +3 -2
  20. package/dist/client.js.map +1 -1
  21. package/dist/client.mjs +4 -3
  22. package/dist/client.mjs.map +1 -1
  23. package/dist/index.d.ts +3 -3
  24. package/dist/index.js +33 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +34 -13
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/internals/{base-NsJYo2MG.js → base-BFKQpiws.js} +3 -3
  29. package/dist/internals/{base-NsJYo2MG.js.map → base-BFKQpiws.js.map} +1 -1
  30. package/dist/internals/{base-Cf7WkDhO.d.ts → base-Be7PFKEC.d.ts} +2 -2
  31. package/dist/internals/base-Be7PFKEC.d.ts.map +1 -0
  32. package/dist/internals/{base-DYc1_peK.mjs → base-CfQi0T0I.mjs} +3 -3
  33. package/dist/internals/{base-DYc1_peK.mjs.map → base-CfQi0T0I.mjs.map} +1 -1
  34. package/dist/internals/{chunk-CdEGTub2.js → chunk-BuMQw4dz.js} +2 -2
  35. package/dist/internals/{chunk-CdEGTub2.js.map → chunk-BuMQw4dz.js.map} +1 -1
  36. package/dist/internals/{chunk-ONaLyXL0.d.ts → chunk-CEQtSsWb.d.ts} +3 -3
  37. package/dist/internals/chunk-CEQtSsWb.d.ts.map +1 -0
  38. package/dist/internals/{chunk-3nNdftWC.mjs → chunk-DxYhYVky.mjs} +2 -2
  39. package/dist/internals/{chunk-3nNdftWC.mjs.map → chunk-DxYhYVky.mjs.map} +1 -1
  40. package/dist/internals/{index-DByHjIHI.js → index-BFZlY3IO.js} +23 -23
  41. package/dist/internals/index-BFZlY3IO.js.map +1 -0
  42. package/dist/internals/{index-DtCgllhg.mjs → index-CSnRU_KQ.mjs} +23 -23
  43. package/dist/internals/index-CSnRU_KQ.mjs.map +1 -0
  44. package/dist/internals/{index-DI-jPA6f.d.ts → index-CURcwPBG.d.ts} +3 -3
  45. package/dist/internals/index-CURcwPBG.d.ts.map +1 -0
  46. package/dist/internals/{index-B8TESzd9.js → index-CsmAYB_t.js} +2 -1
  47. package/dist/internals/{index-B8TESzd9.js.map → index-CsmAYB_t.js.map} +1 -1
  48. package/dist/internals/{index-C4vwSN74.js → index-CyPxh5dl.js} +241 -2
  49. package/dist/internals/index-CyPxh5dl.js.map +1 -0
  50. package/dist/internals/{index-JdEs5VLY.d.ts → index-DnbbpIaO.d.ts} +15 -18
  51. package/dist/internals/index-DnbbpIaO.d.ts.map +1 -0
  52. package/dist/internals/{index-al1N-qi7.mjs → index-DpN9tcbY.mjs} +2 -2
  53. package/dist/internals/{index-al1N-qi7.mjs.map → index-DpN9tcbY.mjs.map} +1 -1
  54. package/dist/internals/{index-Blw7vAq5.mjs → index-iRVgw566.mjs} +241 -2
  55. package/dist/internals/index-iRVgw566.mjs.map +1 -0
  56. package/dist/internals/{random-6nHcBOxn.mjs → random-BnGB_bVS.mjs} +3 -3
  57. package/dist/internals/{random-6nHcBOxn.mjs.map → random-BnGB_bVS.mjs.map} +1 -1
  58. package/dist/internals/{random-Dk3OhDNU.js → random-D7S1XD7F.js} +3 -3
  59. package/dist/internals/{random-Dk3OhDNU.js.map → random-D7S1XD7F.js.map} +1 -1
  60. package/package.json +1 -1
  61. package/dist/internals/base-Cf7WkDhO.d.ts.map +0 -1
  62. package/dist/internals/chunk-ONaLyXL0.d.ts.map +0 -1
  63. package/dist/internals/index-Blw7vAq5.mjs.map +0 -1
  64. package/dist/internals/index-C4vwSN74.js.map +0 -1
  65. package/dist/internals/index-DByHjIHI.js.map +0 -1
  66. package/dist/internals/index-DI-jPA6f.d.ts.map +0 -1
  67. package/dist/internals/index-DtCgllhg.mjs.map +0 -1
  68. package/dist/internals/index-JdEs5VLY.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var _ = require('lodash');
4
- var index = require('./index-B8TESzd9.js');
4
+ var index = require('./index-CsmAYB_t.js');
5
+ var Decimal = require('decimal.js');
5
6
 
6
7
  //
7
8
  // keys.ts
@@ -57,6 +58,127 @@ const TDistanceKeys = [
57
58
  '$rectilinearDistance',
58
59
  ];
59
60
 
61
+ //
62
+ // utils.ts
63
+ //
64
+ // The MIT License
65
+ // Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.
66
+ //
67
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
68
+ // of this software and associated documentation files (the "Software"), to deal
69
+ // in the Software without restriction, including without limitation the rights
70
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
71
+ // copies of the Software, and to permit persons to whom the Software is
72
+ // furnished to do so, subject to the following conditions:
73
+ //
74
+ // The above copyright notice and this permission notice shall be included in
75
+ // all copies or substantial portions of the Software.
76
+ //
77
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
78
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
79
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
80
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
81
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
82
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
83
+ // THE SOFTWARE.
84
+ //
85
+ const isNum = (x) => _.isNumber(x) || x instanceof BigInt || x instanceof Decimal;
86
+ const equalNum = (lhs, rhs) => {
87
+ if (lhs instanceof Decimal && rhs instanceof Decimal) {
88
+ return lhs.equals(rhs);
89
+ }
90
+ else if (lhs instanceof Decimal) {
91
+ return lhs.equals(rhs instanceof BigInt ? rhs.toString() : rhs);
92
+ }
93
+ else if (rhs instanceof Decimal) {
94
+ return rhs.equals(lhs instanceof BigInt ? lhs.toString() : lhs);
95
+ }
96
+ else {
97
+ return lhs === rhs;
98
+ }
99
+ };
100
+ const lessNum = (lhs, rhs) => {
101
+ if (lhs instanceof Decimal && rhs instanceof Decimal) {
102
+ return lhs.lessThan(rhs);
103
+ }
104
+ else if (lhs instanceof Decimal) {
105
+ return lhs.lessThan(rhs instanceof BigInt ? rhs.toString() : rhs);
106
+ }
107
+ else if (rhs instanceof Decimal) {
108
+ return rhs.greaterThan(lhs instanceof BigInt ? lhs.toString() : lhs);
109
+ }
110
+ else {
111
+ return lhs < rhs;
112
+ }
113
+ };
114
+ const equal = (lhs, rhs) => {
115
+ if (_.isNil(lhs) && _.isNil(rhs))
116
+ return true;
117
+ if (isNum(lhs) && isNum(rhs))
118
+ return equalNum(lhs, rhs);
119
+ return _.isEqual(lhs, rhs);
120
+ };
121
+ const lessThan = (lhs, rhs) => {
122
+ if (_.isString(lhs) && _.isString(rhs))
123
+ return lhs < rhs;
124
+ if (_.isDate(lhs) && _.isDate(rhs))
125
+ return lhs < rhs;
126
+ if (isNum(lhs) && isNum(rhs))
127
+ return lessNum(lhs, rhs);
128
+ if (_.isArray(lhs) && _.isArray(rhs)) {
129
+ for (const i of _.range(Math.min(lhs.length, rhs.length))) {
130
+ if (lessThan(lhs[i], rhs[i]))
131
+ return true;
132
+ if (greaterThan(lhs[i], rhs[i]))
133
+ return false;
134
+ }
135
+ return lhs.length < rhs.length;
136
+ }
137
+ return false;
138
+ };
139
+ const greaterThan = (lhs, rhs) => {
140
+ return lessThan(rhs, lhs);
141
+ };
142
+ const lessThanOrEqual = (lhs, rhs) => {
143
+ return equal(lhs, rhs) || lessThan(lhs, rhs);
144
+ };
145
+ const greaterThanOrEqual = (lhs, rhs) => {
146
+ return lessThanOrEqual(rhs, lhs);
147
+ };
148
+ const isSubset = (lhs, rhs) => {
149
+ return _.some(lhs, l => _.every(rhs, r => equal(l, r)));
150
+ };
151
+ const isSuperset = (lhs, rhs) => {
152
+ return isSubset(rhs, lhs);
153
+ };
154
+ const isIntersect = (lhs, rhs) => {
155
+ return _.some(lhs, l => _.some(rhs, r => equal(l, r)));
156
+ };
157
+ const innerProduct = (v1, v2) => {
158
+ if (v1.length !== v2.length)
159
+ throw Error('Invalid comparison of two vectors of different lengths');
160
+ return _.sumBy(_.zip(v1, v2), ([a, b]) => (a - b) ** 2);
161
+ };
162
+ const distance = (v1, v2) => {
163
+ return Math.sqrt(innerProduct(v1, v2));
164
+ };
165
+ const rectilinearDistance = (v1, v2) => {
166
+ if (v1.length !== v2.length)
167
+ throw Error('Invalid comparison of two vectors of different lengths');
168
+ return _.sumBy(_.zip(v1, v2), ([a, b]) => Math.abs(a - b));
169
+ };
170
+ const cosine = (v1, v2) => {
171
+ if (v1.length !== v2.length)
172
+ throw Error('Invalid comparison of two vectors of different lengths');
173
+ const s1 = _.sumBy(v1, v => v ** 2);
174
+ const s2 = _.sumBy(v2, v => v ** 2);
175
+ if (s1 === 0 && s2 === 0)
176
+ return 1;
177
+ if (s1 === 0 || s2 === 0)
178
+ return 0;
179
+ return _.sumBy(_.zip(v1, v2), ([a, b]) => a * b) / Math.sqrt(s1 * s2);
180
+ };
181
+
60
182
  //
61
183
  // expressions.ts
62
184
  //
@@ -137,6 +259,9 @@ class QueryExpression {
137
259
  mapKey(callback) {
138
260
  return this;
139
261
  }
262
+ eval(value) {
263
+ return true;
264
+ }
140
265
  }
141
266
  class QueryCoditionalExpression extends QueryExpression {
142
267
  type;
@@ -165,6 +290,13 @@ class QueryCoditionalExpression extends QueryExpression {
165
290
  mapKey(callback) {
166
291
  return new QueryCoditionalExpression(this.type, _.map(this.exprs, x => x.mapKey(callback)));
167
292
  }
293
+ eval(value) {
294
+ switch (this.type) {
295
+ case '$and': return _.every(this.exprs, expr => expr.eval(value));
296
+ case '$nor': return !_.some(this.exprs, expr => expr.eval(value));
297
+ case '$or': return _.some(this.exprs, expr => expr.eval(value));
298
+ }
299
+ }
168
300
  }
169
301
  class QueryComparisonExpression extends QueryExpression {
170
302
  type;
@@ -188,6 +320,16 @@ class QueryComparisonExpression extends QueryExpression {
188
320
  mapKey(callback) {
189
321
  return new QueryComparisonExpression(this.type, this.left.mapKey(callback), this.right.mapKey(callback));
190
322
  }
323
+ eval(value) {
324
+ switch (this.type) {
325
+ case '$eq': return equal(this.left.eval(value), this.right.eval(value));
326
+ case '$gt': return greaterThan(this.left.eval(value), this.right.eval(value));
327
+ case '$gte': return greaterThanOrEqual(this.left.eval(value), this.right.eval(value));
328
+ case '$lt': return lessThan(this.left.eval(value), this.right.eval(value));
329
+ case '$lte': return lessThanOrEqual(this.left.eval(value), this.right.eval(value));
330
+ case '$ne': return !equal(this.left.eval(value), this.right.eval(value));
331
+ }
332
+ }
191
333
  }
192
334
  class QueryNotExpression extends QueryExpression {
193
335
  expr;
@@ -204,6 +346,9 @@ class QueryNotExpression extends QueryExpression {
204
346
  mapKey(callback) {
205
347
  return new QueryNotExpression(this.expr.mapKey(callback));
206
348
  }
349
+ eval(value) {
350
+ return !this.expr.eval(value);
351
+ }
207
352
  }
208
353
  class QueryArrayExpression extends QueryExpression {
209
354
  exprs;
@@ -220,6 +365,9 @@ class QueryArrayExpression extends QueryExpression {
220
365
  mapKey(callback) {
221
366
  return new QueryArrayExpression(_.map(this.exprs, x => x.mapKey(callback)));
222
367
  }
368
+ eval(value) {
369
+ return _.map(this.exprs, x => x.eval(value));
370
+ }
223
371
  }
224
372
  class QueryDistanceExpression extends QueryExpression {
225
373
  type;
@@ -243,6 +391,21 @@ class QueryDistanceExpression extends QueryExpression {
243
391
  mapKey(callback) {
244
392
  return new QueryDistanceExpression(this.type, _.map(this.left, x => x.mapKey(callback)), _.map(this.right, x => x.mapKey(callback)));
245
393
  }
394
+ eval(value) {
395
+ const left = this.left.length === 1 ? this.left[0].eval(value) : _.map(this.left, x => x.eval(value));
396
+ const right = this.right.length === 1 ? this.right[0].eval(value) : _.map(this.right, x => x.eval(value));
397
+ if (!_.isArray(left) || !_.every(left, x => _.isFinite(x)))
398
+ throw Error('Invalid vectors');
399
+ if (!_.isArray(right) || !_.every(right, x => _.isFinite(x)))
400
+ throw Error('Invalid vectors');
401
+ switch (this.type) {
402
+ case '$distance': return distance(left, right);
403
+ case '$innerProduct': return innerProduct(left, right);
404
+ case '$negInnerProduct': return -innerProduct(left, right);
405
+ case '$cosineDistance': return cosine(left, right);
406
+ case '$rectilinearDistance': return rectilinearDistance(left, right);
407
+ }
408
+ }
246
409
  }
247
410
  class QueryKeyExpression extends QueryExpression {
248
411
  key;
@@ -256,6 +419,9 @@ class QueryKeyExpression extends QueryExpression {
256
419
  mapKey(callback) {
257
420
  return new QueryKeyExpression(callback(this.key));
258
421
  }
422
+ eval(value) {
423
+ return _.get(value, this.key);
424
+ }
259
425
  }
260
426
  class QueryValueExpression extends QueryExpression {
261
427
  value;
@@ -263,6 +429,9 @@ class QueryValueExpression extends QueryExpression {
263
429
  super();
264
430
  this.value = value;
265
431
  }
432
+ eval(value) {
433
+ return value;
434
+ }
266
435
  }
267
436
 
268
437
  //
@@ -352,6 +521,9 @@ class QuerySelector {
352
521
  keyPaths() {
353
522
  return [];
354
523
  }
524
+ eval(value) {
525
+ return true;
526
+ }
355
527
  }
356
528
  class QueryCoditionalSelector extends QuerySelector {
357
529
  type;
@@ -377,6 +549,13 @@ class QueryCoditionalSelector extends QuerySelector {
377
549
  keyPaths() {
378
550
  return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));
379
551
  }
552
+ eval(value) {
553
+ switch (this.type) {
554
+ case '$and': return _.every(this.exprs, expr => expr.eval(value));
555
+ case '$nor': return !_.some(this.exprs, expr => expr.eval(value));
556
+ case '$or': return _.some(this.exprs, expr => expr.eval(value));
557
+ }
558
+ }
380
559
  }
381
560
  class FieldSelectorExpression {
382
561
  type;
@@ -458,6 +637,60 @@ class FieldSelectorExpression {
458
637
  }
459
638
  return field ? result.map(x => `${field}.${x}`) : result;
460
639
  }
640
+ eval(value) {
641
+ if (_.includes(TComparisonKeys, this.type)) {
642
+ switch (this.type) {
643
+ case '$eq': return equal(value, this.value);
644
+ case '$gt': return greaterThan(value, this.value);
645
+ case '$gte': return greaterThanOrEqual(value, this.value);
646
+ case '$lt': return lessThan(value, this.value);
647
+ case '$lte': return lessThanOrEqual(value, this.value);
648
+ case '$ne': return !equal(value, this.value);
649
+ }
650
+ }
651
+ else if (_.includes(TValueListKeys, this.type) || _.includes(TValueSetKeys, this.type)) {
652
+ switch (this.type) {
653
+ case '$in': return _.isArray(value) && _.some(value, x => equal(x, this.value));
654
+ case '$nin': return _.isArray(value) && !_.some(value, x => equal(x, this.value));
655
+ case '$subset': return _.isArray(value) && _.isArray(this.value) && isSubset(value, this.value);
656
+ case '$superset': return _.isArray(value) && _.isArray(this.value) && isSuperset(value, this.value);
657
+ case '$intersect': return _.isArray(value) && _.isArray(this.value) && isIntersect(value, this.value);
658
+ }
659
+ }
660
+ else {
661
+ switch (this.type) {
662
+ case '$not':
663
+ return this.value instanceof FieldSelectorExpression && !this.value.eval(value);
664
+ case '$pattern':
665
+ if (_.isString(this.value)) {
666
+ return _.isString(value) && value.includes(this.value);
667
+ }
668
+ if (_.isRegExp(this.value)) {
669
+ return _.isString(value) && !!value.match(this.value);
670
+ }
671
+ return false;
672
+ case '$starts':
673
+ return _.isString(this.value) && _.isString(value) && value.startsWith(this.value);
674
+ case '$ends':
675
+ return _.isString(this.value) && _.isString(value) && value.endsWith(this.value);
676
+ case '$size':
677
+ return _.isNumber(this.value) && (_.isString(value) || _.isArray(value)) && value.length === this.value;
678
+ case '$empty':
679
+ return _.isBoolean(this.value) && (_.isString(value) || _.isArray(value)) && _.isEmpty(value);
680
+ case '$every':
681
+ {
682
+ const expr = this.value;
683
+ return expr instanceof QuerySelector && _.isArray(value) && _.every(value, x => expr.eval(x));
684
+ }
685
+ case '$some':
686
+ {
687
+ const expr = this.value;
688
+ return expr instanceof QuerySelector && _.isArray(value) && _.some(value, x => expr.eval(x));
689
+ }
690
+ }
691
+ }
692
+ throw Error('Invalid expression');
693
+ }
461
694
  }
462
695
  class QueryFieldSelector extends QuerySelector {
463
696
  field;
@@ -473,6 +706,9 @@ class QueryFieldSelector extends QuerySelector {
473
706
  keyPaths() {
474
707
  return this.field === '$' ? this.expr.keyPaths() : [this.field, ...this.expr.keyPaths(this.field)];
475
708
  }
709
+ eval(value) {
710
+ return this.expr.eval(this.field === '$' ? value : _.get(value, this.field));
711
+ }
476
712
  }
477
713
  class QueryExpressionSelector extends QuerySelector {
478
714
  expr;
@@ -486,6 +722,9 @@ class QueryExpressionSelector extends QuerySelector {
486
722
  keyPaths() {
487
723
  return this.expr.keyPaths();
488
724
  }
725
+ eval(value) {
726
+ return !!this.expr.eval(value);
727
+ }
489
728
  }
490
729
 
491
730
  exports.FieldSelectorExpression = FieldSelectorExpression;
@@ -501,4 +740,4 @@ exports.QueryKeyExpression = QueryKeyExpression;
501
740
  exports.QueryNotExpression = QueryNotExpression;
502
741
  exports.QuerySelector = QuerySelector;
503
742
  exports.QueryValueExpression = QueryValueExpression;
504
- //# sourceMappingURL=index-C4vwSN74.js.map
743
+ //# sourceMappingURL=index-CyPxh5dl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CyPxh5dl.js","sources":["../../../src/internals/query/types/keys.ts","../../../src/server/query/dispatcher/parser/utils.ts","../../../src/server/query/dispatcher/parser/expressions.ts","../../../src/internals/query/types/selectors.ts","../../../src/server/query/dispatcher/parser/index.ts"],"sourcesContent":["//\n// keys.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nexport const TComparisonKeys = [\n '$eq',\n '$gt',\n '$gte',\n '$lt',\n '$lte',\n '$ne',\n] as const;\n\nexport const TValueListKeys = [\n '$in',\n '$nin',\n] as const;\n\nexport const TValueSetKeys = [\n '$subset',\n '$superset',\n '$intersect',\n] as const;\n\nexport const TConditionalKeys = [\n '$and',\n '$nor',\n '$or',\n] as const;\n\nexport const TDistanceKeys = [\n '$distance',\n '$innerProduct',\n '$negInnerProduct',\n '$cosineDistance',\n '$rectilinearDistance',\n] as const;\n","//\n// utils.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport Decimal from 'decimal.js';\nimport { TNumber } from '../../../../common';\n\nconst isNum = (x: any): x is TNumber => _.isNumber(x) || x instanceof BigInt || x instanceof Decimal;\n\nconst equalNum = (lhs: TNumber, rhs: TNumber) => {\n if (lhs instanceof Decimal && rhs instanceof Decimal) {\n return lhs.equals(rhs);\n } else if (lhs instanceof Decimal) {\n return lhs.equals(rhs instanceof BigInt ? rhs.toString() : rhs);\n } else if (rhs instanceof Decimal) {\n return rhs.equals(lhs instanceof BigInt ? lhs.toString() : lhs);\n } else {\n return lhs === rhs;\n }\n}\n\nconst lessNum = (lhs: TNumber, rhs: TNumber) => {\n if (lhs instanceof Decimal && rhs instanceof Decimal) {\n return lhs.lessThan(rhs);\n } else if (lhs instanceof Decimal) {\n return lhs.lessThan(rhs instanceof BigInt ? rhs.toString() : rhs);\n } else if (rhs instanceof Decimal) {\n return rhs.greaterThan(lhs instanceof BigInt ? lhs.toString() : lhs);\n } else {\n return lhs < rhs;\n }\n}\n\nexport const equal = (lhs: any, rhs: any) => {\n if (_.isNil(lhs) && _.isNil(rhs)) return true;\n if (isNum(lhs) && isNum(rhs)) return equalNum(lhs, rhs);\n return _.isEqual(lhs, rhs);\n};\n\nexport const lessThan = (lhs: any, rhs: any) => {\n if (_.isString(lhs) && _.isString(rhs)) return lhs < rhs;\n if (_.isDate(lhs) && _.isDate(rhs)) return lhs < rhs;\n if (isNum(lhs) && isNum(rhs)) return lessNum(lhs, rhs);\n if (_.isArray(lhs) && _.isArray(rhs)) {\n for (const i of _.range(Math.min(lhs.length, rhs.length))) {\n if (lessThan(lhs[i], rhs[i])) return true;\n if (greaterThan(lhs[i], rhs[i])) return false;\n }\n return lhs.length < rhs.length;\n }\n return false;\n};\n\nexport const greaterThan = (lhs: any, rhs: any) => {\n return lessThan(rhs, lhs);\n};\n\nexport const lessThanOrEqual = (lhs: any, rhs: any) => {\n return equal(lhs, rhs) || lessThan(lhs, rhs);\n};\n\nexport const greaterThanOrEqual = (lhs: any, rhs: any) => {\n return lessThanOrEqual(rhs, lhs);\n};\n\nexport const isSubset = (lhs: any[], rhs: any[]) => {\n return _.some(lhs, l => _.every(rhs, r => equal(l, r)));\n}\n\nexport const isSuperset = (lhs: any[], rhs: any[]) => {\n return isSubset(rhs, lhs);\n}\n\nexport const isIntersect = (lhs: any[], rhs: any[]) => {\n return _.some(lhs, l => _.some(rhs, r => equal(l, r)));\n}\n\nexport const innerProduct = (v1: number[], v2: number[]) => {\n if (v1.length !== v2.length) throw Error('Invalid comparison of two vectors of different lengths');\n return _.sumBy(_.zip(v1, v2), ([a, b]) => (a! - b!) ** 2);\n};\n\nexport const distance = (v1: number[], v2: number[]) => {\n return Math.sqrt(innerProduct(v1, v2));\n};\n\nexport const rectilinearDistance = (v1: number[], v2: number[]) => {\n if (v1.length !== v2.length) throw Error('Invalid comparison of two vectors of different lengths');\n return _.sumBy(_.zip(v1, v2), ([a, b]) => Math.abs(a! - b!));\n};\n\nexport const cosine = (v1: number[], v2: number[]) => {\n if (v1.length !== v2.length) throw Error('Invalid comparison of two vectors of different lengths');\n const s1 = _.sumBy(v1, v => v ** 2);\n const s2 = _.sumBy(v2, v => v ** 2);\n if (s1 === 0 && s2 === 0) return 1;\n if (s1 === 0 || s2 === 0) return 0;\n return _.sumBy(_.zip(v1, v2), ([a, b]) => a! * b!) / Math.sqrt(s1 * s2);\n};\n","//\n// expressions.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { TExpression } from '../../../../internals/query/types/expressions';\nimport { TComparisonKeys, TConditionalKeys, TDistanceKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\nimport { cosine, distance, equal, greaterThan, greaterThanOrEqual, innerProduct, lessThan, lessThanOrEqual, rectilinearDistance } from './utils';\n\nexport class QueryExpression {\n\n static decode(expr: _.Many<TExpression>, dollerSign: boolean): QueryExpression {\n const exprs: QueryExpression[] = [];\n for (const selector of _.castArray(expr)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalExpression(key as any, _.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (_.includes(TComparisonKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n exprs.push(new QueryComparisonExpression(key as any, QueryExpression.decode(left as any, dollerSign), QueryExpression.decode(right as any, dollerSign)));\n } else if (_.includes(TDistanceKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n const _left = _.isArray(left) ? _.map(left, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(left as any, dollerSign);\n const _right = _.isArray(right) ? _.map(right, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(right as any, dollerSign);\n exprs.push(new QueryDistanceExpression(key as any, _.castArray(_left), _.castArray(_right)));\n } else if (key === '$not') {\n exprs.push(new QueryNotExpression(QueryExpression.decode(query as any, dollerSign)));\n } else if (key === '$array' && _.isArray(query)) {\n exprs.push(new QueryArrayExpression(_.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (key === '$key' && _.isString(query)) {\n if (dollerSign && query === '$') {\n exprs.push(new QueryKeyExpression(query));\n } else if (!query.startsWith('$')) {\n exprs.push(new QueryKeyExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n } else if (key === '$value' && isValue(query)) {\n exprs.push(new QueryValueExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QueryExpression;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalExpression('$and', exprs)).simplify();\n }\n\n simplify(): QueryExpression {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return this;\n }\n\n eval(value: any): any {\n return true;\n }\n}\n\nexport class QueryCoditionalExpression extends QueryExpression {\n\n type: typeof TConditionalKeys[number];\n exprs: QueryExpression[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QueryExpression[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QueryExpression;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n case '$nor':\n case '$or':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryCoditionalExpression(this.type, _.map(this.exprs, x => x.mapKey(callback)));\n }\n\n eval(value: any) {\n switch (this.type) {\n case '$and': return _.every(this.exprs, expr => expr.eval(value));\n case '$nor': return !_.some(this.exprs, expr => expr.eval(value));\n case '$or': return _.some(this.exprs, expr => expr.eval(value));\n }\n }\n}\n\nexport class QueryComparisonExpression extends QueryExpression {\n\n type: typeof TComparisonKeys[number];\n left: QueryExpression;\n right: QueryExpression;\n\n constructor(type: typeof TComparisonKeys[number], left: QueryExpression, right: QueryExpression) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryComparisonExpression(this.type, this.left.simplify(), this.right.simplify());\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ...this.left.keyPaths(),\n ...this.right.keyPaths(),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryComparisonExpression(this.type, this.left.mapKey(callback), this.right.mapKey(callback));\n }\n\n eval(value: any) {\n switch (this.type) {\n case '$eq': return equal(this.left.eval(value), this.right.eval(value));\n case '$gt': return greaterThan(this.left.eval(value), this.right.eval(value));\n case '$gte': return greaterThanOrEqual(this.left.eval(value), this.right.eval(value));\n case '$lt': return lessThan(this.left.eval(value), this.right.eval(value));\n case '$lte': return lessThanOrEqual(this.left.eval(value), this.right.eval(value));\n case '$ne': return !equal(this.left.eval(value), this.right.eval(value));\n }\n }\n}\n\nexport class QueryNotExpression extends QueryExpression {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryNotExpression(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryNotExpression(this.expr.mapKey(callback));\n }\n\n eval(value: any) {\n return !this.expr.eval(value);\n }\n}\n\nexport class QueryArrayExpression extends QueryExpression {\n\n exprs: QueryExpression[];\n\n constructor(exprs: QueryExpression[]) {\n super();\n this.exprs = exprs;\n }\n\n simplify() {\n return new QueryArrayExpression(_.map(this.exprs, x => x.simplify())) as QueryExpression;\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryArrayExpression(_.map(this.exprs, x => x.mapKey(callback)));\n }\n\n eval(value: any) {\n return _.map(this.exprs, x => x.eval(value));\n }\n}\n\nexport class QueryDistanceExpression extends QueryExpression {\n\n type: typeof TDistanceKeys[number];\n left: QueryExpression[];\n right: QueryExpression[];\n\n constructor(type: typeof TDistanceKeys[number], left: QueryExpression[], right: QueryExpression[]) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.simplify()), _.map(this.right, x => x.simplify()));\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ..._.flatMap(this.left, x => x.keyPaths()),\n ..._.flatMap(this.right, x => x.keyPaths()),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.mapKey(callback)), _.map(this.right, x => x.mapKey(callback)));\n }\n\n eval(value: any) {\n const left = this.left.length === 1 ? this.left[0].eval(value) : _.map(this.left, x => x.eval(value));\n const right = this.right.length === 1 ? this.right[0].eval(value) : _.map(this.right, x => x.eval(value));\n if (!_.isArray(left) || !_.every(left, x => _.isFinite(x))) throw Error('Invalid vectors');\n if (!_.isArray(right) || !_.every(right, x => _.isFinite(x))) throw Error('Invalid vectors');\n switch (this.type) {\n case '$distance': return distance(left, right);\n case '$innerProduct': return innerProduct(left, right);\n case '$negInnerProduct': return -innerProduct(left, right);\n case '$cosineDistance': return cosine(left, right);\n case '$rectilinearDistance': return rectilinearDistance(left, right);\n }\n }\n}\n\nexport class QueryKeyExpression extends QueryExpression {\n\n key: string;\n\n constructor(key: string) {\n super();\n this.key = key;\n }\n\n keyPaths(): string[] {\n return this.key === '$' ? [] : [this.key];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryKeyExpression(callback(this.key));\n }\n\n eval(value: any) {\n return _.get(value, this.key);\n }\n}\n\nexport class QueryValueExpression extends QueryExpression {\n\n value: TValue;\n\n constructor(value: TValue) {\n super();\n this.value = value;\n }\n\n eval(value: any) {\n return value;\n }\n}\n","//\n// selectors.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport { TValue } from '../../types';\nimport { TBooleanExpression } from './expressions';\nimport { TConditionalKeys, TValueListKeys, TValueSetKeys, TComparisonKeys } from './keys';\n\nexport const allFieldQueryKeys = [\n '$not', '$pattern', '$starts', '$ends', '$size', '$empty', '$every', '$some',\n ...TConditionalKeys,\n ...TValueListKeys,\n ...TValueSetKeys\n];\n\ntype TThisQuerySelector = { $?: TFieldQuerySelector; };\n\nexport type TFieldQuerySelector = {\n $not?: TFieldQuerySelector;\n $starts?: string;\n $ends?: string;\n $pattern?: RegExp | string;\n $size?: number;\n $empty?: boolean;\n $every?: TQuerySelector | TThisQuerySelector;\n $some?: TQuerySelector | TThisQuerySelector;\n} & {\n [x in (typeof TComparisonKeys)[number]]?: TValue;\n } & {\n [x in (typeof TValueListKeys)[number]]?: TValue[];\n } & {\n [x in (typeof TValueSetKeys)[number]]?: TValue[];\n };\n\nexport type TCoditionalQuerySelector = {\n [x in (typeof TConditionalKeys)[number]]?: TQuerySelector[];\n};\n\nexport type TQuerySelector = TCoditionalQuerySelector & {\n $expr?: TBooleanExpression\n} | {\n [x: string]: TFieldQuerySelector;\n};\n","//\n// index.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2025 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { QueryExpression } from './expressions';\nimport { TFieldQuerySelector, TQuerySelector, allFieldQueryKeys } from '../../../../internals/query/types/selectors';\nimport { TComparisonKeys, TConditionalKeys, TValueListKeys, TValueSetKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\nimport { equal, greaterThan, greaterThanOrEqual, isIntersect, isSubset, isSuperset, lessThan, lessThanOrEqual } from './utils';\n\nexport class QuerySelector {\n\n static decode(selectors: _.Many<TQuerySelector>, dollerSign: boolean = false): QuerySelector {\n const exprs: QuerySelector[] = [];\n for (const selector of _.castArray(selectors)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalSelector(key as any, _.map(query, x => QuerySelector.decode(x, dollerSign))));\n } else if (key === '$expr') {\n exprs.push(new QueryExpressionSelector(QueryExpression.decode(query as any, dollerSign)));\n } else if (dollerSign && key === '$' && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else if (!key.startsWith('$') && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QuerySelector;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalSelector('$and', exprs)).simplify();\n }\n\n simplify(): QuerySelector {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n\n eval(value: any): boolean {\n return true;\n }\n}\n\nexport class QueryCoditionalSelector extends QuerySelector {\n\n type: typeof TConditionalKeys[number];\n exprs: QuerySelector[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QuerySelector[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QuerySelector;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n case '$nor':\n case '$or':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n eval(value: any) {\n switch (this.type) {\n case '$and': return _.every(this.exprs, expr => expr.eval(value));\n case '$nor': return !_.some(this.exprs, expr => expr.eval(value));\n case '$or': return _.some(this.exprs, expr => expr.eval(value));\n }\n }\n}\n\nexport class FieldSelectorExpression {\n\n type: keyof TFieldQuerySelector;\n value: QuerySelector | FieldSelectorExpression | RegExp | TValue;\n\n constructor(type: keyof TFieldQuerySelector, value: QuerySelector | FieldSelectorExpression | RegExp | TValue) {\n this.type = type;\n this.value = value;\n }\n\n static decode(selector: TFieldQuerySelector): FieldSelectorExpression {\n for (const [type, expr] of _.toPairs(selector)) {\n if (_.includes(TComparisonKeys, type)) {\n if (!isValue(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else if (_.includes(TValueListKeys, type) || _.includes(TValueSetKeys, type)) {\n if (!isValue(expr) || !_.isArray(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else {\n switch (type) {\n case '$not':\n {\n const _expr = expr ? { ...expr as any } : {};\n const keys = _.keys(_expr);\n if (keys.length !== 1 && !allFieldQueryKeys.includes(keys[0])) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, FieldSelectorExpression.decode(_expr));\n }\n case '$pattern':\n if (!_.isString(expr) && !_.isRegExp(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$starts':\n case '$ends':\n if (!_.isString(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$size':\n if (!_.isNumber(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$empty':\n if (!_.isBoolean(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$every':\n case '$some':\n return new FieldSelectorExpression(type, QuerySelector.decode(expr ? { ...expr as any } : {}, true));\n default: throw Error('Invalid expression');\n }\n }\n }\n throw Error('Invalid expression');\n }\n\n simplify(): FieldSelectorExpression {\n if (this.value instanceof QuerySelector) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n if (this.value instanceof FieldSelectorExpression) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n return this;\n }\n\n keyPaths(field?: string): string[] {\n let result: string[] = [];\n if (this.value instanceof QuerySelector) {\n result = this.value.keyPaths();\n } else if (this.value instanceof FieldSelectorExpression) {\n switch (this.type) {\n case '$every':\n case '$some':\n result = this.value.keyPaths();\n default:\n result = this.value.keyPaths();\n }\n }\n return field ? result.map(x => `${field}.${x}`) : result;\n }\n\n eval(value: any): any {\n if (_.includes(TComparisonKeys, this.type)) {\n switch (this.type) {\n case '$eq': return equal(value, this.value);\n case '$gt': return greaterThan(value, this.value);\n case '$gte': return greaterThanOrEqual(value, this.value);\n case '$lt': return lessThan(value, this.value);\n case '$lte': return lessThanOrEqual(value, this.value);\n case '$ne': return !equal(value, this.value);\n }\n } else if (_.includes(TValueListKeys, this.type) || _.includes(TValueSetKeys, this.type)) {\n switch (this.type) {\n case '$in': return _.isArray(value) && _.some(value, x => equal(x, this.value));\n case '$nin': return _.isArray(value) && !_.some(value, x => equal(x, this.value));\n case '$subset': return _.isArray(value) && _.isArray(this.value) && isSubset(value, this.value);\n case '$superset': return _.isArray(value) && _.isArray(this.value) && isSuperset(value, this.value);\n case '$intersect': return _.isArray(value) && _.isArray(this.value) && isIntersect(value, this.value);\n }\n } else {\n switch (this.type) {\n case '$not':\n return this.value instanceof FieldSelectorExpression && !this.value.eval(value);\n case '$pattern':\n if (_.isString(this.value)) {\n return _.isString(value) && value.includes(this.value);\n }\n if (_.isRegExp(this.value)) {\n return _.isString(value) && !!value.match(this.value);\n }\n return false;\n case '$starts':\n return _.isString(this.value) && _.isString(value) && value.startsWith(this.value);\n case '$ends':\n return _.isString(this.value) && _.isString(value) && value.endsWith(this.value);\n case '$size':\n return _.isNumber(this.value) && (_.isString(value) || _.isArray(value)) && value.length === this.value;\n case '$empty':\n return _.isBoolean(this.value) && (_.isString(value) || _.isArray(value)) && _.isEmpty(value);\n case '$every':\n {\n const expr = this.value;\n return expr instanceof QuerySelector && _.isArray(value) && _.every(value, x => expr.eval(x));\n }\n case '$some':\n {\n const expr = this.value;\n return expr instanceof QuerySelector && _.isArray(value) && _.some(value, x => expr.eval(x));\n }\n default: break;\n }\n }\n throw Error('Invalid expression');\n }\n}\n\nexport class QueryFieldSelector extends QuerySelector {\n\n field: string;\n expr: FieldSelectorExpression;\n\n constructor(field: string, expr: FieldSelectorExpression) {\n super();\n this.field = field;\n this.expr = expr;\n }\n\n simplify() {\n return new QueryFieldSelector(this.field, this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.field === '$' ? this.expr.keyPaths() : [this.field, ...this.expr.keyPaths(this.field)];\n }\n\n eval(value: any) {\n return this.expr.eval(this.field === '$' ? value : _.get(value, this.field));\n }\n}\n\nexport class QueryExpressionSelector extends QuerySelector {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryExpressionSelector(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n\n eval(value: any) {\n return !!this.expr.eval(value);\n }\n}\n"],"names":["isValue"],"mappings":"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"}
@@ -582,7 +582,7 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
582
582
  * @param options - Extra options for the query.
583
583
  * @returns A promise that resolves to the number of inserted records.
584
584
  */
585
- abstract insertMany(values: Record<string, TValueWithUndefined>[], options?: ExtraOptions<M>): PromiseLike<number>;
585
+ abstract insertMany(values: Record<string, TValueWithUndefined>[], options?: ExtraOptions<M>): PromiseLike<TObjectType<T, Ext>[]>;
586
586
  /**
587
587
  * Updates a single record.
588
588
  * @param update - The update operations.
@@ -596,7 +596,7 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
596
596
  * @param options - Extra options for the query.
597
597
  * @returns A promise that resolves to the number of updated records.
598
598
  */
599
- abstract updateMany(update: Record<string, TUpdateOp>, options?: ExtraOptions<M>): PromiseLike<number>;
599
+ abstract updateMany(update: Record<string, TUpdateOp>, options?: ExtraOptions<M>): PromiseLike<TObjectType<T, Ext>[]>;
600
600
  /**
601
601
  * Upserts a single record.
602
602
  * @param update - The update operations.
@@ -612,10 +612,7 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
612
612
  * @param options - Extra options for the query.
613
613
  * @returns A promise that resolves to the number of upserted records.
614
614
  */
615
- abstract upsertMany(update: Record<string, TUpdateOp>, setOnInsert: Record<string, TValueWithUndefined>, options?: ExtraOptions<M>): PromiseLike<{
616
- updated: number;
617
- inserted: number;
618
- }>;
615
+ abstract upsertMany(update: Record<string, TUpdateOp>, setOnInsert: Record<string, TValueWithUndefined>, options?: ExtraOptions<M>): PromiseLike<TObjectType<T, Ext>[]>;
619
616
  /**
620
617
  * Deletes a single record.
621
618
  * @param options - Extra options for the query.
@@ -627,7 +624,7 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
627
624
  * @param options - Extra options for the query.
628
625
  * @returns A promise that resolves to the number of deleted records.
629
626
  */
630
- abstract deleteMany(options?: ExtraOptions<M>): PromiseLike<number>;
627
+ abstract deleteMany(options?: ExtraOptions<M>): PromiseLike<TObjectType<T, Ext>[]>;
631
628
  /**
632
629
  * Adds fields to include in the query.
633
630
  * @param includes - The fields to include.
@@ -923,7 +920,7 @@ declare abstract class ProtoType<Ext> {
923
920
  * @param callback - The callback to call when an event occurs.
924
921
  * @returns An object with a remove function to stop listening.
925
922
  */
926
- abstract listen(callback: (data: EventData) => void): {
923
+ abstract listen(callback: (data: EventData) => void, selector?: TQuerySelector): {
927
924
  remove: VoidFunction;
928
925
  socket?: Socket;
929
926
  };
@@ -1562,12 +1559,14 @@ declare class QueryExpression {
1562
1559
  simplify(): QueryExpression;
1563
1560
  keyPaths(): string[];
1564
1561
  mapKey(callback: (key: string) => string): QueryExpression;
1562
+ eval(value: any): any;
1565
1563
  }
1566
1564
 
1567
1565
  declare class QuerySelector {
1568
1566
  static decode(selectors: _.Many<TQuerySelector>, dollerSign?: boolean): QuerySelector;
1569
1567
  simplify(): QuerySelector;
1570
1568
  keyPaths(): string[];
1569
+ eval(value: any): boolean;
1571
1570
  }
1572
1571
  declare class FieldSelectorExpression {
1573
1572
  type: keyof TFieldQuerySelector;
@@ -1576,6 +1575,7 @@ declare class FieldSelectorExpression {
1576
1575
  static decode(selector: TFieldQuerySelector): FieldSelectorExpression;
1577
1576
  simplify(): FieldSelectorExpression;
1578
1577
  keyPaths(field?: string): string[];
1578
+ eval(value: any): any;
1579
1579
  }
1580
1580
 
1581
1581
  type CommonFindOptions = {
@@ -1632,16 +1632,13 @@ interface TStorage {
1632
1632
  refs(object: TObject, classNames: string[], roles?: string[]): AsyncIterable<TObject>;
1633
1633
  nonrefs(query: DecodedQuery<FindOptions>): AsyncIterable<TObject>;
1634
1634
  insert(options: InsertOptions, attrs: Record<string, TValueWithUndefined>): PromiseLike<TObject | undefined>;
1635
- insertMany(options: InsertOptions, values: Record<string, TValueWithUndefined>[]): PromiseLike<number>;
1635
+ insertMany(options: InsertOptions, values: Record<string, TValueWithUndefined>[]): PromiseLike<TObject[]>;
1636
1636
  updateOne(query: DecodedQuery<FindOneOptions>, update: Record<string, TUpdateOp>): PromiseLike<TObject | undefined>;
1637
- updateMany(query: DecodedQuery<FindOptions>, update: Record<string, TUpdateOp>): PromiseLike<number>;
1637
+ updateMany(query: DecodedQuery<FindOptions>, update: Record<string, TUpdateOp>): PromiseLike<TObject[]>;
1638
1638
  upsertOne(query: DecodedQuery<FindOneOptions>, update: Record<string, TUpdateOp>, setOnInsert: Record<string, TValueWithUndefined>): PromiseLike<TObject | undefined>;
1639
- upsertMany(query: DecodedQuery<FindOptions>, update: Record<string, TUpdateOp>, setOnInsert: Record<string, TValueWithUndefined>): PromiseLike<{
1640
- updated: number;
1641
- inserted: number;
1642
- }>;
1639
+ upsertMany(query: DecodedQuery<FindOptions>, update: Record<string, TUpdateOp>, setOnInsert: Record<string, TValueWithUndefined>): PromiseLike<TObject[]>;
1643
1640
  deleteOne(query: DecodedQuery<FindOneOptions>): PromiseLike<TObject | undefined>;
1644
- deleteMany(query: DecodedQuery<FindOptions>): PromiseLike<number>;
1641
+ deleteMany(query: DecodedQuery<FindOptions>): PromiseLike<TObject[]>;
1645
1642
  lockTable(className: string | string[], update: boolean): Promise<void>;
1646
1643
  withConnection<T>(callback: (connection: TStorage) => PromiseLike<T>): PromiseLike<T>;
1647
1644
  isDuplicateIdError(error: any): boolean;
@@ -1871,12 +1868,12 @@ declare class ProtoService<Ext = any> extends ProtoType<Ext> {
1871
1868
  notify(data: Record<string, TValueWithoutObject> & {
1872
1869
  _rperm?: string[];
1873
1870
  }): Promise<void>;
1874
- listen(callback: (data: EventData) => void): {
1871
+ listen(callback: (data: EventData) => void, selector?: TQuerySelector): {
1875
1872
  remove: VoidFunction;
1876
1873
  };
1877
1874
  refs(object: TObject, options?: ExtraOptions<boolean>): _o2ter_utils_js.AsyncStream<TObjectType<string, Ext>>;
1878
1875
  gc(classNames?: string | string[]): Promise<void>;
1879
1876
  }
1880
1877
 
1881
- export { type TStorage as A, type TransactionOptions as B, type TQueryRandomOptions as C, type DeserializeOptions as D, type ExtraOptions as E, FieldSelectorExpression as F, type TPubSub as G, type TFileInfo as H, type InsertOptions as I, ProtoService as P, QueryExpression as Q, type RelationOptions as R, type SerializeOptions as S, TSchema as T, type TValueWithoutObject as a, type ProtoServiceOptions as b, type ProtoServiceKeyOptions as c, type TFileStorage as d, type TSerializable as e, deserialize as f, type TExtensions as g, TQuery as h, TObject as i, TUser as j, TRole as k, TFile as l, TJob as m, ProtoType as n, type PathName as o, type TObjectType as p, type EventData as q, type TValueWithUndefined as r, serialize as s, type TValue as t, type TUpdateOp as u, QuerySelector as v, type DecodedSortOption as w, type DecodedQuery as x, type FindOptions as y, type FindOneOptions as z };
1882
- //# sourceMappingURL=index-JdEs5VLY.d.ts.map
1878
+ export { type FindOptions as A, type FindOneOptions as B, type TStorage as C, type DeserializeOptions as D, type ExtraOptions as E, FieldSelectorExpression as F, type TransactionOptions as G, type TQueryRandomOptions as H, type InsertOptions as I, type TPubSub as J, type TFileInfo as K, ProtoService as P, QueryExpression as Q, type RelationOptions as R, type SerializeOptions as S, TSchema as T, type TValueWithoutObject as a, type ProtoServiceOptions as b, type ProtoServiceKeyOptions as c, type TFileStorage as d, type TNumber as e, type TSerializable as f, deserialize as g, type TExtensions as h, TQuery as i, TObject as j, TUser as k, TRole as l, TFile as m, TJob as n, ProtoType as o, type PathName as p, type TObjectType as q, type EventData as r, serialize as s, type TQuerySelector as t, type TValueWithUndefined as u, type TValue as v, type TUpdateOp as w, QuerySelector as x, type DecodedSortOption as y, type DecodedQuery as z };
1879
+ //# sourceMappingURL=index-DnbbpIaO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DnbbpIaO.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -480,5 +480,5 @@ class TObject {
480
480
  }
481
481
  }
482
482
 
483
- export { TObject as T, _isTypeof as _, isRelation as a, isShape as b, isPrimitive as c, defaultObjectKeyTypes as d, decodeUpdateOp as e, isVector as f, _encodeValue as g, _decodeValue as h, isPointer as i, dimensionOf as j, _typeof as k, isPrimitiveValue as l, isValue as m, shapePaths as s };
484
- //# sourceMappingURL=index-al1N-qi7.mjs.map
483
+ export { TObject as T, _isTypeof as _, isRelation as a, isShape as b, isPrimitive as c, defaultObjectKeyTypes as d, decodeUpdateOp as e, defaultObjectKeys as f, isVector as g, _encodeValue as h, isPointer as i, _decodeValue as j, dimensionOf as k, _typeof as l, isPrimitiveValue as m, isValue as n, shapePaths as s };
484
+ //# sourceMappingURL=index-DpN9tcbY.mjs.map