data-finder-ts 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -55
- package/dist/{chunk-V647VNMY.js → chunk-4JVW4TAB.js} +59 -14
- package/dist/chunk-4JVW4TAB.js.map +1 -0
- package/dist/{chunk-5K2Z3YDY.js → chunk-4LNZV6EN.js} +138 -31
- package/dist/chunk-4LNZV6EN.js.map +1 -0
- package/dist/{chunk-6QTCGJWX.js → chunk-FJYA2ASS.js} +46 -8
- package/dist/chunk-FJYA2ASS.js.map +1 -0
- package/dist/{chunk-DFYZVBII.js → chunk-MH4XMYVB.js} +186 -142
- package/dist/chunk-MH4XMYVB.js.map +1 -0
- package/dist/{chunk-EYXBYV2X.js → chunk-PMPLCEWQ.js} +2 -2
- package/dist/{chunk-3SSWFES4.js → chunk-UYMOE6YU.js} +64 -3
- package/dist/chunk-UYMOE6YU.js.map +1 -0
- package/dist/datafinder/attribute.cjs +64 -13
- package/dist/datafinder/attribute.cjs.map +1 -1
- package/dist/datafinder/attribute.d.cts +48 -7
- package/dist/datafinder/attribute.d.ts +48 -7
- package/dist/datafinder/attribute.js +2 -2
- package/dist/datafinder/runner.cjs +389 -140
- package/dist/datafinder/runner.cjs.map +1 -1
- package/dist/datafinder/runner.d.cts +14 -3
- package/dist/datafinder/runner.d.ts +14 -3
- package/dist/datafinder/runner.js +12 -6
- package/dist/datafinder/sql-generator.cjs +344 -138
- package/dist/datafinder/sql-generator.cjs.map +1 -1
- package/dist/datafinder/sql-generator.d.cts +4 -13
- package/dist/datafinder/sql-generator.d.ts +4 -13
- package/dist/datafinder/sql-generator.js +5 -7
- package/dist/datafinder/typed-attributes.cjs +199 -41
- package/dist/datafinder/typed-attributes.cjs.map +1 -1
- package/dist/datafinder/typed-attributes.d.cts +120 -13
- package/dist/datafinder/typed-attributes.d.ts +120 -13
- package/dist/datafinder/typed-attributes.js +3 -3
- package/dist/index.cjs +507 -176
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -15
- package/dist/index.d.ts +16 -15
- package/dist/index.js +49 -9
- package/dist/index.js.map +1 -1
- package/dist/model/milestoning.cjs.map +1 -1
- package/dist/model/milestoning.js +2 -2
- package/dist/model/relational.cjs +66 -1
- package/dist/model/relational.cjs.map +1 -1
- package/dist/model/relational.d.cts +47 -2
- package/dist/model/relational.d.ts +47 -2
- package/dist/model/relational.js +9 -1
- package/package.json +4 -2
- package/dist/chunk-3SSWFES4.js.map +0 -1
- package/dist/chunk-5K2Z3YDY.js.map +0 -1
- package/dist/chunk-6QTCGJWX.js.map +0 -1
- package/dist/chunk-DFYZVBII.js.map +0 -1
- package/dist/chunk-V647VNMY.js.map +0 -1
- /package/dist/{chunk-EYXBYV2X.js.map → chunk-PMPLCEWQ.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Attribute
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4JVW4TAB.js";
|
|
4
4
|
import {
|
|
5
5
|
AggregateOperation,
|
|
6
6
|
BooleanConstantOperation,
|
|
@@ -15,187 +15,240 @@ import {
|
|
|
15
15
|
IntegerConstantOperation,
|
|
16
16
|
ScalarFunctionOperation,
|
|
17
17
|
StringConstantOperation
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UYMOE6YU.js";
|
|
19
19
|
|
|
20
20
|
// src/datafinder/typed-attributes.ts
|
|
21
21
|
var StringAttribute = class extends Attribute {
|
|
22
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
23
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
22
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
23
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
/** Convert every character to uppercase. */
|
|
26
|
+
toUpperCase() {
|
|
26
27
|
return new ScalarFunctionOperation(this.cwj(), "UPPER" /* UPPER */, "Upper " + this.displayName());
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
/** Convert every character to lowercase. */
|
|
30
|
+
toLowerCase() {
|
|
29
31
|
return new ScalarFunctionOperation(this.cwj(), "LOWER" /* LOWER */, "Lower " + this.displayName());
|
|
30
32
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
/** Remove leading and trailing whitespace. */
|
|
34
|
+
trim() {
|
|
35
|
+
return new ScalarFunctionOperation(this.cwj(), "TRIM" /* TRIM */, "Trim " + this.displayName());
|
|
33
36
|
}
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
/** Remove leading whitespace. */
|
|
38
|
+
trimStart() {
|
|
39
|
+
return new ScalarFunctionOperation(this.cwj(), "LTRIM" /* LTRIM */, "Trim Start " + this.displayName());
|
|
36
40
|
}
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
/** Remove trailing whitespace. */
|
|
42
|
+
trimEnd() {
|
|
43
|
+
return new ScalarFunctionOperation(this.cwj(), "RTRIM" /* RTRIM */, "Trim End " + this.displayName());
|
|
39
44
|
}
|
|
45
|
+
/** Return the number of characters in the string. */
|
|
40
46
|
length() {
|
|
41
47
|
return new ScalarFunctionOperation(this.cwj(), "LENGTH" /* LENGTH */, "Length " + this.displayName());
|
|
42
48
|
}
|
|
49
|
+
/** Return the string with characters in reverse order. */
|
|
43
50
|
reverse() {
|
|
44
51
|
return new ScalarFunctionOperation(this.cwj(), "REVERSE" /* REVERSE */, "Reverse " + this.displayName());
|
|
45
52
|
}
|
|
53
|
+
/** Return the first `n` characters. */
|
|
46
54
|
left(n) {
|
|
47
55
|
return new ScalarFunctionOperation(this.cwj(), "LEFT" /* LEFT */, "Left " + this.displayName(), n);
|
|
48
56
|
}
|
|
57
|
+
/** Return the last `n` characters. */
|
|
49
58
|
right(n) {
|
|
50
59
|
return new ScalarFunctionOperation(this.cwj(), "RIGHT" /* RIGHT */, "Right " + this.displayName(), n);
|
|
51
60
|
}
|
|
61
|
+
/** Return the string repeated `n` times. */
|
|
52
62
|
repeat(n) {
|
|
53
63
|
return new ScalarFunctionOperation(this.cwj(), "REPEAT" /* REPEAT */, "Repeat " + this.displayName(), n);
|
|
54
64
|
}
|
|
65
|
+
/** Replace all occurrences of `fromStr` with `toStr`. */
|
|
55
66
|
replace(fromStr, toStr) {
|
|
56
67
|
return new ScalarFunctionOperation(this.cwj(), "REPLACE" /* REPLACE */, "Replace " + this.displayName(), void 0, [fromStr, toStr]);
|
|
57
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Extract a portion of the string.
|
|
71
|
+
* `start` is zero-based (following Python convention); `length` is optional.
|
|
72
|
+
*/
|
|
58
73
|
substring(start, length) {
|
|
59
74
|
const args = length !== void 0 ? [start + 1, length] : [start + 1];
|
|
60
75
|
return new ScalarFunctionOperation(this.cwj(), "SUBSTRING" /* SUBSTRING */, "Substring " + this.displayName(), void 0, args);
|
|
61
76
|
}
|
|
77
|
+
/** Filter to rows where this attribute equals `value`. */
|
|
62
78
|
eq(value) {
|
|
63
79
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new StringConstantOperation(value));
|
|
64
80
|
}
|
|
81
|
+
/** Filter to rows where this attribute does not equal `value`. */
|
|
65
82
|
ne(value) {
|
|
66
83
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new StringConstantOperation(value));
|
|
67
84
|
}
|
|
85
|
+
/** Filter to rows where this attribute contains `value` as a substring. */
|
|
68
86
|
contains(value) {
|
|
69
87
|
return new ComparisonOperation(this.cwj(), "LIKE" /* LIKE */, new StringConstantOperation(`%${value}%`));
|
|
70
88
|
}
|
|
89
|
+
/** Filter to rows where this attribute begins with `prefix`. */
|
|
71
90
|
startsWith(prefix) {
|
|
72
91
|
return new ComparisonOperation(this.cwj(), "LIKE" /* LIKE */, new StringConstantOperation(`${prefix}%`));
|
|
73
92
|
}
|
|
93
|
+
/** Filter to rows where this attribute ends with `suffix`. */
|
|
74
94
|
endsWith(suffix) {
|
|
75
95
|
return new ComparisonOperation(this.cwj(), "LIKE" /* LIKE */, new StringConstantOperation(`%${suffix}`));
|
|
76
96
|
}
|
|
97
|
+
/** Filter to rows where this attribute does not contain `value` as a substring. */
|
|
77
98
|
notContains(value) {
|
|
78
99
|
return new ComparisonOperation(this.cwj(), "NOT_LIKE" /* NOT_LIKE */, new StringConstantOperation(`%${value}%`));
|
|
79
100
|
}
|
|
80
101
|
};
|
|
81
102
|
var NumericAttribute = class extends Attribute {
|
|
82
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
83
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
103
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
104
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
84
105
|
}
|
|
106
|
+
/** Sum of all values in the group. */
|
|
85
107
|
sum() {
|
|
86
|
-
return new AggregateOperation(this.cwj(), "SUM" /* SUM */, this.displayName()
|
|
108
|
+
return new AggregateOperation(this.cwj(), "SUM" /* SUM */, "Sum " + this.displayName());
|
|
87
109
|
}
|
|
110
|
+
/** Smallest value in the group. */
|
|
88
111
|
min() {
|
|
89
|
-
return new AggregateOperation(this.cwj(), "MIN" /* MIN */, this.displayName()
|
|
112
|
+
return new AggregateOperation(this.cwj(), "MIN" /* MIN */, "Min " + this.displayName());
|
|
90
113
|
}
|
|
114
|
+
/** Largest value in the group. */
|
|
91
115
|
max() {
|
|
92
|
-
return new AggregateOperation(this.cwj(), "MAX" /* MAX */, this.displayName()
|
|
116
|
+
return new AggregateOperation(this.cwj(), "MAX" /* MAX */, "Max " + this.displayName());
|
|
93
117
|
}
|
|
118
|
+
/** Arithmetic mean of all values in the group. */
|
|
94
119
|
average() {
|
|
95
|
-
return new AggregateOperation(this.cwj(), "AVERAGE" /* AVERAGE */, this.displayName()
|
|
120
|
+
return new AggregateOperation(this.cwj(), "AVERAGE" /* AVERAGE */, "Average " + this.displayName());
|
|
96
121
|
}
|
|
122
|
+
/** Absolute value (distance from zero, always non-negative). */
|
|
97
123
|
abs() {
|
|
98
124
|
return new ScalarFunctionOperation(this.cwj(), "ABS" /* ABS */, "Abs " + this.displayName());
|
|
99
125
|
}
|
|
126
|
+
/** Round up to the nearest integer. */
|
|
100
127
|
ceil() {
|
|
101
128
|
return new ScalarFunctionOperation(this.cwj(), "CEILING" /* CEILING */, "Ceil " + this.displayName());
|
|
102
129
|
}
|
|
130
|
+
/** Round down to the nearest integer. */
|
|
103
131
|
floor() {
|
|
104
132
|
return new ScalarFunctionOperation(this.cwj(), "FLOOR" /* FLOOR */, "Floor " + this.displayName());
|
|
105
133
|
}
|
|
134
|
+
/** Square root. */
|
|
106
135
|
sqrt() {
|
|
107
136
|
return new ScalarFunctionOperation(this.cwj(), "SQRT" /* SQRT */, "Sqrt " + this.displayName());
|
|
108
137
|
}
|
|
138
|
+
/** Remainder after dividing by `n`. */
|
|
109
139
|
mod(n) {
|
|
110
140
|
return new ScalarFunctionOperation(this.cwj(), "MOD" /* MOD */, "Mod " + this.displayName(), n);
|
|
111
141
|
}
|
|
142
|
+
/** Raise to the power of `n`. */
|
|
112
143
|
power(n) {
|
|
113
144
|
return new ScalarFunctionOperation(this.cwj(), "POWER" /* POWER */, "Power " + this.displayName(), n);
|
|
114
145
|
}
|
|
146
|
+
/** Round to `d` decimal places, or to the nearest integer when `d` is omitted. */
|
|
115
147
|
round(d) {
|
|
116
148
|
return new ScalarFunctionOperation(this.cwj(), "ROUND" /* ROUND */, "Round " + this.displayName(), d);
|
|
117
149
|
}
|
|
118
150
|
};
|
|
119
151
|
var DoubleAttribute = class extends NumericAttribute {
|
|
120
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
121
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
152
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
153
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
122
154
|
}
|
|
155
|
+
/** Filter to rows where this attribute equals `value`. */
|
|
123
156
|
eq(value) {
|
|
124
157
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new FloatConstantOperation(value));
|
|
125
158
|
}
|
|
159
|
+
/** Filter to rows where this attribute does not equal `value`. */
|
|
126
160
|
ne(value) {
|
|
127
161
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new FloatConstantOperation(value));
|
|
128
162
|
}
|
|
163
|
+
/** Filter to rows where this attribute is greater than `value`. */
|
|
129
164
|
gt(value) {
|
|
130
165
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN" /* GREATER_THAN */, new FloatConstantOperation(value));
|
|
131
166
|
}
|
|
167
|
+
/** Filter to rows where this attribute is less than `value`. */
|
|
132
168
|
lt(value) {
|
|
133
169
|
return new ComparisonOperation(this.cwj(), "LESS_THAN" /* LESS_THAN */, new FloatConstantOperation(value));
|
|
134
170
|
}
|
|
171
|
+
/** Filter to rows where this attribute is greater than or equal to `value`. */
|
|
135
172
|
gte(value) {
|
|
136
173
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, new FloatConstantOperation(value));
|
|
137
174
|
}
|
|
175
|
+
/** Filter to rows where this attribute is less than or equal to `value`. */
|
|
138
176
|
lte(value) {
|
|
139
177
|
return new ComparisonOperation(this.cwj(), "LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, new FloatConstantOperation(value));
|
|
140
178
|
}
|
|
141
179
|
};
|
|
142
180
|
var FloatAttribute = DoubleAttribute;
|
|
143
181
|
var DecimalAttribute = class extends NumericAttribute {
|
|
144
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
145
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
182
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
183
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
146
184
|
}
|
|
185
|
+
/** Filter to rows where this attribute equals `value`. */
|
|
147
186
|
eq(value) {
|
|
148
187
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new DecimalConstantOperation(value));
|
|
149
188
|
}
|
|
189
|
+
/** Filter to rows where this attribute does not equal `value`. */
|
|
150
190
|
ne(value) {
|
|
151
191
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new DecimalConstantOperation(value));
|
|
152
192
|
}
|
|
193
|
+
/** Filter to rows where this attribute is greater than `value`. */
|
|
153
194
|
gt(value) {
|
|
154
195
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN" /* GREATER_THAN */, new DecimalConstantOperation(value));
|
|
155
196
|
}
|
|
197
|
+
/** Filter to rows where this attribute is less than `value`. */
|
|
156
198
|
lt(value) {
|
|
157
199
|
return new ComparisonOperation(this.cwj(), "LESS_THAN" /* LESS_THAN */, new DecimalConstantOperation(value));
|
|
158
200
|
}
|
|
201
|
+
/** Filter to rows where this attribute is greater than or equal to `value`. */
|
|
159
202
|
gte(value) {
|
|
160
203
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, new DecimalConstantOperation(value));
|
|
161
204
|
}
|
|
205
|
+
/** Filter to rows where this attribute is less than or equal to `value`. */
|
|
162
206
|
lte(value) {
|
|
163
207
|
return new ComparisonOperation(this.cwj(), "LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, new DecimalConstantOperation(value));
|
|
164
208
|
}
|
|
165
209
|
};
|
|
166
210
|
var IntegerAttribute = class extends NumericAttribute {
|
|
167
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
168
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
211
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
212
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
169
213
|
}
|
|
214
|
+
/** Filter to rows where this attribute equals `value`. */
|
|
170
215
|
eq(value) {
|
|
171
216
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new IntegerConstantOperation(value));
|
|
172
217
|
}
|
|
218
|
+
/** Filter to rows where this attribute does not equal `value`. */
|
|
173
219
|
ne(value) {
|
|
174
220
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new IntegerConstantOperation(value));
|
|
175
221
|
}
|
|
222
|
+
/** Filter to rows where this attribute is greater than `value`. */
|
|
176
223
|
gt(value) {
|
|
177
224
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN" /* GREATER_THAN */, new IntegerConstantOperation(value));
|
|
178
225
|
}
|
|
226
|
+
/** Filter to rows where this attribute is less than `value`. */
|
|
179
227
|
lt(value) {
|
|
180
228
|
return new ComparisonOperation(this.cwj(), "LESS_THAN" /* LESS_THAN */, new IntegerConstantOperation(value));
|
|
181
229
|
}
|
|
230
|
+
/** Filter to rows where this attribute is greater than or equal to `value`. */
|
|
182
231
|
gte(value) {
|
|
183
232
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, new IntegerConstantOperation(value));
|
|
184
233
|
}
|
|
234
|
+
/** Filter to rows where this attribute is less than or equal to `value`. */
|
|
185
235
|
lte(value) {
|
|
186
236
|
return new ComparisonOperation(this.cwj(), "LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, new IntegerConstantOperation(value));
|
|
187
237
|
}
|
|
188
238
|
};
|
|
189
239
|
var BooleanAttribute = class extends Attribute {
|
|
190
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
191
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
240
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
241
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
192
242
|
}
|
|
243
|
+
/** Filter to rows where this attribute equals `value`. */
|
|
193
244
|
eq(value) {
|
|
194
245
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new BooleanConstantOperation(value));
|
|
195
246
|
}
|
|
247
|
+
/** Filter to rows where this attribute is true. */
|
|
196
248
|
isTrue() {
|
|
197
249
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new BooleanConstantOperation(true));
|
|
198
250
|
}
|
|
251
|
+
/** Filter to rows where this attribute is false. */
|
|
199
252
|
isFalse() {
|
|
200
253
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new BooleanConstantOperation(false));
|
|
201
254
|
}
|
|
@@ -207,173 +260,227 @@ function parseDate(value) {
|
|
|
207
260
|
return d;
|
|
208
261
|
}
|
|
209
262
|
var DateAttribute = class extends Attribute {
|
|
210
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
211
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
263
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
264
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
212
265
|
}
|
|
266
|
+
/** Filter to rows where this date equals `value`. */
|
|
213
267
|
eq(value) {
|
|
214
268
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new DateConstantOperation(parseDate(value)));
|
|
215
269
|
}
|
|
270
|
+
/** Filter to rows where this date does not equal `value`. */
|
|
216
271
|
ne(value) {
|
|
217
272
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new DateConstantOperation(parseDate(value)));
|
|
218
273
|
}
|
|
274
|
+
/** Filter to rows where this date is after `value`. */
|
|
219
275
|
gt(value) {
|
|
220
276
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN" /* GREATER_THAN */, new DateConstantOperation(parseDate(value)));
|
|
221
277
|
}
|
|
278
|
+
/** Filter to rows where this date is before `value`. */
|
|
222
279
|
lt(value) {
|
|
223
280
|
return new ComparisonOperation(this.cwj(), "LESS_THAN" /* LESS_THAN */, new DateConstantOperation(parseDate(value)));
|
|
224
281
|
}
|
|
282
|
+
/** Filter to rows where this date is on or after `value`. */
|
|
225
283
|
gte(value) {
|
|
226
284
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, new DateConstantOperation(parseDate(value)));
|
|
227
285
|
}
|
|
286
|
+
/** Filter to rows where this date is on or before `value`. */
|
|
228
287
|
lte(value) {
|
|
229
288
|
return new ComparisonOperation(this.cwj(), "LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, new DateConstantOperation(parseDate(value)));
|
|
230
289
|
}
|
|
290
|
+
/** Extract the four-digit calendar year. */
|
|
231
291
|
year() {
|
|
232
292
|
return new DateExtractOperation(this.cwj(), "YEAR" /* YEAR */, "Year " + this.displayName());
|
|
233
293
|
}
|
|
294
|
+
/** Extract the month number (1–12). */
|
|
234
295
|
month() {
|
|
235
296
|
return new DateExtractOperation(this.cwj(), "MONTH" /* MONTH */, "Month " + this.displayName());
|
|
236
297
|
}
|
|
298
|
+
/** Extract the day of the month (1–31). */
|
|
237
299
|
day() {
|
|
238
300
|
return new DateExtractOperation(this.cwj(), "DAY" /* DAY */, "Day " + this.displayName());
|
|
239
301
|
}
|
|
302
|
+
/** Extract the quarter (1–4). */
|
|
240
303
|
quarter() {
|
|
241
304
|
return new DateExtractOperation(this.cwj(), "QUARTER" /* QUARTER */, "Quarter " + this.displayName());
|
|
242
305
|
}
|
|
306
|
+
/** Extract the ISO week number (1–53). */
|
|
243
307
|
week() {
|
|
244
308
|
return new DateExtractOperation(this.cwj(), "WEEK" /* WEEK */, "Week " + this.displayName());
|
|
245
309
|
}
|
|
310
|
+
/** Extract the day of the week (0 = Sunday through 6 = Saturday). */
|
|
246
311
|
dayOfWeek() {
|
|
247
312
|
return new DateExtractOperation(this.cwj(), "DOW" /* DOW */, "Day Of Week " + this.displayName());
|
|
248
313
|
}
|
|
314
|
+
/** Add `n` days to this date. */
|
|
249
315
|
addDays(n) {
|
|
250
316
|
return new DateArithmeticOperation(this.cwj(), n, "DAY" /* DAY */, true, "Add Days " + this.displayName());
|
|
251
317
|
}
|
|
318
|
+
/** Add `n` months to this date. */
|
|
252
319
|
addMonths(n) {
|
|
253
320
|
return new DateArithmeticOperation(this.cwj(), n, "MONTH" /* MONTH */, true, "Add Months " + this.displayName());
|
|
254
321
|
}
|
|
322
|
+
/** Add `n` years to this date. */
|
|
255
323
|
addYears(n) {
|
|
256
324
|
return new DateArithmeticOperation(this.cwj(), n, "YEAR" /* YEAR */, true, "Add Years " + this.displayName());
|
|
257
325
|
}
|
|
326
|
+
/** Subtract `n` days from this date. */
|
|
258
327
|
subtractDays(n) {
|
|
259
328
|
return new DateArithmeticOperation(this.cwj(), n, "DAY" /* DAY */, false, "Subtract Days " + this.displayName());
|
|
260
329
|
}
|
|
330
|
+
/** Subtract `n` months from this date. */
|
|
261
331
|
subtractMonths(n) {
|
|
262
332
|
return new DateArithmeticOperation(this.cwj(), n, "MONTH" /* MONTH */, false, "Subtract Months " + this.displayName());
|
|
263
333
|
}
|
|
334
|
+
/** Subtract `n` years from this date. */
|
|
264
335
|
subtractYears(n) {
|
|
265
336
|
return new DateArithmeticOperation(this.cwj(), n, "YEAR" /* YEAR */, false, "Subtract Years " + this.displayName());
|
|
266
337
|
}
|
|
338
|
+
/** Number of whole days between this date and `other`. */
|
|
267
339
|
diffDays(other) {
|
|
268
340
|
return new DateDiffOperation(this.cwj(), other, "DAY" /* DAY */, "Diff Days " + this.displayName());
|
|
269
341
|
}
|
|
342
|
+
/** Number of whole months between this date and `other`. */
|
|
270
343
|
diffMonths(other) {
|
|
271
344
|
return new DateDiffOperation(this.cwj(), other, "MONTH" /* MONTH */, "Diff Months " + this.displayName());
|
|
272
345
|
}
|
|
346
|
+
/** Number of whole years between this date and `other`. */
|
|
273
347
|
diffYears(other) {
|
|
274
348
|
return new DateDiffOperation(this.cwj(), other, "YEAR" /* YEAR */, "Diff Years " + this.displayName());
|
|
275
349
|
}
|
|
276
350
|
};
|
|
277
351
|
var DateTimeAttribute = class extends Attribute {
|
|
278
|
-
constructor(displayName, columnName, columnDbType, owner, parent) {
|
|
279
|
-
super(displayName, columnName, columnDbType, owner, parent);
|
|
352
|
+
constructor(displayName, columnName, columnDbType, owner, parent, embedded) {
|
|
353
|
+
super(displayName, columnName, columnDbType, owner, parent, embedded);
|
|
280
354
|
}
|
|
355
|
+
/** Filter to rows where this timestamp equals `value`. */
|
|
281
356
|
eq(value) {
|
|
282
357
|
return new ComparisonOperation(this.cwj(), "EQUAL" /* EQUAL */, new DateTimeConstantOperation(parseDate(value)));
|
|
283
358
|
}
|
|
359
|
+
/** Filter to rows where this timestamp does not equal `value`. */
|
|
284
360
|
ne(value) {
|
|
285
361
|
return new ComparisonOperation(this.cwj(), "NOT_EQUAL" /* NOT_EQUAL */, new DateTimeConstantOperation(parseDate(value)));
|
|
286
362
|
}
|
|
363
|
+
/** Filter to rows where this timestamp is after `value`. */
|
|
287
364
|
gt(value) {
|
|
288
365
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN" /* GREATER_THAN */, new DateTimeConstantOperation(parseDate(value)));
|
|
289
366
|
}
|
|
367
|
+
/** Filter to rows where this timestamp is before `value`. */
|
|
290
368
|
lt(value) {
|
|
291
369
|
return new ComparisonOperation(this.cwj(), "LESS_THAN" /* LESS_THAN */, new DateTimeConstantOperation(parseDate(value)));
|
|
292
370
|
}
|
|
371
|
+
/** Filter to rows where this timestamp is on or after `value`. */
|
|
293
372
|
gte(value) {
|
|
294
373
|
return new ComparisonOperation(this.cwj(), "GREATER_THAN_OR_EQUAL_TO" /* GREATER_THAN_OR_EQUAL_TO */, new DateTimeConstantOperation(parseDate(value)));
|
|
295
374
|
}
|
|
375
|
+
/** Filter to rows where this timestamp is on or before `value`. */
|
|
296
376
|
lte(value) {
|
|
297
377
|
return new ComparisonOperation(this.cwj(), "LESS_THAN_OR_EQUAL_TO" /* LESS_THAN_OR_EQUAL_TO */, new DateTimeConstantOperation(parseDate(value)));
|
|
298
378
|
}
|
|
379
|
+
/** Extract the four-digit calendar year. */
|
|
299
380
|
year() {
|
|
300
381
|
return new DateExtractOperation(this.cwj(), "YEAR" /* YEAR */, "Year " + this.displayName());
|
|
301
382
|
}
|
|
383
|
+
/** Extract the month number (1–12). */
|
|
302
384
|
month() {
|
|
303
385
|
return new DateExtractOperation(this.cwj(), "MONTH" /* MONTH */, "Month " + this.displayName());
|
|
304
386
|
}
|
|
387
|
+
/** Extract the day of the month (1–31). */
|
|
305
388
|
day() {
|
|
306
389
|
return new DateExtractOperation(this.cwj(), "DAY" /* DAY */, "Day " + this.displayName());
|
|
307
390
|
}
|
|
391
|
+
/** Extract the hour (0–23). */
|
|
308
392
|
hour() {
|
|
309
393
|
return new DateExtractOperation(this.cwj(), "HOUR" /* HOUR */, "Hour " + this.displayName());
|
|
310
394
|
}
|
|
395
|
+
/** Extract the minute (0–59). */
|
|
311
396
|
minute() {
|
|
312
397
|
return new DateExtractOperation(this.cwj(), "MINUTE" /* MINUTE */, "Minute " + this.displayName());
|
|
313
398
|
}
|
|
399
|
+
/** Extract the second (0–59). */
|
|
314
400
|
second() {
|
|
315
401
|
return new DateExtractOperation(this.cwj(), "SECOND" /* SECOND */, "Second " + this.displayName());
|
|
316
402
|
}
|
|
403
|
+
/** Extract the quarter (1–4). */
|
|
317
404
|
quarter() {
|
|
318
405
|
return new DateExtractOperation(this.cwj(), "QUARTER" /* QUARTER */, "Quarter " + this.displayName());
|
|
319
406
|
}
|
|
407
|
+
/** Extract the ISO week number (1–53). */
|
|
320
408
|
week() {
|
|
321
409
|
return new DateExtractOperation(this.cwj(), "WEEK" /* WEEK */, "Week " + this.displayName());
|
|
322
410
|
}
|
|
411
|
+
/** Extract the day of the week (0 = Sunday through 6 = Saturday). */
|
|
323
412
|
dayOfWeek() {
|
|
324
413
|
return new DateExtractOperation(this.cwj(), "DOW" /* DOW */, "Day Of Week " + this.displayName());
|
|
325
414
|
}
|
|
415
|
+
/** Add `n` days to this timestamp. */
|
|
326
416
|
addDays(n) {
|
|
327
417
|
return new DateArithmeticOperation(this.cwj(), n, "DAY" /* DAY */, true, "Add Days " + this.displayName());
|
|
328
418
|
}
|
|
419
|
+
/** Add `n` months to this timestamp. */
|
|
329
420
|
addMonths(n) {
|
|
330
421
|
return new DateArithmeticOperation(this.cwj(), n, "MONTH" /* MONTH */, true, "Add Months " + this.displayName());
|
|
331
422
|
}
|
|
423
|
+
/** Add `n` years to this timestamp. */
|
|
332
424
|
addYears(n) {
|
|
333
425
|
return new DateArithmeticOperation(this.cwj(), n, "YEAR" /* YEAR */, true, "Add Years " + this.displayName());
|
|
334
426
|
}
|
|
427
|
+
/** Add `n` hours to this timestamp. */
|
|
335
428
|
addHours(n) {
|
|
336
429
|
return new DateArithmeticOperation(this.cwj(), n, "HOUR" /* HOUR */, true, "Add Hours " + this.displayName());
|
|
337
430
|
}
|
|
431
|
+
/** Add `n` minutes to this timestamp. */
|
|
338
432
|
addMinutes(n) {
|
|
339
433
|
return new DateArithmeticOperation(this.cwj(), n, "MINUTE" /* MINUTE */, true, "Add Minutes " + this.displayName());
|
|
340
434
|
}
|
|
435
|
+
/** Add `n` seconds to this timestamp. */
|
|
341
436
|
addSeconds(n) {
|
|
342
437
|
return new DateArithmeticOperation(this.cwj(), n, "SECOND" /* SECOND */, true, "Add Seconds " + this.displayName());
|
|
343
438
|
}
|
|
439
|
+
/** Subtract `n` days from this timestamp. */
|
|
344
440
|
subtractDays(n) {
|
|
345
441
|
return new DateArithmeticOperation(this.cwj(), n, "DAY" /* DAY */, false, "Subtract Days " + this.displayName());
|
|
346
442
|
}
|
|
443
|
+
/** Subtract `n` months from this timestamp. */
|
|
347
444
|
subtractMonths(n) {
|
|
348
445
|
return new DateArithmeticOperation(this.cwj(), n, "MONTH" /* MONTH */, false, "Subtract Months " + this.displayName());
|
|
349
446
|
}
|
|
447
|
+
/** Subtract `n` years from this timestamp. */
|
|
350
448
|
subtractYears(n) {
|
|
351
449
|
return new DateArithmeticOperation(this.cwj(), n, "YEAR" /* YEAR */, false, "Subtract Years " + this.displayName());
|
|
352
450
|
}
|
|
451
|
+
/** Subtract `n` hours from this timestamp. */
|
|
353
452
|
subtractHours(n) {
|
|
354
453
|
return new DateArithmeticOperation(this.cwj(), n, "HOUR" /* HOUR */, false, "Subtract Hours " + this.displayName());
|
|
355
454
|
}
|
|
455
|
+
/** Subtract `n` minutes from this timestamp. */
|
|
356
456
|
subtractMinutes(n) {
|
|
357
457
|
return new DateArithmeticOperation(this.cwj(), n, "MINUTE" /* MINUTE */, false, "Subtract Minutes " + this.displayName());
|
|
358
458
|
}
|
|
459
|
+
/** Subtract `n` seconds from this timestamp. */
|
|
359
460
|
subtractSeconds(n) {
|
|
360
461
|
return new DateArithmeticOperation(this.cwj(), n, "SECOND" /* SECOND */, false, "Subtract Seconds " + this.displayName());
|
|
361
462
|
}
|
|
463
|
+
/** Number of whole days between this timestamp and `other`. */
|
|
362
464
|
diffDays(other) {
|
|
363
465
|
return new DateDiffOperation(this.cwj(), other, "DAY" /* DAY */, "Diff Days " + this.displayName());
|
|
364
466
|
}
|
|
467
|
+
/** Number of whole months between this timestamp and `other`. */
|
|
365
468
|
diffMonths(other) {
|
|
366
469
|
return new DateDiffOperation(this.cwj(), other, "MONTH" /* MONTH */, "Diff Months " + this.displayName());
|
|
367
470
|
}
|
|
471
|
+
/** Number of whole years between this timestamp and `other`. */
|
|
368
472
|
diffYears(other) {
|
|
369
473
|
return new DateDiffOperation(this.cwj(), other, "YEAR" /* YEAR */, "Diff Years " + this.displayName());
|
|
370
474
|
}
|
|
475
|
+
/** Number of whole hours between this timestamp and `other`. */
|
|
371
476
|
diffHours(other) {
|
|
372
477
|
return new DateDiffOperation(this.cwj(), other, "HOUR" /* HOUR */, "Diff Hours " + this.displayName());
|
|
373
478
|
}
|
|
479
|
+
/** Number of whole minutes between this timestamp and `other`. */
|
|
374
480
|
diffMinutes(other) {
|
|
375
481
|
return new DateDiffOperation(this.cwj(), other, "MINUTE" /* MINUTE */, "Diff Minutes " + this.displayName());
|
|
376
482
|
}
|
|
483
|
+
/** Number of whole seconds between this timestamp and `other`. */
|
|
377
484
|
diffSeconds(other) {
|
|
378
485
|
return new DateDiffOperation(this.cwj(), other, "SECOND" /* SECOND */, "Diff Seconds " + this.displayName());
|
|
379
486
|
}
|
|
@@ -390,4 +497,4 @@ export {
|
|
|
390
497
|
DateAttribute,
|
|
391
498
|
DateTimeAttribute
|
|
392
499
|
};
|
|
393
|
-
//# sourceMappingURL=chunk-
|
|
500
|
+
//# sourceMappingURL=chunk-4LNZV6EN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/datafinder/typed-attributes.ts"],"sourcesContent":["import { Attribute } from './attribute';\nimport {\n ComparisonOperation,\n ComparisonOperator,\n Operation,\n StringConstantOperation,\n FloatConstantOperation,\n IntegerConstantOperation,\n DateConstantOperation,\n DateTimeConstantOperation,\n BooleanConstantOperation,\n DecimalConstantOperation,\n AggregateOperation,\n AggregateOperator,\n ScalarFunction,\n ScalarFunctionOperation,\n DatePart,\n DateExtractOperation,\n DateArithmeticOperation,\n DateDiffOperation,\n JoinTreeNodeOperation,\n} from '../model/relational';\n\nexport class StringAttribute extends Attribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Convert every character to uppercase. */\n toUpperCase(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.UPPER, 'Upper ' + this.displayName());\n }\n /** Convert every character to lowercase. */\n toLowerCase(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.LOWER, 'Lower ' + this.displayName());\n }\n /** Remove leading and trailing whitespace. */\n trim(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.TRIM, 'Trim ' + this.displayName());\n }\n /** Remove leading whitespace. */\n trimStart(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.LTRIM, 'Trim Start ' + this.displayName());\n }\n /** Remove trailing whitespace. */\n trimEnd(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.RTRIM, 'Trim End ' + this.displayName());\n }\n /** Return the number of characters in the string. */\n length(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.LENGTH, 'Length ' + this.displayName());\n }\n /** Return the string with characters in reverse order. */\n reverse(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.REVERSE, 'Reverse ' + this.displayName());\n }\n /** Return the first `n` characters. */\n left(n: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.LEFT, 'Left ' + this.displayName(), n);\n }\n /** Return the last `n` characters. */\n right(n: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.RIGHT, 'Right ' + this.displayName(), n);\n }\n /** Return the string repeated `n` times. */\n repeat(n: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.REPEAT, 'Repeat ' + this.displayName(), n);\n }\n /** Replace all occurrences of `fromStr` with `toStr`. */\n replace(fromStr: string, toStr: string): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.REPLACE, 'Replace ' + this.displayName(), undefined, [fromStr, toStr]);\n }\n /**\n * Extract a portion of the string.\n * `start` is zero-based (following Python convention); `length` is optional.\n */\n substring(start: number, length?: number): ScalarFunctionOperation {\n // Python convention: 0-based start; SQL SUBSTRING is 1-based, so add 1\n const args: (number)[] = length !== undefined ? [start + 1, length] : [start + 1];\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.SUBSTRING, 'Substring ' + this.displayName(), undefined, args);\n }\n\n /** Filter to rows where this attribute equals `value`. */\n eq(value: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new StringConstantOperation(value));\n }\n /** Filter to rows where this attribute does not equal `value`. */\n ne(value: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new StringConstantOperation(value));\n }\n /** Filter to rows where this attribute contains `value` as a substring. */\n contains(value: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LIKE, new StringConstantOperation(`%${value}%`));\n }\n /** Filter to rows where this attribute begins with `prefix`. */\n startsWith(prefix: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LIKE, new StringConstantOperation(`${prefix}%`));\n }\n /** Filter to rows where this attribute ends with `suffix`. */\n endsWith(suffix: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LIKE, new StringConstantOperation(`%${suffix}`));\n }\n /** Filter to rows where this attribute does not contain `value` as a substring. */\n notContains(value: string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_LIKE, new StringConstantOperation(`%${value}%`));\n }\n}\n\nexport abstract class NumericAttribute extends Attribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Sum of all values in the group. */\n sum(): AggregateOperation {\n return new AggregateOperation(this.cwj(), AggregateOperator.SUM, 'Sum ' + this.displayName());\n }\n /** Smallest value in the group. */\n min(): AggregateOperation {\n return new AggregateOperation(this.cwj(), AggregateOperator.MIN, 'Min ' + this.displayName());\n }\n /** Largest value in the group. */\n max(): AggregateOperation {\n return new AggregateOperation(this.cwj(), AggregateOperator.MAX, 'Max ' + this.displayName());\n }\n /** Arithmetic mean of all values in the group. */\n average(): AggregateOperation {\n return new AggregateOperation(this.cwj(), AggregateOperator.AVERAGE, 'Average ' + this.displayName());\n }\n /** Absolute value (distance from zero, always non-negative). */\n abs(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.ABS, 'Abs ' + this.displayName());\n }\n /** Round up to the nearest integer. */\n ceil(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.CEILING, 'Ceil ' + this.displayName());\n }\n /** Round down to the nearest integer. */\n floor(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.FLOOR, 'Floor ' + this.displayName());\n }\n /** Square root. */\n sqrt(): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.SQRT, 'Sqrt ' + this.displayName());\n }\n /** Remainder after dividing by `n`. */\n mod(n: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.MOD, 'Mod ' + this.displayName(), n);\n }\n /** Raise to the power of `n`. */\n power(n: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.POWER, 'Power ' + this.displayName(), n);\n }\n /** Round to `d` decimal places, or to the nearest integer when `d` is omitted. */\n round(d?: number): ScalarFunctionOperation {\n return new ScalarFunctionOperation(this.cwj(), ScalarFunction.ROUND, 'Round ' + this.displayName(), d);\n }\n}\n\nexport class DoubleAttribute extends NumericAttribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this attribute equals `value`. */\n eq(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new FloatConstantOperation(value));\n }\n /** Filter to rows where this attribute does not equal `value`. */\n ne(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new FloatConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than `value`. */\n gt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN, new FloatConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than `value`. */\n lt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN, new FloatConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than or equal to `value`. */\n gte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN_OR_EQUAL_TO, new FloatConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than or equal to `value`. */\n lte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN_OR_EQUAL_TO, new FloatConstantOperation(value));\n }\n}\n\nexport const FloatAttribute = DoubleAttribute;\nexport type FloatAttribute = DoubleAttribute;\n\nexport class DecimalAttribute extends NumericAttribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this attribute equals `value`. */\n eq(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new DecimalConstantOperation(value));\n }\n /** Filter to rows where this attribute does not equal `value`. */\n ne(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new DecimalConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than `value`. */\n gt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN, new DecimalConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than `value`. */\n lt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN, new DecimalConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than or equal to `value`. */\n gte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN_OR_EQUAL_TO, new DecimalConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than or equal to `value`. */\n lte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN_OR_EQUAL_TO, new DecimalConstantOperation(value));\n }\n}\n\nexport class IntegerAttribute extends NumericAttribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this attribute equals `value`. */\n eq(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new IntegerConstantOperation(value));\n }\n /** Filter to rows where this attribute does not equal `value`. */\n ne(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new IntegerConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than `value`. */\n gt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN, new IntegerConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than `value`. */\n lt(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN, new IntegerConstantOperation(value));\n }\n /** Filter to rows where this attribute is greater than or equal to `value`. */\n gte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN_OR_EQUAL_TO, new IntegerConstantOperation(value));\n }\n /** Filter to rows where this attribute is less than or equal to `value`. */\n lte(value: number): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN_OR_EQUAL_TO, new IntegerConstantOperation(value));\n }\n}\n\nexport class BooleanAttribute extends Attribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this attribute equals `value`. */\n eq(value: boolean): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new BooleanConstantOperation(value));\n }\n /** Filter to rows where this attribute is true. */\n isTrue(): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new BooleanConstantOperation(true));\n }\n /** Filter to rows where this attribute is false. */\n isFalse(): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new BooleanConstantOperation(false));\n }\n}\n\nfunction parseDate(value: Date | string): Date {\n if (value instanceof Date) return value;\n const d = new Date(value);\n if (isNaN(d.getTime())) throw new Error(`Cannot parse date: ${value}`);\n return d;\n}\n\nexport class DateAttribute extends Attribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this date equals `value`. */\n eq(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new DateConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this date does not equal `value`. */\n ne(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new DateConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this date is after `value`. */\n gt(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN, new DateConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this date is before `value`. */\n lt(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN, new DateConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this date is on or after `value`. */\n gte(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN_OR_EQUAL_TO, new DateConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this date is on or before `value`. */\n lte(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN_OR_EQUAL_TO, new DateConstantOperation(parseDate(value)));\n }\n\n /** Extract the four-digit calendar year. */\n year(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.YEAR, 'Year ' + this.displayName()); }\n /** Extract the month number (1–12). */\n month(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.MONTH, 'Month ' + this.displayName()); }\n /** Extract the day of the month (1–31). */\n day(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.DAY, 'Day ' + this.displayName()); }\n /** Extract the quarter (1–4). */\n quarter(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.QUARTER, 'Quarter ' + this.displayName()); }\n /** Extract the ISO week number (1–53). */\n week(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.WEEK, 'Week ' + this.displayName()); }\n /** Extract the day of the week (0 = Sunday through 6 = Saturday). */\n dayOfWeek(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.DOW, 'Day Of Week ' + this.displayName()); }\n\n /** Add `n` days to this date. */\n addDays(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.DAY, true, 'Add Days ' + this.displayName()); }\n /** Add `n` months to this date. */\n addMonths(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MONTH, true, 'Add Months ' + this.displayName()); }\n /** Add `n` years to this date. */\n addYears(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.YEAR, true, 'Add Years ' + this.displayName()); }\n /** Subtract `n` days from this date. */\n subtractDays(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.DAY, false, 'Subtract Days ' + this.displayName()); }\n /** Subtract `n` months from this date. */\n subtractMonths(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MONTH, false, 'Subtract Months ' + this.displayName()); }\n /** Subtract `n` years from this date. */\n subtractYears(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.YEAR, false, 'Subtract Years ' + this.displayName()); }\n\n /** Number of whole days between this date and `other`. */\n diffDays(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.DAY, 'Diff Days ' + this.displayName()); }\n /** Number of whole months between this date and `other`. */\n diffMonths(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.MONTH, 'Diff Months ' + this.displayName()); }\n /** Number of whole years between this date and `other`. */\n diffYears(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.YEAR, 'Diff Years ' + this.displayName()); }\n}\n\nexport class DateTimeAttribute extends Attribute {\n constructor(\n displayName: string,\n columnName: string,\n columnDbType: string,\n owner: string,\n parent?: JoinTreeNodeOperation,\n embedded?: Attribute,\n ) { super(displayName, columnName, columnDbType, owner, parent, embedded); }\n\n /** Filter to rows where this timestamp equals `value`. */\n eq(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.EQUAL, new DateTimeConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this timestamp does not equal `value`. */\n ne(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.NOT_EQUAL, new DateTimeConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this timestamp is after `value`. */\n gt(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN, new DateTimeConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this timestamp is before `value`. */\n lt(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN, new DateTimeConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this timestamp is on or after `value`. */\n gte(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.GREATER_THAN_OR_EQUAL_TO, new DateTimeConstantOperation(parseDate(value)));\n }\n /** Filter to rows where this timestamp is on or before `value`. */\n lte(value: Date | string): Operation {\n return new ComparisonOperation(this.cwj(), ComparisonOperator.LESS_THAN_OR_EQUAL_TO, new DateTimeConstantOperation(parseDate(value)));\n }\n\n /** Extract the four-digit calendar year. */\n year(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.YEAR, 'Year ' + this.displayName()); }\n /** Extract the month number (1–12). */\n month(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.MONTH, 'Month ' + this.displayName()); }\n /** Extract the day of the month (1–31). */\n day(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.DAY, 'Day ' + this.displayName()); }\n /** Extract the hour (0–23). */\n hour(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.HOUR, 'Hour ' + this.displayName()); }\n /** Extract the minute (0–59). */\n minute(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.MINUTE, 'Minute ' + this.displayName()); }\n /** Extract the second (0–59). */\n second(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.SECOND, 'Second ' + this.displayName()); }\n /** Extract the quarter (1–4). */\n quarter(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.QUARTER, 'Quarter ' + this.displayName()); }\n /** Extract the ISO week number (1–53). */\n week(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.WEEK, 'Week ' + this.displayName()); }\n /** Extract the day of the week (0 = Sunday through 6 = Saturday). */\n dayOfWeek(): DateExtractOperation { return new DateExtractOperation(this.cwj(), DatePart.DOW, 'Day Of Week ' + this.displayName()); }\n\n /** Add `n` days to this timestamp. */\n addDays(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.DAY, true, 'Add Days ' + this.displayName()); }\n /** Add `n` months to this timestamp. */\n addMonths(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MONTH, true, 'Add Months ' + this.displayName()); }\n /** Add `n` years to this timestamp. */\n addYears(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.YEAR, true, 'Add Years ' + this.displayName()); }\n /** Add `n` hours to this timestamp. */\n addHours(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.HOUR, true, 'Add Hours ' + this.displayName()); }\n /** Add `n` minutes to this timestamp. */\n addMinutes(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MINUTE, true, 'Add Minutes ' + this.displayName()); }\n /** Add `n` seconds to this timestamp. */\n addSeconds(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.SECOND, true, 'Add Seconds ' + this.displayName()); }\n /** Subtract `n` days from this timestamp. */\n subtractDays(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.DAY, false, 'Subtract Days ' + this.displayName()); }\n /** Subtract `n` months from this timestamp. */\n subtractMonths(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MONTH, false, 'Subtract Months ' + this.displayName()); }\n /** Subtract `n` years from this timestamp. */\n subtractYears(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.YEAR, false, 'Subtract Years ' + this.displayName()); }\n /** Subtract `n` hours from this timestamp. */\n subtractHours(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.HOUR, false, 'Subtract Hours ' + this.displayName()); }\n /** Subtract `n` minutes from this timestamp. */\n subtractMinutes(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.MINUTE, false, 'Subtract Minutes ' + this.displayName()); }\n /** Subtract `n` seconds from this timestamp. */\n subtractSeconds(n: number): DateArithmeticOperation { return new DateArithmeticOperation(this.cwj(), n, DatePart.SECOND, false, 'Subtract Seconds ' + this.displayName()); }\n\n /** Number of whole days between this timestamp and `other`. */\n diffDays(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.DAY, 'Diff Days ' + this.displayName()); }\n /** Number of whole months between this timestamp and `other`. */\n diffMonths(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.MONTH, 'Diff Months ' + this.displayName()); }\n /** Number of whole years between this timestamp and `other`. */\n diffYears(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.YEAR, 'Diff Years ' + this.displayName()); }\n /** Number of whole hours between this timestamp and `other`. */\n diffHours(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.HOUR, 'Diff Hours ' + this.displayName()); }\n /** Number of whole minutes between this timestamp and `other`. */\n diffMinutes(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.MINUTE, 'Diff Minutes ' + this.displayName()); }\n /** Number of whole seconds between this timestamp and `other`. */\n diffSeconds(other: Date): DateDiffOperation { return new DateDiffOperation(this.cwj(), other, DatePart.SECOND, 'Diff Seconds ' + this.displayName()); }\n}\n"],"mappings":"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","names":[]}
|