data-finder-ts 0.1.3 → 0.1.5

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 (62) hide show
  1. package/README.md +17 -55
  2. package/dist/chunk-BGEX377Q.js +230 -0
  3. package/dist/chunk-BGEX377Q.js.map +1 -0
  4. package/dist/chunk-BKPWV3OF.js +962 -0
  5. package/dist/chunk-BKPWV3OF.js.map +1 -0
  6. package/dist/{chunk-EYXBYV2X.js → chunk-GPHWC533.js} +2 -2
  7. package/dist/chunk-KAK75RVS.js +198 -0
  8. package/dist/chunk-KAK75RVS.js.map +1 -0
  9. package/dist/chunk-MGEL5RWM.js +628 -0
  10. package/dist/chunk-MGEL5RWM.js.map +1 -0
  11. package/dist/chunk-PF6EJZHB.js +1015 -0
  12. package/dist/chunk-PF6EJZHB.js.map +1 -0
  13. package/dist/datafinder/attribute.cjs +595 -18
  14. package/dist/datafinder/attribute.cjs.map +1 -1
  15. package/dist/datafinder/attribute.d.cts +73 -10
  16. package/dist/datafinder/attribute.d.ts +73 -10
  17. package/dist/datafinder/attribute.js +2 -2
  18. package/dist/datafinder/runner.cjs +1589 -288
  19. package/dist/datafinder/runner.cjs.map +1 -1
  20. package/dist/datafinder/runner.d.cts +41 -7
  21. package/dist/datafinder/runner.d.ts +41 -7
  22. package/dist/datafinder/runner.js +12 -6
  23. package/dist/datafinder/sql-generator.cjs +1484 -281
  24. package/dist/datafinder/sql-generator.cjs.map +1 -1
  25. package/dist/datafinder/sql-generator.d.cts +19 -14
  26. package/dist/datafinder/sql-generator.d.ts +19 -14
  27. package/dist/datafinder/sql-generator.js +9 -7
  28. package/dist/datafinder/typed-attributes.cjs +856 -93
  29. package/dist/datafinder/typed-attributes.cjs.map +1 -1
  30. package/dist/datafinder/typed-attributes.d.cts +3 -135
  31. package/dist/datafinder/typed-attributes.d.ts +3 -135
  32. package/dist/datafinder/typed-attributes.js +3 -3
  33. package/dist/dialect-CogGPm_y.d.cts +38 -0
  34. package/dist/dialect-aaG1bDi5.d.ts +38 -0
  35. package/dist/index.cjs +2080 -480
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +119 -14
  38. package/dist/index.d.ts +119 -14
  39. package/dist/index.js +362 -12
  40. package/dist/index.js.map +1 -1
  41. package/dist/model/milestoning.cjs +529 -0
  42. package/dist/model/milestoning.cjs.map +1 -1
  43. package/dist/model/milestoning.js +2 -2
  44. package/dist/model/relational.cjs +608 -12
  45. package/dist/model/relational.cjs.map +1 -1
  46. package/dist/model/relational.d.cts +456 -47
  47. package/dist/model/relational.d.ts +456 -47
  48. package/dist/model/relational.js +61 -3
  49. package/dist/typed-attributes-CUTf_6Ru.d.ts +328 -0
  50. package/dist/typed-attributes-CdWXq_78.d.cts +328 -0
  51. package/package.json +5 -2
  52. package/dist/chunk-3SSWFES4.js +0 -448
  53. package/dist/chunk-3SSWFES4.js.map +0 -1
  54. package/dist/chunk-5K2Z3YDY.js +0 -393
  55. package/dist/chunk-5K2Z3YDY.js.map +0 -1
  56. package/dist/chunk-6QTCGJWX.js +0 -98
  57. package/dist/chunk-6QTCGJWX.js.map +0 -1
  58. package/dist/chunk-DFYZVBII.js +0 -652
  59. package/dist/chunk-DFYZVBII.js.map +0 -1
  60. package/dist/chunk-V647VNMY.js +0 -135
  61. package/dist/chunk-V647VNMY.js.map +0 -1
  62. /package/dist/{chunk-EYXBYV2X.js.map → chunk-GPHWC533.js.map} +0 -0
