drizzle-cube 0.1.21 → 0.1.24

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 (53) hide show
  1. package/dist/adapters/{compiler-CPsEzFP2.js → compiler-CSr2Ti96.js} +553 -505
  2. package/dist/adapters/express/index.js +1 -1
  3. package/dist/adapters/fastify/index.js +1 -1
  4. package/dist/adapters/hono/index.js +1 -1
  5. package/dist/adapters/nextjs/index.js +50 -50
  6. package/dist/client/charts/chartConfigs.d.ts +31 -1
  7. package/dist/client/charts.d.ts +1 -0
  8. package/dist/client/charts.js +1 -1
  9. package/dist/client/chunks/charts-Dx3asDBi.js +2269 -0
  10. package/dist/client/chunks/charts-Dx3asDBi.js.map +1 -0
  11. package/dist/client/chunks/{icons-B5RVM-7b.js → icons-BMGOKdZb.js} +279 -239
  12. package/dist/client/chunks/icons-BMGOKdZb.js.map +1 -0
  13. package/dist/client/chunks/{providers-DI5zeeEU.js → providers-B7MVnAAt.js} +50 -50
  14. package/dist/client/chunks/providers-B7MVnAAt.js.map +1 -0
  15. package/dist/client/components/ChartConfigPanel.d.ts +3 -2
  16. package/dist/client/components/ColorPaletteSelector.d.ts +11 -0
  17. package/dist/client/components/DashboardGrid.d.ts +3 -1
  18. package/dist/client/components/DataHistogram.d.ts +23 -0
  19. package/dist/client/components/PortletEditModal.d.ts +3 -2
  20. package/dist/client/components/charts/ActivityGridChart.config.d.ts +5 -0
  21. package/dist/client/components/charts/ActivityGridChart.d.ts +2 -0
  22. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  23. package/dist/client/components/charts/BarChart.d.ts +1 -1
  24. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  25. package/dist/client/components/charts/KpiNumber.config.d.ts +5 -0
  26. package/dist/client/components/charts/KpiNumber.d.ts +2 -0
  27. package/dist/client/components/charts/KpiText.config.d.ts +5 -0
  28. package/dist/client/components/charts/KpiText.d.ts +2 -0
  29. package/dist/client/components/charts/LineChart.d.ts +1 -1
  30. package/dist/client/components/charts/PieChart.d.ts +1 -1
  31. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  32. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  33. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  34. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  35. package/dist/client/components/charts/index.d.ts +3 -0
  36. package/dist/client/components.js +5134 -2607
  37. package/dist/client/components.js.map +1 -1
  38. package/dist/client/hooks/useCubeMeta.d.ts +1 -0
  39. package/dist/client/hooks.js +62 -60
  40. package/dist/client/hooks.js.map +1 -1
  41. package/dist/client/index.d.ts +1 -0
  42. package/dist/client/index.js +2 -2
  43. package/dist/client/providers.js +1 -1
  44. package/dist/client/types.d.ts +17 -5
  45. package/dist/client/utils/colorPalettes.d.ts +35 -0
  46. package/dist/client-bundle-stats.html +1 -1
  47. package/dist/server/index.d.ts +3 -8
  48. package/dist/server/index.js +748 -700
  49. package/package.json +22 -1
  50. package/dist/client/chunks/charts-BadAUMmd.js +0 -2285
  51. package/dist/client/chunks/charts-BadAUMmd.js.map +0 -1
  52. package/dist/client/chunks/icons-B5RVM-7b.js.map +0 -1
  53. package/dist/client/chunks/providers-DI5zeeEU.js.map +0 -1
