@webda/ql 4.0.0-beta.7 → 4.0.0-beta.8

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.
@@ -0,0 +1,258 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
35
+ import { suite, test } from "@webda/test";
36
+ import * as assert from "assert";
37
+ import { vi } from "vitest";
38
+ import { bind } from "./bind.js";
39
+ import { parse, parseDurationToMs, PartialValidator, PrependCondition, QueryValidator, SetterValidator, validateSyntax } from "./query.js";
40
+ import { WebdaQLError } from "./webdaql-string.js";
41
+ let NowFunctionTest = (() => {
42
+ let _classDecorators = [suite];
43
+ let _classDescriptor;
44
+ let _classExtraInitializers = [];
45
+ let _classThis;
46
+ let _instanceExtraInitializers = [];
47
+ let _parseDurationUnits_decorators;
48
+ let _invalidDurationsThrowWebdaQLError_decorators;
49
+ let _grammarParsesNowVariants_decorators;
50
+ let _invalidDurationAtParseTimeThrowsWebdaQLError_decorators;
51
+ let _lowercaseNowRemainsIdentifier_decorators;
52
+ let _evalWithFakeClockReturnsDynamicResults_decorators;
53
+ let _isDynamicDetection_decorators;
54
+ let _toStringRoundTripsNow_decorators;
55
+ let _mergePreservesDynamicValues_decorators;
56
+ let _partialValidatorRoundTripsAndEvaluates_decorators;
57
+ let _bindHandlesParametersInsideNow_decorators;
58
+ let _updateSetNowAppliesResolvedTimestamp_decorators;
59
+ let _webdaQLStringTypeAllowsNow_decorators;
60
+ var NowFunctionTest = class {
61
+ static { _classThis = this; }
62
+ static {
63
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
64
+ _parseDurationUnits_decorators = [test];
65
+ _invalidDurationsThrowWebdaQLError_decorators = [test];
66
+ _grammarParsesNowVariants_decorators = [test];
67
+ _invalidDurationAtParseTimeThrowsWebdaQLError_decorators = [test];
68
+ _lowercaseNowRemainsIdentifier_decorators = [test];
69
+ _evalWithFakeClockReturnsDynamicResults_decorators = [test];
70
+ _isDynamicDetection_decorators = [test];
71
+ _toStringRoundTripsNow_decorators = [test];
72
+ _mergePreservesDynamicValues_decorators = [test];
73
+ _partialValidatorRoundTripsAndEvaluates_decorators = [test];
74
+ _bindHandlesParametersInsideNow_decorators = [test];
75
+ _updateSetNowAppliesResolvedTimestamp_decorators = [test];
76
+ _webdaQLStringTypeAllowsNow_decorators = [test];
77
+ __esDecorate(this, null, _parseDurationUnits_decorators, { kind: "method", name: "parseDurationUnits", static: false, private: false, access: { has: obj => "parseDurationUnits" in obj, get: obj => obj.parseDurationUnits }, metadata: _metadata }, null, _instanceExtraInitializers);
78
+ __esDecorate(this, null, _invalidDurationsThrowWebdaQLError_decorators, { kind: "method", name: "invalidDurationsThrowWebdaQLError", static: false, private: false, access: { has: obj => "invalidDurationsThrowWebdaQLError" in obj, get: obj => obj.invalidDurationsThrowWebdaQLError }, metadata: _metadata }, null, _instanceExtraInitializers);
79
+ __esDecorate(this, null, _grammarParsesNowVariants_decorators, { kind: "method", name: "grammarParsesNowVariants", static: false, private: false, access: { has: obj => "grammarParsesNowVariants" in obj, get: obj => obj.grammarParsesNowVariants }, metadata: _metadata }, null, _instanceExtraInitializers);
80
+ __esDecorate(this, null, _invalidDurationAtParseTimeThrowsWebdaQLError_decorators, { kind: "method", name: "invalidDurationAtParseTimeThrowsWebdaQLError", static: false, private: false, access: { has: obj => "invalidDurationAtParseTimeThrowsWebdaQLError" in obj, get: obj => obj.invalidDurationAtParseTimeThrowsWebdaQLError }, metadata: _metadata }, null, _instanceExtraInitializers);
81
+ __esDecorate(this, null, _lowercaseNowRemainsIdentifier_decorators, { kind: "method", name: "lowercaseNowRemainsIdentifier", static: false, private: false, access: { has: obj => "lowercaseNowRemainsIdentifier" in obj, get: obj => obj.lowercaseNowRemainsIdentifier }, metadata: _metadata }, null, _instanceExtraInitializers);
82
+ __esDecorate(this, null, _evalWithFakeClockReturnsDynamicResults_decorators, { kind: "method", name: "evalWithFakeClockReturnsDynamicResults", static: false, private: false, access: { has: obj => "evalWithFakeClockReturnsDynamicResults" in obj, get: obj => obj.evalWithFakeClockReturnsDynamicResults }, metadata: _metadata }, null, _instanceExtraInitializers);
83
+ __esDecorate(this, null, _isDynamicDetection_decorators, { kind: "method", name: "isDynamicDetection", static: false, private: false, access: { has: obj => "isDynamicDetection" in obj, get: obj => obj.isDynamicDetection }, metadata: _metadata }, null, _instanceExtraInitializers);
84
+ __esDecorate(this, null, _toStringRoundTripsNow_decorators, { kind: "method", name: "toStringRoundTripsNow", static: false, private: false, access: { has: obj => "toStringRoundTripsNow" in obj, get: obj => obj.toStringRoundTripsNow }, metadata: _metadata }, null, _instanceExtraInitializers);
85
+ __esDecorate(this, null, _mergePreservesDynamicValues_decorators, { kind: "method", name: "mergePreservesDynamicValues", static: false, private: false, access: { has: obj => "mergePreservesDynamicValues" in obj, get: obj => obj.mergePreservesDynamicValues }, metadata: _metadata }, null, _instanceExtraInitializers);
86
+ __esDecorate(this, null, _partialValidatorRoundTripsAndEvaluates_decorators, { kind: "method", name: "partialValidatorRoundTripsAndEvaluates", static: false, private: false, access: { has: obj => "partialValidatorRoundTripsAndEvaluates" in obj, get: obj => obj.partialValidatorRoundTripsAndEvaluates }, metadata: _metadata }, null, _instanceExtraInitializers);
87
+ __esDecorate(this, null, _bindHandlesParametersInsideNow_decorators, { kind: "method", name: "bindHandlesParametersInsideNow", static: false, private: false, access: { has: obj => "bindHandlesParametersInsideNow" in obj, get: obj => obj.bindHandlesParametersInsideNow }, metadata: _metadata }, null, _instanceExtraInitializers);
88
+ __esDecorate(this, null, _updateSetNowAppliesResolvedTimestamp_decorators, { kind: "method", name: "updateSetNowAppliesResolvedTimestamp", static: false, private: false, access: { has: obj => "updateSetNowAppliesResolvedTimestamp" in obj, get: obj => obj.updateSetNowAppliesResolvedTimestamp }, metadata: _metadata }, null, _instanceExtraInitializers);
89
+ __esDecorate(this, null, _webdaQLStringTypeAllowsNow_decorators, { kind: "method", name: "webdaQLStringTypeAllowsNow", static: false, private: false, access: { has: obj => "webdaQLStringTypeAllowsNow" in obj, get: obj => obj.webdaQLStringTypeAllowsNow }, metadata: _metadata }, null, _instanceExtraInitializers);
90
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
91
+ NowFunctionTest = _classThis = _classDescriptor.value;
92
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
93
+ __runInitializers(_classThis, _classExtraInitializers);
94
+ }
95
+ parseDurationUnits() {
96
+ assert.strictEqual(parseDurationToMs("10s"), 10000);
97
+ assert.strictEqual(parseDurationToMs("10sec"), 10000);
98
+ assert.strictEqual(parseDurationToMs("10seconds"), 10000);
99
+ assert.strictEqual(parseDurationToMs("-10s"), -10000);
100
+ assert.strictEqual(parseDurationToMs("+10s"), 10000);
101
+ assert.strictEqual(parseDurationToMs("2m"), 120000);
102
+ assert.strictEqual(parseDurationToMs("-10m"), -600000);
103
+ assert.strictEqual(parseDurationToMs("+1d"), 86400000);
104
+ assert.strictEqual(parseDurationToMs("-1d2h"), -93600000);
105
+ assert.strictEqual(parseDurationToMs("1h30m"), 5400000);
106
+ assert.strictEqual(parseDurationToMs("30"), 30000);
107
+ assert.strictEqual(parseDurationToMs(-60), -60000);
108
+ assert.strictEqual(parseDurationToMs(120), 120000);
109
+ }
110
+ invalidDurationsThrowWebdaQLError() {
111
+ assert.throws(() => parseDurationToMs(""), WebdaQLError);
112
+ assert.throws(() => parseDurationToMs(" "), WebdaQLError);
113
+ assert.throws(() => parseDurationToMs("bogus"), WebdaQLError);
114
+ assert.throws(() => parseDurationToMs("10xyz"), WebdaQLError);
115
+ assert.throws(() => parseDurationToMs("10m bogus"), WebdaQLError);
116
+ assert.throws(() => parseDurationToMs("1d -2h"), WebdaQLError);
117
+ }
118
+ grammarParsesNowVariants() {
119
+ validateSyntax("expiresAt < NOW()");
120
+ validateSyntax("mfaAt > NOW('-10m')");
121
+ validateSyntax("mfaAt > NOW('+1d')");
122
+ validateSyntax("mfaAt > NOW('-1d2h')");
123
+ validateSyntax("mfaAt > NOW(:offset)");
124
+ validateSyntax("mfaAt > NOW(?)");
125
+ validateSyntax("mfaAt > NOW(60)");
126
+ validateSyntax("mfaAt > NOW(-600)");
127
+ validateSyntax("UPDATE SET updatedAt = NOW() WHERE id = 1");
128
+ validateSyntax("UPDATE SET updatedAt = NOW('-5m')");
129
+ validateSyntax("x IN [NOW(), 0]");
130
+ }
131
+ invalidDurationAtParseTimeThrowsWebdaQLError() {
132
+ assert.throws(() => parse("expiresAt < NOW('bogus')"), WebdaQLError);
133
+ assert.throws(() => parse("expiresAt < NOW('10xyz')"), WebdaQLError);
134
+ assert.throws(() => parse("expiresAt < NOW('')"), WebdaQLError);
135
+ assert.throws(() => parse("expiresAt < NOW(' ')"), WebdaQLError);
136
+ assert.throws(() => parse("expiresAt < NOW('10m bogus')"), WebdaQLError);
137
+ }
138
+ lowercaseNowRemainsIdentifier() {
139
+ const q1 = parse("now = 1");
140
+ assert.strictEqual(q1.filter.toString(), "now = 1");
141
+ const q2 = parse("UPDATE SET now = 1 WHERE id = 2");
142
+ assert.deepStrictEqual(q2.assignments, [{ field: "now", value: 1 }]);
143
+ assert.throws(() => parse("NOW = 1"), SyntaxError);
144
+ }
145
+ evalWithFakeClockReturnsDynamicResults() {
146
+ vi.useFakeTimers();
147
+ try {
148
+ vi.setSystemTime(1000000);
149
+ const qv = new QueryValidator("expiresAt > NOW('-10s')");
150
+ // At t = 1000000, NOW('-10s') = 990000. Target at 995000 is > 990000 (true)
151
+ assert.strictEqual(qv.eval({ expiresAt: 995000 }), true);
152
+ // Target at 980000 is not > 990000 (false)
153
+ assert.strictEqual(qv.eval({ expiresAt: 980000 }), false);
154
+ // Advance clock by 10s: now t = 1010000, NOW('-10s') = 1000000
155
+ vi.advanceTimersByTime(10000);
156
+ // Target at 995000 is now < 1000000 (false!) without reparsing
157
+ assert.strictEqual(qv.eval({ expiresAt: 995000 }), false);
158
+ // Now value is fresh on every eval
159
+ const qvNow = new QueryValidator("expiresAt <= NOW()");
160
+ assert.strictEqual(qvNow.eval({ expiresAt: 1010000 }), true);
161
+ assert.strictEqual(qvNow.eval({ expiresAt: 1010001 }), false);
162
+ }
163
+ finally {
164
+ vi.useRealTimers();
165
+ }
166
+ }
167
+ isDynamicDetection() {
168
+ assert.strictEqual(parse("expiresAt < NOW()").filter.isDynamic(), true);
169
+ assert.strictEqual(parse("expiresAt < NOW('-10m')").filter.isDynamic(), true);
170
+ assert.strictEqual(parse("a = 1 AND (b = 2 OR c > NOW())").filter.isDynamic(), true);
171
+ assert.strictEqual(parse("a = 1 AND b = 2").filter.isDynamic(), false);
172
+ assert.strictEqual(new QueryValidator("expiresAt < NOW()").isDynamic(), true);
173
+ assert.strictEqual(new QueryValidator("a = 1").isDynamic(), false);
174
+ }
175
+ toStringRoundTripsNow() {
176
+ for (const [query, expected] of [
177
+ ["expiresAt < NOW()", "expiresAt < NOW()"],
178
+ ["mfaAt > NOW('-10m')", "mfaAt > NOW('-10m')"],
179
+ [
180
+ "lastUsedAt < NOW('-30d') ORDER BY lastUsedAt ASC LIMIT 100",
181
+ "lastUsedAt < NOW('-30d') ORDER BY lastUsedAt ASC LIMIT 100"
182
+ ],
183
+ ["UPDATE SET touchedAt = NOW() WHERE uuid = 'x'", 'UPDATE SET touchedAt = NOW() WHERE uuid = "x"'],
184
+ ["UPDATE SET touchedAt = NOW('-10m') WHERE uuid = 'x'", "UPDATE SET touchedAt = NOW('-10m') WHERE uuid = \"x\""]
185
+ ]) {
186
+ const parsed = parse(query);
187
+ assert.strictEqual(parsed.toString(), expected);
188
+ }
189
+ }
190
+ mergePreservesDynamicValues() {
191
+ const merged = PrependCondition("status = 'active'", "mfaAt > NOW('-10m')");
192
+ assert.strictEqual(merged, "status = \"active\" AND mfaAt > NOW('-10m')");
193
+ const qv = new QueryValidator(merged);
194
+ assert.strictEqual(qv.isDynamic(), true);
195
+ }
196
+ partialValidatorRoundTripsAndEvaluates() {
197
+ vi.useFakeTimers();
198
+ try {
199
+ vi.setSystemTime(1000000);
200
+ const pv = new PartialValidator("mfaAt > NOW('-10m')");
201
+ assert.strictEqual(pv.toString(), "mfaAt > NOW('-10m')");
202
+ assert.strictEqual(pv.isDynamic(), true);
203
+ assert.strictEqual(pv.eval({ mfaAt: 900000 }), true); // 900000 > 400000
204
+ assert.strictEqual(pv.eval({ mfaAt: 300000 }), false);
205
+ // In partial mode, missing attribute is treated as match
206
+ assert.strictEqual(pv.eval({}), true);
207
+ }
208
+ finally {
209
+ vi.useRealTimers();
210
+ }
211
+ }
212
+ bindHandlesParametersInsideNow() {
213
+ const boundString = bind("mfaAt > NOW(?)", ["-10m"]);
214
+ assert.strictEqual(boundString, "mfaAt > NOW('-10m')");
215
+ const boundNamed = bind("mfaAt > NOW(:offset)", { offset: "+1d" });
216
+ assert.strictEqual(boundNamed, "mfaAt > NOW('+1d')");
217
+ const boundNumber = bind("mfaAt > NOW(?)", [-600]);
218
+ assert.strictEqual(boundNumber, "mfaAt > NOW(-600)");
219
+ const boundNamedNum = bind("mfaAt > NOW(:offset)", { offset: 30 });
220
+ assert.strictEqual(boundNamedNum, "mfaAt > NOW(30)");
221
+ const q = parse(boundString);
222
+ assert.strictEqual(q.filter.isDynamic(), true);
223
+ }
224
+ updateSetNowAppliesResolvedTimestamp() {
225
+ const parsed = parse("UPDATE SET touchedAt = NOW() WHERE uuid = 'x'");
226
+ assert.strictEqual(parsed.type, "UPDATE");
227
+ assert.strictEqual(parsed.assignments.length, 1);
228
+ const assignment = parsed.assignments[0];
229
+ assert.strictEqual(assignment.field, "touchedAt");
230
+ const val1 = assignment.value;
231
+ assert.strictEqual(typeof val1, "number");
232
+ assert.ok(Math.abs(val1 - Date.now()) < 5000);
233
+ // SetterValidator
234
+ const setter = new SetterValidator("touchedAt = NOW()");
235
+ const target = {};
236
+ setter.eval(target);
237
+ assert.strictEqual(typeof target.touchedAt, "number");
238
+ assert.ok(Math.abs(target.touchedAt - Date.now()) < 5000);
239
+ // With offset
240
+ const setterOffset = new SetterValidator("touchedAt = NOW('-10m')");
241
+ const targetOffset = {};
242
+ setterOffset.eval(targetOffset);
243
+ assert.strictEqual(typeof targetOffset.touchedAt, "number");
244
+ assert.ok(Math.abs(targetOffset.touchedAt - (Date.now() - 600000)) < 5000);
245
+ }
246
+ webdaQLStringTypeAllowsNow() {
247
+ const q1 = "mfaAt > NOW('-10m')";
248
+ assert.strictEqual(typeof q1, "string");
249
+ const q2 = "expiresAt < NOW()";
250
+ assert.strictEqual(typeof q2, "string");
251
+ }
252
+ constructor() {
253
+ __runInitializers(this, _instanceExtraInitializers);
254
+ }
255
+ };
256
+ return NowFunctionTest = _classThis;
257
+ })();
258
+ //# sourceMappingURL=now.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now.spec.js","sourceRoot":"","sources":["../src/now.spec.ts"],"names":[],"mappings":"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"}
package/lib/query.d.ts CHANGED
@@ -1,12 +1,63 @@
1
+ import { CommonTokenStream } from "antlr4ts";
1
2
  import { AbstractParseTreeVisitor, ParseTree } from "antlr4ts/tree/index.js";
