@adaptabletools/adaptable 24.0.0 → 24.0.2
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/devtools.d.ts +13 -0
- package/index.css +76 -76
- package/package.json +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -2
- package/src/Api/Internal/FormatColumnInternalApi.js +15 -7
- package/src/Utilities/Services/QueryLanguageService.js +1 -1
- package/src/agGrid/AdaptableAgGrid.js +22 -31
- package/src/env.js +2 -2
- package/src/migration/VersionUpgrade24.d.ts +44 -9
- package/src/migration/VersionUpgrade24.js +97 -25
- package/src/migration/legacyPredicateLowering.d.ts +1 -1
- package/src/migration/legacyPredicateLowering.js +2 -0
- package/src/migration/predicateExpressionMigration.d.ts +49 -12
- package/src/migration/predicateExpressionMigration.js +141 -10
- package/src/setupDevTools.js +106 -170
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/vendor/aql/api/QueryLanguageApi.d.ts +2 -1
- package/vendor/aql/api/QueryLanguageApi.d.ts.map +1 -1
- package/vendor/aql/api/QueryLanguageApi.js +28 -108
- package/vendor/aql/api/QueryLanguageApi.js.map +1 -1
- package/vendor/aql/contract/index.js +0 -34
- package/vendor/aql/contract/index.js.map +1 -1
- package/vendor/aql/corpus/corpusExpressions.js +0 -13
- package/vendor/aql/corpus/corpusExpressions.js.map +1 -1
- package/vendor/aql/corpus/corpusFixture.js +0 -7
- package/vendor/aql/corpus/corpusFixture.js.map +1 -1
- package/vendor/aql/draft/index.js +0 -4
- package/vendor/aql/draft/index.js.map +1 -1
- package/vendor/aql/evaluate.js +0 -22
- package/vendor/aql/evaluate.js.map +1 -1
- package/vendor/aql/evaluator/ExpressionEvaluationError.js +0 -4
- package/vendor/aql/evaluator/ExpressionEvaluationError.js.map +1 -1
- package/vendor/aql/evaluator/ExpressionNaError.js +0 -4
- package/vendor/aql/evaluator/ExpressionNaError.js.map +1 -1
- package/vendor/aql/evaluator/evaluateNode.js +0 -23
- package/vendor/aql/evaluator/evaluateNode.js.map +1 -1
- package/vendor/aql/functions/dateUtils.js +0 -63
- package/vendor/aql/functions/dateUtils.js.map +1 -1
- package/vendor/aql/functions/numberUtils.js +0 -12
- package/vendor/aql/functions/numberUtils.js.map +1 -1
- package/vendor/aql/functions/operatorFunctions.js +0 -13
- package/vendor/aql/functions/operatorFunctions.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/AND.js +0 -5
- package/vendor/aql/functions/scalar/functions/AND.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js +0 -4
- package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js +0 -4
- package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/AVG.js +0 -1
- package/vendor/aql/functions/scalar/functions/AVG.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/CASE.js +2 -2
- package/vendor/aql/functions/scalar/functions/CASE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/COL.js +0 -2
- package/vendor/aql/functions/scalar/functions/COL.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/CONTAINS.js +0 -3
- package/vendor/aql/functions/scalar/functions/CONTAINS.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/DATE.js +0 -2
- package/vendor/aql/functions/scalar/functions/DATE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/ENDS_WITH.js +0 -1
- package/vendor/aql/functions/scalar/functions/ENDS_WITH.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/EQ.js +0 -5
- package/vendor/aql/functions/scalar/functions/EQ.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/GT.js +0 -3
- package/vendor/aql/functions/scalar/functions/GT.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/GTE.js +0 -3
- package/vendor/aql/functions/scalar/functions/GTE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IF.js +0 -5
- package/vendor/aql/functions/scalar/functions/IF.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IFERROR.js +0 -4
- package/vendor/aql/functions/scalar/functions/IFERROR.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IFNA.js +0 -5
- package/vendor/aql/functions/scalar/functions/IFNA.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IN.d.ts.map +1 -1
- package/vendor/aql/functions/scalar/functions/IN.js +54 -11
- package/vendor/aql/functions/scalar/functions/IN.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IS_BLANK.js +0 -1
- package/vendor/aql/functions/scalar/functions/IS_BLANK.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js +0 -1
- package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js +0 -1
- package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/LT.js +0 -3
- package/vendor/aql/functions/scalar/functions/LT.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/LTE.js +0 -3
- package/vendor/aql/functions/scalar/functions/LTE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/NA.js +0 -3
- package/vendor/aql/functions/scalar/functions/NA.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js +0 -1
- package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/NOT_IN.js +0 -3
- package/vendor/aql/functions/scalar/functions/NOT_IN.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/OR.js +0 -4
- package/vendor/aql/functions/scalar/functions/OR.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/PRODUCT.js +0 -6
- package/vendor/aql/functions/scalar/functions/PRODUCT.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/QUERY.js +0 -1
- package/vendor/aql/functions/scalar/functions/QUERY.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/REGEX.js +0 -1
- package/vendor/aql/functions/scalar/functions/REGEX.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/SCOPE.js +0 -4
- package/vendor/aql/functions/scalar/functions/SCOPE.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/STARTS_WITH.js +0 -1
- package/vendor/aql/functions/scalar/functions/STARTS_WITH.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/SUB.js +0 -1
- package/vendor/aql/functions/scalar/functions/SUB.js.map +1 -1
- package/vendor/aql/functions/scalar/functions/SUM.js +0 -5
- package/vendor/aql/functions/scalar/functions/SUM.js.map +1 -1
- package/vendor/aql/functions/scalar/helpers.js +0 -3
- package/vendor/aql/functions/scalar/helpers.js.map +1 -1
- package/vendor/aql/functions/shared/FIELD.js +0 -3
- package/vendor/aql/functions/shared/FIELD.js.map +1 -1
- package/vendor/aql/functions/shared/VAR.js +0 -4
- package/vendor/aql/functions/shared/VAR.js.map +1 -1
- package/vendor/aql/functions/shared/index.js +0 -9
- package/vendor/aql/functions/shared/index.js.map +1 -1
- package/vendor/aql/functions/stringUtils.js +0 -25
- package/vendor/aql/functions/stringUtils.js.map +1 -1
- package/vendor/aql/functions/utils.js +0 -20
- package/vendor/aql/functions/utils.js.map +1 -1
- package/vendor/aql/host/access.js +0 -2
- package/vendor/aql/host/access.js.map +1 -1
- package/vendor/aql/host/createHostExpressionContext.js +0 -25
- package/vendor/aql/host/createHostExpressionContext.js.map +1 -1
- package/vendor/aql/host/createObjectDataHost.js +0 -9
- package/vendor/aql/host/createObjectDataHost.js.map +1 -1
- package/vendor/aql/index.js +0 -2
- package/vendor/aql/index.js.map +1 -1
- package/vendor/aql/normalize/canonicalize.js +0 -7
- package/vendor/aql/normalize/canonicalize.js.map +1 -1
- package/vendor/aql/normalize/migrateExpression.js +0 -8
- package/vendor/aql/normalize/migrateExpression.js.map +1 -1
- package/vendor/aql/normalize/names.js +0 -72
- package/vendor/aql/normalize/names.js.map +1 -1
- package/vendor/aql/normalize/normalizeAst.js +0 -102
- package/vendor/aql/normalize/normalizeAst.js.map +1 -1
- package/vendor/aql/normalize/print.js +0 -35
- package/vendor/aql/normalize/print.js.map +1 -1
- package/vendor/aql/operator/primitiveSlots.js +0 -4
- package/vendor/aql/operator/primitiveSlots.js.map +1 -1
- package/vendor/aql/operator/resolve.js +0 -18
- package/vendor/aql/operator/resolve.js.map +1 -1
- package/vendor/aql/parser/parser.js +4 -125
- package/vendor/aql/parser/parser.js.map +1 -1
- package/vendor/aql/plan/catalogue.js +0 -35
- package/vendor/aql/plan/catalogue.js.map +1 -1
- package/vendor/aql/plan/compile.js +0 -68
- package/vendor/aql/plan/compile.js.map +1 -1
- package/vendor/aql/plan/deepMap.js +0 -16
- package/vendor/aql/plan/deepMap.js.map +1 -1
- package/vendor/aql/plan/execute.js +0 -91
- package/vendor/aql/plan/execute.js.map +1 -1
- package/vendor/aql/plan/magnitudeLiteral.js +0 -29
- package/vendor/aql/plan/magnitudeLiteral.js.map +1 -1
- package/vendor/aql/plan/observable.js +0 -31
- package/vendor/aql/plan/observable.js.map +1 -1
- package/vendor/aql/plan/observableFixture.js +0 -3
- package/vendor/aql/plan/observableFixture.js.map +1 -1
- package/vendor/aql/plan/operators.js +0 -35
- package/vendor/aql/plan/operators.js.map +1 -1
- package/vendor/aql/plan/outer.js +0 -16
- package/vendor/aql/plan/outer.js.map +1 -1
- package/vendor/aql/predicate/mapExpressionToQlPredicate.js +1 -46
- package/vendor/aql/predicate/mapExpressionToQlPredicate.js.map +1 -1
- package/vendor/aql/predicate/mapQlPredicateToExpression.js +0 -13
- package/vendor/aql/predicate/mapQlPredicateToExpression.js.map +1 -1
- package/vendor/aql/store/computedValueStore.js +0 -35
- package/vendor/aql/store/computedValueStore.js.map +1 -1
- package/vendor/aql/store/history/clock.js +0 -1
- package/vendor/aql/store/history/clock.js.map +1 -1
- package/vendor/aql/store/history/historyStore.js +0 -14
- package/vendor/aql/store/history/historyStore.js.map +1 -1
- package/vendor/aql/store/history/monotonicDeque.js +0 -9
- package/vendor/aql/store/history/monotonicDeque.js.map +1 -1
- package/vendor/aql/store/history/operators.js +0 -13
- package/vendor/aql/store/history/operators.js.map +1 -1
- package/vendor/aql/store/history/ringBuffer.js +0 -12
- package/vendor/aql/store/history/ringBuffer.js.map +1 -1
- package/vendor/aql/store/history/rowSeries.js +0 -17
- package/vendor/aql/store/history/rowSeries.js.map +1 -1
- package/vendor/aql/store/history/types.js +0 -18
- package/vendor/aql/store/history/types.js.map +1 -1
- package/vendor/aql/tokenizer/tokenizer.js +0 -3
- package/vendor/aql/tokenizer/tokenizer.js.map +1 -1
- package/vendor/aql/types.js +0 -27
- package/vendor/aql/types.js.map +1 -1
- package/vendor/aql/utils/astUtils.js +0 -1
- package/vendor/aql/utils/astUtils.js.map +1 -1
- package/vendor/aql/utils/dependencyCycle.js +0 -5
- package/vendor/aql/utils/dependencyCycle.js.map +1 -1
- package/vendor/aql/validation/classifyExpression.js +0 -4
- package/vendor/aql/validation/classifyExpression.js.map +1 -1
- package/vendor/aql/validation/functionMetadata.js +0 -31
- package/vendor/aql/validation/functionMetadata.js.map +1 -1
- package/vendor/aql/validation/validateAqlExpression.js +2 -81
- package/vendor/aql/validation/validateAqlExpression.js.map +1 -1
- package/vendor/aql/validation/validateExpressionTypes.js +0 -64
- package/vendor/aql/validation/validateExpressionTypes.js.map +1 -1
- package/vendor/components/Button/index.js +0 -6
- package/vendor/components/Button/index.js.map +1 -1
- package/vendor/components/ColorField/index.js +0 -18
- package/vendor/components/ColorField/index.js.map +1 -1
- package/vendor/components/ColorPicker/colorPickerTab.js +0 -6
- package/vendor/components/ColorPicker/colorPickerTab.js.map +1 -1
- package/vendor/components/ColorPicker/index.js +1 -66
- package/vendor/components/ColorPicker/index.js.map +1 -1
- package/vendor/components/ColorPicker/themeColors.js +0 -55
- package/vendor/components/ColorPicker/themeColors.js.map +1 -1
- package/vendor/components/Combobox/VirtualizedList.js +0 -5
- package/vendor/components/Combobox/VirtualizedList.js.map +1 -1
- package/vendor/components/Combobox/comboboxUtils.js +0 -5
- package/vendor/components/Combobox/comboboxUtils.js.map +1 -1
- package/vendor/components/Combobox/index.js +7 -106
- package/vendor/components/Combobox/index.js.map +1 -1
- package/vendor/components/Combobox/useScrollNearEnd.js +0 -6
- package/vendor/components/Combobox/useScrollNearEnd.js.map +1 -1
- package/vendor/components/DropdownButton/index.js +0 -5
- package/vendor/components/DropdownButton/index.js.map +1 -1
- package/vendor/components/NumberInput/index.js +0 -10
- package/vendor/components/NumberInput/index.js.map +1 -1
- package/vendor/components/Resizable/index.js +3 -26
- package/vendor/components/Resizable/index.js.map +1 -1
- package/vendor/components/Resizable/resizableUtils.js +0 -24
- package/vendor/components/Resizable/resizableUtils.js.map +1 -1
- package/vendor/components/SearchInput/index.js +0 -5
- package/vendor/components/SearchInput/index.js.map +1 -1
- package/vendor/components/Tree/TreeDropdown/index.js +3 -139
- package/vendor/components/Tree/TreeDropdown/index.js.map +1 -1
- package/vendor/components/Tree/treeUtils.js +0 -4
- package/vendor/components/Tree/treeUtils.js.map +1 -1
- package/vendor/components/index.css +71 -71
- package/vendor/components/index.js +0 -5
- package/vendor/components/index.js.map +1 -1
- package/vendor/components/lib/useProperty.js +0 -18
- package/vendor/components/lib/useProperty.js.map +1 -1
- package/vendor/components/twMerge.js +0 -2
- package/vendor/components/twMerge.js.map +1 -1
- package/vendor/components/twUtils.js +3 -12
- package/vendor/components/twUtils.js.map +1 -1
- package/vendor/components/ui/alert-dialog.js +0 -4
- package/vendor/components/ui/alert-dialog.js.map +1 -1
- package/vendor/components/ui/calendar.js +1 -9
- package/vendor/components/ui/calendar.js.map +1 -1
- package/vendor/components/ui/combobox.js +2 -38
- package/vendor/components/ui/combobox.js.map +1 -1
- package/vendor/components/ui/dialog.js +0 -4
- package/vendor/components/ui/dialog.js.map +1 -1
- package/vendor/components/ui/input-group.js +3 -12
- package/vendor/components/ui/input-group.js.map +1 -1
- package/vendor/components/ui/tabs.js +0 -3
- package/vendor/components/ui/tabs.js.map +1 -1
|
@@ -9,7 +9,6 @@ import { KEYWORD_OPERATORS } from '../functions/operatorFunctions.js';
|
|
|
9
9
|
import { inferStaticExpressionType, validateExpressionTypes, } from './validateExpressionTypes.js';
|
|
10
10
|
const DEFAULT_MAX_WITHIN_MS = 24 * 3600 * 1000;
|
|
11
11
|
const DEFAULT_MAX_HISTORY_PER_CELL = 1000;
|
|
12
|
-
/** Names that are never scalar-pool lookups (refs, literals, internals). */
|
|
13
12
|
const NON_POOL_FUNCTION_NAMES = new Set([
|
|
14
13
|
'COL',
|
|
15
14
|
'FIELD',
|
|
@@ -22,10 +21,6 @@ const NON_POOL_FUNCTION_NAMES = new Set([
|
|
|
22
21
|
'CASE',
|
|
23
22
|
'NULL',
|
|
24
23
|
]);
|
|
25
|
-
/**
|
|
26
|
-
* Paren-callable names that runtime normalize does not rewrite (sugar
|
|
27
|
-
* wrappers and operand/marker tags). Never "unknown functions".
|
|
28
|
-
*/
|
|
29
24
|
const EVALUATION_SUGAR_AND_OPERAND_NAMES = new Set([
|
|
30
25
|
'CUMUL',
|
|
31
26
|
'PERCENTAGE',
|
|
@@ -64,13 +59,9 @@ const pushIssue = (state, code, message, node, extras) => {
|
|
|
64
59
|
...extras,
|
|
65
60
|
});
|
|
66
61
|
};
|
|
67
|
-
// ---------------------------------------------------------------------------
|
|
68
|
-
// Raw-surface rails (run on the authored AST, before normalization)
|
|
69
|
-
// ---------------------------------------------------------------------------
|
|
70
62
|
const braceQuickFix = (state, call) => {
|
|
71
63
|
const normalized = migrateExpressionNode(call, {
|
|
72
64
|
...state.normalizeOptions,
|
|
73
|
-
// the fix IS the aggregation reading — force dual names through
|
|
74
65
|
aggregatedContext: true,
|
|
75
66
|
});
|
|
76
67
|
if (!isAST_Function(normalized) || kindOf(normalized) === 'FUNCTION') {
|
|
@@ -82,11 +73,6 @@ const braceQuickFix = (state, call) => {
|
|
|
82
73
|
range: call.range,
|
|
83
74
|
};
|
|
84
75
|
};
|
|
85
|
-
/**
|
|
86
|
-
* Quick-fix for a legacy observable source (either spelling, optionally
|
|
87
|
-
* with its trailing root `WHERE`): the observable comparison `migrateAst`
|
|
88
|
-
* produces for it. `undefined` when the call cannot be mapped.
|
|
89
|
-
*/
|
|
90
76
|
const legacyObservableQuickFix = (state, expression) => {
|
|
91
77
|
const migrated = migrateExpressionNode(expression, {
|
|
92
78
|
...state.normalizeOptions,
|
|
@@ -111,7 +97,7 @@ const checkRawSpellingRails = (state, call, context) => {
|
|
|
111
97
|
}
|
|
112
98
|
if (context.inLegacyObservableArgs &&
|
|
113
99
|
(LEGACY_OBSERVABLE_MARKER_NAMES.has(call.type) || call.type === 'TIMEFRAME')) {
|
|
114
|
-
return;
|
|
100
|
+
return;
|
|
115
101
|
}
|
|
116
102
|
if (call.type === 'CUMUL') {
|
|
117
103
|
pushIssue(state, 'AQL_LEGACY_SPELLING', 'CUMUL(...) is not supported — use a CUMULATIVE(...) clause, or expressionApi.migratePreV24Expression', call);
|
|
@@ -134,32 +120,25 @@ const checkRawSpellingRails = (state, call, context) => {
|
|
|
134
120
|
return;
|
|
135
121
|
}
|
|
136
122
|
if (LEGACY_OBSERVABLE_SOURCE_NAMES.has(call.type)) {
|
|
137
|
-
return;
|
|
123
|
+
return;
|
|
138
124
|
}
|
|
139
125
|
if (context.inBraceBody && isRetiredClauseCall(call)) {
|
|
140
126
|
const renamed = RETIRED_CLAUSE_RENAMES[call.type];
|
|
141
127
|
pushIssue(state, 'AQL_LEGACY_SPELLING', `${call.type}() has been renamed ${renamed}() — same meaning: one shared history across all rows`, call, { quickFix: { label: `Rename to ${renamed}()`, replacement: `${renamed}()`, range: call.range } });
|
|
142
128
|
return;
|
|
143
129
|
}
|
|
144
|
-
// Named operands in a brace body parse as FUNCTION (`COUNT(3)`, `MIN()`,
|
|
145
|
-
// `CUMULATIVE([d])`) — they are not leftover paren aggregations.
|
|
146
130
|
if (context.inBraceBody && isNamedOperandCall(call)) {
|
|
147
131
|
return;
|
|
148
132
|
}
|
|
149
|
-
// Rail 1 — aggregation-only name with parens.
|
|
150
133
|
if (state.aggregationOnlyNames.has(call.type)) {
|
|
151
134
|
pushIssue(state, 'AQL_AGG_PAREN_CALL', `${call.type} aggregates a column — use ${call.type}{…}, or expressionApi.migratePreV24Expression`, call, { quickFix: braceQuickFix(state, call) });
|
|
152
135
|
return;
|
|
153
136
|
}
|
|
154
|
-
// Dual name with an operand-tag argument is a leftover paren aggregation
|
|
155
|
-
// (`SUM([p], GROUP_BY([m]))`) — not the row-wise scalar.
|
|
156
137
|
if (state.dualNames.has(call.type) &&
|
|
157
138
|
call.args.some((arg) => isAST_Function(arg) && OPERAND_CLAUSE_NAMES.has(arg.type))) {
|
|
158
139
|
pushIssue(state, 'AQL_AGG_PAREN_CALL', `${call.type} aggregates a column — use ${call.type}{…}, or expressionApi.migratePreV24Expression`, call, { quickFix: braceQuickFix(state, call) });
|
|
159
140
|
return;
|
|
160
141
|
}
|
|
161
|
-
// Rail 2 — dual name with ONE scalar-typed paren argument. One-arg calls
|
|
162
|
-
// over array-typed values stay legal (array flattening).
|
|
163
142
|
if (state.dualNames.has(call.type) && call.args.length === 1) {
|
|
164
143
|
const arg = call.args[0];
|
|
165
144
|
const argIsArrayLike = Array.isArray(arg) ||
|
|
@@ -172,15 +151,11 @@ const checkRawSpellingRails = (state, call, context) => {
|
|
|
172
151
|
}
|
|
173
152
|
};
|
|
174
153
|
const checkRawCallBodyRails = (state, call) => {
|
|
175
|
-
// Rails 4 (duplicate authored filter) and 5 (missing-comma quirk) look at
|
|
176
|
-
// authored filter positions, which the normalizer would silently repair
|
|
177
|
-
// (AND-merge) — validation still tells the author to clean the text up.
|
|
178
154
|
let filterPositions = 0;
|
|
179
155
|
for (const arg of call.args) {
|
|
180
156
|
if (isAST_Function(arg) && kindOf(arg) === 'INFIX' && arg.type === 'WHERE') {
|
|
181
157
|
filterPositions += 1;
|
|
182
158
|
const lhs = arg.args[0];
|
|
183
|
-
// `ANY_COL(…)` is the subject, so `ANY_COL() WHERE p` is an inline filter
|
|
184
159
|
if (isAST_Function(lhs) &&
|
|
185
160
|
lhs.type !== 'ANY_COL' &&
|
|
186
161
|
(OPERAND_CLAUSE_NAMES.has(lhs.type) || kindOf(lhs) === 'CLAUSE')) {
|
|
@@ -212,9 +187,6 @@ const walkRaw = (state, expression, context) => {
|
|
|
212
187
|
return;
|
|
213
188
|
}
|
|
214
189
|
const kind = kindOf(expression);
|
|
215
|
-
// Legacy observable sources: one error per call (either spelling), with
|
|
216
|
-
// the observable rewrite as quick-fix. A root `… WHERE p` over the call is
|
|
217
|
-
// fixed as a whole so the filter lands inside the observable call.
|
|
218
190
|
if (context.isRoot &&
|
|
219
191
|
kind === 'INFIX' &&
|
|
220
192
|
expression.type === 'WHERE' &&
|
|
@@ -245,26 +217,18 @@ const walkRaw = (state, expression, context) => {
|
|
|
245
217
|
walkRaw(state, expression.args, childContext);
|
|
246
218
|
};
|
|
247
219
|
const isNamedOperandCall = (call) => OPERAND_CLAUSE_NAMES.has(call.type);
|
|
248
|
-
/** A retired clause spelling left in a brace body (`GRID()`); reported on the raw tree. */
|
|
249
220
|
const isRetiredClauseCall = (value) => isAST_Function(value) &&
|
|
250
221
|
RETIRED_CLAUSE_RENAMES[value.type] !== undefined &&
|
|
251
222
|
value.args.length === 0 &&
|
|
252
223
|
kindOf(value) === 'FUNCTION';
|
|
253
|
-
// ---------------------------------------------------------------------------
|
|
254
|
-
// Normalized-tree rails (structure, clauses, operand types)
|
|
255
|
-
// ---------------------------------------------------------------------------
|
|
256
224
|
const resolveCallSpec = (state, call, callKind) => {
|
|
257
225
|
if (callKind === 'OBSERVABLE_CALL') {
|
|
258
226
|
return (getObservableCallSpec(call.type) ??
|
|
259
227
|
(state.customObservableNames.has(call.type) ? CUSTOM_OBSERVABLE_FALLBACK_SPEC : undefined));
|
|
260
228
|
}
|
|
261
229
|
return (state.catalogue.getBraceCallSpec(call.type) ??
|
|
262
|
-
// A host-known name with no operator in the catalogue: accept the
|
|
263
|
-
// baseline shape (input + GROUP_BY / WHERE) so the rest of the
|
|
264
|
-
// expression still validates.
|
|
265
230
|
(state.customAggregatedNames.has(call.type) ? BASELINE_CUSTOM_AGGREGATION_SPEC : undefined));
|
|
266
231
|
};
|
|
267
|
-
/** Bracket-aware unknown-name diagnostics for brace calls. */
|
|
268
232
|
const reportUnknownBraceCall = (state, call) => {
|
|
269
233
|
const scalarHomonym = state.scalarFunctions?.[call.type];
|
|
270
234
|
pushIssue(state, 'AQL_UNKNOWN_BRACE_CALL', scalarHomonym
|
|
@@ -272,10 +236,6 @@ const reportUnknownBraceCall = (state, call) => {
|
|
|
272
236
|
: `${call.type}{…} is not a known aggregation or live function`, call);
|
|
273
237
|
};
|
|
274
238
|
const isPositiveIntLiteral = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 1;
|
|
275
|
-
/**
|
|
276
|
-
* WITHIN may be omitted when the call allows a cumulative (since-load) window
|
|
277
|
-
* and the WITHIN clause is not marked required on the callable spec.
|
|
278
|
-
*/
|
|
279
239
|
const isWithinClauseOptional = (call, state) => {
|
|
280
240
|
const spec = getObservableCallSpec(call.type) ??
|
|
281
241
|
(state.customObservableNames.has(call.type) ? CUSTOM_OBSERVABLE_FALLBACK_SPEC : undefined);
|
|
@@ -292,7 +252,6 @@ const isWithinClauseOptional = (call, state) => {
|
|
|
292
252
|
return spec.windows.includes('cumulative');
|
|
293
253
|
};
|
|
294
254
|
const SORT_DIRECTION_HINT = SORT_DIRECTION_LITERALS.map((literal) => `'${literal}'`).join(' or ');
|
|
295
|
-
/** `OVER([col], 'DESC')` / `CUMULATIVE([col], 'DESC')`: at most one direction literal. */
|
|
296
255
|
const checkSortDirectionArgs = (state, clause, extraArgs) => {
|
|
297
256
|
const [direction, ...rest] = extraArgs;
|
|
298
257
|
if (direction === undefined) {
|
|
@@ -306,10 +265,6 @@ const checkSortDirectionArgs = (state, clause, extraArgs) => {
|
|
|
306
265
|
pushIssue(state, 'AQL_CLAUSE_OPERAND_TYPE', `${clause.type} takes a column and an optional direction — remove ${printExpression(rest[0])}`, clause);
|
|
307
266
|
}
|
|
308
267
|
};
|
|
309
|
-
/**
|
|
310
|
-
* Self-sorting windows (`QUANT{[v], 4, 'DESC'}`, `QUARTILE{[v], 'DESC'}`):
|
|
311
|
-
* any text item after the input must be a single direction literal.
|
|
312
|
-
*/
|
|
313
268
|
const checkSelfSortDirection = (state, call) => {
|
|
314
269
|
const [, ...paramItems] = call.args.filter((arg) => !isClauseNode(arg));
|
|
315
270
|
let directionCount = 0;
|
|
@@ -330,7 +285,6 @@ const checkSelfSortDirection = (state, call) => {
|
|
|
330
285
|
const checkClauseOperand = (state, call, clause) => {
|
|
331
286
|
const operandKind = CLAUSE_OPERAND_KINDS[clause.type];
|
|
332
287
|
const rawOperand = clause.args[0];
|
|
333
|
-
// Flatten leftover `CUMULATIVE(OVER([d]))` from pre-amendment ASTs.
|
|
334
288
|
const orderArgs = clause.type === 'CUMULATIVE' && isAST_Function(rawOperand) && rawOperand.type === 'OVER'
|
|
335
289
|
? rawOperand.args
|
|
336
290
|
: clause.args;
|
|
@@ -366,7 +320,6 @@ const checkClauseOperand = (state, call, clause) => {
|
|
|
366
320
|
pushIssue(state, 'AQL_CLAUSE_OPERAND_TYPE', `${clause.type} expects a duration literal like 250ms, 20s, 5m, 1h or 3d`, clause);
|
|
367
321
|
return;
|
|
368
322
|
}
|
|
369
|
-
// Rail 9 — max-window clamp.
|
|
370
323
|
const ms = operand.args[0];
|
|
371
324
|
if (typeof ms === 'number' && ms > state.maxWithinMs) {
|
|
372
325
|
pushIssue(state, 'AQL_WITHIN_EXCEEDS_MAX', `WITHIN(${formatDurationMs(ms)}) exceeds the maximum window of ${formatDurationMs(state.maxWithinMs)}`, clause);
|
|
@@ -414,10 +367,6 @@ const checkClauseOperand = (state, call, clause) => {
|
|
|
414
367
|
return;
|
|
415
368
|
}
|
|
416
369
|
};
|
|
417
|
-
/**
|
|
418
|
-
* Observable-specific rails, run after the generic clause loop (which already
|
|
419
|
-
* handled duplicates, disallowed clauses and operand shapes).
|
|
420
|
-
*/
|
|
421
370
|
const checkObservableCall = (state, call, spec, seen) => {
|
|
422
371
|
const callDisplay = `${call.type}{…}`;
|
|
423
372
|
if (seen.has('WITHIN') && seen.has('LAST_N')) {
|
|
@@ -455,7 +404,6 @@ const checkObservableCall = (state, call, spec, seen) => {
|
|
|
455
404
|
pushIssue(state, 'AQL_OBSERVABLE_NUMERIC_INPUT', `${call.type} needs a ${spec.inputTypes.join(' or ')} column — [${input.args[0]}] is ${columnType}`, call);
|
|
456
405
|
}
|
|
457
406
|
}
|
|
458
|
-
// Extra positional params (`PREVIOUS{[c], n}`).
|
|
459
407
|
const params = spec.positional ?? [];
|
|
460
408
|
for (let index = 1; index < positional.length; index += 1) {
|
|
461
409
|
const param = params[index - 1];
|
|
@@ -486,22 +434,18 @@ const checkCallClauses = (state, call, callKind, spec) => {
|
|
|
486
434
|
const seen = new Set();
|
|
487
435
|
const callDisplay = `${call.type}{…}`;
|
|
488
436
|
for (const clause of clauses) {
|
|
489
|
-
// Rail 4 — duplicate clause per call (duplicate filters are caught on the
|
|
490
|
-
// authored text; the normalizer AND-merges them).
|
|
491
437
|
if (seen.has(clause.type)) {
|
|
492
438
|
pushIssue(state, 'AQL_DUPLICATE_CLAUSE', `${callDisplay} has more than one ${clause.type} clause`, clause);
|
|
493
439
|
continue;
|
|
494
440
|
}
|
|
495
441
|
seen.add(clause.type);
|
|
496
442
|
if (!allowed.has(clause.type)) {
|
|
497
|
-
// Rail 11 — cumulation capability.
|
|
498
443
|
if (clause.type === 'CUMULATIVE' && callKind === 'AGG_CALL') {
|
|
499
444
|
pushIssue(state, 'AQL_CUMULATIVE_UNSUPPORTED', `${call.type} does not support CUMULATIVE (supported: ${state.catalogue
|
|
500
445
|
.cumulativeNames()
|
|
501
446
|
.join(', ')})`, clause);
|
|
502
447
|
continue;
|
|
503
448
|
}
|
|
504
|
-
// Rail 10 — clause/context mismatch.
|
|
505
449
|
let message = `${callDisplay} does not accept a ${clause.type} clause`;
|
|
506
450
|
if (callKind === 'AGG_CALL' && OBSERVABLE_CLAUSES.has(clause.type)) {
|
|
507
451
|
message =
|
|
@@ -544,12 +488,9 @@ const checkCallClauses = (state, call, callKind, spec) => {
|
|
|
544
488
|
}
|
|
545
489
|
}
|
|
546
490
|
if (callKind === 'OBSERVABLE_CALL') {
|
|
547
|
-
// Observable input rails replace rail 8 (they carry column-specific text).
|
|
548
491
|
checkObservableCall(state, call, spec, seen);
|
|
549
492
|
return;
|
|
550
493
|
}
|
|
551
|
-
// Rail 8 — every aggregation needs an input (RANK is the
|
|
552
|
-
// metadata-declared exception).
|
|
553
494
|
const positionalItems = call.args.filter((arg) => !isClauseNode(arg));
|
|
554
495
|
if (spec.requiresInput && positionalItems.length === 0) {
|
|
555
496
|
pushIssue(state, 'AQL_MISSING_INPUT', `${call.type}{} needs an input expression`, call);
|
|
@@ -577,12 +518,9 @@ const walkNormalized = (state, expression, context) => {
|
|
|
577
518
|
const kind = kindOf(expression);
|
|
578
519
|
const childContext = { ...context, isRoot: false };
|
|
579
520
|
if (LEGACY_OBSERVABLE_SOURCE_NAMES.has(expression.type) && kind !== 'CLAUSE') {
|
|
580
|
-
// Already reported as AQL_LEGACY_SPELLING on the authored tree; the
|
|
581
|
-
// brace body would only produce follow-on noise.
|
|
582
521
|
return;
|
|
583
522
|
}
|
|
584
523
|
if (kind === 'AGG_CALL') {
|
|
585
|
-
// Rail 3 — aggregation braces do not nest.
|
|
586
524
|
if (context.insideAggCall) {
|
|
587
525
|
pushIssue(state, 'AQL_NESTED_AGG', `${context.insideAggCall}{…} cannot contain ${expression.type}{…} — compose aggregations with scalar math outside the braces`, expression);
|
|
588
526
|
}
|
|
@@ -612,8 +550,6 @@ const walkNormalized = (state, expression, context) => {
|
|
|
612
550
|
childContext.insideObservableCall = expression.type;
|
|
613
551
|
}
|
|
614
552
|
else if (kind === 'FUNCTION') {
|
|
615
|
-
// Bracket-aware unknown paren name. Sugar / leftover operand tags are
|
|
616
|
-
// never "unknown functions"; leftover aggregations are separate rails.
|
|
617
553
|
if (state.scalarFunctions &&
|
|
618
554
|
!state.scalarFunctions[expression.type] &&
|
|
619
555
|
!NON_POOL_FUNCTION_NAMES.has(expression.type) &&
|
|
@@ -634,9 +570,6 @@ const walkNormalized = (state, expression, context) => {
|
|
|
634
570
|
}
|
|
635
571
|
walkNormalized(state, expression.args, childContext);
|
|
636
572
|
};
|
|
637
|
-
// ---------------------------------------------------------------------------
|
|
638
|
-
// Host request checks (structural kind, return type, capabilities)
|
|
639
|
-
// ---------------------------------------------------------------------------
|
|
640
573
|
const checkRequest = (state, request, classification, normalizedAst) => {
|
|
641
574
|
const root = getRootExpression(normalizedAst);
|
|
642
575
|
const rootFn = isAST_Function(root) ? root : undefined;
|
|
@@ -659,9 +592,6 @@ const checkRequest = (state, request, classification, normalizedAst) => {
|
|
|
659
592
|
}
|
|
660
593
|
}
|
|
661
594
|
};
|
|
662
|
-
// ---------------------------------------------------------------------------
|
|
663
|
-
// Entry point
|
|
664
|
-
// ---------------------------------------------------------------------------
|
|
665
595
|
export const validateAqlExpression = (ast, options = {}) => {
|
|
666
596
|
const catalogue = options.catalogue ?? SYSTEM_AGGREGATION_CATALOGUE;
|
|
667
597
|
const customAggregatedNames = new Set([
|
|
@@ -670,8 +600,6 @@ export const validateAqlExpression = (ast, options = {}) => {
|
|
|
670
600
|
]);
|
|
671
601
|
const customObservableNames = new Set(options.customObservableNames ?? []);
|
|
672
602
|
const scalarNameSet = new Set(Object.keys(options.scalarFunctions ?? {}));
|
|
673
|
-
// A name in both the scalar pool and a custom aggregation pool is a dual
|
|
674
|
-
// name (paren = row-wise, brace = agg).
|
|
675
603
|
const dynamicDualNames = [...customAggregatedNames].filter((name) => scalarNameSet.has(name));
|
|
676
604
|
const dualNames = dynamicDualNames.length > 0
|
|
677
605
|
? new Set([...DUAL_AGGREGATION_NAMES, ...dynamicDualNames])
|
|
@@ -699,13 +627,10 @@ export const validateAqlExpression = (ast, options = {}) => {
|
|
|
699
627
|
getColumnType: options.getColumnType,
|
|
700
628
|
normalizeOptions,
|
|
701
629
|
};
|
|
702
|
-
// Phase A — authored-spelling rails on the raw tree.
|
|
703
630
|
ast.forEach((statement, index) => {
|
|
704
631
|
walkRaw(state, statement, { isRoot: index === ast.length - 1 });
|
|
705
632
|
});
|
|
706
|
-
// Phase B — normalize onto the contract-v3 shape.
|
|
707
633
|
const normalizedAst = normalizeAst(ast, normalizeOptions);
|
|
708
|
-
// Phase C — structural classification + host request.
|
|
709
634
|
const classification = classifyExpression(normalizedAst, {
|
|
710
635
|
scalarFunctions: options.scalarFunctions,
|
|
711
636
|
});
|
|
@@ -713,11 +638,9 @@ export const validateAqlExpression = (ast, options = {}) => {
|
|
|
713
638
|
if (request) {
|
|
714
639
|
checkRequest(state, request, classification, normalizedAst);
|
|
715
640
|
}
|
|
716
|
-
// Phase D — structure / clause / operand rails on the normalized tree.
|
|
717
641
|
normalizedAst.forEach((statement, index) => {
|
|
718
642
|
walkNormalized(state, statement, { isRoot: index === normalizedAst.length - 1 });
|
|
719
643
|
});
|
|
720
|
-
// Phase E — scalar type walk (brace-aware).
|
|
721
644
|
if (options.scalarFunctions) {
|
|
722
645
|
const typeCheck = validateExpressionTypes(normalizedAst, options.scalarFunctions, {
|
|
723
646
|
getColumnType: options.getColumnType,
|
|
@@ -730,8 +653,6 @@ export const validateAqlExpression = (ast, options = {}) => {
|
|
|
730
653
|
severity: issue.severity,
|
|
731
654
|
range: issue.range,
|
|
732
655
|
functionName: issue.functionName,
|
|
733
|
-
// Literal-level fixes carry no range (literals have no source span);
|
|
734
|
-
// the editor applies them by text.
|
|
735
656
|
quickFix: issue.quickFix,
|
|
736
657
|
});
|
|
737
658
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateAqlExpression.js","sourceRoot":"","sources":["../../../src/validation/validateAqlExpression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validateAqlExpression.js","sourceRoot":"","sources":["../../../src/validation/validateAqlExpression.ts"],"names":[],"mappings":"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"}
|