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