2
3
  import { WebdaQLLexer } from "./WebdaQLLexer.js";
3
- import { AndLogicExpressionContext, AssignmentContext, AtomExpressionContext, BinaryComparisonExpressionContext, BooleanLiteralContext, ContainsExpressionContext, DeleteStatementContext, ExpressionContext, FieldListContext, FilterQueryContext, InExpressionContext, IntegerLiteralContext, IsNotNullExpressionContext, IsNullExpressionContext, LikeExpressionContext, LimitExpressionContext, NumberLiteralContext, OffsetExpressionContext, OrLogicExpressionContext, OrderExpressionContext, OrderFieldExpressionContext, ParameterContext, SelectStatementContext, SetExpressionContext, StatementContext, StringLiteralContext, SubExpressionContext, UpdateStatementContext, WebdaqlContext } from "./WebdaQLParserParser.js";
4
+ import { AndLogicExpressionContext, AssignmentContext, AtomExpressionContext, BinaryComparisonExpressionContext, BooleanLiteralContext, ContainsExpressionContext, DeleteStatementContext, ExpressionContext, FieldListContext, FilterQueryContext, InExpressionContext, IntegerLiteralContext, IsNotNullExpressionContext, IsNullExpressionContext, LikeExpressionContext, LimitExpressionContext, NowFunctionContext, NumberLiteralContext, OffsetExpressionContext, OrLogicExpressionContext, OrderExpressionContext, OrderFieldExpressionContext, ParameterContext, SelectStatementContext, SetExpressionContext, StatementContext, StringLiteralContext, SubExpressionContext, UpdateStatementContext, WebdaQLParserParser, WebdaqlContext } from "./WebdaQLParserParser.js";
4
5
  import { WebdaQLParserVisitor } from "./WebdaQLParserVisitor.js";
