@adaptabletools/adaptable 24.0.1 → 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.
Files changed (240) hide show
  1. package/package.json +1 -1
  2. package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -2
  3. package/src/Api/Internal/FormatColumnInternalApi.js +15 -7
  4. package/src/Utilities/Services/QueryLanguageService.js +1 -1
  5. package/src/agGrid/AdaptableAgGrid.js +22 -31
  6. package/src/env.js +2 -2
  7. package/tsconfig.esm.tsbuildinfo +1 -1
  8. package/vendor/aql/api/QueryLanguageApi.d.ts +2 -1
  9. package/vendor/aql/api/QueryLanguageApi.d.ts.map +1 -1
  10. package/vendor/aql/api/QueryLanguageApi.js +28 -108
  11. package/vendor/aql/api/QueryLanguageApi.js.map +1 -1
  12. package/vendor/aql/contract/index.js +0 -34
  13. package/vendor/aql/contract/index.js.map +1 -1
  14. package/vendor/aql/corpus/corpusExpressions.js +0 -13
  15. package/vendor/aql/corpus/corpusExpressions.js.map +1 -1
  16. package/vendor/aql/corpus/corpusFixture.js +0 -7
  17. package/vendor/aql/corpus/corpusFixture.js.map +1 -1
  18. package/vendor/aql/draft/index.js +0 -4
  19. package/vendor/aql/draft/index.js.map +1 -1
  20. package/vendor/aql/evaluate.js +0 -22
  21. package/vendor/aql/evaluate.js.map +1 -1
  22. package/vendor/aql/evaluator/ExpressionEvaluationError.js +0 -4
  23. package/vendor/aql/evaluator/ExpressionEvaluationError.js.map +1 -1
  24. package/vendor/aql/evaluator/ExpressionNaError.js +0 -4
  25. package/vendor/aql/evaluator/ExpressionNaError.js.map +1 -1
  26. package/vendor/aql/evaluator/evaluateNode.js +0 -23
  27. package/vendor/aql/evaluator/evaluateNode.js.map +1 -1
  28. package/vendor/aql/functions/dateUtils.js +0 -63
  29. package/vendor/aql/functions/dateUtils.js.map +1 -1
  30. package/vendor/aql/functions/numberUtils.js +0 -12
  31. package/vendor/aql/functions/numberUtils.js.map +1 -1
  32. package/vendor/aql/functions/operatorFunctions.js +0 -13
  33. package/vendor/aql/functions/operatorFunctions.js.map +1 -1
  34. package/vendor/aql/functions/scalar/functions/AND.js +0 -5
  35. package/vendor/aql/functions/scalar/functions/AND.js.map +1 -1
  36. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js +0 -4
  37. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js.map +1 -1
  38. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js +0 -4
  39. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js.map +1 -1
  40. package/vendor/aql/functions/scalar/functions/AVG.js +0 -1
  41. package/vendor/aql/functions/scalar/functions/AVG.js.map +1 -1
  42. package/vendor/aql/functions/scalar/functions/CASE.js +2 -2
  43. package/vendor/aql/functions/scalar/functions/CASE.js.map +1 -1
  44. package/vendor/aql/functions/scalar/functions/COL.js +0 -2
  45. package/vendor/aql/functions/scalar/functions/COL.js.map +1 -1
  46. package/vendor/aql/functions/scalar/functions/CONTAINS.js +0 -3
  47. package/vendor/aql/functions/scalar/functions/CONTAINS.js.map +1 -1
  48. package/vendor/aql/functions/scalar/functions/DATE.js +0 -2
  49. package/vendor/aql/functions/scalar/functions/DATE.js.map +1 -1
  50. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js +0 -1
  51. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js.map +1 -1
  52. package/vendor/aql/functions/scalar/functions/EQ.js +0 -5
  53. package/vendor/aql/functions/scalar/functions/EQ.js.map +1 -1
  54. package/vendor/aql/functions/scalar/functions/GT.js +0 -3
  55. package/vendor/aql/functions/scalar/functions/GT.js.map +1 -1
  56. package/vendor/aql/functions/scalar/functions/GTE.js +0 -3
  57. package/vendor/aql/functions/scalar/functions/GTE.js.map +1 -1
  58. package/vendor/aql/functions/scalar/functions/IF.js +0 -5
  59. package/vendor/aql/functions/scalar/functions/IF.js.map +1 -1
  60. package/vendor/aql/functions/scalar/functions/IFERROR.js +0 -4
  61. package/vendor/aql/functions/scalar/functions/IFERROR.js.map +1 -1
  62. package/vendor/aql/functions/scalar/functions/IFNA.js +0 -5
  63. package/vendor/aql/functions/scalar/functions/IFNA.js.map +1 -1
  64. package/vendor/aql/functions/scalar/functions/IN.d.ts.map +1 -1
  65. package/vendor/aql/functions/scalar/functions/IN.js +54 -11
  66. package/vendor/aql/functions/scalar/functions/IN.js.map +1 -1
  67. package/vendor/aql/functions/scalar/functions/IS_BLANK.js +0 -1
  68. package/vendor/aql/functions/scalar/functions/IS_BLANK.js.map +1 -1
  69. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js +0 -1
  70. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js.map +1 -1
  71. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js +0 -1
  72. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js.map +1 -1
  73. package/vendor/aql/functions/scalar/functions/LT.js +0 -3
  74. package/vendor/aql/functions/scalar/functions/LT.js.map +1 -1
  75. package/vendor/aql/functions/scalar/functions/LTE.js +0 -3
  76. package/vendor/aql/functions/scalar/functions/LTE.js.map +1 -1
  77. package/vendor/aql/functions/scalar/functions/NA.js +0 -3
  78. package/vendor/aql/functions/scalar/functions/NA.js.map +1 -1
  79. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js +0 -1
  80. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js.map +1 -1
  81. package/vendor/aql/functions/scalar/functions/NOT_IN.js +0 -3
  82. package/vendor/aql/functions/scalar/functions/NOT_IN.js.map +1 -1
  83. package/vendor/aql/functions/scalar/functions/OR.js +0 -4
  84. package/vendor/aql/functions/scalar/functions/OR.js.map +1 -1
  85. package/vendor/aql/functions/scalar/functions/PRODUCT.js +0 -6
  86. package/vendor/aql/functions/scalar/functions/PRODUCT.js.map +1 -1
  87. package/vendor/aql/functions/scalar/functions/QUERY.js +0 -1
  88. package/vendor/aql/functions/scalar/functions/QUERY.js.map +1 -1
  89. package/vendor/aql/functions/scalar/functions/REGEX.js +0 -1
  90. package/vendor/aql/functions/scalar/functions/REGEX.js.map +1 -1
  91. package/vendor/aql/functions/scalar/functions/SCOPE.js +0 -4
  92. package/vendor/aql/functions/scalar/functions/SCOPE.js.map +1 -1
  93. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js +0 -1
  94. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js.map +1 -1
  95. package/vendor/aql/functions/scalar/functions/SUB.js +0 -1
  96. package/vendor/aql/functions/scalar/functions/SUB.js.map +1 -1
  97. package/vendor/aql/functions/scalar/functions/SUM.js +0 -5
  98. package/vendor/aql/functions/scalar/functions/SUM.js.map +1 -1
  99. package/vendor/aql/functions/scalar/helpers.js +0 -3
  100. package/vendor/aql/functions/scalar/helpers.js.map +1 -1
  101. package/vendor/aql/functions/shared/FIELD.js +0 -3
  102. package/vendor/aql/functions/shared/FIELD.js.map +1 -1
  103. package/vendor/aql/functions/shared/VAR.js +0 -4
  104. package/vendor/aql/functions/shared/VAR.js.map +1 -1
  105. package/vendor/aql/functions/shared/index.js +0 -9
  106. package/vendor/aql/functions/shared/index.js.map +1 -1
  107. package/vendor/aql/functions/stringUtils.js +0 -25
  108. package/vendor/aql/functions/stringUtils.js.map +1 -1
  109. package/vendor/aql/functions/utils.js +0 -20
  110. package/vendor/aql/functions/utils.js.map +1 -1
  111. package/vendor/aql/host/access.js +0 -2
  112. package/vendor/aql/host/access.js.map +1 -1
  113. package/vendor/aql/host/createHostExpressionContext.js +0 -25
  114. package/vendor/aql/host/createHostExpressionContext.js.map +1 -1
  115. package/vendor/aql/host/createObjectDataHost.js +0 -9
  116. package/vendor/aql/host/createObjectDataHost.js.map +1 -1
  117. package/vendor/aql/index.js +0 -2
  118. package/vendor/aql/index.js.map +1 -1
  119. package/vendor/aql/normalize/canonicalize.js +0 -7
  120. package/vendor/aql/normalize/canonicalize.js.map +1 -1
  121. package/vendor/aql/normalize/migrateExpression.js +0 -8
  122. package/vendor/aql/normalize/migrateExpression.js.map +1 -1
  123. package/vendor/aql/normalize/names.js +0 -72
  124. package/vendor/aql/normalize/names.js.map +1 -1
  125. package/vendor/aql/normalize/normalizeAst.js +0 -102
  126. package/vendor/aql/normalize/normalizeAst.js.map +1 -1
  127. package/vendor/aql/normalize/print.js +0 -35
  128. package/vendor/aql/normalize/print.js.map +1 -1
  129. package/vendor/aql/operator/primitiveSlots.js +0 -4
  130. package/vendor/aql/operator/primitiveSlots.js.map +1 -1
  131. package/vendor/aql/operator/resolve.js +0 -18
  132. package/vendor/aql/operator/resolve.js.map +1 -1
  133. package/vendor/aql/parser/parser.js +4 -125
  134. package/vendor/aql/parser/parser.js.map +1 -1
  135. package/vendor/aql/plan/catalogue.js +0 -35
  136. package/vendor/aql/plan/catalogue.js.map +1 -1
  137. package/vendor/aql/plan/compile.js +0 -68
  138. package/vendor/aql/plan/compile.js.map +1 -1
  139. package/vendor/aql/plan/deepMap.js +0 -16
  140. package/vendor/aql/plan/deepMap.js.map +1 -1
  141. package/vendor/aql/plan/execute.js +0 -91
  142. package/vendor/aql/plan/execute.js.map +1 -1
  143. package/vendor/aql/plan/magnitudeLiteral.js +0 -29
  144. package/vendor/aql/plan/magnitudeLiteral.js.map +1 -1
  145. package/vendor/aql/plan/observable.js +0 -31
  146. package/vendor/aql/plan/observable.js.map +1 -1
  147. package/vendor/aql/plan/observableFixture.js +0 -3
  148. package/vendor/aql/plan/observableFixture.js.map +1 -1
  149. package/vendor/aql/plan/operators.js +0 -35
  150. package/vendor/aql/plan/operators.js.map +1 -1
  151. package/vendor/aql/plan/outer.js +0 -16
  152. package/vendor/aql/plan/outer.js.map +1 -1
  153. package/vendor/aql/predicate/mapExpressionToQlPredicate.js +1 -46
  154. package/vendor/aql/predicate/mapExpressionToQlPredicate.js.map +1 -1
  155. package/vendor/aql/predicate/mapQlPredicateToExpression.js +0 -13
  156. package/vendor/aql/predicate/mapQlPredicateToExpression.js.map +1 -1
  157. package/vendor/aql/store/computedValueStore.js +0 -35
  158. package/vendor/aql/store/computedValueStore.js.map +1 -1
  159. package/vendor/aql/store/history/clock.js +0 -1
  160. package/vendor/aql/store/history/clock.js.map +1 -1
  161. package/vendor/aql/store/history/historyStore.js +0 -14
  162. package/vendor/aql/store/history/historyStore.js.map +1 -1
  163. package/vendor/aql/store/history/monotonicDeque.js +0 -9
  164. package/vendor/aql/store/history/monotonicDeque.js.map +1 -1
  165. package/vendor/aql/store/history/operators.js +0 -13
  166. package/vendor/aql/store/history/operators.js.map +1 -1
  167. package/vendor/aql/store/history/ringBuffer.js +0 -12
  168. package/vendor/aql/store/history/ringBuffer.js.map +1 -1
  169. package/vendor/aql/store/history/rowSeries.js +0 -17
  170. package/vendor/aql/store/history/rowSeries.js.map +1 -1
  171. package/vendor/aql/store/history/types.js +0 -18
  172. package/vendor/aql/store/history/types.js.map +1 -1
  173. package/vendor/aql/tokenizer/tokenizer.js +0 -3
  174. package/vendor/aql/tokenizer/tokenizer.js.map +1 -1
  175. package/vendor/aql/types.js +0 -27
  176. package/vendor/aql/types.js.map +1 -1
  177. package/vendor/aql/utils/astUtils.js +0 -1
  178. package/vendor/aql/utils/astUtils.js.map +1 -1
  179. package/vendor/aql/utils/dependencyCycle.js +0 -5
  180. package/vendor/aql/utils/dependencyCycle.js.map +1 -1
  181. package/vendor/aql/validation/classifyExpression.js +0 -4
  182. package/vendor/aql/validation/classifyExpression.js.map +1 -1
  183. package/vendor/aql/validation/functionMetadata.js +0 -31
  184. package/vendor/aql/validation/functionMetadata.js.map +1 -1
  185. package/vendor/aql/validation/validateAqlExpression.js +2 -81
  186. package/vendor/aql/validation/validateAqlExpression.js.map +1 -1
  187. package/vendor/aql/validation/validateExpressionTypes.js +0 -64
  188. package/vendor/aql/validation/validateExpressionTypes.js.map +1 -1
  189. package/vendor/components/Button/index.js +0 -6
  190. package/vendor/components/Button/index.js.map +1 -1
  191. package/vendor/components/ColorField/index.js +0 -18
  192. package/vendor/components/ColorField/index.js.map +1 -1
  193. package/vendor/components/ColorPicker/colorPickerTab.js +0 -6
  194. package/vendor/components/ColorPicker/colorPickerTab.js.map +1 -1
  195. package/vendor/components/ColorPicker/index.js +1 -66
  196. package/vendor/components/ColorPicker/index.js.map +1 -1
  197. package/vendor/components/ColorPicker/themeColors.js +0 -55
  198. package/vendor/components/ColorPicker/themeColors.js.map +1 -1
  199. package/vendor/components/Combobox/VirtualizedList.js +0 -5
  200. package/vendor/components/Combobox/VirtualizedList.js.map +1 -1
  201. package/vendor/components/Combobox/comboboxUtils.js +0 -5
  202. package/vendor/components/Combobox/comboboxUtils.js.map +1 -1
  203. package/vendor/components/Combobox/index.js +7 -106
  204. package/vendor/components/Combobox/index.js.map +1 -1
  205. package/vendor/components/Combobox/useScrollNearEnd.js +0 -6
  206. package/vendor/components/Combobox/useScrollNearEnd.js.map +1 -1
  207. package/vendor/components/DropdownButton/index.js +0 -5
  208. package/vendor/components/DropdownButton/index.js.map +1 -1
  209. package/vendor/components/NumberInput/index.js +0 -10
  210. package/vendor/components/NumberInput/index.js.map +1 -1
  211. package/vendor/components/Resizable/index.js +3 -26
  212. package/vendor/components/Resizable/index.js.map +1 -1
  213. package/vendor/components/Resizable/resizableUtils.js +0 -24
  214. package/vendor/components/Resizable/resizableUtils.js.map +1 -1
  215. package/vendor/components/SearchInput/index.js +0 -5
  216. package/vendor/components/SearchInput/index.js.map +1 -1
  217. package/vendor/components/Tree/TreeDropdown/index.js +3 -139
  218. package/vendor/components/Tree/TreeDropdown/index.js.map +1 -1
  219. package/vendor/components/Tree/treeUtils.js +0 -4
  220. package/vendor/components/Tree/treeUtils.js.map +1 -1
  221. package/vendor/components/index.js +0 -5
  222. package/vendor/components/index.js.map +1 -1
  223. package/vendor/components/lib/useProperty.js +0 -18
  224. package/vendor/components/lib/useProperty.js.map +1 -1
  225. package/vendor/components/twMerge.js +0 -2
  226. package/vendor/components/twMerge.js.map +1 -1
  227. package/vendor/components/twUtils.js +3 -12
  228. package/vendor/components/twUtils.js.map +1 -1
  229. package/vendor/components/ui/alert-dialog.js +0 -4
  230. package/vendor/components/ui/alert-dialog.js.map +1 -1
  231. package/vendor/components/ui/calendar.js +1 -9
  232. package/vendor/components/ui/calendar.js.map +1 -1
  233. package/vendor/components/ui/combobox.js +2 -38
  234. package/vendor/components/ui/combobox.js.map +1 -1
  235. package/vendor/components/ui/dialog.js +0 -4
  236. package/vendor/components/ui/dialog.js.map +1 -1
  237. package/vendor/components/ui/input-group.js +3 -12
  238. package/vendor/components/ui/input-group.js.map +1 -1
  239. package/vendor/components/ui/tabs.js +0 -3
  240. 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; // pattern markers inside a retired source (already flagged with a quick-fix)
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; // reported by the legacy-observable pass (walkRaw)
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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"}