@@ -1,8 +1,8 @@
1
- var XT = Object.defineProperty;
2
- var bT = (T, E, R) => E in T ? XT(T, E, { enumerable: !0, configurable: !0, writable: !0, value: R }) : T[E] = R;
3
- var f = (T, E, R) => bT(T, typeof E != "symbol" ? E + "" : E, R);
4
- import { sql as r, count as SE, sum as y, max as uE, min as FE, and as d, countDistinct as KT, SQL as yT, or as $T, gt as fE, lt as WE, gte as Q, lte as Z, isNull as gT, isNotNull as JT, notInArray as xT, ne as wT, inArray as XE, eq as mE, desc as vT, asc as bE } from "drizzle-orm";
5
- class pE {
1
+ var gT = Object.defineProperty;
2
+ var JT = (T, E, R) => E in T ? gT(T, E, { enumerable: !0, configurable: !0, writable: !0, value: R }) : T[E] = R;
3
+ var W = (T, E, R) => JT(T, typeof E != "symbol" ? E + "" : E, R);
4
+ import { sql as _, count as IE, sum as y, max as dE, min as VE, and as d, countDistinct as wT, SQL as xT, or as OE, isNotNull as KE, ne as yE, isNull as $E, eq as EE, notInArray as gE, inArray as NE, lt as eE, gt as CE, gte as J, lte as w, desc as vT, asc as JE } from "drizzle-orm";
5
+ class WE {
6
6
  /**
7
7
  * Helper method to build pattern for string matching
8
8
  * Can be overridden by specific adapters if needed
@@ -21,7 +21,7 @@ class pE {
21
21
  }
22
22
  }
23
23
  }
24
- class QT extends pE {
24
+ class QT extends WE {
25
25
  getEngineType() {
26
26
  return "postgres";
27
27
  }
@@ -32,21 +32,21 @@ class QT extends pE {
32
32
  buildTimeDimension(E, R) {
33
33
  switch (E) {
34
34
  case "year":
35
- return r`DATE_TRUNC('year', ${R}::timestamp)`;
35
+ return _`DATE_TRUNC('year', ${R}::timestamp)`;
36
36
  case "quarter":
37
- return r`DATE_TRUNC('quarter', ${R}::timestamp)`;
37
+ return _`DATE_TRUNC('quarter', ${R}::timestamp)`;
38
38
  case "month":
39
- return r`DATE_TRUNC('month', ${R}::timestamp)`;
39
+ return _`DATE_TRUNC('month', ${R}::timestamp)`;
40
40
  case "week":
41
- return r`DATE_TRUNC('week', ${R}::timestamp)`;
41
+ return _`DATE_TRUNC('week', ${R}::timestamp)`;
42
42
  case "day":
43
- return r`DATE_TRUNC('day', ${R}::timestamp)::timestamp`;
43
+ return _`DATE_TRUNC('day', ${R}::timestamp)::timestamp`;
44
44
  case "hour":
45
- return r`DATE_TRUNC('hour', ${R}::timestamp)`;
45
+ return _`DATE_TRUNC('hour', ${R}::timestamp)`;
46
46
  case "minute":
47
- return r`DATE_TRUNC('minute', ${R}::timestamp)`;
47
+ return _`DATE_TRUNC('minute', ${R}::timestamp)`;
48
48
  case "second":
49
- return r`DATE_TRUNC('second', ${R}::timestamp)`;
49
+ return _`DATE_TRUNC('second', ${R}::timestamp)`;
50
50
  default:
51
51
  return R;
52
52
  }
@@ -56,16 +56,25 @@ class QT extends pE {
56
56
  * Extracted from executor.ts:807-813 and multi-cube-builder.ts:468-474
57
57
  */
58
58
  buildStringCondition(E, R, A) {
59
- const S = this.buildPattern(R, A);
60
59
  switch (R) {
61
60
  case "contains":
62
- return r`${E} ILIKE ${S}`;
61
+ return _`${E} ILIKE ${`%${A}%`}`;
63
62
  case "notContains":
64
- return r`${E} NOT ILIKE ${S}`;
63
+ return _`${E} NOT ILIKE ${`%${A}%`}`;
65
64
  case "startsWith":
66
- return r`${E} ILIKE ${S}`;
65
+ return _`${E} ILIKE ${`${A}%`}`;
67
66
  case "endsWith":
68
- return r`${E} ILIKE ${S}`;
67
+ return _`${E} ILIKE ${`%${A}`}`;
68
+ case "like":
69
+ return _`${E} LIKE ${A}`;
70
+ case "notLike":
71
+ return _`${E} NOT LIKE ${A}`;
72
+ case "ilike":
73
+ return _`${E} ILIKE ${A}`;
74
+ case "regex":
75
+ return _`${E} ~* ${A}`;
76
+ case "notRegex":
77
+ return _`${E} !~* ${A}`;
69
78
  default:
70
79
  throw new Error(`Unsupported string operator: ${R}`);
71
80
  }
@@ -77,11 +86,11 @@ class QT extends pE {
77
86
  castToType(E, R) {
78
87
  switch (R) {
79
88
  case "timestamp":
80
- return r`${E}::timestamp`;
89
+ return _`${E}::timestamp`;
81
90
  case "decimal":
82
- return r`${E}::decimal`;
91
+ return _`${E}::decimal`;
83
92
  case "integer":
84
- return r`${E}::integer`;
93
+ return _`${E}::integer`;
85
94
  default:
86
95
  throw new Error(`Unsupported cast type: ${R}`);
87
96
  }
@@ -92,21 +101,21 @@ class QT extends pE {
92
101
  * Extracted from multi-cube-builder.ts:284
93
102
  */
94
103
  buildAvg(E) {
95
- return r`COALESCE(AVG(${E}), 0)`;
104
+ return _`COALESCE(AVG(${E}), 0)`;
96
105
  }
97
106
  /**
98
107
  * Build PostgreSQL CASE WHEN conditional expression
99
108
  */
100
109
  buildCaseWhen(E, R) {
101
- const A = E.map((S) => r`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => r`${S} ${I}`);
102
- return R !== void 0 ? r`CASE ${A} ELSE ${R} END` : r`CASE ${A} END`;
110
+ const A = E.map((S) => _`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => _`${S} ${I}`);
111
+ return R !== void 0 ? _`CASE ${A} ELSE ${R} END` : _`CASE ${A} END`;
103
112
  }
104
113
  /**
105
114
  * Build PostgreSQL boolean literal
106
115
  * PostgreSQL uses TRUE/FALSE keywords
107
116
  */
108
117
  buildBooleanLiteral(E) {
109
- return E ? r`TRUE` : r`FALSE`;
118
+ return E ? _`TRUE` : _`FALSE`;
110
119
  }
111
120
  /**
112
121
  * Convert filter values - PostgreSQL uses native types
@@ -136,7 +145,7 @@ class QT extends pE {
136
145
  return E;
137
146
  }
138
147
  }
139
- class ZT extends pE {
148
+ class ZT extends WE {
140
149
  getEngineType() {
141
150
  return "mysql";
142
151
  }
@@ -159,12 +168,12 @@ class ZT extends pE {
159
168
  };
160
169
  switch (E) {
161
170
  case "quarter":
162
- return r`DATE_ADD(MAKEDATE(YEAR(${R}), 1), INTERVAL (QUARTER(${R}) - 1) * 3 MONTH)`;
171
+ return _`DATE_ADD(MAKEDATE(YEAR(${R}), 1), INTERVAL (QUARTER(${R}) - 1) * 3 MONTH)`;
163
172
  case "week":
164
- return r`DATE_SUB(${R}, INTERVAL WEEKDAY(${R}) DAY)`;
173
+ return _`DATE_SUB(${R}, INTERVAL WEEKDAY(${R}) DAY)`;
165
174
  default:
166
175
  const S = A[E];
167
- return S ? r`STR_TO_DATE(DATE_FORMAT(${R}, ${S}), '%Y-%m-%d %H:%i:%s')` : R;
176
+ return S ? _`STR_TO_DATE(DATE_FORMAT(${R}, ${S}), '%Y-%m-%d %H:%i:%s')` : R;
168
177
  }
169
178
  }
170
179
  /**
@@ -173,16 +182,25 @@ class ZT extends pE {
173
182
  * For guaranteed case-insensitive matching, we use LOWER() functions
174
183
  */
175
184
  buildStringCondition(E, R, A) {
176
- const S = this.buildPattern(R, A.toLowerCase());
177
185
  switch (R) {
178
186
  case "contains":
179
- return r`LOWER(${E}) LIKE ${S}`;
187
+ return _`LOWER(${E}) LIKE ${`%${A.toLowerCase()}%`}`;
180
188
  case "notContains":
181
- return r`LOWER(${E}) NOT LIKE ${S}`;
189
+ return _`LOWER(${E}) NOT LIKE ${`%${A.toLowerCase()}%`}`;
182
190
  case "startsWith":
183
- return r`LOWER(${E}) LIKE ${S}`;
191
+ return _`LOWER(${E}) LIKE ${`${A.toLowerCase()}%`}`;
184
192
  case "endsWith":
185
- return r`LOWER(${E}) LIKE ${S}`;
193
+ return _`LOWER(${E}) LIKE ${`%${A.toLowerCase()}`}`;
194
+ case "like":
195
+ return _`${E} LIKE ${A}`;
196
+ case "notLike":
197
+ return _`${E} NOT LIKE ${A}`;
198
+ case "ilike":
199
+ return _`LOWER(${E}) LIKE ${A.toLowerCase()}`;
200
+ case "regex":
201
+ return _`${E} REGEXP ${A}`;
202
+ case "notRegex":
203
+ return _`${E} NOT REGEXP ${A}`;
186
204
  default:
187
205
  throw new Error(`Unsupported string operator: ${R}`);
188
206
  }
@@ -194,11 +212,11 @@ class ZT extends pE {
194
212
  castToType(E, R) {
195
213
  switch (R) {
196
214
  case "timestamp":
197
- return r`CAST(${E} AS DATETIME)`;
215
+ return _`CAST(${E} AS DATETIME)`;
198
216
  case "decimal":
199
- return r`CAST(${E} AS DECIMAL(10,2))`;
217
+ return _`CAST(${E} AS DECIMAL(10,2))`;
200
218
  case "integer":
201
- return r`CAST(${E} AS SIGNED INTEGER)`;
219
+ return _`CAST(${E} AS SIGNED INTEGER)`;
202
220
  default:
203
221
  throw new Error(`Unsupported cast type: ${R}`);
204
222
  }
@@ -208,21 +226,21 @@ class ZT extends pE {
208
226
  * MySQL AVG returns NULL for empty sets, using IFNULL for consistency
209
227
  */
210
228
  buildAvg(E) {
211
- return r`IFNULL(AVG(${E}), 0)`;
229
+ return _`IFNULL(AVG(${E}), 0)`;
212
230
  }
213
231
  /**
214
232
  * Build MySQL CASE WHEN conditional expression
215
233
  */
216
234
  buildCaseWhen(E, R) {
217
- const A = E.map((S) => r`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => r`${S} ${I}`);
218
- return R !== void 0 ? r`CASE ${A} ELSE ${R} END` : r`CASE ${A} END`;
235
+ const A = E.map((S) => _`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => _`${S} ${I}`);
236
+ return R !== void 0 ? _`CASE ${A} ELSE ${R} END` : _`CASE ${A} END`;
219
237
  }
220
238
  /**
221
239
  * Build MySQL boolean literal
222
240
  * MySQL uses TRUE/FALSE keywords (equivalent to 1/0)
223
241
  */
224
242
  buildBooleanLiteral(E) {
225
- return E ? r`TRUE` : r`FALSE`;
243
+ return E ? _`TRUE` : _`FALSE`;
226
244
  }
227
245
  /**
228
246
  * Convert filter values - MySQL uses native types
@@ -252,7 +270,7 @@ class ZT extends pE {
252
270
  return E;
253
271
  }
254
272
  }
255
- class qT extends pE {
273
+ class kT extends WE {
256
274
  getEngineType() {
257
275
  return "sqlite";
258
276
  }
@@ -265,28 +283,28 @@ class qT extends pE {
265
283
  buildTimeDimension(E, R) {
266
284
  switch (E) {
267
285
  case "year":
268
- return r`datetime(${R}, 'unixepoch', 'start of year')`;
286
+ return _`datetime(${R}, 'unixepoch', 'start of year')`;
269
287
  case "quarter":
270
- const A = r`datetime(${R}, 'unixepoch')`;
271
- return r`datetime(${A}, 'start of year',
288
+ const A = _`datetime(${R}, 'unixepoch')`;
289
+ return _`datetime(${A}, 'start of year',
272
290
  '+' || (((CAST(strftime('%m', ${A}) AS INTEGER) - 1) / 3) * 3) || ' months')`;
273
291
  case "month":
274
- return r`datetime(${R}, 'unixepoch', 'start of month')`;
292
+ return _`datetime(${R}, 'unixepoch', 'start of month')`;
275
293
  case "week":
276
- return r`date(datetime(${R}, 'unixepoch'), 'weekday 1', '-6 days')`;
294
+ return _`date(datetime(${R}, 'unixepoch'), 'weekday 1', '-6 days')`;
277
295
  case "day":
278
- return r`datetime(${R}, 'unixepoch', 'start of day')`;
296
+ return _`datetime(${R}, 'unixepoch', 'start of day')`;
279
297
  case "hour":
280
- const S = r`datetime(${R}, 'unixepoch')`;
281
- return r`datetime(strftime('%Y-%m-%d %H:00:00', ${S}))`;
298
+ const S = _`datetime(${R}, 'unixepoch')`;
299
+ return _`datetime(strftime('%Y-%m-%d %H:00:00', ${S}))`;
282
300
  case "minute":
283
- const I = r`datetime(${R}, 'unixepoch')`;
284
- return r`datetime(strftime('%Y-%m-%d %H:%M:00', ${I}))`;
301
+ const I = _`datetime(${R}, 'unixepoch')`;
302
+ return _`datetime(strftime('%Y-%m-%d %H:%M:00', ${I}))`;
285
303
  case "second":
286
- const N = r`datetime(${R}, 'unixepoch')`;
287
- return r`datetime(strftime('%Y-%m-%d %H:%M:%S', ${N}))`;
304
+ const N = _`datetime(${R}, 'unixepoch')`;
305
+ return _`datetime(strftime('%Y-%m-%d %H:%M:%S', ${N}))`;
288
306
  default:
289
- return r`datetime(${R}, 'unixepoch')`;
307
+ return _`datetime(${R}, 'unixepoch')`;
290
308
  }
291
309
  }
292
310
  /**
@@ -294,16 +312,25 @@ class qT extends pE {
294
312
  * SQLite LIKE is case-insensitive by default, but LOWER() ensures consistency
295
313
  */
296
314
  buildStringCondition(E, R, A) {
297
- const S = this.buildPattern(R, A.toLowerCase());
298
315
  switch (R) {
299
316
  case "contains":
300
- return r`LOWER(${E}) LIKE ${S}`;
317
+ return _`LOWER(${E}) LIKE ${`%${A.toLowerCase()}%`}`;
301
318
  case "notContains":
302
- return r`LOWER(${E}) NOT LIKE ${S}`;
319
+ return _`LOWER(${E}) NOT LIKE ${`%${A.toLowerCase()}%`}`;
303
320
  case "startsWith":
304
- return r`LOWER(${E}) LIKE ${S}`;
321
+ return _`LOWER(${E}) LIKE ${`${A.toLowerCase()}%`}`;
305
322
  case "endsWith":
306
- return r`LOWER(${E}) LIKE ${S}`;
323
+ return _`LOWER(${E}) LIKE ${`%${A.toLowerCase()}`}`;
324
+ case "like":
325
+ return _`${E} LIKE ${A}`;
326
+ case "notLike":
327
+ return _`${E} NOT LIKE ${A}`;
328
+ case "ilike":
329
+ return _`LOWER(${E}) LIKE ${A.toLowerCase()}`;
330
+ case "regex":
331
+ return _`${E} GLOB ${A}`;
332
+ case "notRegex":
333
+ return _`${E} NOT GLOB ${A}`;
307
334
  default:
308
335
  throw new Error(`Unsupported string operator: ${R}`);
309
336
  }
@@ -315,11 +342,11 @@ class qT extends pE {
315
342
  castToType(E, R) {
316
343
  switch (R) {
317
344
  case "timestamp":
318
- return r`datetime(${E} / 1000, 'unixepoch')`;
345
+ return _`datetime(${E} / 1000, 'unixepoch')`;
319
346
  case "decimal":
320
- return r`CAST(${E} AS REAL)`;
347
+ return _`CAST(${E} AS REAL)`;
321
348
  case "integer":
322
- return r`CAST(${E} AS INTEGER)`;
349
+ return _`CAST(${E} AS INTEGER)`;
323
350
  default:
324
351
  throw new Error(`Unsupported cast type: ${R}`);
325
352
  }
@@ -329,21 +356,21 @@ class qT extends pE {
329
356
  * SQLite AVG returns NULL for empty sets, using IFNULL for consistency
330
357
  */
331
358
  buildAvg(E) {
332
- return r`IFNULL(AVG(${E}), 0)`;
359
+ return _`IFNULL(AVG(${E}), 0)`;
333
360
  }
334
361
  /**
335
362
  * Build SQLite CASE WHEN conditional expression
336
363
  */
337
364
  buildCaseWhen(E, R) {
338
- const A = E.map((S) => S.then && typeof S.then == "object" && (S.then.queryChunks || S.then._ || S.then.sql) ? r`WHEN ${S.when} THEN ${r.raw("(")}${S.then}${r.raw(")")}` : r`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => r`${S} ${I}`);
339
- return R !== void 0 ? R && typeof R == "object" && (R.queryChunks || R._ || R.sql) ? r`CASE ${A} ELSE ${r.raw("(")}${R}${r.raw(")")} END` : r`CASE ${A} ELSE ${R} END` : r`CASE ${A} END`;
365
+ const A = E.map((S) => S.then && typeof S.then == "object" && (S.then.queryChunks || S.then._ || S.then.sql) ? _`WHEN ${S.when} THEN ${_.raw("(")}${S.then}${_.raw(")")}` : _`WHEN ${S.when} THEN ${S.then}`).reduce((S, I) => _`${S} ${I}`);
366
+ return R !== void 0 ? R && typeof R == "object" && (R.queryChunks || R._ || R.sql) ? _`CASE ${A} ELSE ${_.raw("(")}${R}${_.raw(")")} END` : _`CASE ${A} ELSE ${R} END` : _`CASE ${A} END`;
340
367
  }
341
368
  /**
342
369
  * Build SQLite boolean literal
343
370
  * SQLite uses 1/0 for true/false
344
371
  */
345
372
  buildBooleanLiteral(E) {
346
- return E ? r`1` : r`0`;
373
+ return E ? _`1` : _`0`;
347
374
  }
348
375
  /**
349
376
  * Convert filter values to SQLite-compatible types
@@ -379,44 +406,31 @@ class qT extends pE {
379
406
  return E;
380
407
  }
381
408
  }
382
- function kT(T) {
409
+ function qT(T) {
383
410
  switch (T) {
384
411
  case "postgres":
385
412
  return new QT();
386
413
  case "mysql":
387
414
  return new ZT();
388
415
  case "sqlite":
389
- return new qT();
416
+ return new kT();
390
417
  default:
391
418
  throw new Error(`Unsupported database engine: ${T}`);
392
419
  }
393
420
  }
394
- class dE {
421
+ class fE {
395
422
  constructor(E, R, A) {
396
- f(this, "databaseAdapter");
423
+ W(this, "databaseAdapter");
397
424
  this.db = E, this.schema = R;
398
425
  const S = A || this.getEngineType();
399
- this.databaseAdapter = kT(S);
426
+ this.databaseAdapter = qT(S);
400
427
  }
401
428
  }
402
- class jT extends dE {
429
+ class jT extends fE {
403
430
  async execute(E, R) {
404
- if (E && typeof E == "object") {
405
- if (typeof E.execute == "function") {
406
- const S = await E.execute();
407
- return Array.isArray(S) ? S.map((I) => this.convertNumericFields(I, R)) : S;
408
- }
409
- if (this.db && typeof this.db.execute == "function")
410
- try {
411
- const S = await this.db.execute(E);
412
- return Array.isArray(S) ? S.map((I) => this.convertNumericFields(I, R)) : S;
413
- } catch (S) {
414
- if (typeof E.getSQL == "function") {
415
- const I = E.getSQL(), N = await this.db.execute(I);
416
- return Array.isArray(N) ? N.map((e) => this.convertNumericFields(e, R)) : N;
417
- }
418
- throw S;
419
- }
431
+ if (E && typeof E == "object" && typeof E.execute == "function") {
432
+ const S = await E.execute();
433
+ return Array.isArray(S) ? S.map((I) => this.convertNumericFields(I, R)) : S;
420
434
  }
421
435
  if (!this.db.execute)
422
436
  throw new Error("PostgreSQL database instance must have an execute method");
@@ -464,10 +478,10 @@ class jT extends dE {
464
478
  return "postgres";
465
479
  }
466
480
  }
467
- function KE(T, E) {
481
+ function wE(T, E) {
468
482
  return new jT(T, E, "postgres");
469
483
  }
470
- class zT extends dE {
484
+ class zT extends fE {
471
485
  async execute(E, R) {
472
486
  if (E && typeof E == "object" && typeof E.execute == "function") {
473
487
  const S = await E.execute();
@@ -508,7 +522,7 @@ class zT extends dE {
508
522
  function ER(T, E) {
509
523
  return new zT(T, E, "mysql");
510
524
  }
511
- class TR extends dE {
525
+ class TR extends fE {
512
526
  async execute(E, R) {
513
527
  if (E && typeof E == "object" && typeof E.execute == "function") {
514
528
  const A = await E.execute();
@@ -554,26 +568,26 @@ class TR extends dE {
554
568
  return "sqlite";
555
569
  }
556
570
  }
557
- function yE(T, E) {
571
+ function xE(T, E) {
558
572
  return new TR(T, E, "sqlite");
559
573
  }
560
- function $E(T, E, R) {
574
+ function vE(T, E, R) {
561
575
  if (R)
562
576
  switch (R) {
563
577
  case "postgres":
564
- return KE(T, E);
578
+ return wE(T, E);
565
579
  case "mysql":
566
580
  return ER(T, E);
567
581
  case "sqlite":
568
- return yE(T, E);
582
+ return xE(T, E);
569
583
  }
570
584
  if (T.all && T.run)
571
- return yE(T, E);
585
+ return xE(T, E);
572
586
  if (T.execute)
573
- return KE(T, E);
587
+ return wE(T, E);
574
588
  throw new Error("Unable to determine database engine type. Please specify engineType parameter.");
575
589
  }
576
- function gE(T) {
590
+ function QE(T) {
577
591
  return typeof T == "function" ? T() : T;
578
592
  }
579
593
  function RR(T, E) {
@@ -619,31 +633,31 @@ class AR {
619
633
  for (const N of R.dimensions) {
620
634
  const [e, n] = N.split("."), O = I.get(e);
621
635
  if (O && O.dimensions && O.dimensions[n]) {
622
- const s = O.dimensions[n], C = K(s.sql, A);
623
- S[N] = r`${C}`.as(N);
636
+ const t = O.dimensions[n], C = K(t.sql, A);
637
+ S[N] = _`${C}`.as(N);
624
638
  }
625
639
  }
626
640
  if (R.measures)
627
641
  for (const N of R.measures) {
628
642
  const [e, n] = N.split("."), O = I.get(e);
629
643
  if (O && O.measures && O.measures[n]) {
630
- const s = O.measures[n], C = this.buildMeasureExpression(s, A);
631
- S[N] = r`${C}`.as(N);
644
+ const t = O.measures[n], C = this.buildMeasureExpression(t, A);
645
+ S[N] = _`${C}`.as(N);
632
646
  }
633
647
  }
634
648
  if (R.timeDimensions)
635
649
  for (const N of R.timeDimensions) {
636
650
  const [e, n] = N.dimension.split("."), O = I.get(e);
637
651
  if (O && O.dimensions && O.dimensions[n]) {
638
- const s = O.dimensions[n], C = this.buildTimeDimensionExpression(
639
- s.sql,
652
+ const t = O.dimensions[n], C = this.buildTimeDimensionExpression(
653
+ t.sql,
640
654
  N.granularity,
641
655
  A
642
656
  );
643
- S[N.dimension] = r`${C}`.as(N.dimension);
657
+ S[N.dimension] = _`${C}`.as(N.dimension);
644
658
  }
645
659
  }
646
- return Object.keys(S).length === 0 && (S.count = SE()), S;
660
+ return Object.keys(S).length === 0 && (S.count = IE()), S;
647
661
  }
648
662
  /**
649
663
  * Build measure expression for HAVING clause, handling CTE references correctly
@@ -652,7 +666,7 @@ class AR {
652
666
  if (I && I.preAggregationCTEs) {
653
667
  const N = I.preAggregationCTEs.find((e) => e.cube.name === E);
654
668
  if (N && N.measures.includes(`${E}.${R}`)) {
655
- const e = r`${r.identifier(N.cteAlias)}.${r.identifier(R)}`;
669
+ const e = _`${_.identifier(N.cteAlias)}.${_.identifier(R)}`;
656
670
  switch (A.type) {
657
671
  case "count":
658
672
  case "countDistinct":
@@ -661,9 +675,9 @@ class AR {
661
675
  case "avg":
662
676
  return this.databaseAdapter.buildAvg(e);
663
677
  case "min":
664
- return FE(e);
678
+ return VE(e);
665
679
  case "max":
666
- return uE(e);
680
+ return dE(e);
667
681
  case "number":
668
682
  return y(e);
669
683
  default:
@@ -689,21 +703,21 @@ class AR {
689
703
  }
690
704
  switch (E.type) {
691
705
  case "count":
692
- return SE(A);
706
+ return IE(A);
693
707
  case "countDistinct":
694
- return KT(A);
708
+ return wT(A);
695
709
  case "sum":
696
710
  return y(A);
697
711
  case "avg":
698
712
  return this.databaseAdapter.buildAvg(A);
699
713
  case "min":
700
- return FE(A);
714
+ return VE(A);
701
715
  case "max":
702
- return uE(A);
716
+ return dE(A);
703
717
  case "number":
704
718
  return A;
705
719
  default:
706
- return SE(A);
720
+ return IE(A);
707
721
  }
708
722
  }
709
723
  /**
@@ -711,7 +725,7 @@ class AR {
711
725
  */
712
726
  buildTimeDimensionExpression(E, R, A) {
713
727
  const S = K(E, A);
714
- return R ? this.databaseAdapter.buildTimeDimension(R, S) : S instanceof yT ? S : r`${S}`;
728
+ return R ? this.databaseAdapter.buildTimeDimension(R, S) : S instanceof xT ? S : _`${S}`;
715
729
  }
716
730
  /**
717
731
  * Build WHERE conditions from semantic query filters (dimensions only)
@@ -726,11 +740,11 @@ class AR {
726
740
  }
727
741
  if (R.timeDimensions)
728
742
  for (const e of R.timeDimensions) {
729
- const [n, O] = e.dimension.split("."), s = N.get(n);
730
- if (s && s.dimensions[O] && e.dateRange) {
743
+ const [n, O] = e.dimension.split("."), t = N.get(n);
744
+ if (t && t.dimensions[O] && e.dateRange) {
731
745
  if (S != null && S.preAggregationCTEs && S.preAggregationCTEs.some((U) => U.cube.name === n))
732
746
  continue;
733
- const C = s.dimensions[O], t = K(C.sql, A), i = this.buildDateRangeCondition(t, e.dateRange);
747
+ const C = t.dimensions[O], s = K(C.sql, A), i = this.buildDateRangeCondition(s, e.dateRange);
734
748
  i && I.push(i);
735
749
  }
736
750
  }
@@ -762,24 +776,24 @@ class AR {
762
776
  }
763
777
  if (i.or) {
764
778
  const a = i.or.map((U) => this.processFilter(U, R, A, S, I)).filter((U) => U !== null);
765
- return a.length > 0 ? $T(...a) : null;
779
+ return a.length > 0 ? OE(...a) : null;
766
780
  }
767
781
  }
768
782
  const N = E, [e, n] = N.member.split("."), O = R.get(e);
769
783
  if (!O) return null;
770
- const s = O.dimensions[n], C = O.measures[n], t = s || C;
771
- if (!t) return null;
772
- if (S === "where" && s) {
784
+ const t = O.dimensions[n], C = O.measures[n], s = t || C;
785
+ if (!s) return null;
786
+ if (S === "where" && t) {
773
787
  if (I != null && I.preAggregationCTEs && I.preAggregationCTEs.some((U) => U.cube.name === e))
774
788
  return null;
775
- const i = K(s.sql, A);
776
- return this.buildFilterCondition(i, N.operator, N.values, t);
789
+ const i = K(t.sql, A);
790
+ return this.buildFilterCondition(i, N.operator, N.values, s);
777
791
  } else {
778
792
  if (S === "where" && C)
779
793
  return null;
780
794
  if (S === "having" && C) {
781
795
  const i = this.buildHavingMeasureExpression(e, n, C, A, I);
782
- return this.buildFilterCondition(i, N.operator, N.values, t);
796
+ return this.buildFilterCondition(i, N.operator, N.values, s);
783
797
  }
784
798
  }
785
799
  return null;
@@ -799,16 +813,16 @@ class AR {
799
813
  if (I.length > 1) {
800
814
  if ((S == null ? void 0 : S.type) === "time") {
801
815
  const e = I.map((n) => this.normalizeDate(n) || n);
802
- return XE(E, e);
816
+ return NE(E, e);
803
817
  }
804
- return XE(E, I);
818
+ return NE(E, I);
805
819
  } else if (I.length === 1) {
806
820
  const e = (S == null ? void 0 : S.type) === "time" && this.normalizeDate(N) || N;
807
- return mE(E, e);
821
+ return EE(E, e);
808
822
  }
809
823
  return this.databaseAdapter.buildBooleanLiteral(!1);
810
824
  case "notEquals":
811
- return I.length > 1 ? xT(E, I) : I.length === 1 ? wT(E, N) : null;
825
+ return I.length > 1 ? gE(E, I) : I.length === 1 ? yE(E, N) : null;
812
826
  case "contains":
813
827
  return this.databaseAdapter.buildStringCondition(E, "contains", N);
814
828
  case "notContains":
@@ -818,35 +832,69 @@ class AR {
818
832
  case "endsWith":
819
833
  return this.databaseAdapter.buildStringCondition(E, "endsWith", N);
820
834
  case "gt":
821
- return fE(E, N);
835
+ return CE(E, N);
822
836
  case "gte":
823
- return Q(E, N);
837
+ return J(E, N);
824
838
  case "lt":
825
- return WE(E, N);
839
+ return eE(E, N);
826
840
  case "lte":
827
- return Z(E, N);
841
+ return w(E, N);
828
842
  case "set":
829
- return JT(E);
843
+ return KE(E);
830
844
  case "notSet":
831
- return gT(E);
845
+ return $E(E);
832
846
  case "inDateRange":
833
847
  if (I.length >= 2) {
834
848
  const e = this.normalizeDate(I[0]), n = this.normalizeDate(I[1]);
835
849
  if (e && n)
836
850
  return d(
837
- Q(E, e),
838
- Z(E, n)
851
+ J(E, e),
852
+ w(E, n)
839
853
  );
840
854
  }
841
855
  return null;
842
856
  case "beforeDate": {
843
857
  const e = this.normalizeDate(N);
844
- return e ? WE(E, e) : null;
858
+ return e ? eE(E, e) : null;
845
859
  }
846
860
  case "afterDate": {
847
861
  const e = this.normalizeDate(N);
848
- return e ? fE(E, e) : null;
862
+ return e ? CE(E, e) : null;
849
863
  }
864
+ case "between":
865
+ return I.length >= 2 ? d(
866
+ J(E, I[0]),
867
+ w(E, I[1])
868
+ ) : null;
869
+ case "notBetween":
870
+ return I.length >= 2 ? OE(
871
+ eE(E, I[0]),
872
+ CE(E, I[1])
873
+ ) : null;
874
+ case "in":
875
+ return I.length > 0 ? NE(E, I) : null;
876
+ case "notIn":
877
+ return I.length > 0 ? gE(E, I) : null;
878
+ case "like":
879
+ return this.databaseAdapter.buildStringCondition(E, "like", N);
880
+ case "notLike":
881
+ return this.databaseAdapter.buildStringCondition(E, "notLike", N);
882
+ case "ilike":
883
+ return this.databaseAdapter.buildStringCondition(E, "ilike", N);
884
+ case "regex":
885
+ return this.databaseAdapter.buildStringCondition(E, "regex", N);
886
+ case "notRegex":
887
+ return this.databaseAdapter.buildStringCondition(E, "notRegex", N);
888
+ case "isEmpty":
889
+ return OE(
890
+ $E(E),
891
+ EE(E, "")
892
+ );
893
+ case "isNotEmpty":
894
+ return d(
895
+ KE(E),
896
+ yE(E, "")
897
+ );
850
898
  default:
851
899
  return null;
852
900
  }
@@ -859,16 +907,16 @@ class AR {
859
907
  if (Array.isArray(R) && R.length >= 2) {
860
908
  const A = this.normalizeDate(R[0]), S = this.normalizeDate(R[1]);
861
909
  return !A || !S ? null : d(
862
- Q(E, A),
863
- Z(E, S)
910
+ J(E, A),
911
+ w(E, S)
864
912
  );
865
913
  }
866
914
  if (typeof R == "string") {
867
915
  const A = this.parseRelativeDateRange(R);
868
916
  if (A)
869
917
  return d(
870
- Q(E, A.start),
871
- Z(E, A.end)
918
+ J(E, A.start),
919
+ w(E, A.end)
872
920
  );
873
921
  const S = this.normalizeDate(R);
874
922
  if (!S) return null;
@@ -876,8 +924,8 @@ class AR {
876
924
  I.setUTCHours(0, 0, 0, 0);
877
925
  const N = new Date(S);
878
926
  return N.setUTCHours(23, 59, 59, 999), d(
879
- Q(E, I),
880
- Z(E, N)
927
+ J(E, I),
928
+ w(E, N)
881
929
  );
882
930
  }
883
931
  return null;
@@ -891,71 +939,71 @@ class AR {
891
939
  if (A === "today") {
892
940
  const C = new Date(R);
893
941
  C.setUTCHours(0, 0, 0, 0);
894
- const t = new Date(R);
895
- return t.setUTCHours(23, 59, 59, 999), { start: C, end: t };
942
+ const s = new Date(R);
943
+ return s.setUTCHours(23, 59, 59, 999), { start: C, end: s };
896
944
  }
897
945
  if (A === "yesterday") {
898
946
  const C = new Date(R);
899
947
  C.setUTCDate(N - 1), C.setUTCHours(0, 0, 0, 0);
900
- const t = new Date(R);
901
- return t.setUTCDate(N - 1), t.setUTCHours(23, 59, 59, 999), { start: C, end: t };
948
+ const s = new Date(R);
949
+ return s.setUTCDate(N - 1), s.setUTCHours(23, 59, 59, 999), { start: C, end: s };
902
950
  }
903
951
  if (A === "this week") {
904
- const C = e === 0 ? -6 : 1 - e, t = new Date(R);
905
- t.setUTCDate(N + C), t.setUTCHours(0, 0, 0, 0);
906
- const i = new Date(t);
907
- return i.setUTCDate(t.getUTCDate() + 6), i.setUTCHours(23, 59, 59, 999), { start: t, end: i };
952
+ const C = e === 0 ? -6 : 1 - e, s = new Date(R);
953
+ s.setUTCDate(N + C), s.setUTCHours(0, 0, 0, 0);
954
+ const i = new Date(s);
955
+ return i.setUTCDate(s.getUTCDate() + 6), i.setUTCHours(23, 59, 59, 999), { start: s, end: i };
908
956
  }
909
957
  if (A === "this month") {
910
- const C = new Date(Date.UTC(S, I, 1, 0, 0, 0, 0)), t = new Date(Date.UTC(S, I + 1, 0, 23, 59, 59, 999));
911
- return { start: C, end: t };
958
+ const C = new Date(Date.UTC(S, I, 1, 0, 0, 0, 0)), s = new Date(Date.UTC(S, I + 1, 0, 23, 59, 59, 999));
959
+ return { start: C, end: s };
912
960
  }
913
961
  if (A === "this quarter") {
914
- const C = Math.floor(I / 3), t = new Date(Date.UTC(S, C * 3, 1, 0, 0, 0, 0)), i = new Date(Date.UTC(S, C * 3 + 3, 0, 23, 59, 59, 999));
915
- return { start: t, end: i };
962
+ const C = Math.floor(I / 3), s = new Date(Date.UTC(S, C * 3, 1, 0, 0, 0, 0)), i = new Date(Date.UTC(S, C * 3 + 3, 0, 23, 59, 59, 999));
963
+ return { start: s, end: i };
916
964
  }
917
965
  if (A === "this year") {
918
- const C = new Date(Date.UTC(S, 0, 1, 0, 0, 0, 0)), t = new Date(Date.UTC(S, 11, 31, 23, 59, 59, 999));
919
- return { start: C, end: t };
966
+ const C = new Date(Date.UTC(S, 0, 1, 0, 0, 0, 0)), s = new Date(Date.UTC(S, 11, 31, 23, 59, 59, 999));
967
+ return { start: C, end: s };
920
968
  }
921
969
  const n = A.match(/^last\s+(\d+)\s+days?$/);
922
970
  if (n) {
923
- const C = parseInt(n[1], 10), t = new Date(R);
924
- t.setUTCDate(N - C + 1), t.setUTCHours(0, 0, 0, 0);
971
+ const C = parseInt(n[1], 10), s = new Date(R);
972
+ s.setUTCDate(N - C + 1), s.setUTCHours(0, 0, 0, 0);
925
973
  const i = new Date(R);
926
- return i.setUTCHours(23, 59, 59, 999), { start: t, end: i };
974
+ return i.setUTCHours(23, 59, 59, 999), { start: s, end: i };
927
975
  }
928
976
  if (A === "last week") {
929
- const C = e === 0 ? -13 : -6 - e, t = new Date(R);
930
- t.setUTCDate(N + C), t.setUTCHours(0, 0, 0, 0);
931
- const i = new Date(t);
932
- return i.setUTCDate(t.getUTCDate() + 6), i.setUTCHours(23, 59, 59, 999), { start: t, end: i };
977
+ const C = e === 0 ? -13 : -6 - e, s = new Date(R);
978
+ s.setUTCDate(N + C), s.setUTCHours(0, 0, 0, 0);
979
+ const i = new Date(s);
980
+ return i.setUTCDate(s.getUTCDate() + 6), i.setUTCHours(23, 59, 59, 999), { start: s, end: i };
933
981
  }
934
982
  if (A === "last month") {
935
- const C = new Date(Date.UTC(S, I - 1, 1, 0, 0, 0, 0)), t = new Date(Date.UTC(S, I, 0, 23, 59, 59, 999));
936
- return { start: C, end: t };
983
+ const C = new Date(Date.UTC(S, I - 1, 1, 0, 0, 0, 0)), s = new Date(Date.UTC(S, I, 0, 23, 59, 59, 999));
984
+ return { start: C, end: s };
937
985
  }
938
986
  if (A === "last quarter") {
939
- const C = Math.floor(I / 3), t = C === 0 ? 3 : C - 1, i = C === 0 ? S - 1 : S, a = new Date(Date.UTC(i, t * 3, 1, 0, 0, 0, 0)), U = new Date(Date.UTC(i, t * 3 + 3, 0, 23, 59, 59, 999));
987
+ const C = Math.floor(I / 3), s = C === 0 ? 3 : C - 1, i = C === 0 ? S - 1 : S, a = new Date(Date.UTC(i, s * 3, 1, 0, 0, 0, 0)), U = new Date(Date.UTC(i, s * 3 + 3, 0, 23, 59, 59, 999));
940
988
  return { start: a, end: U };
941
989
  }
942
990
  if (A === "last year") {
943
- const C = new Date(Date.UTC(S - 1, 0, 1, 0, 0, 0, 0)), t = new Date(Date.UTC(S - 1, 11, 31, 23, 59, 59, 999));
944
- return { start: C, end: t };
991
+ const C = new Date(Date.UTC(S - 1, 0, 1, 0, 0, 0, 0)), s = new Date(Date.UTC(S - 1, 11, 31, 23, 59, 59, 999));
992
+ return { start: C, end: s };
945
993
  }
946
994
  if (A === "last 12 months") {
947
- const C = new Date(Date.UTC(S, I - 11, 1, 0, 0, 0, 0)), t = new Date(R);
948
- return t.setUTCHours(23, 59, 59, 999), { start: C, end: t };
995
+ const C = new Date(Date.UTC(S, I - 11, 1, 0, 0, 0, 0)), s = new Date(R);
996
+ return s.setUTCHours(23, 59, 59, 999), { start: C, end: s };
949
997
  }
950
998
  const O = A.match(/^last\s+(\d+)\s+months?$/);
951
999
  if (O) {
952
- const C = parseInt(O[1], 10), t = new Date(Date.UTC(S, I - C + 1, 1, 0, 0, 0, 0)), i = new Date(R);
953
- return i.setUTCHours(23, 59, 59, 999), { start: t, end: i };
1000
+ const C = parseInt(O[1], 10), s = new Date(Date.UTC(S, I - C + 1, 1, 0, 0, 0, 0)), i = new Date(R);
1001
+ return i.setUTCHours(23, 59, 59, 999), { start: s, end: i };
954
1002
  }
955
- const s = A.match(/^last\s+(\d+)\s+years?$/);
956
- if (s) {
957
- const C = parseInt(s[1], 10), t = new Date(Date.UTC(S - C, 0, 1, 0, 0, 0, 0)), i = new Date(R);
958
- return i.setUTCHours(23, 59, 59, 999), { start: t, end: i };
1003
+ const t = A.match(/^last\s+(\d+)\s+years?$/);
1004
+ if (t) {
1005
+ const C = parseInt(t[1], 10), s = new Date(Date.UTC(S - C, 0, 1, 0, 0, 0, 0)), i = new Date(R);
1006
+ return i.setUTCHours(23, 59, 59, 999), { start: s, end: i };
959
1007
  }
960
1008
  return null;
961
1009
  }
@@ -990,43 +1038,43 @@ class AR {
990
1038
  return [];
991
1039
  const e = E instanceof Map ? E : /* @__PURE__ */ new Map([[E.name, E]]);
992
1040
  if (R.dimensions)
993
- for (const s of R.dimensions) {
994
- const [C, t] = s.split("."), i = e.get(C);
995
- if (i && i.dimensions && i.dimensions[t])
1041
+ for (const t of R.dimensions) {
1042
+ const [C, s] = t.split("."), i = e.get(C);
1043
+ if (i && i.dimensions && i.dimensions[s])
996
1044
  if ((n = S == null ? void 0 : S.preAggregationCTEs) == null ? void 0 : n.some((U) => U.cube.name === C)) {
997
- const U = S.preAggregationCTEs.find((G) => G.cube.name === C), o = U.joinKeys.find((G) => G.targetColumn === t);
1045
+ const U = S.preAggregationCTEs.find((G) => G.cube.name === C), o = U.joinKeys.find((G) => G.targetColumn === s);
998
1046
  if (o && o.sourceColumnObj)
999
1047
  I.push(o.sourceColumnObj);
1000
1048
  else {
1001
- const G = r`${r.identifier(U.cteAlias)}.${r.identifier(t)}`;
1049
+ const G = _`${_.identifier(U.cteAlias)}.${_.identifier(s)}`;
1002
1050
  I.push(G);
1003
1051
  }
1004
1052
  } else {
1005
- const U = i.dimensions[t], o = K(U.sql, A);
1053
+ const U = i.dimensions[s], o = K(U.sql, A);
1006
1054
  I.push(o);
1007
1055
  }
1008
1056
  }
1009
1057
  if (R.timeDimensions)
1010
- for (const s of R.timeDimensions) {
1011
- const [C, t] = s.dimension.split("."), i = e.get(C);
1012
- if (i && i.dimensions && i.dimensions[t])
1058
+ for (const t of R.timeDimensions) {
1059
+ const [C, s] = t.dimension.split("."), i = e.get(C);
1060
+ if (i && i.dimensions && i.dimensions[s])
1013
1061
  if ((O = S == null ? void 0 : S.preAggregationCTEs) == null ? void 0 : O.some((U) => U.cube.name === C)) {
1014
- const U = S.preAggregationCTEs.find((G) => G.cube.name === C), o = U.joinKeys.find((G) => G.targetColumn === t);
1062
+ const U = S.preAggregationCTEs.find((G) => G.cube.name === C), o = U.joinKeys.find((G) => G.targetColumn === s);
1015
1063
  if (o && o.sourceColumnObj) {
1016
1064
  const G = this.buildTimeDimensionExpression(
1017
1065
  o.sourceColumnObj,
1018
- s.granularity,
1066
+ t.granularity,
1019
1067
  A
1020
1068
  );
1021
1069
  I.push(G);
1022
1070
  } else {
1023
- const G = r`${r.identifier(U.cteAlias)}.${r.identifier(t)}`;
1071
+ const G = _`${_.identifier(U.cteAlias)}.${_.identifier(s)}`;
1024
1072
  I.push(G);
1025
1073
  }
1026
1074
  } else {
1027
- const U = i.dimensions[t], o = this.buildTimeDimensionExpression(
1075
+ const U = i.dimensions[s], o = this.buildTimeDimensionExpression(
1028
1076
  U.sql,
1029
- s.granularity,
1077
+ t.granularity,
1030
1078
  A
1031
1079
  );
1032
1080
  I.push(o);
@@ -1048,7 +1096,7 @@ class AR {
1048
1096
  for (const [N, e] of Object.entries(E.order)) {
1049
1097
  if (!S.includes(N))
1050
1098
  throw new Error(`Cannot order by '${N}': field is not selected in the query`);
1051
- const n = e === "desc" ? vT(r.identifier(N)) : bE(r.identifier(N));
1099
+ const n = e === "desc" ? vT(_.identifier(N)) : JE(_.identifier(N));
1052
1100
  A.push(n);
1053
1101
  }
1054
1102
  if (E.timeDimensions && E.timeDimensions.length > 0) {
@@ -1056,7 +1104,7 @@ class AR {
1056
1104
  (n, O) => n.dimension.localeCompare(O.dimension)
1057
1105
  );
1058
1106
  for (const n of e)
1059
- N.has(n.dimension) || A.push(bE(r.identifier(n.dimension)));
1107
+ N.has(n.dimension) || A.push(JE(_.identifier(n.dimension)));
1060
1108
  }
1061
1109
  return A;
1062
1110
  }
@@ -1253,24 +1301,24 @@ class SR {
1253
1301
  const n = this.findJoinPath(E, R.name, e, I);
1254
1302
  if (!n || n.length === 0)
1255
1303
  throw new Error(`No join path found from '${R.name}' to '${e}'`);
1256
- for (const { toCube: O, joinDef: s } of n) {
1304
+ for (const { toCube: O, joinDef: t } of n) {
1257
1305
  if (I.has(O))
1258
1306
  continue;
1259
1307
  const C = E.get(O);
1260
1308
  if (!C)
1261
1309
  throw new Error(`Cube '${O}' not found`);
1262
- const t = this.buildJoinCondition(
1263
- s,
1310
+ const s = this.buildJoinCondition(
1311
+ t,
1264
1312
  null,
1265
1313
  // No source alias needed - use the actual column
1266
1314
  null
1267
1315
  // No target alias needed - use the actual column
1268
- ), i = RR(s.relationship, s.sqlJoinType);
1316
+ ), i = RR(t.relationship, t.sqlJoinType);
1269
1317
  S.push({
1270
1318
  cube: C,
1271
1319
  alias: `${O.toLowerCase()}_cube`,
1272
1320
  joinType: i,
1273
- joinCondition: t
1321
+ joinCondition: s
1274
1322
  }), I.add(O);
1275
1323
  }
1276
1324
  }
@@ -1282,7 +1330,7 @@ class SR {
1282
1330
  buildJoinCondition(E, R, A) {
1283
1331
  const S = [];
1284
1332
  for (const I of E.on) {
1285
- const N = R ? r`${r.identifier(R)}.${r.identifier(I.source.name)}` : I.source, e = A ? r`${r.identifier(A)}.${r.identifier(I.target.name)}` : I.target, n = I.as || mE;
1333
+ const N = R ? _`${_.identifier(R)}.${_.identifier(I.source.name)}` : I.source, e = A ? _`${_.identifier(A)}.${_.identifier(I.target.name)}` : I.target, n = I.as || EE;
1286
1334
  S.push(n(N, e));
1287
1335
  }
1288
1336
  return d(...S);
@@ -1300,18 +1348,18 @@ class SR {
1300
1348
  for (; I.length > 0; ) {
1301
1349
  const { cube: e, path: n } = I.shift(), O = E.get(e);
1302
1350
  if (O != null && O.joins)
1303
- for (const [, s] of Object.entries(O.joins)) {
1304
- const t = gE(s.targetCube).name;
1305
- if (N.has(t))
1351
+ for (const [, t] of Object.entries(O.joins)) {
1352
+ const s = QE(t.targetCube).name;
1353
+ if (N.has(s))
1306
1354
  continue;
1307
1355
  const i = [...n, {
1308
1356
  fromCube: e,
1309
- toCube: t,
1310
- joinDef: s
1357
+ toCube: s,
1358
+ joinDef: t
1311
1359
  }];
1312
- if (t === A)
1360
+ if (s === A)
1313
1361
  return i;
1314
- N.add(t), I.push({ cube: t, path: i });
1362
+ N.add(s), I.push({ cube: s, path: i });
1315
1363
  }
1316
1364
  }
1317
1365
  return null;
@@ -1328,22 +1376,22 @@ class SR {
1328
1376
  if (!e)
1329
1377
  continue;
1330
1378
  const n = S.measures ? S.measures.filter(
1331
- (t) => t.startsWith(N.cube.name + ".")
1332
- ) : [], O = this.extractMeasuresFromFilters(S, N.cube.name), s = [.../* @__PURE__ */ new Set([...n, ...O])];
1333
- if (s.length === 0)
1379
+ (s) => s.startsWith(N.cube.name + ".")
1380
+ ) : [], O = this.extractMeasuresFromFilters(S, N.cube.name), t = [.../* @__PURE__ */ new Set([...n, ...O])];
1381
+ if (t.length === 0)
1334
1382
  continue;
1335
- const C = e.on.map((t) => ({
1336
- sourceColumn: t.source.name,
1337
- targetColumn: t.target.name,
1338
- sourceColumnObj: t.source,
1339
- targetColumnObj: t.target
1383
+ const C = e.on.map((s) => ({
1384
+ sourceColumn: s.source.name,
1385
+ targetColumn: s.target.name,
1386
+ sourceColumnObj: s.source,
1387
+ targetColumnObj: s.target
1340
1388
  }));
1341
1389
  I.push({
1342
1390
  cube: N.cube,
1343
1391
  alias: N.alias,
1344
1392
  cteAlias: `${N.cube.name.toLowerCase()}_agg`,
1345
1393
  joinKeys: C,
1346
- measures: s
1394
+ measures: t
1347
1395
  });
1348
1396
  }
1349
1397
  return I;
@@ -1355,16 +1403,16 @@ class SR {
1355
1403
  if (!E.joins)
1356
1404
  return null;
1357
1405
  for (const [, A] of Object.entries(E.joins))
1358
- if (gE(A.targetCube).name === R && A.relationship === "hasMany")
1406
+ if (QE(A.targetCube).name === R && A.relationship === "hasMany")
1359
1407
  return A;
1360
1408
  return null;
1361
1409
  }
1362
1410
  }
1363
- class IE {
1411
+ class tE {
1364
1412
  constructor(E) {
1365
- f(this, "queryBuilder");
1366
- f(this, "queryPlanner");
1367
- f(this, "databaseAdapter");
1413
+ W(this, "queryBuilder");
1414
+ W(this, "queryPlanner");
1415
+ W(this, "databaseAdapter");
1368
1416
  if (this.dbExecutor = E, this.databaseAdapter = E.databaseAdapter, !this.databaseAdapter)
1369
1417
  throw new Error("DatabaseExecutor must have a databaseAdapter property");
1370
1418
  this.queryBuilder = new AR(this.databaseAdapter), this.queryPlanner = new SR();
@@ -1374,15 +1422,15 @@ class IE {
1374
1422
  */
1375
1423
  async execute(E, R, A) {
1376
1424
  try {
1377
- const S = hT(E, R);
1425
+ const S = KT(E, R);
1378
1426
  if (!S.isValid)
1379
1427
  throw new Error(`Query validation failed: ${S.errors.join(", ")}`);
1380
1428
  const I = {
1381
1429
  db: this.dbExecutor.db,
1382
1430
  schema: this.dbExecutor.schema,
1383
1431
  securityContext: A
1384
- }, N = this.queryPlanner.createQueryPlan(E, R, I), e = this.buildUnifiedQuery(N, R, I), n = this.queryBuilder.collectNumericFields(E, R), O = await this.dbExecutor.execute(e, n), s = Array.isArray(O) ? O.map((t) => {
1385
- const i = { ...t };
1432
+ }, N = this.queryPlanner.createQueryPlan(E, R, I), e = this.buildUnifiedQuery(N, R, I), n = this.queryBuilder.collectNumericFields(E, R), O = await this.dbExecutor.execute(e, n), t = Array.isArray(O) ? O.map((s) => {
1433
+ const i = { ...s };
1386
1434
  if (R.timeDimensions) {
1387
1435
  for (const a of R.timeDimensions)
1388
1436
  if (a.dimension in i) {
@@ -1397,7 +1445,7 @@ class IE {
1397
1445
  return i;
1398
1446
  }) : [O], C = this.generateAnnotations(N, R);
1399
1447
  return {
1400
- data: s,
1448
+ data: t,
1401
1449
  annotation: C
1402
1450
  };
1403
1451
  } catch (S) {
@@ -1421,13 +1469,13 @@ class IE {
1421
1469
  if (o.targetColumnObj) {
1422
1470
  e[o.targetColumn] = o.targetColumnObj;
1423
1471
  for (const [G, P] of Object.entries(I.dimensions || {}))
1424
- P.sql === o.targetColumnObj && G !== o.targetColumn && (e[G] = r`${o.targetColumnObj}`.as(G));
1472
+ P.sql === o.targetColumnObj && G !== o.targetColumn && (e[G] = _`${o.targetColumnObj}`.as(G));
1425
1473
  }
1426
1474
  for (const o of E.measures) {
1427
1475
  const [, G] = o.split(".");
1428
1476
  if (I.measures && I.measures[G]) {
1429
1477
  const P = I.measures[G], H = this.queryBuilder.buildMeasureExpression(P, A);
1430
- e[G] = r`${H}`.as(G);
1478
+ e[G] = _`${H}`.as(G);
1431
1479
  }
1432
1480
  }
1433
1481
  const n = I.name;
@@ -1436,7 +1484,7 @@ class IE {
1436
1484
  const [G, P] = o.split(".");
1437
1485
  if (G === n && I.dimensions && I.dimensions[P]) {
1438
1486
  const H = I.dimensions[P], l = this.queryBuilder.buildMeasureExpression({ sql: H.sql, type: "number" }, A);
1439
- e[P] = r`${l}`.as(P);
1487
+ e[P] = _`${l}`.as(P);
1440
1488
  }
1441
1489
  }
1442
1490
  if (R.timeDimensions)
@@ -1444,22 +1492,22 @@ class IE {
1444
1492
  const [G, P] = o.dimension.split(".");
1445
1493
  if (G === n && I.dimensions && I.dimensions[P]) {
1446
1494
  const H = I.dimensions[P], l = this.queryBuilder.buildTimeDimensionExpression(H.sql, o.granularity, A);
1447
- e[P] = r`${l}`.as(P);
1495
+ e[P] = _`${l}`.as(P);
1448
1496
  }
1449
1497
  }
1450
1498
  if (Object.keys(e).length === 0)
1451
1499
  return null;
1452
1500
  let O = A.db.select(e).from(N.from);
1453
- const s = S ? {
1501
+ const t = S ? {
1454
1502
  ...S,
1455
1503
  preAggregationCTEs: (U = S.preAggregationCTEs) == null ? void 0 : U.filter((o) => o.cube.name !== I.name)
1456
- } : void 0, C = this.queryBuilder.buildWhereConditions(I, R, A, s), t = [];
1504
+ } : void 0, C = this.queryBuilder.buildWhereConditions(I, R, A, t), s = [];
1457
1505
  if (R.timeDimensions)
1458
1506
  for (const o of R.timeDimensions) {
1459
1507
  const [G, P] = o.dimension.split(".");
1460
1508
  if (G === n && I.dimensions && I.dimensions[P] && o.dateRange) {
1461
1509
  const H = I.dimensions[P], l = this.queryBuilder.buildMeasureExpression({ sql: H.sql, type: "number" }, A), B = this.queryBuilder.buildDateRangeCondition(l, o.dateRange);
1462
- B && t.push(B);
1510
+ B && s.push(B);
1463
1511
  }
1464
1512
  }
1465
1513
  if (R.filters) {
@@ -1470,13 +1518,13 @@ class IE {
1470
1518
  const l = I.dimensions[H];
1471
1519
  if (G.operator === "inDateRange") {
1472
1520
  const B = this.queryBuilder.buildMeasureExpression({ sql: l.sql, type: "number" }, A), u = this.queryBuilder.buildDateRangeCondition(B, G.values);
1473
- u && t.push(u);
1521
+ u && s.push(u);
1474
1522
  }
1475
1523
  }
1476
1524
  }
1477
1525
  }
1478
1526
  const i = [];
1479
- if (N.where && i.push(N.where), i.push(...C, ...t), i.length > 0) {
1527
+ if (N.where && i.push(N.where), i.push(...C, ...s), i.length > 0) {
1480
1528
  const o = i.length === 1 ? i[0] : d(...i);
1481
1529
  O = O.where(o);
1482
1530
  }
@@ -1512,8 +1560,8 @@ class IE {
1512
1560
  throw new Error(`CTE info not found for cube ${E.cube.name}`);
1513
1561
  const I = [];
1514
1562
  for (const e of S.joinKeys) {
1515
- const n = e.sourceColumnObj || r.identifier(e.sourceColumn), O = r`${r.identifier(R)}.${r.identifier(e.targetColumn)}`;
1516
- I.push(mE(n, O));
1563
+ const n = e.sourceColumnObj || _.identifier(e.sourceColumn), O = _`${_.identifier(R)}.${_.identifier(e.targetColumn)}`;
1564
+ I.push(EE(n, O));
1517
1565
  }
1518
1566
  return I.length === 1 ? I[0] : d(...I);
1519
1567
  }
@@ -1541,43 +1589,43 @@ class IE {
1541
1589
  if (n[l]) {
1542
1590
  const [, B] = l.split("."), u = this.getCubesFromPlan(E).get(H);
1543
1591
  if (u && u.measures && u.measures[B]) {
1544
- const p = u.measures[B], W = r`${r.identifier(P.cteAlias)}.${r.identifier(B)}`;
1592
+ const p = u.measures[B], f = _`${_.identifier(P.cteAlias)}.${_.identifier(B)}`;
1545
1593
  let h;
1546
1594
  switch (p.type) {
1547
1595
  case "count":
1548
1596
  case "countDistinct":
1549
1597
  case "sum":
1550
- h = y(W);
1598
+ h = y(f);
1551
1599
  break;
1552
1600
  case "avg":
1553
- h = this.databaseAdapter.buildAvg(W);
1601
+ h = this.databaseAdapter.buildAvg(f);
1554
1602
  break;
1555
1603
  case "min":
1556
- h = FE(W);
1604
+ h = VE(f);
1557
1605
  break;
1558
1606
  case "max":
1559
- h = uE(W);
1607
+ h = dE(f);
1560
1608
  break;
1561
1609
  case "number":
1562
- h = y(W);
1610
+ h = y(f);
1563
1611
  break;
1564
1612
  default:
1565
- h = y(W);
1613
+ h = y(f);
1566
1614
  }
1567
- n[l] = r`${h}`.as(l);
1615
+ n[l] = _`${h}`.as(l);
1568
1616
  }
1569
1617
  }
1570
1618
  for (const l in n) {
1571
1619
  const [B, u] = l.split(".");
1572
1620
  if (B === H) {
1573
- const p = this.getCubesFromPlan(E).get(H), W = p && ((U = p.dimensions) == null ? void 0 : U[u]), h = l.startsWith(H + ".");
1574
- if (W || h) {
1575
- let RE = P.joinKeys.find((AE) => AE.targetColumn === u);
1576
- if (!RE && ((o = p == null ? void 0 : p.dimensions) != null && o[u])) {
1577
- const AE = p.dimensions[u].sql;
1578
- RE = P.joinKeys.find((WT) => WT.targetColumnObj === AE);
1621
+ const p = this.getCubesFromPlan(E).get(H), f = p && ((U = p.dimensions) == null ? void 0 : U[u]), h = l.startsWith(H + ".");
1622
+ if (f || h) {
1623
+ let AE = P.joinKeys.find((SE) => SE.targetColumn === u);
1624
+ if (!AE && ((o = p == null ? void 0 : p.dimensions) != null && o[u])) {
1625
+ const SE = p.dimensions[u].sql;
1626
+ AE = P.joinKeys.find(($T) => $T.targetColumnObj === SE);
1579
1627
  }
1580
- RE ? n[l] = r`${r.identifier(P.cteAlias)}.${r.identifier(u)}`.as(l) : h && ((G = p == null ? void 0 : p.dimensions) != null && G[u]) && (n[l] = r`${r.identifier(P.cteAlias)}.${r.identifier(u)}`.as(l));
1628
+ AE ? n[l] = _`${_.identifier(P.cteAlias)}.${_.identifier(u)}`.as(l) : h && ((G = p == null ? void 0 : p.dimensions) != null && G[u]) && (n[l] = _`${_.identifier(P.cteAlias)}.${_.identifier(u)}`.as(l));
1581
1629
  }
1582
1630
  }
1583
1631
  }
@@ -1603,7 +1651,7 @@ class IE {
1603
1651
  for (const P of E.joinCubes) {
1604
1652
  const H = I.get(P.cube.name);
1605
1653
  let l, B;
1606
- H ? (l = r`${r.identifier(H)}`, B = this.buildCTEJoinCondition(P, H, E)) : (l = P.cube.sql(A).from, B = P.joinCondition);
1654
+ H ? (l = _`${_.identifier(H)}`, B = this.buildCTEJoinCondition(P, H, E)) : (l = P.cube.sql(A).from, B = P.joinCondition);
1607
1655
  try {
1608
1656
  switch (P.joinType || "left") {
1609
1657
  case "left":
@@ -1622,13 +1670,13 @@ class IE {
1622
1670
  } catch {
1623
1671
  }
1624
1672
  }
1625
- const s = [];
1626
- if (N.where && s.push(N.where), E.joinCubes && E.joinCubes.length > 0)
1673
+ const t = [];
1674
+ if (N.where && t.push(N.where), E.joinCubes && E.joinCubes.length > 0)
1627
1675
  for (const P of E.joinCubes) {
1628
1676
  if (I.get(P.cube.name))
1629
1677
  continue;
1630
1678
  const l = P.cube.sql(A);
1631
- l.where && s.push(l.where);
1679
+ l.where && t.push(l.where);
1632
1680
  }
1633
1681
  const C = this.queryBuilder.buildWhereConditions(
1634
1682
  E.joinCubes.length > 0 ? this.getCubesFromPlan(E) : E.primaryCube,
@@ -1638,11 +1686,11 @@ class IE {
1638
1686
  E
1639
1687
  // Pass the queryPlan to handle CTE scenarios
1640
1688
  );
1641
- if (C.length > 0 && s.push(...C), s.length > 0) {
1642
- const P = s.length === 1 ? s[0] : d(...s);
1689
+ if (C.length > 0 && t.push(...C), t.length > 0) {
1690
+ const P = t.length === 1 ? t[0] : d(...t);
1643
1691
  O = O.where(P);
1644
1692
  }
1645
- const t = this.queryBuilder.buildGroupByFields(
1693
+ const s = this.queryBuilder.buildGroupByFields(
1646
1694
  E.joinCubes.length > 0 ? this.getCubesFromPlan(E) : E.primaryCube,
1647
1695
  // Single cube
1648
1696
  R,
@@ -1650,7 +1698,7 @@ class IE {
1650
1698
  E
1651
1699
  // Pass the queryPlan to handle CTE scenarios
1652
1700
  );
1653
- t.length > 0 && (O = O.groupBy(...t));
1701
+ s.length > 0 && (O = O.groupBy(...s));
1654
1702
  const i = this.queryBuilder.buildHavingConditions(
1655
1703
  E.joinCubes.length > 0 ? this.getCubesFromPlan(E) : E.primaryCube,
1656
1704
  // Single cube
@@ -1710,9 +1758,9 @@ class IE {
1710
1758
  const A = {}, S = {}, I = {}, N = [E.primaryCube];
1711
1759
  if (E.joinCubes && E.joinCubes.length > 0 && N.push(...E.joinCubes.map((e) => e.cube)), R.measures)
1712
1760
  for (const e of R.measures) {
1713
- const [n, O] = e.split("."), s = N.find((C) => C.name === n);
1714
- if (s && s.measures[O]) {
1715
- const C = s.measures[O];
1761
+ const [n, O] = e.split("."), t = N.find((C) => C.name === n);
1762
+ if (t && t.measures[O]) {
1763
+ const C = t.measures[O];
1716
1764
  A[e] = {
1717
1765
  title: C.title || O,
1718
1766
  shortTitle: C.title || O,
@@ -1722,9 +1770,9 @@ class IE {
1722
1770
  }
1723
1771
  if (R.dimensions)
1724
1772
  for (const e of R.dimensions) {
1725
- const [n, O] = e.split("."), s = N.find((C) => C.name === n);
1726
- if (s && s.dimensions[O]) {
1727
- const C = s.dimensions[O];
1773
+ const [n, O] = e.split("."), t = N.find((C) => C.name === n);
1774
+ if (t && t.dimensions[O]) {
1775
+ const C = t.dimensions[O];
1728
1776
  S[e] = {
1729
1777
  title: C.title || O,
1730
1778
  shortTitle: C.title || O,
@@ -1734,9 +1782,9 @@ class IE {
1734
1782
  }
1735
1783
  if (R.timeDimensions)
1736
1784
  for (const e of R.timeDimensions) {
1737
- const [n, O] = e.dimension.split("."), s = N.find((C) => C.name === n);
1738
- if (s && s.dimensions && s.dimensions[O]) {
1739
- const C = s.dimensions[O];
1785
+ const [n, O] = e.dimension.split("."), t = N.find((C) => C.name === n);
1786
+ if (t && t.dimensions && t.dimensions[O]) {
1787
+ const C = t.dimensions[O];
1740
1788
  I[e.dimension] = {
1741
1789
  title: C.title || O,
1742
1790
  shortTitle: C.title || O,
@@ -1753,10 +1801,10 @@ class IE {
1753
1801
  };
1754
1802
  }
1755
1803
  }
1756
- const L = (T) => T.flatMap(IR), IR = (T) => k(eR(T)).map(NR), NR = (T) => T.replace(/ +/g, " ").trim(), eR = (T) => ({
1804
+ const L = (T) => T.flatMap(IR), IR = (T) => q(eR(T)).map(NR), NR = (T) => T.replace(/ +/g, " ").trim(), eR = (T) => ({
1757
1805
  type: "mandatory_block",
1758
- items: VE(T, 0)[0]
1759
- }), VE = (T, E, R) => {
1806
+ items: XE(T, 0)[0]
1807
+ }), XE = (T, E, R) => {
1760
1808
  const A = [];
1761
1809
  for (; T[E]; ) {
1762
1810
  const [S, I] = CR(T, E);
@@ -1777,16 +1825,16 @@ const L = (T) => T.flatMap(IR), IR = (T) => k(eR(T)).map(NR), NR = (T) => T.repl
1777
1825
  }, CR = (T, E) => {
1778
1826
  const R = [];
1779
1827
  for (; ; ) {
1780
- const [A, S] = sR(T, E);
1828
+ const [A, S] = tR(T, E);
1781
1829
  if (A)
1782
1830
  R.push(A), E = S;
1783
1831
  else
1784
1832
  break;
1785
1833
  }
1786
1834
  return R.length === 1 ? [R[0], E] : [{ type: "concatenation", items: R }, E];
1787
- }, sR = (T, E) => {
1835
+ }, tR = (T, E) => {
1788
1836
  if (T[E] === "{")
1789
- return tR(T, E + 1);
1837
+ return sR(T, E + 1);
1790
1838
  if (T[E] === "[")
1791
1839
  return LR(T, E + 1);
1792
1840
  {
@@ -1795,21 +1843,21 @@ const L = (T) => T.flatMap(IR), IR = (T) => k(eR(T)).map(NR), NR = (T) => T.repl
1795
1843
  R += T[E], E++;
1796
1844
  return [R, E];
1797
1845
  }
1798
- }, tR = (T, E) => {
1799
- const [R, A] = VE(T, E, "}");
1846
+ }, sR = (T, E) => {
1847
+ const [R, A] = XE(T, E, "}");
1800
1848
  return [{ type: "mandatory_block", items: R }, A];
1801
1849
  }, LR = (T, E) => {
1802
- const [R, A] = VE(T, E, "]");
1850
+ const [R, A] = XE(T, E, "]");
1803
1851
  return [{ type: "optional_block", items: R }, A];
1804
- }, k = (T) => {
1852
+ }, q = (T) => {
1805
1853
  if (typeof T == "string")
1806
1854
  return [T];
1807
1855
  if (T.type === "concatenation")
1808
- return T.items.map(k).reduce(_R, [""]);
1856
+ return T.items.map(q).reduce(_R, [""]);
1809
1857
  if (T.type === "mandatory_block")
1810
- return T.items.flatMap(k);
1858
+ return T.items.flatMap(q);
1811
1859
  if (T.type === "optional_block")
1812
- return ["", ...T.items.flatMap(k)];
1860
+ return ["", ...T.items.flatMap(q)];
1813
1861
  throw new Error(`Unknown node type: ${T}`);
1814
1862
  }, _R = (T, E) => {
1815
1863
  const R = [];
@@ -1822,19 +1870,19 @@ var D;
1822
1870
  (function(T) {
1823
1871
  T.QUOTED_IDENTIFIER = "QUOTED_IDENTIFIER", T.IDENTIFIER = "IDENTIFIER", T.STRING = "STRING", T.VARIABLE = "VARIABLE", T.RESERVED_DATA_TYPE = "RESERVED_DATA_TYPE", T.RESERVED_PARAMETERIZED_DATA_TYPE = "RESERVED_PARAMETERIZED_DATA_TYPE", T.RESERVED_KEYWORD = "RESERVED_KEYWORD", T.RESERVED_FUNCTION_NAME = "RESERVED_FUNCTION_NAME", T.RESERVED_PHRASE = "RESERVED_PHRASE", T.RESERVED_SET_OPERATION = "RESERVED_SET_OPERATION", T.RESERVED_CLAUSE = "RESERVED_CLAUSE", T.RESERVED_SELECT = "RESERVED_SELECT", T.RESERVED_JOIN = "RESERVED_JOIN", T.ARRAY_IDENTIFIER = "ARRAY_IDENTIFIER", T.ARRAY_KEYWORD = "ARRAY_KEYWORD", T.CASE = "CASE", T.END = "END", T.WHEN = "WHEN", T.ELSE = "ELSE", T.THEN = "THEN", T.LIMIT = "LIMIT", T.BETWEEN = "BETWEEN", T.AND = "AND", T.OR = "OR", T.XOR = "XOR", T.OPERATOR = "OPERATOR", T.COMMA = "COMMA", T.ASTERISK = "ASTERISK", T.PROPERTY_ACCESS_OPERATOR = "PROPERTY_ACCESS_OPERATOR", T.OPEN_PAREN = "OPEN_PAREN", T.CLOSE_PAREN = "CLOSE_PAREN", T.LINE_COMMENT = "LINE_COMMENT", T.BLOCK_COMMENT = "BLOCK_COMMENT", T.DISABLE_COMMENT = "DISABLE_COMMENT", T.NUMBER = "NUMBER", T.NAMED_PARAMETER = "NAMED_PARAMETER", T.QUOTED_PARAMETER = "QUOTED_PARAMETER", T.NUMBERED_PARAMETER = "NUMBERED_PARAMETER", T.POSITIONAL_PARAMETER = "POSITIONAL_PARAMETER", T.CUSTOM_PARAMETER = "CUSTOM_PARAMETER", T.DELIMITER = "DELIMITER", T.EOF = "EOF";
1824
1872
  })(D = D || (D = {}));
1825
- const MT = (T) => ({
1873
+ const HT = (T) => ({
1826
1874
  type: D.EOF,
1827
1875
  raw: "«EOF»",
1828
1876
  text: "«EOF»",
1829
1877
  start: T
1830
- }), w = MT(1 / 0), J = (T) => (E) => E.type === T.type && E.text === T.text, $ = {
1831
- ARRAY: J({ text: "ARRAY", type: D.RESERVED_DATA_TYPE }),
1832
- BY: J({ text: "BY", type: D.RESERVED_KEYWORD }),
1833
- SET: J({ text: "SET", type: D.RESERVED_CLAUSE }),
1834
- STRUCT: J({ text: "STRUCT", type: D.RESERVED_DATA_TYPE }),
1835
- WINDOW: J({ text: "WINDOW", type: D.RESERVED_CLAUSE }),
1836
- VALUES: J({ text: "VALUES", type: D.RESERVED_CLAUSE })
1837
- }, UT = (T) => T === D.RESERVED_DATA_TYPE || T === D.RESERVED_KEYWORD || T === D.RESERVED_FUNCTION_NAME || T === D.RESERVED_PHRASE || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.ARRAY_KEYWORD || T === D.CASE || T === D.END || T === D.WHEN || T === D.ELSE || T === D.THEN || T === D.LIMIT || T === D.BETWEEN || T === D.AND || T === D.OR || T === D.XOR, rR = (T) => T === D.AND || T === D.OR || T === D.XOR, nR = [
1878
+ }), Q = HT(1 / 0), x = (T) => (E) => E.type === T.type && E.text === T.text, $ = {
1879
+ ARRAY: x({ text: "ARRAY", type: D.RESERVED_DATA_TYPE }),
1880
+ BY: x({ text: "BY", type: D.RESERVED_KEYWORD }),
1881
+ SET: x({ text: "SET", type: D.RESERVED_CLAUSE }),
1882
+ STRUCT: x({ text: "STRUCT", type: D.RESERVED_DATA_TYPE }),
1883
+ WINDOW: x({ text: "WINDOW", type: D.RESERVED_CLAUSE }),
1884
+ VALUES: x({ text: "VALUES", type: D.RESERVED_CLAUSE })
1885
+ }, BT = (T) => T === D.RESERVED_DATA_TYPE || T === D.RESERVED_KEYWORD || T === D.RESERVED_FUNCTION_NAME || T === D.RESERVED_PHRASE || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.ARRAY_KEYWORD || T === D.CASE || T === D.END || T === D.WHEN || T === D.ELSE || T === D.THEN || T === D.LIMIT || T === D.BETWEEN || T === D.AND || T === D.OR || T === D.XOR, rR = (T) => T === D.AND || T === D.OR || T === D.XOR, nR = [
1838
1886
  // https://cloud.google.com/bigquery/docs/reference/standard-sql/aead_encryption_functions
1839
1887
  "KEYS.NEW_KEYSET",
1840
1888
  "KEYS.ADD_KEY_FROM_RAW_BYTES",
@@ -2540,9 +2588,9 @@ const MT = (T) => ({
2540
2588
  "WITH CONNECTION",
2541
2589
  "WITH PARTITION COLUMNS",
2542
2590
  "REMOTE WITH CONNECTION"
2543
- ]), JE = L([
2591
+ ]), ZE = L([
2544
2592
  "CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"
2545
- ]), OE = L([
2593
+ ]), sE = L([
2546
2594
  // - create:
2547
2595
  // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
2548
2596
  "CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]",
@@ -2653,7 +2701,7 @@ const MT = (T) => ({
2653
2701
  name: "bigquery",
2654
2702
  tokenizerOptions: {
2655
2703
  reservedSelect: PR,
2656
- reservedClauses: [...oR, ...OE, ...JE],
2704
+ reservedClauses: [...oR, ...sE, ...ZE],
2657
2705
  reservedSetOperations: aR,
2658
2706
  reservedJoins: MR,
2659
2707
  reservedPhrases: UR,
@@ -2680,15 +2728,15 @@ const MT = (T) => ({
2680
2728
  postProcess: cR
2681
2729
  },
2682
2730
  formatOptions: {
2683
- onelineClauses: [...JE, ...OE],
2684
- tabularOnelineClauses: OE
2731
+ onelineClauses: [...ZE, ...sE],
2732
+ tabularOnelineClauses: sE
2685
2733
  }
2686
2734
  };
2687
2735
  function cR(T) {
2688
2736
  return lR(HR(T));
2689
2737
  }
2690
2738
  function lR(T) {
2691
- let E = w;
2739
+ let E = Q;
2692
2740
  return T.map((R) => R.text === "OFFSET" && E.text === "[" ? (E = R, Object.assign(Object.assign({}, R), { type: D.RESERVED_FUNCTION_NAME })) : (E = R, R));
2693
2741
  }
2694
2742
  function HR(T) {
@@ -2700,8 +2748,8 @@ function HR(T) {
2700
2748
  const I = BR(T, A + 1), N = T.slice(A, I + 1);
2701
2749
  R.push({
2702
2750
  type: D.IDENTIFIER,
2703
- raw: N.map(xE("raw")).join(""),
2704
- text: N.map(xE("text")).join(""),
2751
+ raw: N.map(kE("raw")).join(""),
2752
+ text: N.map(kE("text")).join(""),
2705
2753
  start: S.start
2706
2754
  }), A = I;
2707
2755
  } else
@@ -2709,7 +2757,7 @@ function HR(T) {
2709
2757
  }
2710
2758
  return R;
2711
2759
  }
2712
- const xE = (T) => (E) => E.type === D.IDENTIFIER || E.type === D.COMMA ? E[T] + " " : E[T];
2760
+ const kE = (T) => (E) => E.type === D.IDENTIFIER || E.type === D.COMMA ? E[T] + " " : E[T];
2713
2761
  function BR(T, E) {
2714
2762
  let R = 0;
2715
2763
  for (let A = E; A < T.length; A++) {
@@ -3511,9 +3559,9 @@ const uR = [
3511
3559
  "WHEN [NOT] MATCHED [THEN]",
3512
3560
  "UPDATE SET",
3513
3561
  "INSERT"
3514
- ]), wE = L([
3562
+ ]), qE = L([
3515
3563
  "CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"
3516
- ]), NE = L([
3564
+ ]), LE = L([
3517
3565
  // - create:
3518
3566
  "CREATE [OR REPLACE] VIEW",
3519
3567
  // - update:
@@ -3725,11 +3773,11 @@ const uR = [
3725
3773
  "ON UPDATE",
3726
3774
  "SET NULL",
3727
3775
  "{ROWS | RANGE} BETWEEN"
3728
- ]), fR = {
3776
+ ]), WR = {
3729
3777
  name: "db2",
3730
3778
  tokenizerOptions: {
3731
3779
  reservedSelect: mR,
3732
- reservedClauses: [...pR, ...wE, ...NE],
3780
+ reservedClauses: [...pR, ...qE, ...LE],
3733
3781
  reservedSetOperations: dR,
3734
3782
  reservedJoins: VR,
3735
3783
  reservedPhrases: hR,
@@ -3766,10 +3814,10 @@ const uR = [
3766
3814
  ]
3767
3815
  },
3768
3816
  formatOptions: {
3769
- onelineClauses: [...wE, ...NE],
3770
- tabularOnelineClauses: NE
3817
+ onelineClauses: [...qE, ...LE],
3818
+ tabularOnelineClauses: LE
3771
3819
  }
3772
- }, WR = [
3820
+ }, fR = [
3773
3821
  // https://www.ibm.com/docs/en/i/7.5?topic=functions-aggregate
3774
3822
  // TODO: 'ANY', - conflicts with test for ANY predicate in 'operators.ys'!!
3775
3823
  "ARRAY_AGG",
@@ -4665,7 +4713,7 @@ const uR = [
4665
4713
  "INSERT",
4666
4714
  // Data definition - table
4667
4715
  "FOR SYSTEM NAME"
4668
- ]), vE = L(["CREATE [OR REPLACE] TABLE"]), eE = L([
4716
+ ]), jE = L(["CREATE [OR REPLACE] TABLE"]), _E = L([
4669
4717
  // - create:
4670
4718
  "CREATE [OR REPLACE] [RECURSIVE] VIEW",
4671
4719
  // - update:
@@ -4771,17 +4819,17 @@ const uR = [
4771
4819
  "ON UPDATE",
4772
4820
  "SET NULL",
4773
4821
  "{ROWS | RANGE} BETWEEN"
4774
- ]), xR = {
4822
+ ]), wR = {
4775
4823
  name: "db2i",
4776
4824
  tokenizerOptions: {
4777
4825
  reservedSelect: KR,
4778
- reservedClauses: [...yR, ...vE, ...eE],
4826
+ reservedClauses: [...yR, ...jE, ..._E],
4779
4827
  reservedSetOperations: $R,
4780
4828
  reservedJoins: gR,
4781
4829
  reservedPhrases: JR,
4782
4830
  reservedKeywords: XR,
4783
4831
  reservedDataTypes: bR,
4784
- reservedFunctionNames: WR,
4832
+ reservedFunctionNames: fR,
4785
4833
  nestedBlockComments: !0,
4786
4834
  extraParens: ["[]"],
4787
4835
  stringTypes: [
@@ -4795,10 +4843,10 @@ const uR = [
4795
4843
  operators: ["**", "¬=", "¬>", "¬<", "!>", "!<", "||", "=>"]
4796
4844
  },
4797
4845
  formatOptions: {
4798
- onelineClauses: [...vE, ...eE],
4799
- tabularOnelineClauses: eE
4846
+ onelineClauses: [...jE, ..._E],
4847
+ tabularOnelineClauses: _E
4800
4848
  }
4801
- }, wR = [
4849
+ }, xR = [
4802
4850
  // Functions from DuckDB (excluding those that start with an underscore):
4803
4851
  // SELECT DISTINCT upper(function_name) AS function_name
4804
4852
  // FROM duckdb_functions()
@@ -5623,7 +5671,7 @@ const uR = [
5623
5671
  "UUID",
5624
5672
  "VARBINARY",
5625
5673
  "VARCHAR"
5626
- ], ZR = L(["SELECT [ALL | DISTINCT]"]), qR = L([
5674
+ ], ZR = L(["SELECT [ALL | DISTINCT]"]), kR = L([
5627
5675
  // queries
5628
5676
  "WITH [RECURSIVE]",
5629
5677
  "FROM",
@@ -5647,9 +5695,9 @@ const uR = [
5647
5695
  "SET",
5648
5696
  // other:
5649
5697
  "RETURNING"
5650
- ]), QE = L([
5698
+ ]), zE = L([
5651
5699
  "CREATE [OR REPLACE] [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"
5652
- ]), CE = L([
5700
+ ]), rE = L([
5653
5701
  // TABLE
5654
5702
  // - update:
5655
5703
  "UPDATE",
@@ -5727,7 +5775,7 @@ const uR = [
5727
5775
  "PREPARE",
5728
5776
  "EXECUTE",
5729
5777
  "DEALLOCATE [PREPARE]"
5730
- ]), kR = L([
5778
+ ]), qR = L([
5731
5779
  "UNION [ALL | BY NAME]",
5732
5780
  "EXCEPT [ALL]",
5733
5781
  "INTERSECT [ALL]"
@@ -5749,14 +5797,14 @@ const uR = [
5749
5797
  name: "duckdb",
5750
5798
  tokenizerOptions: {
5751
5799
  reservedSelect: ZR,
5752
- reservedClauses: [...qR, ...QE, ...CE],
5753
- reservedSetOperations: kR,
5800
+ reservedClauses: [...kR, ...zE, ...rE],
5801
+ reservedSetOperations: qR,
5754
5802
  reservedJoins: jR,
5755
5803
  reservedPhrases: zR,
5756
5804
  supportsXor: !0,
5757
5805
  reservedKeywords: vR,
5758
5806
  reservedDataTypes: QR,
5759
- reservedFunctionNames: wR,
5807
+ reservedFunctionNames: xR,
5760
5808
  nestedBlockComments: !0,
5761
5809
  extraParens: ["[]", "{}"],
5762
5810
  stringTypes: [
@@ -5816,8 +5864,8 @@ const uR = [
5816
5864
  },
5817
5865
  formatOptions: {
5818
5866
  alwaysDenseOperators: ["::"],
5819
- onelineClauses: [...QE, ...CE],
5820
- tabularOnelineClauses: CE
5867
+ onelineClauses: [...zE, ...rE],
5868
+ tabularOnelineClauses: rE
5821
5869
  }
5822
5870
  }, TA = [
5823
5871
  // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
@@ -6397,9 +6445,9 @@ const uR = [
6397
6445
  // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Loadingfilesintotables
6398
6446
  "LOAD DATA [LOCAL] INPATH",
6399
6447
  "[OVERWRITE] INTO TABLE"
6400
- ]), ZE = L([
6448
+ ]), ET = L([
6401
6449
  "CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"
6402
- ]), sE = L([
6450
+ ]), nE = L([
6403
6451
  // - create:
6404
6452
  "CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]",
6405
6453
  // - update:
@@ -6434,7 +6482,7 @@ const uR = [
6434
6482
  name: "hive",
6435
6483
  tokenizerOptions: {
6436
6484
  reservedSelect: SA,
6437
- reservedClauses: [...IA, ...ZE, ...sE],
6485
+ reservedClauses: [...IA, ...ET, ...nE],
6438
6486
  reservedSetOperations: OA,
6439
6487
  reservedJoins: NA,
6440
6488
  reservedPhrases: eA,
@@ -6448,20 +6496,20 @@ const uR = [
6448
6496
  operators: ["%", "~", "^", "|", "&", "<=>", "==", "!", "||"]
6449
6497
  },
6450
6498
  formatOptions: {
6451
- onelineClauses: [...ZE, ...sE],
6452
- tabularOnelineClauses: sE
6499
+ onelineClauses: [...ET, ...nE],
6500
+ tabularOnelineClauses: nE
6453
6501
  }
6454
6502
  };
6455
- function TE(T) {
6503
+ function RE(T) {
6456
6504
  return T.map((E, R) => {
6457
- const A = T[R + 1] || w;
6505
+ const A = T[R + 1] || Q;
6458
6506
  if ($.SET(E) && A.text === "(")
6459
6507
  return Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME });
6460
- const S = T[R - 1] || w;
6508
+ const S = T[R - 1] || Q;
6461
6509
  return $.VALUES(E) && S.text === "=" ? Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME }) : E;
6462
6510
  });
6463
6511
  }
6464
- const sA = [
6512
+ const tA = [
6465
6513
  // https://mariadb.com/kb/en/reserved-words/
6466
6514
  "ACCESSIBLE",
6467
6515
  "ADD",
@@ -6678,7 +6726,7 @@ const sA = [
6678
6726
  "XOR",
6679
6727
  "YEAR_MONTH",
6680
6728
  "ZEROFILL"
6681
- ], tA = [
6729
+ ], sA = [
6682
6730
  // https://mariadb.com/kb/en/data-types/
6683
6731
  "BIGINT",
6684
6732
  "BINARY",
@@ -6989,9 +7037,9 @@ const sA = [
6989
7037
  "SET",
6990
7038
  // other
6991
7039
  "RETURNING"
6992
- ]), qE = L([
7040
+ ]), TT = L([
6993
7041
  "CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"
6994
- ]), tE = L([
7042
+ ]), DE = L([
6995
7043
  // - create:
6996
7044
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
6997
7045
  // - update:
@@ -7220,13 +7268,13 @@ const sA = [
7220
7268
  name: "mariadb",
7221
7269
  tokenizerOptions: {
7222
7270
  reservedSelect: _A,
7223
- reservedClauses: [...rA, ...qE, ...tE],
7271
+ reservedClauses: [...rA, ...TT, ...DE],
7224
7272
  reservedSetOperations: nA,
7225
7273
  reservedJoins: DA,
7226
7274
  reservedPhrases: iA,
7227
7275
  supportsXor: !0,
7228
- reservedKeywords: sA,
7229
- reservedDataTypes: tA,
7276
+ reservedKeywords: tA,
7277
+ reservedDataTypes: sA,
7230
7278
  reservedFunctionNames: LA,
7231
7279
  // TODO: support _ char set prefixes such as _utf8, _latin1, _binary, _utf8mb4, etc.
7232
7280
  stringTypes: [
@@ -7260,11 +7308,11 @@ const sA = [
7260
7308
  "*.*"
7261
7309
  // Not actually an operator
7262
7310
  ],
7263
- postProcess: TE
7311
+ postProcess: RE
7264
7312
  },
7265
7313
  formatOptions: {
7266
- onelineClauses: [...qE, ...tE],
7267
- tabularOnelineClauses: tE
7314
+ onelineClauses: [...TT, ...DE],
7315
+ tabularOnelineClauses: DE
7268
7316
  }
7269
7317
  }, oA = [
7270
7318
  // https://dev.mysql.com/doc/refman/8.0/en/keywords.html
@@ -7992,7 +8040,7 @@ const sA = [
7992
8040
  "ON DUPLICATE KEY UPDATE",
7993
8041
  // - update:
7994
8042
  "SET"
7995
- ]), kE = L(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), LE = L([
8043
+ ]), RT = L(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), iE = L([
7996
8044
  // - create:
7997
8045
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
7998
8046
  // - update:
@@ -8190,7 +8238,7 @@ const sA = [
8190
8238
  name: "mysql",
8191
8239
  tokenizerOptions: {
8192
8240
  reservedSelect: UA,
8193
- reservedClauses: [...GA, ...kE, ...LE],
8241
+ reservedClauses: [...GA, ...RT, ...iE],
8194
8242
  reservedSetOperations: cA,
8195
8243
  reservedJoins: lA,
8196
8244
  reservedPhrases: HA,
@@ -8232,11 +8280,11 @@ const sA = [
8232
8280
  "*.*"
8233
8281
  // Not actually an operator
8234
8282
  ],
8235
- postProcess: TE
8283
+ postProcess: RE
8236
8284
  },
8237
8285
  formatOptions: {
8238
- onelineClauses: [...kE, ...LE],
8239
- tabularOnelineClauses: LE
8286
+ onelineClauses: [...RT, ...iE],
8287
+ tabularOnelineClauses: iE
8240
8288
  }
8241
8289
  }, uA = [
8242
8290
  // https://docs.pingcap.com/tidb/stable/keywords
@@ -8823,7 +8871,7 @@ const sA = [
8823
8871
  "ON DUPLICATE KEY UPDATE",
8824
8872
  // - update:
8825
8873
  "SET"
8826
- ]), jE = L(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), _E = L([
8874
+ ]), AT = L(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), PE = L([
8827
8875
  // https://docs.pingcap.com/tidb/stable/sql-statement-create-view
8828
8876
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
8829
8877
  // https://docs.pingcap.com/tidb/stable/sql-statement-update
@@ -8951,11 +8999,11 @@ const sA = [
8951
8999
  "CHARACTER SET",
8952
9000
  "{ROWS | RANGE} BETWEEN",
8953
9001
  "IDENTIFIED BY"
8954
- ]), fA = {
9002
+ ]), WA = {
8955
9003
  name: "tidb",
8956
9004
  tokenizerOptions: {
8957
9005
  reservedSelect: mA,
8958
- reservedClauses: [...pA, ...jE, ..._E],
9006
+ reservedClauses: [...pA, ...AT, ...PE],
8959
9007
  reservedSetOperations: dA,
8960
9008
  reservedJoins: VA,
8961
9009
  reservedPhrases: hA,
@@ -8997,13 +9045,13 @@ const sA = [
8997
9045
  "*.*"
8998
9046
  // Not actually an operator
8999
9047
  ],
9000
- postProcess: TE
9048
+ postProcess: RE
9001
9049
  },
9002
9050
  formatOptions: {
9003
- onelineClauses: [...jE, ..._E],
9004
- tabularOnelineClauses: _E
9051
+ onelineClauses: [...AT, ...PE],
9052
+ tabularOnelineClauses: PE
9005
9053
  }
9006
- }, WA = [
9054
+ }, fA = [
9007
9055
  // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/functions.html
9008
9056
  "ABORT",
9009
9057
  "ABS",
@@ -9475,7 +9523,7 @@ const sA = [
9475
9523
  "NEST",
9476
9524
  "UNNEST",
9477
9525
  "RETURNING"
9478
- ]), zE = L([
9526
+ ]), ST = L([
9479
9527
  // - update:
9480
9528
  "UPDATE",
9481
9529
  // - delete:
@@ -9515,18 +9563,18 @@ const sA = [
9515
9563
  "SET CURRENT SCHEMA",
9516
9564
  "SHOW",
9517
9565
  "USE [PRIMARY] KEYS"
9518
- ]), $A = L(["UNION [ALL]", "EXCEPT [ALL]", "INTERSECT [ALL]"]), gA = L(["JOIN", "{LEFT | RIGHT} [OUTER] JOIN", "INNER JOIN"]), JA = L(["{ROWS | RANGE | GROUPS} BETWEEN"]), xA = {
9566
+ ]), $A = L(["UNION [ALL]", "EXCEPT [ALL]", "INTERSECT [ALL]"]), gA = L(["JOIN", "{LEFT | RIGHT} [OUTER] JOIN", "INNER JOIN"]), JA = L(["{ROWS | RANGE | GROUPS} BETWEEN"]), wA = {
9519
9567
  name: "n1ql",
9520
9568
  tokenizerOptions: {
9521
9569
  reservedSelect: KA,
9522
- reservedClauses: [...yA, ...zE],
9570
+ reservedClauses: [...yA, ...ST],
9523
9571
  reservedSetOperations: $A,
9524
9572
  reservedJoins: gA,
9525
9573
  reservedPhrases: JA,
9526
9574
  supportsXor: !0,
9527
9575
  reservedKeywords: XA,
9528
9576
  reservedDataTypes: bA,
9529
- reservedFunctionNames: WA,
9577
+ reservedFunctionNames: fA,
9530
9578
  // NOTE: single quotes are actually not supported in N1QL,
9531
9579
  // but we support them anyway as all other SQL dialects do,
9532
9580
  // which simplifies writing tests that are shared between all dialects.
@@ -9538,9 +9586,9 @@ const sA = [
9538
9586
  operators: ["%", "==", ":", "||"]
9539
9587
  },
9540
9588
  formatOptions: {
9541
- onelineClauses: zE
9589
+ onelineClauses: ST
9542
9590
  }
9543
- }, wA = [
9591
+ }, xA = [
9544
9592
  // https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/reservewords.htm
9545
9593
  // 'A',
9546
9594
  "ADD",
@@ -10148,7 +10196,7 @@ const sA = [
10148
10196
  "PRESENTNNV",
10149
10197
  "PRESENTV",
10150
10198
  "PREVIOUS"
10151
- ], ZA = L(["SELECT [ALL | DISTINCT | UNIQUE]"]), qA = L([
10199
+ ], ZA = L(["SELECT [ALL | DISTINCT | UNIQUE]"]), kA = L([
10152
10200
  // queries
10153
10201
  "WITH",
10154
10202
  "FROM",
@@ -10172,9 +10220,9 @@ const sA = [
10172
10220
  "UPDATE SET",
10173
10221
  // other
10174
10222
  "RETURNING"
10175
- ]), ET = L([
10223
+ ]), IT = L([
10176
10224
  "CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"
10177
- ]), rE = L([
10225
+ ]), oE = L([
10178
10226
  // - create:
10179
10227
  "CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW",
10180
10228
  "CREATE MATERIALIZED VIEW",
@@ -10202,7 +10250,7 @@ const sA = [
10202
10250
  "EXCEPTION",
10203
10251
  "LOOP",
10204
10252
  "START WITH"
10205
- ]), kA = L(["UNION [ALL]", "MINUS", "INTERSECT"]), jA = L([
10253
+ ]), qA = L(["UNION [ALL]", "MINUS", "INTERSECT"]), jA = L([
10206
10254
  "JOIN",
10207
10255
  "{LEFT | RIGHT | FULL} [OUTER] JOIN",
10208
10256
  "{INNER | CROSS} JOIN",
@@ -10218,12 +10266,12 @@ const sA = [
10218
10266
  name: "plsql",
10219
10267
  tokenizerOptions: {
10220
10268
  reservedSelect: ZA,
10221
- reservedClauses: [...qA, ...ET, ...rE],
10222
- reservedSetOperations: kA,
10269
+ reservedClauses: [...kA, ...IT, ...oE],
10270
+ reservedSetOperations: qA,
10223
10271
  reservedJoins: jA,
10224
10272
  reservedPhrases: zA,
10225
10273
  supportsXor: !0,
10226
- reservedKeywords: wA,
10274
+ reservedKeywords: xA,
10227
10275
  reservedDataTypes: vA,
10228
10276
  reservedFunctionNames: QA,
10229
10277
  stringTypes: [
@@ -10254,13 +10302,13 @@ const sA = [
10254
10302
  },
10255
10303
  formatOptions: {
10256
10304
  alwaysDenseOperators: ["@"],
10257
- onelineClauses: [...ET, ...rE],
10258
- tabularOnelineClauses: rE
10305
+ onelineClauses: [...IT, ...oE],
10306
+ tabularOnelineClauses: oE
10259
10307
  }
10260
10308
  };
10261
10309
  function TS(T) {
10262
- let E = w;
10263
- return T.map((R) => $.SET(R) && $.BY(E) ? Object.assign(Object.assign({}, R), { type: D.RESERVED_KEYWORD }) : (UT(R.type) && (E = R), R));
10310
+ let E = Q;
10311
+ return T.map((R) => $.SET(R) && $.BY(E) ? Object.assign(Object.assign({}, R), { type: D.RESERVED_KEYWORD }) : (BT(R.type) && (E = R), R));
10264
10312
  }
10265
10313
  const RS = [
10266
10314
  // https://www.postgresql.org/docs/14/functions.html
@@ -11122,9 +11170,9 @@ const RS = [
11122
11170
  "SET",
11123
11171
  // other
11124
11172
  "RETURNING"
11125
- ]), TT = L([
11173
+ ]), OT = L([
11126
11174
  "CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"
11127
- ]), nE = L([
11175
+ ]), aE = L([
11128
11176
  // - create
11129
11177
  "CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW",
11130
11178
  "CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]",
@@ -11345,11 +11393,11 @@ const RS = [
11345
11393
  "IS [NOT] DISTINCT FROM",
11346
11394
  "NULLS {FIRST | LAST}",
11347
11395
  "WITH ORDINALITY"
11348
- ]), sS = {
11396
+ ]), tS = {
11349
11397
  name: "postgresql",
11350
11398
  tokenizerOptions: {
11351
11399
  reservedSelect: IS,
11352
- reservedClauses: [...OS, ...TT, ...nE],
11400
+ reservedClauses: [...OS, ...OT, ...aE],
11353
11401
  reservedSetOperations: NS,
11354
11402
  reservedJoins: eS,
11355
11403
  reservedPhrases: CS,
@@ -11466,10 +11514,10 @@ const RS = [
11466
11514
  },
11467
11515
  formatOptions: {
11468
11516
  alwaysDenseOperators: ["::", ":"],
11469
- onelineClauses: [...TT, ...nE],
11470
- tabularOnelineClauses: nE
11517
+ onelineClauses: [...OT, ...aE],
11518
+ tabularOnelineClauses: aE
11471
11519
  }
11472
- }, tS = [
11520
+ }, sS = [
11473
11521
  // https://docs.aws.amazon.com/redshift/latest/dg/c_Aggregate_Functions.html
11474
11522
  "ANY_VALUE",
11475
11523
  "APPROXIMATE PERCENTILE_DISC",
@@ -12043,9 +12091,9 @@ const RS = [
12043
12091
  "VALUES",
12044
12092
  // - update:
12045
12093
  "SET"
12046
- ]), RT = L([
12094
+ ]), NT = L([
12047
12095
  "CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"
12048
- ]), DE = L([
12096
+ ]), ME = L([
12049
12097
  // - create:
12050
12098
  "CREATE [OR REPLACE | MATERIALIZED] VIEW",
12051
12099
  // - update:
@@ -12154,13 +12202,13 @@ const RS = [
12154
12202
  name: "redshift",
12155
12203
  tokenizerOptions: {
12156
12204
  reservedSelect: rS,
12157
- reservedClauses: [...nS, ...RT, ...DE],
12205
+ reservedClauses: [...nS, ...NT, ...ME],
12158
12206
  reservedSetOperations: DS,
12159
12207
  reservedJoins: iS,
12160
12208
  reservedPhrases: PS,
12161
12209
  reservedKeywords: LS,
12162
12210
  reservedDataTypes: _S,
12163
- reservedFunctionNames: tS,
12211
+ reservedFunctionNames: sS,
12164
12212
  stringTypes: ["''-qq"],
12165
12213
  identTypes: ['""-qq'],
12166
12214
  identChars: { first: "#" },
@@ -12183,8 +12231,8 @@ const RS = [
12183
12231
  },
12184
12232
  formatOptions: {
12185
12233
  alwaysDenseOperators: ["::"],
12186
- onelineClauses: [...RT, ...DE],
12187
- tabularOnelineClauses: DE
12234
+ onelineClauses: [...NT, ...ME],
12235
+ tabularOnelineClauses: ME
12188
12236
  }
12189
12237
  }, aS = [
12190
12238
  // https://deepkb.com/CO_000013/en/kb/IMPORT-fbfa59f0-2bf1-31fe-bb7b-0f9efe9932c6/spark-sql-keywords
@@ -12829,7 +12877,7 @@ const RS = [
12829
12877
  // https://spark.apache.org/docs/latest/sql-ref-syntax-dml-load.html
12830
12878
  "LOAD DATA [LOCAL] INPATH",
12831
12879
  "[OVERWRITE] INTO TABLE"
12832
- ]), AT = L(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]), iE = L([
12880
+ ]), eT = L(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]), UE = L([
12833
12881
  // - create:
12834
12882
  "CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]",
12835
12883
  // - drop table:
@@ -12907,7 +12955,7 @@ const RS = [
12907
12955
  name: "spark",
12908
12956
  tokenizerOptions: {
12909
12957
  reservedSelect: GS,
12910
- reservedClauses: [...cS, ...AT, ...iE],
12958
+ reservedClauses: [...cS, ...eT, ...UE],
12911
12959
  reservedSetOperations: lS,
12912
12960
  reservedJoins: HS,
12913
12961
  reservedPhrases: BS,
@@ -12929,13 +12977,13 @@ const RS = [
12929
12977
  postProcess: FS
12930
12978
  },
12931
12979
  formatOptions: {
12932
- onelineClauses: [...AT, ...iE],
12933
- tabularOnelineClauses: iE
12980
+ onelineClauses: [...eT, ...UE],
12981
+ tabularOnelineClauses: UE
12934
12982
  }
12935
12983
  };
12936
12984
  function FS(T) {
12937
12985
  return T.map((E, R) => {
12938
- const A = T[R - 1] || w, S = T[R + 1] || w;
12986
+ const A = T[R - 1] || Q, S = T[R + 1] || Q;
12939
12987
  return $.WINDOW(E) && S.type === D.OPEN_PAREN ? Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME }) : E.text === "ITEMS" && E.type === D.RESERVED_KEYWORD && !(A.text === "COLLECTION" && S.text === "TERMINATED") ? Object.assign(Object.assign({}, E), { type: D.IDENTIFIER, text: E.raw }) : E;
12940
12988
  });
12941
12989
  }
@@ -13256,7 +13304,7 @@ const YS = [
13256
13304
  "VALUES",
13257
13305
  // - update:
13258
13306
  "SET"
13259
- ]), ST = L(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]), PE = L([
13307
+ ]), CT = L(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]), GE = L([
13260
13308
  // - create:
13261
13309
  "CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]",
13262
13310
  // - update:
@@ -13275,13 +13323,13 @@ const YS = [
13275
13323
  "RENAME TO",
13276
13324
  // - set schema
13277
13325
  "SET SCHEMA"
13278
- ]), hS = L(["UNION [ALL]", "EXCEPT", "INTERSECT"]), fS = L([
13326
+ ]), hS = L(["UNION [ALL]", "EXCEPT", "INTERSECT"]), WS = L([
13279
13327
  "JOIN",
13280
13328
  "{LEFT | RIGHT | FULL} [OUTER] JOIN",
13281
13329
  "{INNER | CROSS} JOIN",
13282
13330
  "NATURAL [INNER] JOIN",
13283
13331
  "NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"
13284
- ]), WS = L([
13332
+ ]), fS = L([
13285
13333
  "ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]",
13286
13334
  "{ROWS | RANGE | GROUPS} BETWEEN",
13287
13335
  "DO UPDATE"
@@ -13289,10 +13337,10 @@ const YS = [
13289
13337
  name: "sqlite",
13290
13338
  tokenizerOptions: {
13291
13339
  reservedSelect: dS,
13292
- reservedClauses: [...VS, ...ST, ...PE],
13340
+ reservedClauses: [...VS, ...CT, ...GE],
13293
13341
  reservedSetOperations: hS,
13294
- reservedJoins: fS,
13295
- reservedPhrases: WS,
13342
+ reservedJoins: WS,
13343
+ reservedPhrases: fS,
13296
13344
  reservedKeywords: mS,
13297
13345
  reservedDataTypes: pS,
13298
13346
  reservedFunctionNames: YS,
@@ -13308,8 +13356,8 @@ const YS = [
13308
13356
  operators: ["%", "~", "&", "|", "<<", ">>", "==", "->", "->>", "||"]
13309
13357
  },
13310
13358
  formatOptions: {
13311
- onelineClauses: [...ST, ...PE],
13312
- tabularOnelineClauses: PE
13359
+ onelineClauses: [...CT, ...GE],
13360
+ tabularOnelineClauses: GE
13313
13361
  }
13314
13362
  }, bS = [
13315
13363
  // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_9_set_function_specification
@@ -13665,7 +13713,7 @@ const YS = [
13665
13713
  "VALUES",
13666
13714
  // - update:
13667
13715
  "SET"
13668
- ]), IT = L(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]), oE = L([
13716
+ ]), tT = L(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]), cE = L([
13669
13717
  // - create:
13670
13718
  "CREATE [RECURSIVE] VIEW",
13671
13719
  // - update:
@@ -13694,23 +13742,23 @@ const YS = [
13694
13742
  "UNION [ALL | DISTINCT]",
13695
13743
  "EXCEPT [ALL | DISTINCT]",
13696
13744
  "INTERSECT [ALL | DISTINCT]"
13697
- ]), xS = L([
13745
+ ]), wS = L([
13698
13746
  "JOIN",
13699
13747
  "{LEFT | RIGHT | FULL} [OUTER] JOIN",
13700
13748
  "{INNER | CROSS} JOIN",
13701
13749
  "NATURAL [INNER] JOIN",
13702
13750
  "NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"
13703
- ]), wS = L([
13751
+ ]), xS = L([
13704
13752
  "ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]",
13705
13753
  "{ROWS | RANGE} BETWEEN"
13706
13754
  ]), vS = {
13707
13755
  name: "sql",
13708
13756
  tokenizerOptions: {
13709
13757
  reservedSelect: $S,
13710
- reservedClauses: [...gS, ...IT, ...oE],
13758
+ reservedClauses: [...gS, ...tT, ...cE],
13711
13759
  reservedSetOperations: JS,
13712
- reservedJoins: xS,
13713
- reservedPhrases: wS,
13760
+ reservedJoins: wS,
13761
+ reservedPhrases: xS,
13714
13762
  reservedKeywords: KS,
13715
13763
  reservedDataTypes: yS,
13716
13764
  reservedFunctionNames: bS,
@@ -13723,8 +13771,8 @@ const YS = [
13723
13771
  operators: ["||"]
13724
13772
  },
13725
13773
  formatOptions: {
13726
- onelineClauses: [...IT, ...oE],
13727
- tabularOnelineClauses: oE
13774
+ onelineClauses: [...tT, ...cE],
13775
+ tabularOnelineClauses: cE
13728
13776
  }
13729
13777
  }, QS = [
13730
13778
  // https://github.com/trinodb/trino/tree/432d2897bdef99388c1a47188743a061c4ac1f34/docs/src/main/sphinx/functions
@@ -14397,7 +14445,7 @@ const YS = [
14397
14445
  "WRAPPER",
14398
14446
  "WRITE",
14399
14447
  "ZONE"
14400
- ], qS = [
14448
+ ], kS = [
14401
14449
  // https://github.com/trinodb/trino/blob/432d2897bdef99388c1a47188743a061c4ac1f34/core/trino-main/src/main/java/io/trino/metadata/TypeRegistry.java#L131-L168
14402
14450
  // or https://trino.io/docs/current/language/types.html
14403
14451
  "BIGINT",
@@ -14436,7 +14484,7 @@ const YS = [
14436
14484
  "CODEPOINTS",
14437
14485
  "FUNCTION",
14438
14486
  "JSONPATH"
14439
- ], kS = L(["SELECT [ALL | DISTINCT]"]), jS = L([
14487
+ ], qS = L(["SELECT [ALL | DISTINCT]"]), jS = L([
14440
14488
  // queries
14441
14489
  "WITH [RECURSIVE]",
14442
14490
  "FROM",
@@ -14464,7 +14512,7 @@ const YS = [
14464
14512
  "PATTERN",
14465
14513
  "SUBSET",
14466
14514
  "DEFINE"
14467
- ]), OT = L(["CREATE TABLE [IF NOT EXISTS]"]), aE = L([
14515
+ ]), sT = L(["CREATE TABLE [IF NOT EXISTS]"]), lE = L([
14468
14516
  // - create:
14469
14517
  "CREATE [OR REPLACE] [MATERIALIZED] VIEW",
14470
14518
  // - update:
@@ -14539,13 +14587,13 @@ const YS = [
14539
14587
  ]), RI = {
14540
14588
  name: "trino",
14541
14589
  tokenizerOptions: {
14542
- reservedSelect: kS,
14543
- reservedClauses: [...jS, ...OT, ...aE],
14590
+ reservedSelect: qS,
14591
+ reservedClauses: [...jS, ...sT, ...lE],
14544
14592
  reservedSetOperations: zS,
14545
14593
  reservedJoins: EI,
14546
14594
  reservedPhrases: TI,
14547
14595
  reservedKeywords: ZS,
14548
- reservedDataTypes: qS,
14596
+ reservedDataTypes: kS,
14549
14597
  reservedFunctionNames: QS,
14550
14598
  // Trino also supports {- ... -} parenthesis.
14551
14599
  // The formatting of these currently works out as a result of { and -
@@ -14575,8 +14623,8 @@ const YS = [
14575
14623
  ]
14576
14624
  },
14577
14625
  formatOptions: {
14578
- onelineClauses: [...OT, ...aE],
14579
- tabularOnelineClauses: aE
14626
+ onelineClauses: [...sT, ...lE],
14627
+ tabularOnelineClauses: lE
14580
14628
  }
14581
14629
  }, AI = [
14582
14630
  // https://docs.microsoft.com/en-us/sql/t-sql/functions/functions?view=sql-server-ver15
@@ -15118,7 +15166,7 @@ const YS = [
15118
15166
  "UPDATE SET",
15119
15167
  // Data definition
15120
15168
  "CREATE [OR ALTER] {PROC | PROCEDURE}"
15121
- ]), NT = L(["CREATE TABLE"]), ME = L([
15169
+ ]), LT = L(["CREATE TABLE"]), HE = L([
15122
15170
  // - create:
15123
15171
  "CREATE [OR ALTER] [MATERIALIZED] VIEW",
15124
15172
  // - update:
@@ -15304,17 +15352,17 @@ const YS = [
15304
15352
  "{INNER | CROSS} JOIN",
15305
15353
  // non-standard joins
15306
15354
  "{CROSS | OUTER} APPLY"
15307
- ]), sI = L([
15355
+ ]), tI = L([
15308
15356
  "ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]",
15309
15357
  "{ROWS | RANGE} BETWEEN"
15310
- ]), tI = {
15358
+ ]), sI = {
15311
15359
  name: "transactsql",
15312
15360
  tokenizerOptions: {
15313
15361
  reservedSelect: OI,
15314
- reservedClauses: [...NI, ...NT, ...ME],
15362
+ reservedClauses: [...NI, ...LT, ...HE],
15315
15363
  reservedSetOperations: eI,
15316
15364
  reservedJoins: CI,
15317
- reservedPhrases: sI,
15365
+ reservedPhrases: tI,
15318
15366
  reservedKeywords: SI,
15319
15367
  reservedDataTypes: II,
15320
15368
  reservedFunctionNames: AI,
@@ -15347,8 +15395,8 @@ const YS = [
15347
15395
  },
15348
15396
  formatOptions: {
15349
15397
  alwaysDenseOperators: ["::"],
15350
- onelineClauses: [...NT, ...ME],
15351
- tabularOnelineClauses: ME
15398
+ onelineClauses: [...LT, ...HE],
15399
+ tabularOnelineClauses: HE
15352
15400
  }
15353
15401
  }, LI = [
15354
15402
  // List of all keywords taken from:
@@ -15914,9 +15962,9 @@ const YS = [
15914
15962
  // Data definition
15915
15963
  "CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]",
15916
15964
  "CREATE [OR REPLACE] [EXTERNAL] FUNCTION"
15917
- ]), eT = L([
15965
+ ]), _T = L([
15918
15966
  "CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"
15919
- ]), UE = L([
15967
+ ]), BE = L([
15920
15968
  // - create:
15921
15969
  "CREATE VIEW",
15922
15970
  // - update:
@@ -16115,7 +16163,7 @@ const YS = [
16115
16163
  name: "singlestoredb",
16116
16164
  tokenizerOptions: {
16117
16165
  reservedSelect: nI,
16118
- reservedClauses: [...DI, ...eT, ...UE],
16166
+ reservedClauses: [...DI, ..._T, ...BE],
16119
16167
  reservedSetOperations: iI,
16120
16168
  reservedJoins: PI,
16121
16169
  reservedPhrases: oI,
@@ -16154,12 +16202,12 @@ const YS = [
16154
16202
  "*.*"
16155
16203
  // Not actually an operator
16156
16204
  ],
16157
- postProcess: TE
16205
+ postProcess: RE
16158
16206
  },
16159
16207
  formatOptions: {
16160
16208
  alwaysDenseOperators: ["::", "::$", "::%"],
16161
- onelineClauses: [...eT, ...UE],
16162
- tabularOnelineClauses: UE
16209
+ onelineClauses: [..._T, ...BE],
16210
+ tabularOnelineClauses: BE
16163
16211
  }
16164
16212
  }, MI = [
16165
16213
  // https://docs.snowflake.com/en/sql-reference-functions.html
@@ -16930,10 +16978,10 @@ const YS = [
16930
16978
  "WHEN MATCHED [AND]",
16931
16979
  "THEN {UPDATE SET | DELETE}",
16932
16980
  "WHEN NOT MATCHED THEN INSERT"
16933
- ]), CT = L([
16981
+ ]), rT = L([
16934
16982
  "CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]",
16935
16983
  "CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"
16936
- ]), GE = L([
16984
+ ]), uE = L([
16937
16985
  // - create:
16938
16986
  "CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]",
16939
16987
  // - update:
@@ -17185,7 +17233,7 @@ const YS = [
17185
17233
  name: "snowflake",
17186
17234
  tokenizerOptions: {
17187
17235
  reservedSelect: cI,
17188
- reservedClauses: [...lI, ...CT, ...GE],
17236
+ reservedClauses: [...lI, ...rT, ...uE],
17189
17237
  reservedSetOperations: HI,
17190
17238
  reservedJoins: BI,
17191
17239
  reservedPhrases: uI,
@@ -17221,46 +17269,46 @@ const YS = [
17221
17269
  },
17222
17270
  formatOptions: {
17223
17271
  alwaysDenseOperators: ["::"],
17224
- onelineClauses: [...CT, ...GE],
17225
- tabularOnelineClauses: GE
17272
+ onelineClauses: [...rT, ...uE],
17273
+ tabularOnelineClauses: uE
17226
17274
  }
17227
17275
  }, YI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
17228
17276
  __proto__: null,
17229
17277
  bigquery: GR,
17230
- db2: fR,
17231
- db2i: xR,
17278
+ db2: WR,
17279
+ db2i: wR,
17232
17280
  duckdb: EA,
17233
17281
  hive: CA,
17234
17282
  mariadb: PA,
17235
17283
  mysql: BA,
17236
- n1ql: xA,
17284
+ n1ql: wA,
17237
17285
  plsql: ES,
17238
- postgresql: sS,
17286
+ postgresql: tS,
17239
17287
  redshift: oS,
17240
17288
  singlestoredb: aI,
17241
17289
  snowflake: FI,
17242
17290
  spark: uS,
17243
17291
  sql: vS,
17244
17292
  sqlite: XS,
17245
- tidb: fA,
17246
- transactsql: tI,
17293
+ tidb: WA,
17294
+ transactsql: sI,
17247
17295
  trino: RI
17248
- }, Symbol.toStringTag, { value: "Module" })), q = (T) => T[T.length - 1], GT = (T) => T.sort((E, R) => R.length - E.length || E.localeCompare(R)), j = (T) => T.replace(/\s+/gu, " "), cE = (T) => /\n/.test(T), V = (T) => T.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), sT = /\s+/uy, g = (T) => new RegExp(`(?:${T})`, "uy"), mI = (T) => T.split("").map((E) => / /gu.test(E) ? "\\s+" : `[${E.toUpperCase()}${E.toLowerCase()}]`).join(""), pI = (T) => T + "(?:-" + T + ")*", dI = ({ prefixes: T, requirePrefix: E }) => `(?:${T.map(mI).join("|")}${E ? "" : "|"})`, VI = (T) => new RegExp(`(?:${T.map(V).join("|")}).*?(?=\r
17296
+ }, Symbol.toStringTag, { value: "Module" })), k = (T) => T[T.length - 1], uT = (T) => T.sort((E, R) => R.length - E.length || E.localeCompare(R)), j = (T) => T.replace(/\s+/gu, " "), FE = (T) => /\n/.test(T), V = (T) => T.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), nT = /\s+/uy, g = (T) => new RegExp(`(?:${T})`, "uy"), mI = (T) => T.split("").map((E) => / /gu.test(E) ? "\\s+" : `[${E.toUpperCase()}${E.toLowerCase()}]`).join(""), pI = (T) => T + "(?:-" + T + ")*", dI = ({ prefixes: T, requirePrefix: E }) => `(?:${T.map(mI).join("|")}${E ? "" : "|"})`, VI = (T) => new RegExp(`(?:${T.map(V).join("|")}).*?(?=\r
17249
17297
  |\r|
17250
- |$)`, "uy"), tT = (T, E = []) => {
17298
+ |$)`, "uy"), DT = (T, E = []) => {
17251
17299
  const R = T === "open" ? 0 : 1, A = ["()", ...E].map((S) => S[R]);
17252
17300
  return g(A.map(V).join("|"));
17253
- }, LT = (T) => g(`${GT(T).map(V).join("|")}`), hI = ({ rest: T, dashes: E }) => T || E ? `(?![${T || ""}${E ? "-" : ""}])` : "", X = (T, E = {}) => {
17301
+ }, iT = (T) => g(`${uT(T).map(V).join("|")}`), hI = ({ rest: T, dashes: E }) => T || E ? `(?![${T || ""}${E ? "-" : ""}])` : "", X = (T, E = {}) => {
17254
17302
  if (T.length === 0)
17255
17303
  return /^\b$/u;
17256
- const R = hI(E), A = GT(T).map(V).join("|").replace(/ /gu, "\\s+");
17304
+ const R = hI(E), A = uT(T).map(V).join("|").replace(/ /gu, "\\s+");
17257
17305
  return new RegExp(`(?:${A})${R}\\b`, "iuy");
17258
- }, lE = (T, E) => {
17306
+ }, YE = (T, E) => {
17259
17307
  if (!T.length)
17260
17308
  return;
17261
17309
  const R = T.map(V).join("|");
17262
17310
  return g(`(?:${R})(?:${E})`);
17263
- }, fI = () => {
17311
+ }, WI = () => {
17264
17312
  const T = {
17265
17313
  "<": ">",
17266
17314
  "[": "]",
@@ -17268,7 +17316,7 @@ const YS = [
17268
17316
  "{": "}"
17269
17317
  }, E = "{left}(?:(?!{right}').)*?{right}", R = Object.entries(T).map(([N, e]) => E.replace(/{left}/g, V(N)).replace(/{right}/g, V(e))), A = V(Object.keys(T).join(""));
17270
17318
  return `[Qq]'(?:${String.raw`(?<tag>[^\s${A}])(?:(?!\k<tag>').)*?\k<tag>`}|${R.join("|")})'`;
17271
- }, _T = {
17319
+ }, PT = {
17272
17320
  // - backtick quoted (using `` to escape)
17273
17321
  "``": "(?:`[^`]*`)+",
17274
17322
  // - Transact-SQL square bracket quoted (using ]] to escape)
@@ -17292,12 +17340,12 @@ const YS = [
17292
17340
  // Hive and Spark variables: ${name}
17293
17341
  "{}": String.raw`(?:\{[^\}]*\})`,
17294
17342
  // Oracle q'' strings: q'<text>' q'|text|' ...
17295
- "q''": fI()
17296
- }, cT = (T) => typeof T == "string" ? _T[T] : "regex" in T ? T.regex : dI(T) + _T[T.quote], WI = (T) => g(T.map((E) => "regex" in E ? E.regex : cT(E)).join("|")), lT = (T) => T.map(cT).join("|"), rT = (T) => g(lT(T)), XI = (T = {}) => g(HT(T)), HT = ({ first: T, rest: E, dashes: R, allowFirstCharNumber: A } = {}) => {
17343
+ "q''": WI()
17344
+ }, FT = (T) => typeof T == "string" ? PT[T] : "regex" in T ? T.regex : dI(T) + PT[T.quote], fI = (T) => g(T.map((E) => "regex" in E ? E.regex : FT(E)).join("|")), YT = (T) => T.map(FT).join("|"), oT = (T) => g(YT(T)), XI = (T = {}) => g(mT(T)), mT = ({ first: T, rest: E, dashes: R, allowFirstCharNumber: A } = {}) => {
17297
17345
  const S = "\\p{Alphabetic}\\p{Mark}_", I = "\\p{Decimal_Number}", N = V(T ?? ""), e = V(E ?? ""), n = A ? `[${S}${I}${N}][${S}${I}${e}]*` : `[${S}${N}][${S}${I}${e}]*`;
17298
17346
  return R ? pI(n) : n;
17299
17347
  };
17300
- function BT(T, E) {
17348
+ function pT(T, E) {
17301
17349
  const R = T.slice(0, E).split(/\n/);
17302
17350
  return { line: R.length, col: R[R.length - 1].length + 1 };
17303
17351
  }
@@ -17327,7 +17375,7 @@ class bI {
17327
17375
  return R;
17328
17376
  }
17329
17377
  createParseError() {
17330
- const E = this.input.slice(this.index, this.index + 10), { line: R, col: A } = BT(this.input, this.index);
17378
+ const E = this.input.slice(this.index, this.index + 10), { line: R, col: A } = pT(this.input, this.index);
17331
17379
  return new Error(`Parse error: Unexpected "${E}" at line ${R} column ${A}.
17332
17380
  ${this.dialectInfo()}`);
17333
17381
  }
@@ -17336,8 +17384,8 @@ ${this.dialectInfo()}`);
17336
17384
  If possible, please select a more specific dialect (like sqlite, postgresql, etc).` : `SQL dialect used: "${this.dialectName}".`;
17337
17385
  }
17338
17386
  getWhitespace() {
17339
- sT.lastIndex = this.index;
17340
- const E = sT.exec(this.input);
17387
+ nT.lastIndex = this.index;
17388
+ const E = nT.exec(this.input);
17341
17389
  if (E)
17342
17390
  return this.index += E[0].length, E[0];
17343
17391
  }
@@ -17363,19 +17411,19 @@ If possible, please select a more specific dialect (like sqlite, postgresql, etc
17363
17411
  }
17364
17412
  }
17365
17413
  }
17366
- const nT = /\/\*/uy, KI = /[\s\S]/uy, yI = /\*\//uy;
17414
+ const aT = /\/\*/uy, KI = /[\s\S]/uy, yI = /\*\//uy;
17367
17415
  class $I {
17368
17416
  constructor() {
17369
17417
  this.lastIndex = 0;
17370
17418
  }
17371
17419
  exec(E) {
17372
17420
  let R = "", A, S = 0;
17373
- if (A = this.matchSection(nT, E))
17421
+ if (A = this.matchSection(aT, E))
17374
17422
  R += A, S++;
17375
17423
  else
17376
17424
  return null;
17377
17425
  for (; S > 0; )
17378
- if (A = this.matchSection(nT, E))
17426
+ if (A = this.matchSection(aT, E))
17379
17427
  R += A, S++;
17380
17428
  else if (A = this.matchSection(yI, E))
17381
17429
  R += A, S--;
@@ -17422,7 +17470,7 @@ class gI {
17422
17470
  },
17423
17471
  {
17424
17472
  type: D.QUOTED_IDENTIFIER,
17425
- regex: rT(E.identTypes)
17473
+ regex: oT(E.identTypes)
17426
17474
  },
17427
17475
  {
17428
17476
  type: D.NUMBER,
@@ -17535,9 +17583,9 @@ class gI {
17535
17583
  return this.validRules([
17536
17584
  {
17537
17585
  type: D.VARIABLE,
17538
- regex: E.variableTypes ? WI(E.variableTypes) : void 0
17586
+ regex: E.variableTypes ? fI(E.variableTypes) : void 0
17539
17587
  },
17540
- { type: D.STRING, regex: rT(E.stringTypes) },
17588
+ { type: D.STRING, regex: oT(E.stringTypes) },
17541
17589
  {
17542
17590
  type: D.IDENTIFIER,
17543
17591
  regex: XI(E.identChars)
@@ -17546,15 +17594,15 @@ class gI {
17546
17594
  { type: D.COMMA, regex: /[,]/y },
17547
17595
  {
17548
17596
  type: D.OPEN_PAREN,
17549
- regex: tT("open", E.extraParens)
17597
+ regex: DT("open", E.extraParens)
17550
17598
  },
17551
17599
  {
17552
17600
  type: D.CLOSE_PAREN,
17553
- regex: tT("close", E.extraParens)
17601
+ regex: DT("close", E.extraParens)
17554
17602
  },
17555
17603
  {
17556
17604
  type: D.OPERATOR,
17557
- regex: LT([
17605
+ regex: iT([
17558
17606
  // standard operators
17559
17607
  "+",
17560
17608
  "-",
@@ -17572,7 +17620,7 @@ class gI {
17572
17620
  { type: D.ASTERISK, regex: /[*]/uy },
17573
17621
  {
17574
17622
  type: D.PROPERTY_ACCESS_OPERATOR,
17575
- regex: LT([".", ...(A = E.propertyAccessOperators) !== null && A !== void 0 ? A : []])
17623
+ regex: iT([".", ...(A = E.propertyAccessOperators) !== null && A !== void 0 ? A : []])
17576
17624
  }
17577
17625
  ]);
17578
17626
  }
@@ -17590,20 +17638,20 @@ class gI {
17590
17638
  return this.validRules([
17591
17639
  {
17592
17640
  type: D.NAMED_PARAMETER,
17593
- regex: lE(n.named, HT(E.paramChars || E.identChars)),
17641
+ regex: YE(n.named, mT(E.paramChars || E.identChars)),
17594
17642
  key: (O) => O.slice(1)
17595
17643
  },
17596
17644
  {
17597
17645
  type: D.QUOTED_PARAMETER,
17598
- regex: lE(n.quoted, lT(E.identTypes)),
17599
- key: (O) => (({ tokenKey: s, quoteChar: C }) => s.replace(new RegExp(V("\\" + C), "gu"), C))({
17646
+ regex: YE(n.quoted, YT(E.identTypes)),
17647
+ key: (O) => (({ tokenKey: t, quoteChar: C }) => t.replace(new RegExp(V("\\" + C), "gu"), C))({
17600
17648
  tokenKey: O.slice(2, -1),
17601
17649
  quoteChar: O.slice(-1)
17602
17650
  })
17603
17651
  },
17604
17652
  {
17605
17653
  type: D.NUMBERED_PARAMETER,
17606
- regex: lE(n.numbered, "[0-9]+"),
17654
+ regex: YE(n.numbered, "[0-9]+"),
17607
17655
  key: (O) => O.slice(1)
17608
17656
  },
17609
17657
  {
@@ -17611,11 +17659,11 @@ class gI {
17611
17659
  regex: n.positional ? /[?]/y : void 0
17612
17660
  },
17613
17661
  ...n.custom.map((O) => {
17614
- var s;
17662
+ var t;
17615
17663
  return {
17616
17664
  type: D.CUSTOM_PARAMETER,
17617
17665
  regex: g(O.regex),
17618
- key: (s = O.key) !== null && s !== void 0 ? s : (C) => C
17666
+ key: (t = O.key) !== null && t !== void 0 ? t : (C) => C
17619
17667
  };
17620
17668
  })
17621
17669
  ]);
@@ -17625,13 +17673,13 @@ class gI {
17625
17673
  return E.filter((R) => !!R.regex);
17626
17674
  }
17627
17675
  }
17628
- const F = (T) => j(T.toUpperCase()), DT = /* @__PURE__ */ new Map(), JI = (T) => {
17629
- let E = DT.get(T);
17630
- return E || (E = xI(T), DT.set(T, E)), E;
17631
- }, xI = (T) => ({
17676
+ const F = (T) => j(T.toUpperCase()), MT = /* @__PURE__ */ new Map(), JI = (T) => {
17677
+ let E = MT.get(T);
17678
+ return E || (E = wI(T), MT.set(T, E)), E;
17679
+ }, wI = (T) => ({
17632
17680
  tokenizer: new gI(T.tokenizerOptions, T.name),
17633
- formatOptions: wI(T.formatOptions)
17634
- }), wI = (T) => {
17681
+ formatOptions: xI(T.formatOptions)
17682
+ }), xI = (T) => {
17635
17683
  var E;
17636
17684
  return {
17637
17685
  alwaysDenseOperators: T.alwaysDenseOperators || [],
@@ -17642,7 +17690,7 @@ const F = (T) => j(T.toUpperCase()), DT = /* @__PURE__ */ new Map(), JI = (T) =>
17642
17690
  function vI(T) {
17643
17691
  return T.indentStyle === "tabularLeft" || T.indentStyle === "tabularRight" ? " ".repeat(10) : T.useTabs ? " " : " ".repeat(T.tabWidth);
17644
17692
  }
17645
- function x(T) {
17693
+ function v(T) {
17646
17694
  return T.indentStyle === "tabularLeft" || T.indentStyle === "tabularRight";
17647
17695
  }
17648
17696
  class QI {
@@ -17669,44 +17717,44 @@ class QI {
17669
17717
  }
17670
17718
  }
17671
17719
  var ZI = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
17672
- function qI(T) {
17720
+ function kI(T) {
17673
17721
  return T && T.__esModule && Object.prototype.hasOwnProperty.call(T, "default") ? T.default : T;
17674
17722
  }
17675
- var uT = { exports: {} };
17723
+ var dT = { exports: {} };
17676
17724
  (function(T) {
17677
17725
  (function(E, R) {
17678
17726
  T.exports ? T.exports = R() : E.nearley = R();
17679
17727
  })(ZI, function() {
17680
- function E(O, s, C) {
17681
- return this.id = ++E.highestId, this.name = O, this.symbols = s, this.postprocess = C, this;
17728
+ function E(O, t, C) {
17729
+ return this.id = ++E.highestId, this.name = O, this.symbols = t, this.postprocess = C, this;
17682
17730
  }
17683
17731
  E.highestId = 0, E.prototype.toString = function(O) {
17684
- var s = typeof O > "u" ? this.symbols.map(n).join(" ") : this.symbols.slice(0, O).map(n).join(" ") + " ● " + this.symbols.slice(O).map(n).join(" ");
17685
- return this.name + " → " + s;
17732
+ var t = typeof O > "u" ? this.symbols.map(n).join(" ") : this.symbols.slice(0, O).map(n).join(" ") + " ● " + this.symbols.slice(O).map(n).join(" ");
17733
+ return this.name + " → " + t;
17686
17734
  };
17687
- function R(O, s, C, t) {
17688
- this.rule = O, this.dot = s, this.reference = C, this.data = [], this.wantedBy = t, this.isComplete = this.dot === O.symbols.length;
17735
+ function R(O, t, C, s) {
17736
+ this.rule = O, this.dot = t, this.reference = C, this.data = [], this.wantedBy = s, this.isComplete = this.dot === O.symbols.length;
17689
17737
  }
17690
17738
  R.prototype.toString = function() {
17691
17739
  return "{" + this.rule.toString(this.dot) + "}, from: " + (this.reference || 0);
17692
17740
  }, R.prototype.nextState = function(O) {
17693
- var s = new R(this.rule, this.dot + 1, this.reference, this.wantedBy);
17694
- return s.left = this, s.right = O, s.isComplete && (s.data = s.build(), s.right = void 0), s;
17741
+ var t = new R(this.rule, this.dot + 1, this.reference, this.wantedBy);
17742
+ return t.left = this, t.right = O, t.isComplete && (t.data = t.build(), t.right = void 0), t;
17695
17743
  }, R.prototype.build = function() {
17696
- var O = [], s = this;
17744
+ var O = [], t = this;
17697
17745
  do
17698
- O.push(s.right.data), s = s.left;
17699
- while (s.left);
17746
+ O.push(t.right.data), t = t.left;
17747
+ while (t.left);
17700
17748
  return O.reverse(), O;
17701
17749
  }, R.prototype.finish = function() {
17702
17750
  this.rule.postprocess && (this.data = this.rule.postprocess(this.data, this.reference, N.fail));
17703
17751
  };
17704
- function A(O, s) {
17705
- this.grammar = O, this.index = s, this.states = [], this.wants = {}, this.scannable = [], this.completed = {};
17752
+ function A(O, t) {
17753
+ this.grammar = O, this.index = t, this.states = [], this.wants = {}, this.scannable = [], this.completed = {};
17706
17754
  }
17707
17755
  A.prototype.process = function(O) {
17708
- for (var s = this.states, C = this.wants, t = this.completed, i = 0; i < s.length; i++) {
17709
- var a = s[i];
17756
+ for (var t = this.states, C = this.wants, s = this.completed, i = 0; i < t.length; i++) {
17757
+ var a = t[i];
17710
17758
  if (a.isComplete) {
17711
17759
  if (a.finish(), a.data !== N.fail) {
17712
17760
  for (var U = a.wantedBy, o = U.length; o--; ) {
@@ -17725,8 +17773,8 @@ var uT = { exports: {} };
17725
17773
  continue;
17726
17774
  }
17727
17775
  if (C[P]) {
17728
- if (C[P].push(a), t.hasOwnProperty(P))
17729
- for (var H = t[P], o = 0; o < H.length; o++) {
17776
+ if (C[P].push(a), s.hasOwnProperty(P))
17777
+ for (var H = s[P], o = 0; o < H.length; o++) {
17730
17778
  var l = H[o];
17731
17779
  this.complete(a, l);
17732
17780
  }
@@ -17735,34 +17783,34 @@ var uT = { exports: {} };
17735
17783
  }
17736
17784
  }
17737
17785
  }, A.prototype.predict = function(O) {
17738
- for (var s = this.grammar.byName[O] || [], C = 0; C < s.length; C++) {
17739
- var t = s[C], i = this.wants[O], a = new R(t, 0, this.index, i);
17786
+ for (var t = this.grammar.byName[O] || [], C = 0; C < t.length; C++) {
17787
+ var s = t[C], i = this.wants[O], a = new R(s, 0, this.index, i);
17740
17788
  this.states.push(a);
17741
17789
  }
17742
- }, A.prototype.complete = function(O, s) {
17743
- var C = O.nextState(s);
17790
+ }, A.prototype.complete = function(O, t) {
17791
+ var C = O.nextState(t);
17744
17792
  this.states.push(C);
17745
17793
  };
17746
- function S(O, s) {
17747
- this.rules = O, this.start = s || this.rules[0].name;
17794
+ function S(O, t) {
17795
+ this.rules = O, this.start = t || this.rules[0].name;
17748
17796
  var C = this.byName = {};
17749
- this.rules.forEach(function(t) {
17750
- C.hasOwnProperty(t.name) || (C[t.name] = []), C[t.name].push(t);
17797
+ this.rules.forEach(function(s) {
17798
+ C.hasOwnProperty(s.name) || (C[s.name] = []), C[s.name].push(s);
17751
17799
  });
17752
17800
  }
17753
- S.fromCompiled = function(t, s) {
17754
- var C = t.Lexer;
17755
- t.ParserStart && (s = t.ParserStart, t = t.ParserRules);
17756
- var t = t.map(function(a) {
17801
+ S.fromCompiled = function(s, t) {
17802
+ var C = s.Lexer;
17803
+ s.ParserStart && (t = s.ParserStart, s = s.ParserRules);
17804
+ var s = s.map(function(a) {
17757
17805
  return new E(a.name, a.symbols, a.postprocess);
17758
- }), i = new S(t, s);
17806
+ }), i = new S(s, t);
17759
17807
  return i.lexer = C, i;
17760
17808
  };
17761
17809
  function I() {
17762
17810
  this.reset("");
17763
17811
  }
17764
- I.prototype.reset = function(O, s) {
17765
- this.buffer = O, this.index = 0, this.line = s ? s.line : 1, this.lastLineBreak = s ? -s.col : 0;
17812
+ I.prototype.reset = function(O, t) {
17813
+ this.buffer = O, this.index = 0, this.line = t ? t.line : 1, this.lastLineBreak = t ? -t.col : 0;
17766
17814
  }, I.prototype.next = function() {
17767
17815
  if (this.index < this.buffer.length) {
17768
17816
  var O = this.buffer[this.index++];
@@ -17774,10 +17822,10 @@ var uT = { exports: {} };
17774
17822
  line: this.line,
17775
17823
  col: this.index - this.lastLineBreak
17776
17824
  };
17777
- }, I.prototype.formatError = function(O, s) {
17825
+ }, I.prototype.formatError = function(O, t) {
17778
17826
  var C = this.buffer;
17779
17827
  if (typeof C == "string") {
17780
- var t = C.split(`
17828
+ var s = C.split(`
17781
17829
  `).slice(
17782
17830
  Math.max(0, this.line - 5),
17783
17831
  this.line
@@ -17785,54 +17833,54 @@ var uT = { exports: {} };
17785
17833
  `, this.index);
17786
17834
  i === -1 && (i = C.length);
17787
17835
  var a = this.index - this.lastLineBreak, U = String(this.line).length;
17788
- return s += " at line " + this.line + " col " + a + `:
17836
+ return t += " at line " + this.line + " col " + a + `:
17789
17837
 
17790
- `, s += t.map(function(G, P) {
17791
- return o(this.line - t.length + P + 1, U) + " " + G;
17838
+ `, t += s.map(function(G, P) {
17839
+ return o(this.line - s.length + P + 1, U) + " " + G;
17792
17840
  }, this).join(`
17793
- `), s += `
17841
+ `), t += `
17794
17842
  ` + o("", U + a) + `^
17795
- `, s;
17843
+ `, t;
17796
17844
  } else
17797
- return s + " at index " + (this.index - 1);
17845
+ return t + " at index " + (this.index - 1);
17798
17846
  function o(G, P) {
17799
17847
  var H = String(G);
17800
17848
  return Array(P - H.length + 1).join(" ") + H;
17801
17849
  }
17802
17850
  };
17803
- function N(O, s, C) {
17851
+ function N(O, t, C) {
17804
17852
  if (O instanceof S)
17805
- var t = O, C = s;
17853
+ var s = O, C = t;
17806
17854
  else
17807
- var t = S.fromCompiled(O, s);
17808
- this.grammar = t, this.options = {
17855
+ var s = S.fromCompiled(O, t);
17856
+ this.grammar = s, this.options = {
17809
17857
  keepHistory: !1,
17810
- lexer: t.lexer || new I()
17858
+ lexer: s.lexer || new I()
17811
17859
  };
17812
17860
  for (var i in C || {})
17813
17861
  this.options[i] = C[i];
17814
17862
  this.lexer = this.options.lexer, this.lexerState = void 0;
17815
- var a = new A(t, 0);
17816
- this.table = [a], a.wants[t.start] = [], a.predict(t.start), a.process(), this.current = 0;
17863
+ var a = new A(s, 0);
17864
+ this.table = [a], a.wants[s.start] = [], a.predict(s.start), a.process(), this.current = 0;
17817
17865
  }
17818
17866
  N.fail = {}, N.prototype.feed = function(O) {
17819
- var s = this.lexer;
17820
- s.reset(O, this.lexerState);
17867
+ var t = this.lexer;
17868
+ t.reset(O, this.lexerState);
17821
17869
  for (var C; ; ) {
17822
17870
  try {
17823
- if (C = s.next(), !C)
17871
+ if (C = t.next(), !C)
17824
17872
  break;
17825
17873
  } catch (p) {
17826
17874
  var U = new A(this.grammar, this.current + 1);
17827
17875
  this.table.push(U);
17828
- var t = new Error(this.reportLexerError(p));
17829
- throw t.offset = this.current, t.token = p.token, t;
17876
+ var s = new Error(this.reportLexerError(p));
17877
+ throw s.offset = this.current, s.token = p.token, s;
17830
17878
  }
17831
17879
  var i = this.table[this.current];
17832
17880
  this.options.keepHistory || delete this.table[this.current - 1];
17833
17881
  var a = this.current + 1, U = new A(this.grammar, a);
17834
17882
  this.table.push(U);
17835
- for (var o = C.text !== void 0 ? C.text : C.value, G = s.constructor === I ? C.value : C, P = i.scannable, H = P.length; H--; ) {
17883
+ for (var o = C.text !== void 0 ? C.text : C.value, G = t.constructor === I ? C.value : C, P = i.scannable, H = P.length; H--; ) {
17836
17884
  var l = P[H], B = l.rule.symbols[l.dot];
17837
17885
  if (B.test ? B.test(G) : B.type ? B.type === C.type : B.literal === o) {
17838
17886
  var u = l.nextState({ data: G, token: C, isToken: !0, reference: a - 1 });
@@ -17840,30 +17888,30 @@ var uT = { exports: {} };
17840
17888
  }
17841
17889
  }
17842
17890
  if (U.process(), U.states.length === 0) {
17843
- var t = new Error(this.reportError(C));
17844
- throw t.offset = this.current, t.token = C, t;
17891
+ var s = new Error(this.reportError(C));
17892
+ throw s.offset = this.current, s.token = C, s;
17845
17893
  }
17846
- this.options.keepHistory && (i.lexerState = s.save()), this.current++;
17894
+ this.options.keepHistory && (i.lexerState = t.save()), this.current++;
17847
17895
  }
17848
- return i && (this.lexerState = s.save()), this.results = this.finish(), this;
17896
+ return i && (this.lexerState = t.save()), this.results = this.finish(), this;
17849
17897
  }, N.prototype.reportLexerError = function(O) {
17850
- var s, C, t = O.token;
17851
- return t ? (s = "input " + JSON.stringify(t.text[0]) + " (lexer error)", C = this.lexer.formatError(t, "Syntax error")) : (s = "input (lexer error)", C = O.message), this.reportErrorCommon(C, s);
17898
+ var t, C, s = O.token;
17899
+ return s ? (t = "input " + JSON.stringify(s.text[0]) + " (lexer error)", C = this.lexer.formatError(s, "Syntax error")) : (t = "input (lexer error)", C = O.message), this.reportErrorCommon(C, t);
17852
17900
  }, N.prototype.reportError = function(O) {
17853
- var s = (O.type ? O.type + " token: " : "") + JSON.stringify(O.value !== void 0 ? O.value : O), C = this.lexer.formatError(O, "Syntax error");
17854
- return this.reportErrorCommon(C, s);
17855
- }, N.prototype.reportErrorCommon = function(O, s) {
17901
+ var t = (O.type ? O.type + " token: " : "") + JSON.stringify(O.value !== void 0 ? O.value : O), C = this.lexer.formatError(O, "Syntax error");
17902
+ return this.reportErrorCommon(C, t);
17903
+ }, N.prototype.reportErrorCommon = function(O, t) {
17856
17904
  var C = [];
17857
17905
  C.push(O);
17858
- var t = this.table.length - 2, i = this.table[t], a = i.states.filter(function(o) {
17906
+ var s = this.table.length - 2, i = this.table[s], a = i.states.filter(function(o) {
17859
17907
  var G = o.rule.symbols[o.dot];
17860
17908
  return G && typeof G != "string";
17861
17909
  });
17862
17910
  if (a.length === 0)
17863
- C.push("Unexpected " + s + `. I did not expect any more input. Here is the state of my parse table:
17911
+ C.push("Unexpected " + t + `. I did not expect any more input. Here is the state of my parse table:
17864
17912
  `), this.displayStateStack(i.states, C);
17865
17913
  else {
17866
- C.push("Unexpected " + s + `. Instead, I was expecting to see one of the following:
17914
+ C.push("Unexpected " + t + `. Instead, I was expecting to see one of the following:
17867
17915
  `);
17868
17916
  var U = a.map(function(o) {
17869
17917
  return this.buildFirstStateStack(o, []) || [o];
@@ -17875,43 +17923,43 @@ var uT = { exports: {} };
17875
17923
  }
17876
17924
  return C.push(""), C.join(`
17877
17925
  `);
17878
- }, N.prototype.displayStateStack = function(O, s) {
17879
- for (var C, t = 0, i = 0; i < O.length; i++) {
17926
+ }, N.prototype.displayStateStack = function(O, t) {
17927
+ for (var C, s = 0, i = 0; i < O.length; i++) {
17880
17928
  var a = O[i], U = a.rule.toString(a.dot);
17881
- U === C ? t++ : (t > 0 && s.push(" ^ " + t + " more lines identical to this"), t = 0, s.push(" " + U)), C = U;
17929
+ U === C ? s++ : (s > 0 && t.push(" ^ " + s + " more lines identical to this"), s = 0, t.push(" " + U)), C = U;
17882
17930
  }
17883
17931
  }, N.prototype.getSymbolDisplay = function(O) {
17884
17932
  return e(O);
17885
- }, N.prototype.buildFirstStateStack = function(O, s) {
17886
- if (s.indexOf(O) !== -1)
17933
+ }, N.prototype.buildFirstStateStack = function(O, t) {
17934
+ if (t.indexOf(O) !== -1)
17887
17935
  return null;
17888
17936
  if (O.wantedBy.length === 0)
17889
17937
  return [O];
17890
- var C = O.wantedBy[0], t = [O].concat(s), i = this.buildFirstStateStack(C, t);
17938
+ var C = O.wantedBy[0], s = [O].concat(t), i = this.buildFirstStateStack(C, s);
17891
17939
  return i === null ? null : [O].concat(i);
17892
17940
  }, N.prototype.save = function() {
17893
17941
  var O = this.table[this.current];
17894
17942
  return O.lexerState = this.lexerState, O;
17895
17943
  }, N.prototype.restore = function(O) {
17896
- var s = O.index;
17897
- this.current = s, this.table[s] = O, this.table.splice(s + 1), this.lexerState = O.lexerState, this.results = this.finish();
17944
+ var t = O.index;
17945
+ this.current = t, this.table[t] = O, this.table.splice(t + 1), this.lexerState = O.lexerState, this.results = this.finish();
17898
17946
  }, N.prototype.rewind = function(O) {
17899
17947
  if (!this.options.keepHistory)
17900
17948
  throw new Error("set option `keepHistory` to enable rewinding");
17901
17949
  this.restore(this.table[O]);
17902
17950
  }, N.prototype.finish = function() {
17903
- var O = [], s = this.grammar.start, C = this.table[this.table.length - 1];
17904
- return C.states.forEach(function(t) {
17905
- t.rule.name === s && t.dot === t.rule.symbols.length && t.reference === 0 && t.data !== N.fail && O.push(t);
17906
- }), O.map(function(t) {
17907
- return t.data;
17951
+ var O = [], t = this.grammar.start, C = this.table[this.table.length - 1];
17952
+ return C.states.forEach(function(s) {
17953
+ s.rule.name === t && s.dot === s.rule.symbols.length && s.reference === 0 && s.data !== N.fail && O.push(s);
17954
+ }), O.map(function(s) {
17955
+ return s.data;
17908
17956
  });
17909
17957
  };
17910
17958
  function e(O) {
17911
- var s = typeof O;
17912
- if (s === "string")
17959
+ var t = typeof O;
17960
+ if (t === "string")
17913
17961
  return O;
17914
- if (s === "object") {
17962
+ if (t === "object") {
17915
17963
  if (O.literal)
17916
17964
  return JSON.stringify(O.literal);
17917
17965
  if (O instanceof RegExp)
@@ -17924,10 +17972,10 @@ var uT = { exports: {} };
17924
17972
  }
17925
17973
  }
17926
17974
  function n(O) {
17927
- var s = typeof O;
17928
- if (s === "string")
17975
+ var t = typeof O;
17976
+ if (t === "string")
17929
17977
  return O;
17930
- if (s === "object") {
17978
+ if (t === "object") {
17931
17979
  if (O.literal)
17932
17980
  return JSON.stringify(O.literal);
17933
17981
  if (O instanceof RegExp)
@@ -17945,57 +17993,57 @@ var uT = { exports: {} };
17945
17993
  Rule: E
17946
17994
  };
17947
17995
  });
17948
- })(uT);
17949
- var kI = uT.exports;
17950
- const jI = /* @__PURE__ */ qI(kI);
17996
+ })(dT);
17997
+ var qI = dT.exports;
17998
+ const jI = /* @__PURE__ */ kI(qI);
17951
17999
  function zI(T) {
17952
18000
  return T.map(EO).map(TO).map(RO).map(AO).map(SO);
17953
18001
  }
17954
18002
  const EO = (T, E, R) => {
17955
- if (UT(T.type)) {
18003
+ if (BT(T.type)) {
17956
18004
  const A = IO(R, E);
17957
18005
  if (A && A.type === D.PROPERTY_ACCESS_OPERATOR)
17958
18006
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
17959
- const S = v(R, E);
18007
+ const S = Z(R, E);
17960
18008
  if (S && S.type === D.PROPERTY_ACCESS_OPERATOR)
17961
18009
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
17962
18010
  }
17963
18011
  return T;
17964
18012
  }, TO = (T, E, R) => {
17965
18013
  if (T.type === D.RESERVED_FUNCTION_NAME) {
17966
- const A = v(R, E);
17967
- if (!A || !FT(A))
18014
+ const A = Z(R, E);
18015
+ if (!A || !VT(A))
17968
18016
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
17969
18017
  }
17970
18018
  return T;
17971
18019
  }, RO = (T, E, R) => {
17972
18020
  if (T.type === D.RESERVED_DATA_TYPE) {
17973
- const A = v(R, E);
17974
- if (A && FT(A))
18021
+ const A = Z(R, E);
18022
+ if (A && VT(A))
17975
18023
  return Object.assign(Object.assign({}, T), { type: D.RESERVED_PARAMETERIZED_DATA_TYPE });
17976
18024
  }
17977
18025
  return T;
17978
18026
  }, AO = (T, E, R) => {
17979
18027
  if (T.type === D.IDENTIFIER) {
17980
- const A = v(R, E);
17981
- if (A && YT(A))
18028
+ const A = Z(R, E);
18029
+ if (A && hT(A))
17982
18030
  return Object.assign(Object.assign({}, T), { type: D.ARRAY_IDENTIFIER });
17983
18031
  }
17984
18032
  return T;
17985
18033
  }, SO = (T, E, R) => {
17986
18034
  if (T.type === D.RESERVED_DATA_TYPE) {
17987
- const A = v(R, E);
17988
- if (A && YT(A))
18035
+ const A = Z(R, E);
18036
+ if (A && hT(A))
17989
18037
  return Object.assign(Object.assign({}, T), { type: D.ARRAY_KEYWORD });
17990
18038
  }
17991
18039
  return T;
17992
- }, IO = (T, E) => v(T, E, -1), v = (T, E, R = 1) => {
18040
+ }, IO = (T, E) => Z(T, E, -1), Z = (T, E, R = 1) => {
17993
18041
  let A = 1;
17994
18042
  for (; T[E + A * R] && OO(T[E + A * R]); )
17995
18043
  A++;
17996
18044
  return T[E + A * R];
17997
- }, FT = (T) => T.type === D.OPEN_PAREN && T.text === "(", YT = (T) => T.type === D.OPEN_PAREN && T.text === "[", OO = (T) => T.type === D.BLOCK_COMMENT || T.type === D.LINE_COMMENT;
17998
- class mT {
18045
+ }, VT = (T) => T.type === D.OPEN_PAREN && T.text === "(", hT = (T) => T.type === D.OPEN_PAREN && T.text === "[", OO = (T) => T.type === D.BLOCK_COMMENT || T.type === D.LINE_COMMENT;
18046
+ class WT {
17999
18047
  constructor(E) {
18000
18048
  this.tokenize = E, this.index = 0, this.tokens = [], this.input = "";
18001
18049
  }
@@ -18008,7 +18056,7 @@ class mT {
18008
18056
  save() {
18009
18057
  }
18010
18058
  formatError(E) {
18011
- const { line: R, col: A } = BT(this.input, E.start);
18059
+ const { line: R, col: A } = pT(this.input, E.start);
18012
18060
  return `Parse error at token: ${E.text} at line ${R} column ${A}`;
18013
18061
  }
18014
18062
  has(E) {
@@ -18019,15 +18067,15 @@ var M;
18019
18067
  (function(T) {
18020
18068
  T.statement = "statement", T.clause = "clause", T.set_operation = "set_operation", T.function_call = "function_call", T.parameterized_data_type = "parameterized_data_type", T.array_subscript = "array_subscript", T.property_access = "property_access", T.parenthesis = "parenthesis", T.between_predicate = "between_predicate", T.case_expression = "case_expression", T.case_when = "case_when", T.case_else = "case_else", T.limit_clause = "limit_clause", T.all_columns_asterisk = "all_columns_asterisk", T.literal = "literal", T.identifier = "identifier", T.keyword = "keyword", T.data_type = "data_type", T.parameter = "parameter", T.operator = "operator", T.comma = "comma", T.line_comment = "line_comment", T.block_comment = "block_comment", T.disable_comment = "disable_comment";
18021
18069
  })(M = M || (M = {}));
18022
- function HE(T) {
18070
+ function mE(T) {
18023
18071
  return T[0];
18024
18072
  }
18025
- const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18073
+ const c = new WT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18026
18074
  type: M.keyword,
18027
18075
  tokenType: T.type,
18028
18076
  text: T.text,
18029
18077
  raw: T.raw
18030
- }), iT = (T) => ({
18078
+ }), UT = (T) => ({
18031
18079
  type: M.data_type,
18032
18080
  text: T.text,
18033
18081
  raw: T.raw
@@ -18082,7 +18130,7 @@ const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18082
18130
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["free_form_sql"] },
18083
18131
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1$ebnf$1", "free_form_sql"], postprocess: (T) => T[0].concat([T[1]]) },
18084
18132
  { name: "limit_clause$ebnf$1$subexpression$1", symbols: [c.has("COMMA") ? { type: "COMMA" } : COMMA, "limit_clause$ebnf$1$subexpression$1$ebnf$1"] },
18085
- { name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: HE },
18133
+ { name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: mE },
18086
18134
  { name: "limit_clause$ebnf$1", symbols: [], postprocess: () => null },
18087
18135
  {
18088
18136
  name: "limit_clause",
@@ -18157,7 +18205,7 @@ const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18157
18205
  },
18158
18206
  { name: "expression_chain_$ebnf$1", symbols: ["expression_with_comments_"] },
18159
18207
  { name: "expression_chain_$ebnf$1", symbols: ["expression_chain_$ebnf$1", "expression_with_comments_"], postprocess: (T) => T[0].concat([T[1]]) },
18160
- { name: "expression_chain_", symbols: ["expression_chain_$ebnf$1"], postprocess: HE },
18208
+ { name: "expression_chain_", symbols: ["expression_chain_$ebnf$1"], postprocess: mE },
18161
18209
  { name: "expression_chain$ebnf$1", symbols: [] },
18162
18210
  { name: "expression_chain$ebnf$1", symbols: ["expression_chain$ebnf$1", "_expression_with_comments"], postprocess: (T) => T[0].concat([T[1]]) },
18163
18211
  {
@@ -18311,7 +18359,7 @@ const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18311
18359
  expr2: [m(N, { leading: I })]
18312
18360
  })
18313
18361
  },
18314
- { name: "case_expression$ebnf$1", symbols: ["expression_chain_"], postprocess: HE },
18362
+ { name: "case_expression$ebnf$1", symbols: ["expression_chain_"], postprocess: mE },
18315
18363
  { name: "case_expression$ebnf$1", symbols: [], postprocess: () => null },
18316
18364
  { name: "case_expression$ebnf$2", symbols: [] },
18317
18365
  { name: "case_expression$ebnf$2", symbols: ["case_expression$ebnf$2", "case_clause"], postprocess: (T) => T[0].concat([T[1]]) },
@@ -18377,14 +18425,14 @@ const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18377
18425
  {
18378
18426
  name: "data_type",
18379
18427
  symbols: ["data_type$subexpression$1"],
18380
- postprocess: ([[T]]) => iT(T)
18428
+ postprocess: ([[T]]) => UT(T)
18381
18429
  },
18382
18430
  {
18383
18431
  name: "data_type",
18384
18432
  symbols: [c.has("RESERVED_PARAMETERIZED_DATA_TYPE") ? { type: "RESERVED_PARAMETERIZED_DATA_TYPE" } : RESERVED_PARAMETERIZED_DATA_TYPE, "_", "parenthesis"],
18385
18433
  postprocess: ([T, E, R]) => ({
18386
18434
  type: M.parameterized_data_type,
18387
- dataType: m(iT(T), { trailing: E }),
18435
+ dataType: m(UT(T), { trailing: E }),
18388
18436
  parenthesis: R
18389
18437
  })
18390
18438
  },
@@ -18437,13 +18485,13 @@ const c = new mT((T) => []), b = ([[T]]) => T, Y = (T) => ({
18437
18485
  }
18438
18486
  ],
18439
18487
  ParserStart: "main"
18440
- }, { Parser: CO, Grammar: sO } = jI;
18441
- function tO(T) {
18488
+ }, { Parser: CO, Grammar: tO } = jI;
18489
+ function sO(T) {
18442
18490
  let E = {};
18443
- const R = new mT((S) => [
18491
+ const R = new WT((S) => [
18444
18492
  ...zI(T.tokenize(S, E)),
18445
- MT(S.length)
18446
- ]), A = new CO(sO.fromCompiled(eO), { lexer: R });
18493
+ HT(S.length)
18494
+ ]), A = new CO(tO.fromCompiled(eO), { lexer: R });
18447
18495
  return {
18448
18496
  parse: (S, I) => {
18449
18497
  E = I;
@@ -18455,11 +18503,11 @@ ${JSON.stringify(N, void 0, 2)}`);
18455
18503
  }
18456
18504
  };
18457
18505
  }
18458
- var _;
18506
+ var r;
18459
18507
  (function(T) {
18460
18508
  T[T.SPACE = 0] = "SPACE", T[T.NO_SPACE = 1] = "NO_SPACE", T[T.NO_NEWLINE = 2] = "NO_NEWLINE", T[T.NEWLINE = 3] = "NEWLINE", T[T.MANDATORY_NEWLINE = 4] = "MANDATORY_NEWLINE", T[T.INDENT = 5] = "INDENT", T[T.SINGLE_INDENT = 6] = "SINGLE_INDENT";
18461
- })(_ = _ || (_ = {}));
18462
- class pT {
18509
+ })(r = r || (r = {}));
18510
+ class fT {
18463
18511
  constructor(E) {
18464
18512
  this.indentation = E, this.items = [];
18465
18513
  }
@@ -18469,46 +18517,46 @@ class pT {
18469
18517
  add(...E) {
18470
18518
  for (const R of E)
18471
18519
  switch (R) {
18472
- case _.SPACE:
18473
- this.items.push(_.SPACE);
18520
+ case r.SPACE:
18521
+ this.items.push(r.SPACE);
18474
18522
  break;
18475
- case _.NO_SPACE:
18523
+ case r.NO_SPACE:
18476
18524
  this.trimHorizontalWhitespace();
18477
18525
  break;
18478
- case _.NO_NEWLINE:
18526
+ case r.NO_NEWLINE:
18479
18527
  this.trimWhitespace();
18480
18528
  break;
18481
- case _.NEWLINE:
18482
- this.trimHorizontalWhitespace(), this.addNewline(_.NEWLINE);
18529
+ case r.NEWLINE:
18530
+ this.trimHorizontalWhitespace(), this.addNewline(r.NEWLINE);
18483
18531
  break;
18484
- case _.MANDATORY_NEWLINE:
18485
- this.trimHorizontalWhitespace(), this.addNewline(_.MANDATORY_NEWLINE);
18532
+ case r.MANDATORY_NEWLINE:
18533
+ this.trimHorizontalWhitespace(), this.addNewline(r.MANDATORY_NEWLINE);
18486
18534
  break;
18487
- case _.INDENT:
18535
+ case r.INDENT:
18488
18536
  this.addIndentation();
18489
18537
  break;
18490
- case _.SINGLE_INDENT:
18491
- this.items.push(_.SINGLE_INDENT);
18538
+ case r.SINGLE_INDENT:
18539
+ this.items.push(r.SINGLE_INDENT);
18492
18540
  break;
18493
18541
  default:
18494
18542
  this.items.push(R);
18495
18543
  }
18496
18544
  }
18497
18545
  trimHorizontalWhitespace() {
18498
- for (; LO(q(this.items)); )
18546
+ for (; LO(k(this.items)); )
18499
18547
  this.items.pop();
18500
18548
  }
18501
18549
  trimWhitespace() {
18502
- for (; _O(q(this.items)); )
18550
+ for (; _O(k(this.items)); )
18503
18551
  this.items.pop();
18504
18552
  }
18505
18553
  addNewline(E) {
18506
18554
  if (this.items.length > 0)
18507
- switch (q(this.items)) {
18508
- case _.NEWLINE:
18555
+ switch (k(this.items)) {
18556
+ case r.NEWLINE:
18509
18557
  this.items.pop(), this.items.push(E);
18510
18558
  break;
18511
- case _.MANDATORY_NEWLINE:
18559
+ case r.MANDATORY_NEWLINE:
18512
18560
  break;
18513
18561
  default:
18514
18562
  this.items.push(E);
@@ -18517,7 +18565,7 @@ class pT {
18517
18565
  }
18518
18566
  addIndentation() {
18519
18567
  for (let E = 0; E < this.indentation.getLevel(); E++)
18520
- this.items.push(_.SINGLE_INDENT);
18568
+ this.items.push(r.SINGLE_INDENT);
18521
18569
  }
18522
18570
  /**
18523
18571
  * Returns the final SQL string.
@@ -18533,31 +18581,31 @@ class pT {
18533
18581
  }
18534
18582
  itemToString(E) {
18535
18583
  switch (E) {
18536
- case _.SPACE:
18584
+ case r.SPACE:
18537
18585
  return " ";
18538
- case _.NEWLINE:
18539
- case _.MANDATORY_NEWLINE:
18586
+ case r.NEWLINE:
18587
+ case r.MANDATORY_NEWLINE:
18540
18588
  return `
18541
18589
  `;
18542
- case _.SINGLE_INDENT:
18590
+ case r.SINGLE_INDENT:
18543
18591
  return this.indentation.getSingleIndent();
18544
18592
  default:
18545
18593
  return E;
18546
18594
  }
18547
18595
  }
18548
18596
  }
18549
- const LO = (T) => T === _.SPACE || T === _.SINGLE_INDENT, _O = (T) => T === _.SPACE || T === _.SINGLE_INDENT || T === _.NEWLINE;
18550
- function PT(T, E) {
18597
+ const LO = (T) => T === r.SPACE || T === r.SINGLE_INDENT, _O = (T) => T === r.SPACE || T === r.SINGLE_INDENT || T === r.NEWLINE;
18598
+ function GT(T, E) {
18551
18599
  if (E === "standard")
18552
18600
  return T;
18553
18601
  let R = [];
18554
18602
  return T.length >= 10 && T.includes(" ") && ([T, ...R] = T.split(" ")), E === "tabularLeft" ? T = T.padEnd(9, " ") : T = T.padStart(9, " "), T + ["", ...R].join(" ");
18555
18603
  }
18556
- function oT(T) {
18604
+ function cT(T) {
18557
18605
  return rR(T) || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.LIMIT;
18558
18606
  }
18559
- const BE = "top-level", rO = "block-level";
18560
- class dT {
18607
+ const pE = "top-level", rO = "block-level";
18608
+ class XT {
18561
18609
  /**
18562
18610
  * @param {string} indent A string to indent with
18563
18611
  */
@@ -18580,7 +18628,7 @@ class dT {
18580
18628
  * Increases indentation by one top-level indent.
18581
18629
  */
18582
18630
  increaseTopLevel() {
18583
- this.indentTypes.push(BE);
18631
+ this.indentTypes.push(pE);
18584
18632
  }
18585
18633
  /**
18586
18634
  * Increases indentation by one block-level indent.
@@ -18593,7 +18641,7 @@ class dT {
18593
18641
  * Does nothing when the previous indent is not top-level.
18594
18642
  */
18595
18643
  decreaseTopLevel() {
18596
- this.indentTypes.length > 0 && q(this.indentTypes) === BE && this.indentTypes.pop();
18644
+ this.indentTypes.length > 0 && k(this.indentTypes) === pE && this.indentTypes.pop();
18597
18645
  }
18598
18646
  /**
18599
18647
  * Decreases indentation by one block-level indent.
@@ -18601,32 +18649,32 @@ class dT {
18601
18649
  * throws away these as well.
18602
18650
  */
18603
18651
  decreaseBlockLevel() {
18604
- for (; this.indentTypes.length > 0 && this.indentTypes.pop() === BE; )
18652
+ for (; this.indentTypes.length > 0 && this.indentTypes.pop() === pE; )
18605
18653
  ;
18606
18654
  }
18607
18655
  }
18608
- class nO extends pT {
18656
+ class nO extends fT {
18609
18657
  constructor(E) {
18610
- super(new dT("")), this.expressionWidth = E, this.length = 0, this.trailingSpace = !1;
18658
+ super(new XT("")), this.expressionWidth = E, this.length = 0, this.trailingSpace = !1;
18611
18659
  }
18612
18660
  add(...E) {
18613
18661
  if (E.forEach((R) => this.addToLength(R)), this.length > this.expressionWidth)
18614
- throw new YE();
18662
+ throw new hE();
18615
18663
  super.add(...E);
18616
18664
  }
18617
18665
  addToLength(E) {
18618
18666
  if (typeof E == "string")
18619
18667
  this.length += E.length, this.trailingSpace = !1;
18620
18668
  else {
18621
- if (E === _.MANDATORY_NEWLINE || E === _.NEWLINE)
18622
- throw new YE();
18623
- E === _.INDENT || E === _.SINGLE_INDENT || E === _.SPACE ? this.trailingSpace || (this.length++, this.trailingSpace = !0) : (E === _.NO_NEWLINE || E === _.NO_SPACE) && this.trailingSpace && (this.trailingSpace = !1, this.length--);
18669
+ if (E === r.MANDATORY_NEWLINE || E === r.NEWLINE)
18670
+ throw new hE();
18671
+ E === r.INDENT || E === r.SINGLE_INDENT || E === r.SPACE ? this.trailingSpace || (this.length++, this.trailingSpace = !0) : (E === r.NO_NEWLINE || E === r.NO_SPACE) && this.trailingSpace && (this.trailingSpace = !1, this.length--);
18624
18672
  }
18625
18673
  }
18626
18674
  }
18627
- class YE extends Error {
18675
+ class hE extends Error {
18628
18676
  }
18629
- class EE {
18677
+ class TE {
18630
18678
  constructor({ cfg: E, dialectCfg: R, params: A, layout: S, inline: I = !1 }) {
18631
18679
  this.inline = !1, this.nodes = [], this.index = -1, this.cfg = E, this.dialectCfg = R, this.inline = I, this.params = A, this.layout = S;
18632
18680
  }
@@ -18716,64 +18764,64 @@ class EE {
18716
18764
  }), this.formatNode(E.parenthesis);
18717
18765
  }
18718
18766
  formatPropertyAccess(E) {
18719
- this.formatNode(E.object), this.layout.add(_.NO_SPACE, E.operator), this.formatNode(E.property);
18767
+ this.formatNode(E.object), this.layout.add(r.NO_SPACE, E.operator), this.formatNode(E.property);
18720
18768
  }
18721
18769
  formatParenthesis(E) {
18722
18770
  const R = this.formatInlineExpression(E.children);
18723
- R ? (this.layout.add(E.openParen), this.layout.add(...R.getLayoutItems()), this.layout.add(_.NO_SPACE, E.closeParen, _.SPACE)) : (this.layout.add(E.openParen, _.NEWLINE), x(this.cfg) ? (this.layout.add(_.INDENT), this.layout = this.formatSubExpression(E.children)) : (this.layout.indentation.increaseBlockLevel(), this.layout.add(_.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseBlockLevel()), this.layout.add(_.NEWLINE, _.INDENT, E.closeParen, _.SPACE));
18771
+ R ? (this.layout.add(E.openParen), this.layout.add(...R.getLayoutItems()), this.layout.add(r.NO_SPACE, E.closeParen, r.SPACE)) : (this.layout.add(E.openParen, r.NEWLINE), v(this.cfg) ? (this.layout.add(r.INDENT), this.layout = this.formatSubExpression(E.children)) : (this.layout.indentation.increaseBlockLevel(), this.layout.add(r.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseBlockLevel()), this.layout.add(r.NEWLINE, r.INDENT, E.closeParen, r.SPACE));
18724
18772
  }
18725
18773
  formatBetweenPredicate(E) {
18726
- this.layout.add(this.showKw(E.betweenKw), _.SPACE), this.layout = this.formatSubExpression(E.expr1), this.layout.add(_.NO_SPACE, _.SPACE, this.showNonTabularKw(E.andKw), _.SPACE), this.layout = this.formatSubExpression(E.expr2), this.layout.add(_.SPACE);
18774
+ this.layout.add(this.showKw(E.betweenKw), r.SPACE), this.layout = this.formatSubExpression(E.expr1), this.layout.add(r.NO_SPACE, r.SPACE, this.showNonTabularKw(E.andKw), r.SPACE), this.layout = this.formatSubExpression(E.expr2), this.layout.add(r.SPACE);
18727
18775
  }
18728
18776
  formatCaseExpression(E) {
18729
- this.formatNode(E.caseKw), this.layout.indentation.increaseBlockLevel(), this.layout = this.formatSubExpression(E.expr), this.layout = this.formatSubExpression(E.clauses), this.layout.indentation.decreaseBlockLevel(), this.layout.add(_.NEWLINE, _.INDENT), this.formatNode(E.endKw);
18777
+ this.formatNode(E.caseKw), this.layout.indentation.increaseBlockLevel(), this.layout = this.formatSubExpression(E.expr), this.layout = this.formatSubExpression(E.clauses), this.layout.indentation.decreaseBlockLevel(), this.layout.add(r.NEWLINE, r.INDENT), this.formatNode(E.endKw);
18730
18778
  }
18731
18779
  formatCaseWhen(E) {
18732
- this.layout.add(_.NEWLINE, _.INDENT), this.formatNode(E.whenKw), this.layout = this.formatSubExpression(E.condition), this.formatNode(E.thenKw), this.layout = this.formatSubExpression(E.result);
18780
+ this.layout.add(r.NEWLINE, r.INDENT), this.formatNode(E.whenKw), this.layout = this.formatSubExpression(E.condition), this.formatNode(E.thenKw), this.layout = this.formatSubExpression(E.result);
18733
18781
  }
18734
18782
  formatCaseElse(E) {
18735
- this.layout.add(_.NEWLINE, _.INDENT), this.formatNode(E.elseKw), this.layout = this.formatSubExpression(E.result);
18783
+ this.layout.add(r.NEWLINE, r.INDENT), this.formatNode(E.elseKw), this.layout = this.formatSubExpression(E.result);
18736
18784
  }
18737
18785
  formatClause(E) {
18738
- this.isOnelineClause(E) ? this.formatClauseInOnelineStyle(E) : x(this.cfg) ? this.formatClauseInTabularStyle(E) : this.formatClauseInIndentedStyle(E);
18786
+ this.isOnelineClause(E) ? this.formatClauseInOnelineStyle(E) : v(this.cfg) ? this.formatClauseInTabularStyle(E) : this.formatClauseInIndentedStyle(E);
18739
18787
  }
18740
18788
  isOnelineClause(E) {
18741
- return x(this.cfg) ? this.dialectCfg.tabularOnelineClauses[E.nameKw.text] : this.dialectCfg.onelineClauses[E.nameKw.text];
18789
+ return v(this.cfg) ? this.dialectCfg.tabularOnelineClauses[E.nameKw.text] : this.dialectCfg.onelineClauses[E.nameKw.text];
18742
18790
  }
18743
18791
  formatClauseInIndentedStyle(E) {
18744
- this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E.nameKw), _.NEWLINE), this.layout.indentation.increaseTopLevel(), this.layout.add(_.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseTopLevel();
18792
+ this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E.nameKw), r.NEWLINE), this.layout.indentation.increaseTopLevel(), this.layout.add(r.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseTopLevel();
18745
18793
  }
18746
18794
  formatClauseInOnelineStyle(E) {
18747
- this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E.nameKw), _.SPACE), this.layout = this.formatSubExpression(E.children);
18795
+ this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E.nameKw), r.SPACE), this.layout = this.formatSubExpression(E.children);
18748
18796
  }
18749
18797
  formatClauseInTabularStyle(E) {
18750
- this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E.nameKw), _.SPACE), this.layout.indentation.increaseTopLevel(), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseTopLevel();
18798
+ this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E.nameKw), r.SPACE), this.layout.indentation.increaseTopLevel(), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseTopLevel();
18751
18799
  }
18752
18800
  formatSetOperation(E) {
18753
- this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E.nameKw), _.NEWLINE), this.layout.add(_.INDENT), this.layout = this.formatSubExpression(E.children);
18801
+ this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E.nameKw), r.NEWLINE), this.layout.add(r.INDENT), this.layout = this.formatSubExpression(E.children);
18754
18802
  }
18755
18803
  formatLimitClause(E) {
18756
18804
  this.withComments(E.limitKw, () => {
18757
- this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E.limitKw));
18758
- }), this.layout.indentation.increaseTopLevel(), x(this.cfg) ? this.layout.add(_.SPACE) : this.layout.add(_.NEWLINE, _.INDENT), E.offset ? (this.layout = this.formatSubExpression(E.offset), this.layout.add(_.NO_SPACE, ",", _.SPACE), this.layout = this.formatSubExpression(E.count)) : this.layout = this.formatSubExpression(E.count), this.layout.indentation.decreaseTopLevel();
18805
+ this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E.limitKw));
18806
+ }), this.layout.indentation.increaseTopLevel(), v(this.cfg) ? this.layout.add(r.SPACE) : this.layout.add(r.NEWLINE, r.INDENT), E.offset ? (this.layout = this.formatSubExpression(E.offset), this.layout.add(r.NO_SPACE, ",", r.SPACE), this.layout = this.formatSubExpression(E.count)) : this.layout = this.formatSubExpression(E.count), this.layout.indentation.decreaseTopLevel();
18759
18807
  }
18760
18808
  formatAllColumnsAsterisk(E) {
18761
- this.layout.add("*", _.SPACE);
18809
+ this.layout.add("*", r.SPACE);
18762
18810
  }
18763
18811
  formatLiteral(E) {
18764
- this.layout.add(E.text, _.SPACE);
18812
+ this.layout.add(E.text, r.SPACE);
18765
18813
  }
18766
18814
  formatIdentifier(E) {
18767
- this.layout.add(this.showIdentifier(E), _.SPACE);
18815
+ this.layout.add(this.showIdentifier(E), r.SPACE);
18768
18816
  }
18769
18817
  formatParameter(E) {
18770
- this.layout.add(this.params.get(E), _.SPACE);
18818
+ this.layout.add(this.params.get(E), r.SPACE);
18771
18819
  }
18772
18820
  formatOperator({ text: E }) {
18773
- this.cfg.denseOperators || this.dialectCfg.alwaysDenseOperators.includes(E) ? this.layout.add(_.NO_SPACE, E) : E === ":" ? this.layout.add(_.NO_SPACE, E, _.SPACE) : this.layout.add(E, _.SPACE);
18821
+ this.cfg.denseOperators || this.dialectCfg.alwaysDenseOperators.includes(E) ? this.layout.add(r.NO_SPACE, E) : E === ":" ? this.layout.add(r.NO_SPACE, E, r.SPACE) : this.layout.add(E, r.SPACE);
18774
18822
  }
18775
18823
  formatComma(E) {
18776
- this.inline ? this.layout.add(_.NO_SPACE, ",", _.SPACE) : this.layout.add(_.NO_SPACE, ",", _.NEWLINE, _.INDENT);
18824
+ this.inline ? this.layout.add(r.NO_SPACE, ",", r.SPACE) : this.layout.add(r.NO_SPACE, ",", r.NEWLINE, r.INDENT);
18777
18825
  }
18778
18826
  withComments(E, R) {
18779
18827
  this.formatComments(E.leadingComments), R(), this.formatComments(E.trailingComments);
@@ -18784,15 +18832,15 @@ class EE {
18784
18832
  });
18785
18833
  }
18786
18834
  formatLineComment(E) {
18787
- cE(E.precedingWhitespace || "") ? this.layout.add(_.NEWLINE, _.INDENT, E.text, _.MANDATORY_NEWLINE, _.INDENT) : this.layout.getLayoutItems().length > 0 ? this.layout.add(_.NO_NEWLINE, _.SPACE, E.text, _.MANDATORY_NEWLINE, _.INDENT) : this.layout.add(E.text, _.MANDATORY_NEWLINE, _.INDENT);
18835
+ FE(E.precedingWhitespace || "") ? this.layout.add(r.NEWLINE, r.INDENT, E.text, r.MANDATORY_NEWLINE, r.INDENT) : this.layout.getLayoutItems().length > 0 ? this.layout.add(r.NO_NEWLINE, r.SPACE, E.text, r.MANDATORY_NEWLINE, r.INDENT) : this.layout.add(E.text, r.MANDATORY_NEWLINE, r.INDENT);
18788
18836
  }
18789
18837
  formatBlockComment(E) {
18790
18838
  E.type === M.block_comment && this.isMultilineBlockComment(E) ? (this.splitBlockComment(E.text).forEach((R) => {
18791
- this.layout.add(_.NEWLINE, _.INDENT, R);
18792
- }), this.layout.add(_.NEWLINE, _.INDENT)) : this.layout.add(E.text, _.SPACE);
18839
+ this.layout.add(r.NEWLINE, r.INDENT, R);
18840
+ }), this.layout.add(r.NEWLINE, r.INDENT)) : this.layout.add(E.text, r.SPACE);
18793
18841
  }
18794
18842
  isMultilineBlockComment(E) {
18795
- return cE(E.text) || cE(E.precedingWhitespace || "");
18843
+ return FE(E.text) || FE(E.precedingWhitespace || "");
18796
18844
  }
18797
18845
  isDocComment(E) {
18798
18846
  const R = E.split(/\n/);
@@ -18800,7 +18848,7 @@ class EE {
18800
18848
  // first line starts with /* or /**
18801
18849
  /^\/\*\*?$/.test(R[0]) && // intermediate lines start with *
18802
18850
  R.slice(1, R.length - 1).every((A) => /^\s*\*/.test(A)) && // last line ends with */
18803
- /^\s*\*\/$/.test(q(R))
18851
+ /^\s*\*\/$/.test(k(R))
18804
18852
  );
18805
18853
  }
18806
18854
  // Breaks up block comment to multiple lines.
@@ -18834,7 +18882,7 @@ class EE {
18834
18882
  return this.isDocComment(E) ? E.split(/\n/).map((R) => /^\s*\*/.test(R) ? " " + R.replace(/^\s*/, "") : R) : E.split(/\n/).map((R) => R.replace(/^\s*/, ""));
18835
18883
  }
18836
18884
  formatSubExpression(E) {
18837
- return new EE({
18885
+ return new TE({
18838
18886
  cfg: this.cfg,
18839
18887
  dialectCfg: this.dialectCfg,
18840
18888
  params: this.params,
@@ -18845,7 +18893,7 @@ class EE {
18845
18893
  formatInlineExpression(E) {
18846
18894
  const R = this.params.getPositionalParameterIndex();
18847
18895
  try {
18848
- return new EE({
18896
+ return new TE({
18849
18897
  cfg: this.cfg,
18850
18898
  dialectCfg: this.dialectCfg,
18851
18899
  params: this.params,
@@ -18853,7 +18901,7 @@ class EE {
18853
18901
  inline: !0
18854
18902
  }).format(E);
18855
18903
  } catch (A) {
18856
- if (A instanceof YE) {
18904
+ if (A instanceof hE) {
18857
18905
  this.params.setPositionalParameterIndex(R);
18858
18906
  return;
18859
18907
  } else
@@ -18873,19 +18921,19 @@ class EE {
18873
18921
  }
18874
18922
  }
18875
18923
  formatJoin(E) {
18876
- x(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E), _.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E), _.SPACE);
18924
+ v(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E), r.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E), r.SPACE);
18877
18925
  }
18878
18926
  formatKeyword(E) {
18879
- this.layout.add(this.showKw(E), _.SPACE);
18927
+ this.layout.add(this.showKw(E), r.SPACE);
18880
18928
  }
18881
18929
  formatLogicalOperator(E) {
18882
- this.cfg.logicalOperatorNewline === "before" ? x(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E), _.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(_.NEWLINE, _.INDENT, this.showKw(E), _.SPACE) : this.layout.add(this.showKw(E), _.NEWLINE, _.INDENT);
18930
+ this.cfg.logicalOperatorNewline === "before" ? v(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E), r.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(r.NEWLINE, r.INDENT, this.showKw(E), r.SPACE) : this.layout.add(this.showKw(E), r.NEWLINE, r.INDENT);
18883
18931
  }
18884
18932
  formatDataType(E) {
18885
- this.layout.add(this.showDataType(E), _.SPACE);
18933
+ this.layout.add(this.showDataType(E), r.SPACE);
18886
18934
  }
18887
18935
  showKw(E) {
18888
- return oT(E.tokenType) ? PT(this.showNonTabularKw(E), this.cfg.indentStyle) : this.showNonTabularKw(E);
18936
+ return cT(E.tokenType) ? GT(this.showNonTabularKw(E), this.cfg.indentStyle) : this.showNonTabularKw(E);
18889
18937
  }
18890
18938
  // Like showKw(), but skips tabular formatting
18891
18939
  showNonTabularKw(E) {
@@ -18899,7 +18947,7 @@ class EE {
18899
18947
  }
18900
18948
  }
18901
18949
  showFunctionKw(E) {
18902
- return oT(E.tokenType) ? PT(this.showNonTabularFunctionKw(E), this.cfg.indentStyle) : this.showNonTabularFunctionKw(E);
18950
+ return cT(E.tokenType) ? GT(this.showNonTabularFunctionKw(E), this.cfg.indentStyle) : this.showNonTabularFunctionKw(E);
18903
18951
  }
18904
18952
  // Like showFunctionKw(), but skips tabular formatting
18905
18953
  showNonTabularFunctionKw(E) {
@@ -18949,20 +18997,20 @@ class DO {
18949
18997
  return this.formatAst(R).trimEnd();
18950
18998
  }
18951
18999
  parse(E) {
18952
- return tO(this.dialect.tokenizer).parse(E, this.cfg.paramTypes || {});
19000
+ return sO(this.dialect.tokenizer).parse(E, this.cfg.paramTypes || {});
18953
19001
  }
18954
19002
  formatAst(E) {
18955
19003
  return E.map((R) => this.formatStatement(R)).join(`
18956
19004
  `.repeat(this.cfg.linesBetweenQueries + 1));
18957
19005
  }
18958
19006
  formatStatement(E) {
18959
- const R = new EE({
19007
+ const R = new TE({
18960
19008
  cfg: this.cfg,
18961
19009
  dialectCfg: this.dialect.formatOptions,
18962
19010
  params: this.params,
18963
- layout: new pT(new dT(vI(this.cfg)))
19011
+ layout: new fT(new XT(vI(this.cfg)))
18964
19012
  }).format(E.children);
18965
- return E.hasSemicolon && (this.cfg.newlineBeforeSemicolon ? R.add(_.NEWLINE, ";") : R.add(_.NO_NEWLINE, ";")), R.toString();
19013
+ return E.hasSemicolon && (this.cfg.newlineBeforeSemicolon ? R.add(r.NEWLINE, ";") : R.add(r.NO_NEWLINE, ";")), R.toString();
18966
19014
  }
18967
19015
  }
18968
19016
  class z extends Error {
@@ -18999,7 +19047,7 @@ var aO = function(T, E) {
18999
19047
  E.indexOf(A[S]) < 0 && Object.prototype.propertyIsEnumerable.call(T, A[S]) && (R[A[S]] = T[A[S]]);
19000
19048
  return R;
19001
19049
  };
19002
- const VT = {
19050
+ const bT = {
19003
19051
  bigquery: "bigquery",
19004
19052
  db2: "db2",
19005
19053
  db2i: "db2i",
@@ -19020,7 +19068,7 @@ const VT = {
19020
19068
  tsql: "transactsql",
19021
19069
  singlestoredb: "singlestoredb",
19022
19070
  snowflake: "snowflake"
19023
- }, MO = Object.keys(VT), UO = {
19071
+ }, MO = Object.keys(bT), UO = {
19024
19072
  tabWidth: 2,
19025
19073
  useTabs: !1,
19026
19074
  keywordCase: "preserve",
@@ -19036,7 +19084,7 @@ const VT = {
19036
19084
  }, GO = (T, E = {}) => {
19037
19085
  if (typeof E.language == "string" && !MO.includes(E.language))
19038
19086
  throw new z(`Unsupported SQL dialect: ${E.language}`);
19039
- const R = VT[E.language || "sql"];
19087
+ const R = bT[E.language || "sql"];
19040
19088
  return cO(T, Object.assign(Object.assign({}, E), { dialect: YI[R] }));
19041
19089
  }, cO = (T, E) => {
19042
19090
  var { dialect: R } = E, A = aO(E, ["dialect"]);
@@ -19045,7 +19093,7 @@ const VT = {
19045
19093
  const S = iO(Object.assign(Object.assign({}, UO), A));
19046
19094
  return new DO(JI(R), S).format(T);
19047
19095
  };
19048
- function aT(T, E) {
19096
+ function lT(T, E) {
19049
19097
  try {
19050
19098
  return GO(T, {
19051
19099
  language: {
@@ -19061,15 +19109,15 @@ function aT(T, E) {
19061
19109
  return console.warn("SQL formatting failed:", R), T;
19062
19110
  }
19063
19111
  }
19064
- class hE {
19112
+ class bE {
19065
19113
  // 5 minutes in milliseconds
19066
19114
  constructor(E) {
19067
- f(this, "cubes", /* @__PURE__ */ new Map());
19068
- f(this, "dbExecutor");
19069
- f(this, "metadataCache");
19070
- f(this, "metadataCacheTimestamp");
19071
- f(this, "METADATA_CACHE_TTL", 5 * 60 * 1e3);
19072
- E != null && E.databaseExecutor ? this.dbExecutor = E.databaseExecutor : E != null && E.drizzle && (this.dbExecutor = $E(
19115
+ W(this, "cubes", /* @__PURE__ */ new Map());
19116
+ W(this, "dbExecutor");
19117
+ W(this, "metadataCache");
19118
+ W(this, "metadataCacheTimestamp");
19119
+ W(this, "METADATA_CACHE_TTL", 5 * 60 * 1e3);
19120
+ E != null && E.databaseExecutor ? this.dbExecutor = E.databaseExecutor : E != null && E.drizzle && (this.dbExecutor = vE(
19073
19121
  E.drizzle,
19074
19122
  E.schema,
19075
19123
  E.engineType
@@ -19092,7 +19140,7 @@ class hE {
19092
19140
  * Set Drizzle instance and schema directly
19093
19141
  */
19094
19142
  setDrizzle(E, R, A) {
19095
- this.dbExecutor = $E(E, R, A);
19143
+ this.dbExecutor = vE(E, R, A);
19096
19144
  }
19097
19145
  /**
19098
19146
  * Check if database executor is configured
@@ -19130,7 +19178,7 @@ class hE {
19130
19178
  async execute(E, R) {
19131
19179
  if (!this.dbExecutor)
19132
19180
  throw new Error("Database executor not configured");
19133
- return new IE(this.dbExecutor).execute(this.cubes, E, R);
19181
+ return new tE(this.dbExecutor).execute(this.cubes, E, R);
19134
19182
  }
19135
19183
  /**
19136
19184
  * Execute a multi-cube query
@@ -19206,9 +19254,9 @@ class hE {
19206
19254
  throw new Error(`Cube '${E}' not found`);
19207
19255
  if (!this.dbExecutor)
19208
19256
  throw new Error("Database executor not configured");
19209
- const N = await new IE(this.dbExecutor).generateSQL(S, R, A), e = this.dbExecutor.getEngineType();
19257
+ const N = await new tE(this.dbExecutor).generateSQL(S, R, A), e = this.dbExecutor.getEngineType();
19210
19258
  return {
19211
- sql: aT(N.sql, e),
19259
+ sql: lT(N.sql, e),
19212
19260
  params: N.params
19213
19261
  };
19214
19262
  }
@@ -19218,9 +19266,9 @@ class hE {
19218
19266
  async generateMultiCubeSQL(E, R) {
19219
19267
  if (!this.dbExecutor)
19220
19268
  throw new Error("Database executor not configured");
19221
- const S = await new IE(this.dbExecutor).generateMultiCubeSQL(this.cubes, E, R), I = this.dbExecutor.getEngineType();
19269
+ const S = await new tE(this.dbExecutor).generateMultiCubeSQL(this.cubes, E, R), I = this.dbExecutor.getEngineType();
19222
19270
  return {
19223
- sql: aT(S.sql, I),
19271
+ sql: lT(S.sql, I),
19224
19272
  params: S.params
19225
19273
  };
19226
19274
  }
@@ -19261,10 +19309,10 @@ class hE {
19261
19309
  * Ensures all referenced cubes and fields exist
19262
19310
  */
19263
19311
  validateQuery(E) {
19264
- return hT(this.cubes, E);
19312
+ return KT(this.cubes, E);
19265
19313
  }
19266
19314
  }
19267
- function hT(T, E) {
19315
+ function KT(T, E) {
19268
19316
  const R = [], A = /* @__PURE__ */ new Set();
19269
19317
  if (E.measures)
19270
19318
  for (const S of E.measures) {
@@ -19313,17 +19361,17 @@ function hT(T, E) {
19313
19361
  }
19314
19362
  if (E.filters)
19315
19363
  for (const S of E.filters)
19316
- fT(S, T, R, A);
19364
+ yT(S, T, R, A);
19317
19365
  return A.size === 0 && R.push("Query must reference at least one cube through measures, dimensions, or filters"), {
19318
19366
  isValid: R.length === 0,
19319
19367
  errors: R
19320
19368
  };
19321
19369
  }
19322
- function fT(T, E, R, A) {
19370
+ function yT(T, E, R, A) {
19323
19371
  if ("and" in T || "or" in T) {
19324
19372
  const e = T.and || T.or || [];
19325
19373
  for (const n of e)
19326
- fT(n, E, R, A);
19374
+ yT(n, E, R, A);
19327
19375
  return;
19328
19376
  }
19329
19377
  if (!("member" in T)) {
@@ -19344,11 +19392,11 @@ function fT(T, E, R, A) {
19344
19392
  !N.dimensions[I] && !N.measures[I] && R.push(`Filter field '${I}' not found on cube '${S}' (must be a dimension or measure)`);
19345
19393
  }
19346
19394
  function YO(T) {
19347
- return new hE(T);
19395
+ return new bE(T);
19348
19396
  }
19349
- const lO = new hE(), mO = lO;
19397
+ const lO = new bE(), mO = lO;
19350
19398
  function pO(T) {
19351
- return new hE({
19399
+ return new bE({
19352
19400
  drizzle: T.drizzle,
19353
19401
  schema: T.schema
19354
19402
  });
@@ -19460,26 +19508,26 @@ const dO = {
19460
19508
  }
19461
19509
  };
19462
19510
  export {
19463
- dE as BaseDatabaseExecutor,
19511
+ fE as BaseDatabaseExecutor,
19464
19512
  zT as MySQLExecutor,
19465
19513
  jT as PostgresExecutor,
19466
19514
  AR as QueryBuilder,
19467
- IE as QueryExecutor,
19515
+ tE as QueryExecutor,
19468
19516
  SR as QueryPlanner,
19469
19517
  TR as SQLiteExecutor,
19470
- hE as SemanticLayerCompiler,
19518
+ bE as SemanticLayerCompiler,
19471
19519
  dO as SemanticLayerUtils,
19472
- $E as createDatabaseExecutor,
19520
+ vE as createDatabaseExecutor,
19473
19521
  pO as createDrizzleSemanticLayer,
19474
19522
  uO as createMultiCubeContext,
19475
19523
  ER as createMySQLExecutor,
19476
- KE as createPostgresExecutor,
19477
- yE as createSQLiteExecutor,
19524
+ wE as createPostgresExecutor,
19525
+ xE as createSQLiteExecutor,
19478
19526
  YO as createSemanticLayer,
19479
19527
  mO as defaultSemanticLayer,
19480
19528
  FO as defineCube,
19481
19529
  RR as getJoinType,
19482
- gE as resolveCubeReference,
19530
+ QE as resolveCubeReference,
19483
19531
  K as resolveSqlExpression,
19484
19532
  lO as semanticLayer
19485
19533
  };