5
6
  import { type AggregationQuery, type Metric } from "./aggregation-query.js";
6
7
  /**
7
8
  * Primitive value types supported by WebdaQL expressions
8
9
  */
9
10
  type value = boolean | string | number;
11
+ /**
12
+ * A value computed at evaluation time
13
+ */
14
+ export declare abstract class DynamicValue {
15
+ abstract readonly name: string;
16
+ /**
17
+ * Resolve dynamic value to a concrete scalar
18
+ * @returns resolved scalar value
19
+ */
20
+ abstract resolve(): value;
21
+ /**
22
+ * String representation
23
+ * @returns WQL string
24
+ */
25
+ abstract toString(): string;
26
+ }
27
+ /**
28
+ * Dynamic value representing the current timestamp (in milliseconds since epoch) with an optional duration offset
29
+ */
30
+ export declare class NowValue extends DynamicValue {
31
+ readonly offsetMs: number;
32
+ readonly raw?: string | undefined;
33
+ readonly name = "NOW";
34
+ /**
35
+ * @param offsetMs - offset in milliseconds to add to Date.now()
36
+ * @param raw - original duration string literal (if parsed from one)
37
+ */
38
+ constructor(offsetMs?: number, raw?: string | undefined);
39
+ /**
40
+ * Resolve to current timestamp + offset
41
+ * @returns timestamp in milliseconds
42
+ */
43
+ resolve(): number;
44
+ /**
45
+ * String representation of NOW function call
46
+ * @returns WQL NOW function string
47
+ */
48
+ toString(): string;
49
+ }
50
+ /**
51
+ * Parse a duration string or numeric seconds into milliseconds.
52
+ *
53
+ * Supports an optional leading sign (`+` or `-`), and composite parts like `1d2h`, `10m`, `30`, `1.5h`.
54
+ * Numeric inputs are treated as seconds.
55
+ *
56
+ * @param input - duration string or numeric seconds
57
+ * @returns duration offset in milliseconds
58
+ * @throws {WebdaQLError} if the format or unit is invalid
59
+ */
60
+ export declare function parseDurationToMs(input: number | string): number;
10
61
  /**
11
62
  * Kind of statement a query is: a plain filter is an implicit `SELECT` of every field
12
63
  */