@@ -30,6 +30,247 @@ __export(milestoning_exports, {
30
30
  module.exports = __toCommonJS(milestoning_exports);
31
31
 
32
32
  // src/model/relational.ts
33
+ var LIKE_ESCAPE = "!";
34
+ function escapeLike(value) {
35
+ return value.replaceAll(LIKE_ESCAPE, LIKE_ESCAPE + LIKE_ESCAPE).replaceAll("%", LIKE_ESCAPE + "%").replaceAll("_", LIKE_ESCAPE + "_");
36
+ }
37
+ var RelationalOperationElement = class {
38
+ };
39
+ var Operation = class extends RelationalOperationElement {
40
+ /** Name this column in the result: `f.price().sum().alias('Total')`, `f.age().gt(30).alias('Adult')`. */
41
+ alias(name) {
42
+ return new Alias(this, name);
43
+ }
44
+ and(other) {
45
+ return new LogicalOperation(this, "AND" /* AND */, other);
46
+ }
47
+ /** Combine with `other` using OR. A chain reads left to right: `a.or(b).and(c)` is `(a OR b) AND c`. */
48
+ or(other) {
49
+ return new LogicalOperation(this, "OR" /* OR */, other);
50
+ }
51
+ };
52
+ var ConstantOperation = class extends RelationalOperationElement {
53
+ /** Name this column in the result. */
54
+ alias(name) {
55
+ return new Alias(this, name);
56
+ }
57
+ /** Sort by this expression, smallest first. */
58
+ ascending() {
59
+ return new SortOperation(this, "ASC" /* ASC */);
60
+ }
61
+ /** Sort by this expression, largest first. */
62
+ descending() {
63
+ return new SortOperation(this, "DESC" /* DESC */);
64
+ }
65
+ };
66
+ var NumericConstantOperation = class extends ConstantOperation {
67
+ arithmeticOperand() {
68
+ return this;
69
+ }
70
+ };
71
+ var IntegerConstantOperation = class extends NumericConstantOperation {
72
+ constructor(value) {
73
+ super();
74
+ this.value = value;
75
+ }
76
+ value;
77
+ };
78
+ var FloatConstantOperation = class extends NumericConstantOperation {
79
+ constructor(value) {
80
+ super();
81
+ this.value = value;
82
+ }
83
+ value;
84
+ };
85
+ var StringConstantOperation = class extends ConstantOperation {
86
+ constructor(value) {
87
+ super();
88
+ this.value = value;
89
+ }
90
+ value;
91
+ };
92
+ var DateOnly = class extends Date {
93
+ };
94
+ var DateConstantOperation = class extends ConstantOperation {
95
+ constructor(value) {
96
+ super();
97
+ this.value = value;
98
+ }
99
+ value;
100
+ };
101
+ var DateTimeConstantOperation = class extends ConstantOperation {
102
+ constructor(value) {
103
+ super();
104
+ this.value = value;
105
+ }
106
+ value;
107
+ };
108
+ var BooleanConstantOperation = class extends ConstantOperation {
109
+ constructor(value) {
110
+ super();
111
+ this.value = value;
112
+ }
113
+ value;
114
+ };
115
+ var UnaryOperation = class extends Operation {
116
+ constructor(element) {
117
+ super();
118
+ this.element = element;
119
+ }
120
+ element;
121
+ };
122
+ var BinaryOperation = class extends Operation {
123
+ constructor(left, right) {
124
+ super();
125
+ this.left = left;
126
+ this.right = right;
127
+ }
128
+ left;
129
+ right;
130
+ };
131
+ var IsNullOperation = class extends UnaryOperation {
132
+ };
133
+ var IsNotNullOperation = class extends UnaryOperation {
134
+ };
135
+ var InOperation = class extends UnaryOperation {
136
+ constructor(element, values) {
137
+ super(element);
138
+ this.values = values;
139
+ }
140
+ values;
141
+ };
142
+ var NotInOperation = class extends UnaryOperation {
143
+ constructor(element, values) {
144
+ super(element);
145
+ this.values = values;
146
+ }
147
+ values;
148
+ };
149
+ var ComparisonOperation = class extends BinaryOperation {
150
+ constructor(left, operator, right) {
151
+ super(left, right);
152
+ this.operator = operator;
153
+ }
154
+ operator;
155
+ };
156
+ var LogicalOperation = class extends BinaryOperation {
157
+ constructor(left, operator, right) {
158
+ super(left, right);
159
+ this.operator = operator;
160
+ }
161
+ operator;
162
+ };
163
+ var WindowSpecification = class {
164
+ constructor(partitionBy = [], orderBy = []) {
165
+ this.partitionBy = partitionBy;
166
+ this.orderBy = orderBy;
167
+ }
168
+ partitionBy;
169
+ orderBy;
170
+ };
171
+ var AggregateOperation = class _AggregateOperation extends UnaryOperation {
172
+ constructor(element, operator, displayName, window, separator, orderBy = []) {
173
+ super(element);
174
+ this.operator = operator;
175
+ this.displayName = displayName;
176
+ this.window = window;
177
+ this.separator = separator;
178
+ this.orderBy = orderBy;
179
+ }
180
+ operator;
181
+ displayName;
182
+ window;
183
+ separator;
184
+ orderBy;
185
+ /** Sort by this expression, smallest first. */
186
+ ascending() {
187
+ return new SortOperation(this, "ASC" /* ASC */);
188
+ }
189
+ /** Sort by this expression, largest first. */
190
+ descending() {
191
+ return new SortOperation(this, "DESC" /* DESC */);
192
+ }
193
+ arithmeticOperand() {
194
+ return this;
195
+ }
196
+ comparisonOperand() {
197
+ return this;
198
+ }
199
+ over(partitionBy, orderBy) {
200
+ return new _AggregateOperation(
201
+ this.element,
202
+ this.operator,
203
+ this.displayName,
204
+ new WindowSpecification(partitionBy ?? [], orderBy ?? []),
205
+ this.separator,
206
+ this.orderBy
207
+ );
208
+ }
209
+ };
210
+ var ScalarFunctionOperation = class extends UnaryOperation {
211
+ constructor(element, func, displayName, secondArg, extraArgs = []) {
212
+ super(element);
213
+ this.func = func;
214
+ this.displayName = displayName;
215
+ this.secondArg = secondArg;
216
+ this.extraArgs = extraArgs;
217
+ }
218
+ func;
219
+ displayName;
220
+ secondArg;
221
+ extraArgs;
222
+ /** Sort by this expression, smallest first. */
223
+ ascending() {
224
+ return new SortOperation(this, "ASC" /* ASC */);
225
+ }
226
+ /** Sort by this expression, largest first. */
227
+ descending() {
228
+ return new SortOperation(this, "DESC" /* DESC */);
229
+ }
230
+ /** This expression as an operand of a comparison. */
231
+ comparisonOperand() {
232
+ return this;
233
+ }
234
+ arithmeticOperand() {
235
+ return this;
236
+ }
237
+ /** Only a function that gives a number can be used in arithmetic. */
238
+ assertNumeric() {
239
+ if (!NUMERIC_FUNCTIONS.has(this.func)) {
240
+ throw new TypeError(`${this.func} does not give a number, so it cannot be used in arithmetic`);
241
+ }
242
+ }
243
+ };
244
+ var NUMERIC_FUNCTIONS = /* @__PURE__ */ new Set([
245
+ "ABS" /* ABS */,
246
+ "CEILING" /* CEILING */,
247
+ "FLOOR" /* FLOOR */,
248
+ "MOD" /* MOD */,
249
+ "POWER" /* POWER */,
250
+ "SQRT" /* SQRT */,
251
+ "ROUND" /* ROUND */,
252
+ "LENGTH" /* LENGTH */
253
+ ]);
254
+ var DateTruncOperation = class extends UnaryOperation {
255
+ constructor(element, part, displayName) {
256
+ super(element);
257
+ this.part = part;
258
+ this.displayName = displayName;
259
+ }
260
+ part;
261
+ displayName;
262
+ /** Sort by this expression, earliest first. */
263
+ ascending() {
264
+ return new SortOperation(this, "ASC" /* ASC */);
265
+ }
266
+ /** Sort by this expression, latest first. */
267
+ descending() {
268
+ return new SortOperation(this, "DESC" /* DESC */);
269
+ }
270
+ comparisonOperand() {
271
+ return this;
272
+ }
273
+ };
33
274
  var Table = class {
34
275
  constructor(name, columns, schema) {
35
276
  this.name = name;
@@ -56,6 +297,294 @@ var Table = class {
56
297
  return `${this.schema.datastore.namespace(this.schema.name)}.${this.name}`;
57
298
  }
58
299
  };
300
+ var SortOperation = class {
301
+ constructor(column, direction) {
302
+ this.column = column;
303
+ this.direction = direction;
304
+ }
305
+ column;
306
+ direction;
307
+ };
308
+ var CountAllOperation = class extends RelationalOperationElement {
309
+ constructor(table) {
310
+ super();
311
+ this.table = table;
312
+ }
313
+ table;
314
+ /** Name this column in the result. */
315
+ alias(name) {
316
+ return new Alias(this, name);
317
+ }
318
+ /** Sort by this expression, smallest first. */
319
+ ascending() {
320
+ return new SortOperation(this, "ASC" /* ASC */);
321
+ }
322
+ /** Sort by this expression, largest first. */
323
+ descending() {
324
+ return new SortOperation(this, "DESC" /* DESC */);
325
+ }
326
+ comparisonOperand() {
327
+ return this;
328
+ }
329
+ };
330
+ var Alias = class _Alias extends RelationalOperationElement {
331
+ constructor(element, name) {
332
+ super();
333
+ this.element = element;
334
+ this.name = name;
335
+ }
336
+ element;
337
+ name;
338
+ alias(name) {
339
+ return new _Alias(this.element, name);
340
+ }
341
+ /** Sorts by the column the alias names. */
342
+ ascending() {
343
+ return new SortOperation(this.element, "ASC" /* ASC */);
344
+ }
345
+ /** Sorts by the column the alias names. */
346
+ descending() {
347
+ return new SortOperation(this.element, "DESC" /* DESC */);
348
+ }
349
+ };
350
+ var CaseOperation = class extends Operation {
351
+ constructor(condition, then, fallback, displayName) {
352
+ super();
353
+ this.condition = condition;
354
+ this.then = then;
355
+ this.fallback = fallback;
356
+ this.displayName = displayName;
357
+ }
358
+ condition;
359
+ then;
360
+ fallback;
361
+ displayName;
362
+ };
363
+ function valueOperand(value) {
364
+ if (typeof value === "boolean") return new BooleanConstantOperation(value);
365
+ if (typeof value === "number" && Number.isFinite(value)) {
366
+ return Number.isInteger(value) ? new IntegerConstantOperation(value) : new FloatConstantOperation(value);
367
+ }
368
+ if (typeof value === "string") return new StringConstantOperation(value);
369
+ if (value instanceof DateOnly) return new DateConstantOperation(value);
370
+ if (value instanceof Date) return new DateTimeConstantOperation(value);
371
+ throw new TypeError(`A value to compare with is a boolean, a finite number, a string or a date, not ${value === null ? "null" : typeof value}`);
372
+ }
373
+ function operandOf(other) {
374
+ if (other instanceof RelationalOperationElement) return other;
375
+ if (typeof other?.cwj === "function") return other.cwj();
376
+ return valueOperand(other);
377
+ }
378
+ var Comparable = class {
379
+ _compared(operator, other) {
380
+ return new ComparisonOperation(this.comparisonOperand(), operator, operandOf(other));
381
+ }
382
+ /** Filter to rows where this expression equals `other`. */
383
+ eq(other) {
384
+ return this._compared("EQUAL" /* EQUAL */, other);
385
+ }
386
+ /** Filter to rows where this expression does not equal `other`. */
387
+ ne(other) {
388
+ return this._compared("NOT_EQUAL" /* NOT_EQUAL */, other);
389
+ }
390
+ /** Filter to rows where this expression is less than `other`. */
391
+ lt(other) {
392
+ return this._compared("LESS_THAN" /* LESS_THAN */, other);
393
+ }
394
+ /** Filter to rows where this expression is at most `other`. */
395
+ lte(other) {
396
+ return this._compared("LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, other);
397
+ }
398
+ /** Filter to rows where this expression is greater than `other`. */
399
+ gt(other) {
400
+ return this._compared("GREATER_THAN" /* GREATER_THAN */, other);
401
+ }
402
+ /** Filter to rows where this expression is at least `other`. */
403
+ gte(other) {
404
+ return this._compared("GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, other);
405
+ }
406
+ };
407
+ function sample(ddof) {
408
+ if (ddof !== 0 && ddof !== 1) throw new RangeError(`ddof is 0 (population) or 1 (sample), not ${ddof}`);
409
+ return ddof === 1;
410
+ }
411
+ var StringPredicates = class {
412
+ _like(pattern) {
413
+ return new ComparisonOperation(this.comparisonOperand(), "LIKE" /* LIKE */, new StringConstantOperation(pattern));
414
+ }
415
+ /** Filter to rows where this text contains `value`. */
416
+ contains(value) {
417
+ return this._like(`%${escapeLike(value)}%`);
418
+ }
419
+ /** Filter to rows where this text starts with `prefix`. */
420
+ startsWith(prefix) {
421
+ return this._like(`${escapeLike(prefix)}%`);
422
+ }
423
+ /** Filter to rows where this text ends with `suffix`. */
424
+ endsWith(suffix) {
425
+ return this._like(`%${escapeLike(suffix)}`);
426
+ }
427
+ };
428
+ var Aggregates = class {
429
+ _aggregate(operator, label) {
430
+ return new AggregateOperation(this, operator, label + " Expression");
431
+ }
432
+ /** Sum of the values in the group. */
433
+ sum() {
434
+ return this._aggregate("SUM" /* SUM */, "Sum");
435
+ }
436
+ /** Smallest value in the group. */
437
+ min() {
438
+ return this._aggregate("MIN" /* MIN */, "Min");
439
+ }
440
+ /** Largest value in the group. */
441
+ max() {
442
+ return this._aggregate("MAX" /* MAX */, "Max");
443
+ }
444
+ /** Arithmetic mean of the values in the group. */
445
+ average() {
446
+ return this._aggregate("AVERAGE" /* AVERAGE */, "Average");
447
+ }
448
+ /** Number of non-null values in the group. */
449
+ count() {
450
+ return this._aggregate("COUNT" /* COUNT */, "Count");
451
+ }
452
+ /** Standard deviation of the values in the group: the sample one by default, `ddof = 0` for the population one. */
453
+ std(ddof = 1) {
454
+ return this._aggregate(sample(ddof) ? "STDDEV_SAMP" /* STDDEV_SAMP */ : "STDDEV_POP" /* STDDEV_POP */, "Std");
455
+ }
456
+ /** Variance of the values in the group: the sample one by default, `ddof = 0` for the population one. */
457
+ var(ddof = 1) {
458
+ return this._aggregate(sample(ddof) ? "VAR_SAMP" /* VAR_SAMP */ : "VAR_POP" /* VAR_POP */, "Var");
459
+ }
460
+ };
461
+ var BooleanAggregates = class {
462
+ /** True for a group where every row satisfies the condition. */
463
+ all() {
464
+ return new AggregateOperation(this, "BOOL_AND" /* BOOL_AND */, "All Expression");
465
+ }
466
+ /** True for a group where at least one row satisfies the condition. */
467
+ any() {
468
+ return new AggregateOperation(this, "BOOL_OR" /* BOOL_OR */, "Any Expression");
469
+ }
470
+ };
471
+ function applyMixins(derived, bases) {
472
+ for (const base of bases) {
473
+ for (const name of Object.getOwnPropertyNames(base.prototype)) {
474
+ if (name === "constructor" || Object.prototype.hasOwnProperty.call(derived.prototype, name)) continue;
475
+ Object.defineProperty(derived.prototype, name, Object.getOwnPropertyDescriptor(base.prototype, name));
476
+ }
477
+ }
478
+ }
479
+ var Arithmetic = class {
480
+ /** Raises if this expression is not a number. */
481
+ assertNumeric() {
482
+ }
483
+ _arithmetic(operator, other) {
484
+ this.assertNumeric();
485
+ let operand;
486
+ if (typeof other === "number") {
487
+ if (!Number.isFinite(other)) throw new TypeError("Arithmetic is between numbers and numeric columns, not a non-finite number");
488
+ operand = valueOperand(other);
489
+ } else if (other !== null && typeof other === "object" && typeof other.arithmeticOperand === "function") {
490
+ other.assertNumeric?.();
491
+ operand = other.arithmeticOperand();
492
+ } else {
493
+ throw new TypeError(`Arithmetic is between numbers and numeric columns, not ${other === null ? "null" : typeof other}`);
494
+ }
495
+ return new ArithmeticOperation(this.arithmeticOperand(), operator, operand);
496
+ }
497
+ /** `this + other`. */
498
+ plus(other) {
499
+ return this._arithmetic("+" /* ADD */, other);
500
+ }
501
+ /** `this - other`. */
502
+ minus(other) {
503
+ return this._arithmetic("-" /* SUBTRACT */, other);
504
+ }
505
+ /** `this * other`. */
506
+ times(other) {
507
+ return this._arithmetic("*" /* MULTIPLY */, other);
508
+ }
509
+ /** `this / other`. */
510
+ dividedBy(other) {
511
+ return this._arithmetic("/" /* DIVIDE */, other);
512
+ }
513
+ };
514
+ var ArithmeticOperation = class extends BinaryOperation {
515
+ constructor(left, operator, right, displayName) {
516
+ super(left, right);
517
+ this.operator = operator;
518
+ this.displayName = displayName;
519
+ }
520
+ operator;
521
+ displayName;
522
+ /** Sort by this expression, smallest first. */
523
+ ascending() {
524
+ return new SortOperation(this, "ASC" /* ASC */);
525
+ }
526
+ /** Sort by this expression, largest first. */
527
+ descending() {
528
+ return new SortOperation(this, "DESC" /* DESC */);
529
+ }
530
+ arithmeticOperand() {
531
+ return this;
532
+ }
533
+ comparisonOperand() {
534
+ return this;
535
+ }
536
+ };
537
+ var ConcatOperation = class extends Operation {
538
+ constructor(parts, displayName) {
539
+ super();
540
+ this.parts = parts;
541
+ this.displayName = displayName;
542
+ }
543
+ parts;
544
+ displayName;
545
+ /** Join more text on the end: `f.first().concat(' ', f.last())`. A concatenation joins into one. */
546
+ concat(...more) {
547
+ return concat(this, ...more);
548
+ }
549
+ /** Sort by this expression, smallest first. */
550
+ ascending() {
551
+ return new SortOperation(this, "ASC" /* ASC */);
552
+ }
553
+ /** Sort by this expression, largest first. */
554
+ descending() {
555
+ return new SortOperation(this, "DESC" /* DESC */);
556
+ }
557
+ comparisonOperand() {
558
+ return this;
559
+ }
560
+ };
561
+ function concat(...parts) {
562
+ const partsOf = (part) => {
563
+ if (part instanceof ConcatOperation) return part.parts;
564
+ if (typeof part === "string") return [new StringConstantOperation(part)];
565
+ if (part instanceof RelationalOperationElement) return [part];
566
+ if (part !== null && typeof part === "object" && typeof part.functionInput === "function") return [part.functionInput()];
567
+ throw new TypeError(`Text is joined with text, not ${part === null ? "null" : typeof part}`);
568
+ };
569
+ return new ConcatOperation(parts.flatMap(partsOf));
570
+ }
571
+ applyMixins(ConcatOperation, [Comparable, StringPredicates]);
572
+ applyMixins(DateTruncOperation, [Comparable]);
573
+ applyMixins(ArithmeticOperation, [Arithmetic, Comparable]);
574
+ applyMixins(ScalarFunctionOperation, [Comparable, Arithmetic, StringPredicates]);
575
+ applyMixins(AggregateOperation, [Arithmetic, Comparable, StringPredicates]);
576
+ applyMixins(CountAllOperation, [Comparable]);
577
+ applyMixins(NumericConstantOperation, [Arithmetic]);
578
+ applyMixins(ConstantOperation, [Aggregates]);
579
+ applyMixins(ArithmeticOperation, [Aggregates]);
580
+ applyMixins(ScalarFunctionOperation, [Aggregates]);
581
+ applyMixins(CaseOperation, [Aggregates]);
582
+ applyMixins(IsNullOperation, [BooleanAggregates]);
583
+ applyMixins(IsNotNullOperation, [BooleanAggregates]);
584
+ applyMixins(InOperation, [BooleanAggregates]);
585
+ applyMixins(NotInOperation, [BooleanAggregates]);
586
+ applyMixins(ComparisonOperation, [BooleanAggregates]);
587
+ applyMixins(LogicalOperation, [BooleanAggregates]);
59
588
 
60
589
  // src/model/milestoning.ts
61
590
  var MilestoningColumns = class {