@@ -17,8 +68,10 @@ export type QueryType = "SELECT" | "DELETE" | "UPDATE";
17
68
  export interface Assignment {
18
69
  /** Field path (dot-notation for nested attributes) */
19
70
  field: string;
20
- /** Value to assign */
71
+ /** Value to assign (evaluated at access time if dynamic) */
21
72
  value: value;
73
+ /** Raw parsed value or DynamicValue */
74
+ rawValue?: value | DynamicValue;
22
75
  }
23
76
  /**
24
77
  * Strip the quotes of a WebdaQL string literal and unescape its contents.
@@ -287,6 +340,12 @@ export declare class ExpressionBuilder extends AbstractParseTreeVisitor<Query> i
287
340
  * @returns the parsed number
288
341
  */
289
342
  visitNumberLiteral(ctx: NumberLiteralContext): number;
343
+ /**
344
+ * Visit a NOW() function call with optional duration offset
345
+ * @param ctx - the now function context
346
+ * @returns the NowValue
347
+ */
348
+ visitNowFunction(ctx: NowFunctionContext): NowValue;
290
349
  /**
291
350
  * A `?` or `:name` placeholder reaching evaluation was never bound
292
351
  * @param ctx - the parameter context
@@ -354,6 +413,10 @@ export declare abstract class Expression<T = string> {
354
413
  * @param depth
355
414
  */
356
415
  abstract toString(depth?: number): string;
416
+ /**
417
+ * Check whether the expression depends on dynamic values (such as NOW())
418
+ */
419
+ abstract isDynamic(): boolean;
357
420
  }
358
421
  /**
359
422
  * All supported comparison operators
@@ -380,9 +443,9 @@ export declare const UNARY_COMPARISON_OPERATORS: readonly ComparisonOperator[];
380
443
  */
381
444
  export declare class ComparisonExpression<T extends ComparisonOperator = ComparisonOperator> extends Expression<T> {
382
445
  /**
383
- * Right side of the comparison
446
+ * Right side of the comparison (raw parsed value, possibly DynamicValue)
384
447
  */
385
- value: value | value[] | null;
448
+ rawValue: value | (value | DynamicValue)[] | DynamicValue | null;
386
449
  /**
387
450
  * Attribute to read from the object (split by .)
388
451
  */
@@ -390,9 +453,23 @@ export declare class ComparisonExpression<T extends ComparisonOperator = Compari
390
453
  /**
391
454
  * @param operator - comparison operator
392
455
  * @param attribute - dot-notation path to the object property (e.g. `"user.name"`)
393
- * @param value - literal value or array of values (for IN operator) to compare against
456
+ * @param rawValue - literal value, DynamicValue, or array of values (for IN operator) to compare against
457
+ */
458
+ constructor(operator: T, attribute: string, rawValue: value | any[] | DynamicValue | null);
459
+ /**
460
+ * Resolved value at evaluation time
461
+ * @returns the resolved scalar or array value
462
+ */
463
+ get value(): value | value[] | null;
464
+ /**
465
+ * Set the raw value
466
+ * @param val - new value
467
+ */
468
+ set value(val: value | (value | DynamicValue)[] | DynamicValue | null);
469
+ /**
470
+ * @override
394
471
  */
395
- constructor(operator: T, attribute: string, value: value | any[] | null);
472
+ isDynamic(): boolean;
396
473
  /**
397
474
  * Convert a SQL LIKE pattern to a JavaScript RegExp
398
475
  *
@@ -428,10 +505,11 @@ export declare class ComparisonExpression<T extends ComparisonOperator = Compari
428
505
  * Serialize a value to its WebdaQL string representation
429
506
  *
430
507
  * Strings are double-quoted, booleans are uppercased, arrays are bracket-wrapped.
508
+ * Dynamic values serialize to their canonical function call string (e.g. `NOW('-10m')`).
431
509
  * @param value - the value to serialize
432
510
  * @returns the serialized string
433
511
  */
434
- toStringValue(value: value | value[] | null): string;
512
+ toStringValue(value: value | (value | DynamicValue)[] | DynamicValue | null): string;
435
513
  /**
436
514
  * Allow subclass to create different display
437
515
  * @returns the attribute string
@@ -466,6 +544,10 @@ export declare abstract class LogicalExpression<T> extends Expression<T> {
466
544
  * @override
467
545
  */
468
546
  toString(depth?: number): string;
547
+ /**
548
+ * @override
549
+ */
550
+ isDynamic(): boolean;
469
551
  }
470
552
  /**
471
553
  * Logical AND expression — evaluates to `true` only if all children are `true`
@@ -523,7 +605,39 @@ export declare class BooleanExpression extends Expression<"TRUE" | "FALSE"> {
523
605
  * @override
524
606
  */
525
607
  toString(): string;
608
+ /**
609
+ * @override
610
+ */
611
+ isDynamic(): boolean;
612
+ }
613
+ /**
614
+ * Options for creating an ANTLR WebdaQL parser
615
+ */
616
+ export interface CreateParserOptions {
617
+ /** If true, error listeners that throw on syntax errors are omitted */
618
+ tolerant?: boolean;
526
619
  }
620
+ /**
621
+ * Create a lexer and a parser for a query
622
+ * @param sql - the query string
623
+ * @param options - parser options
624
+ * @returns the lexer, parser and token stream
625
+ */
626
+ export declare function createParser(sql: string, options?: CreateParserOptions): {
627
+ lexer: WebdaQLLexer;
628
+ parser: WebdaQLParserParser;
629
+ tokens: CommonTokenStream;
630
+ };
631
+ /**
632
+ * Create a tolerant lexer and parser that do not throw on syntax errors
633
+ * @param sql - the query string
634
+ * @returns the lexer, parser and token stream
635
+ */
636
+ export declare function createTolerantParser(sql: string): {
637
+ lexer: WebdaQLLexer;
638
+ parser: WebdaQLParserParser;
639
+ tokens: CommonTokenStream;
640
+ };
527
641
  /**
528
642
  * Check a query against the WebdaQL grammar without evaluating it
529
643
  *
@@ -615,6 +729,11 @@ export declare class QueryValidator {
615
729
  * @returns true if the target matches
616
730
  */
617
731
  eval(target: any): boolean;
732
+ /**
733
+ * Check whether this query's filter contains any dynamic values
734
+ * @returns true if any child comparison holds a DynamicValue
735
+ */
736
+ isDynamic(): boolean;
618
737
  /**
619
738
  * Display parse tree back as query
620
739
  * @param tree - the parse tree to display
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}