drizzle-cube 0.3.28 → 0.3.31

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 (84) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/express/index.js +1 -1
  3. package/dist/adapters/fastify/index.cjs +1 -1
  4. package/dist/adapters/fastify/index.js +1 -1
  5. package/dist/adapters/hono/index.cjs +1 -1
  6. package/dist/adapters/hono/index.js +1 -1
  7. package/dist/adapters/{mcp-transport-CXGL1hg7.js → mcp-transport-D4KrudfS.js} +282 -277
  8. package/dist/adapters/{mcp-transport-ConlvewL.cjs → mcp-transport-Dn7sKoBD.cjs} +7 -7
  9. package/dist/adapters/nextjs/index.cjs +1 -1
  10. package/dist/adapters/nextjs/index.js +1 -1
  11. package/dist/adapters/utils.cjs +1 -1
  12. package/dist/adapters/utils.js +3 -3
  13. package/dist/client/charts.js +12 -12
  14. package/dist/client/chunks/{DashboardEditModal-t5XeTZom.js → DashboardEditModal-rLcmZpe_.js} +8 -8
  15. package/dist/client/chunks/{DashboardEditModal-t5XeTZom.js.map → DashboardEditModal-rLcmZpe_.js.map} +1 -1
  16. package/dist/client/chunks/{RetentionCombinedChart-SsBGHJWi.js → RetentionCombinedChart-7bGP_ozM.js} +2 -2
  17. package/dist/client/chunks/{RetentionCombinedChart-SsBGHJWi.js.map → RetentionCombinedChart-7bGP_ozM.js.map} +1 -1
  18. package/dist/client/chunks/{analysis-builder-CKVYG9jJ.js → analysis-builder-DCt5C58c.js} +8 -8
  19. package/dist/client/chunks/{analysis-builder-CKVYG9jJ.js.map → analysis-builder-DCt5C58c.js.map} +1 -1
  20. package/dist/client/chunks/{analysis-builder-shared-CF8Vx1oD.js → analysis-builder-shared-ysrRYGiU.js} +7 -7
  21. package/dist/client/chunks/{analysis-builder-shared-CF8Vx1oD.js.map → analysis-builder-shared-ysrRYGiU.js.map} +1 -1
  22. package/dist/client/chunks/{chart-activity-grid-Bpu_-8uT.js → chart-activity-grid-sUkuCJzm.js} +2 -2
  23. package/dist/client/chunks/{chart-activity-grid-Bpu_-8uT.js.map → chart-activity-grid-sUkuCJzm.js.map} +1 -1
  24. package/dist/client/chunks/{chart-area-DcvLkvGb.js → chart-area-C4DIi9k_.js} +3 -3
  25. package/dist/client/chunks/{chart-area-DcvLkvGb.js.map → chart-area-C4DIi9k_.js.map} +1 -1
  26. package/dist/client/chunks/{chart-bar-CNfm5iMY.js → chart-bar-7ZleGCsN.js} +2 -2
  27. package/dist/client/chunks/{chart-bar-CNfm5iMY.js.map → chart-bar-7ZleGCsN.js.map} +1 -1
  28. package/dist/client/chunks/{chart-bubble-KA-RYWR8.js → chart-bubble-D-auWIjP.js} +2 -2
  29. package/dist/client/chunks/{chart-bubble-KA-RYWR8.js.map → chart-bubble-D-auWIjP.js.map} +1 -1
  30. package/dist/client/chunks/{chart-data-table-Cq14arji.js → chart-data-table-DW6VNGeW.js} +3 -3
  31. package/dist/client/chunks/{chart-data-table-Cq14arji.js.map → chart-data-table-DW6VNGeW.js.map} +1 -1
  32. package/dist/client/chunks/{chart-funnel-DFKWS49U.js → chart-funnel-eUJApzmA.js} +2 -2
  33. package/dist/client/chunks/{chart-funnel-DFKWS49U.js.map → chart-funnel-eUJApzmA.js.map} +1 -1
  34. package/dist/client/chunks/{chart-heat-map-D2g0dbKz.js → chart-heat-map-DR3O3GXx.js} +2 -2
  35. package/dist/client/chunks/{chart-heat-map-D2g0dbKz.js.map → chart-heat-map-DR3O3GXx.js.map} +1 -1
  36. package/dist/client/chunks/{chart-kpi-delta-Cc-jiBd0.js → chart-kpi-delta-Bp9Yrgyc.js} +3 -3
  37. package/dist/client/chunks/{chart-kpi-delta-Cc-jiBd0.js.map → chart-kpi-delta-Bp9Yrgyc.js.map} +1 -1
  38. package/dist/client/chunks/{chart-kpi-number-BXolYaZA.js → chart-kpi-number-B3yvgbr-.js} +2 -2
  39. package/dist/client/chunks/{chart-kpi-number-BXolYaZA.js.map → chart-kpi-number-B3yvgbr-.js.map} +1 -1
  40. package/dist/client/chunks/{chart-kpi-text-PA8oyypA.js → chart-kpi-text-D0TsUiaO.js} +3 -3
  41. package/dist/client/chunks/{chart-kpi-text-PA8oyypA.js.map → chart-kpi-text-D0TsUiaO.js.map} +1 -1
  42. package/dist/client/chunks/{chart-line-BOrtUdOD.js → chart-line-C7VStgaJ.js} +3 -3
  43. package/dist/client/chunks/{chart-line-BOrtUdOD.js.map → chart-line-C7VStgaJ.js.map} +1 -1
  44. package/dist/client/chunks/{chart-pie-B-Sbsvd2.js → chart-pie-DPdYJSM3.js} +2 -2
  45. package/dist/client/chunks/{chart-pie-B-Sbsvd2.js.map → chart-pie-DPdYJSM3.js.map} +1 -1
  46. package/dist/client/chunks/{chart-radar-CezgvXhm.js → chart-radar-DF6VNSiC.js} +2 -2
  47. package/dist/client/chunks/{chart-radar-CezgvXhm.js.map → chart-radar-DF6VNSiC.js.map} +1 -1
  48. package/dist/client/chunks/{chart-radial-bar-COBPiBxm.js → chart-radial-bar-7Ttfz-kO.js} +2 -2
  49. package/dist/client/chunks/{chart-radial-bar-COBPiBxm.js.map → chart-radial-bar-7Ttfz-kO.js.map} +1 -1
  50. package/dist/client/chunks/{chart-sankey-O4WQBRDk.js → chart-sankey-D86RYk9B.js} +2 -2
  51. package/dist/client/chunks/{chart-sankey-O4WQBRDk.js.map → chart-sankey-D86RYk9B.js.map} +1 -1
  52. package/dist/client/chunks/{chart-scatter-BVF0n9DR.js → chart-scatter-BUnIiLr_.js} +2 -2
  53. package/dist/client/chunks/{chart-scatter-BVF0n9DR.js.map → chart-scatter-BUnIiLr_.js.map} +1 -1
  54. package/dist/client/chunks/{chart-sunburst-DZzVj_6S.js → chart-sunburst-CsHlHfZQ.js} +2 -2
  55. package/dist/client/chunks/{chart-sunburst-DZzVj_6S.js.map → chart-sunburst-CsHlHfZQ.js.map} +1 -1
  56. package/dist/client/chunks/{chart-tree-map-CeEtNuo6.js → chart-tree-map-DFAbkeo1.js} +2 -2
  57. package/dist/client/chunks/{chart-tree-map-CeEtNuo6.js.map → chart-tree-map-DFAbkeo1.js.map} +1 -1
  58. package/dist/client/chunks/{charts-core-DF99lItO.js → charts-core-DAF1iT_h.js} +2 -2
  59. package/dist/client/chunks/{charts-core-DF99lItO.js.map → charts-core-DAF1iT_h.js.map} +1 -1
  60. package/dist/client/chunks/{charts-loader-AkRviD9H.js → charts-loader-7pEaEz-f.js} +20 -20
  61. package/dist/client/chunks/{charts-loader-AkRviD9H.js.map → charts-loader-7pEaEz-f.js.map} +1 -1
  62. package/dist/client/chunks/{core-Bso4ultM.js → core-DGLxd5v5.js} +2 -2
  63. package/dist/client/chunks/{core-Bso4ultM.js.map → core-DGLxd5v5.js.map} +1 -1
  64. package/dist/client/chunks/{hooks-B69r8rwU.js → hooks-CdyIO1-j.js} +4 -4
  65. package/dist/client/chunks/{hooks-B69r8rwU.js.map → hooks-CdyIO1-j.js.map} +1 -1
  66. package/dist/client/chunks/{providers-CxlSRYvE.js → providers-D2xswCYu.js} +2 -2
  67. package/dist/client/chunks/{providers-CxlSRYvE.js.map → providers-D2xswCYu.js.map} +1 -1
  68. package/dist/client/chunks/{syntaxHighlighting-yTdSle2t.js → syntaxHighlighting-DAT9C6Ss.js} +2 -2
  69. package/dist/client/chunks/{syntaxHighlighting-yTdSle2t.js.map → syntaxHighlighting-DAT9C6Ss.js.map} +1 -1
  70. package/dist/client/chunks/{useDirtyStateTracking-GZtwGRu7.js → useDirtyStateTracking-CTS_m9mg.js} +3 -3
  71. package/dist/client/chunks/{useDirtyStateTracking-GZtwGRu7.js.map → useDirtyStateTracking-CTS_m9mg.js.map} +1 -1
  72. package/dist/client/chunks/{vendor-B_H-VRhj.js → vendor-DfDLOfBe.js} +2 -2
  73. package/dist/client/chunks/vendor-DfDLOfBe.js.map +1 -0
  74. package/dist/client/components.js +2 -2
  75. package/dist/client/hooks.js +3 -3
  76. package/dist/client/index.js +9 -9
  77. package/dist/client/providers.js +1 -1
  78. package/dist/client/styles.css +1 -1
  79. package/dist/client/utils.js +6 -6
  80. package/dist/client-bundle-stats.html +34 -33
  81. package/dist/server/index.cjs +5 -5
  82. package/dist/server/index.js +230 -225
  83. package/package.json +1 -1
  84. package/dist/client/chunks/vendor-B_H-VRhj.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { sql as o, eq as X, and as y, SQL as yE, gte as ae, lte as oe, arrayContained as bE, arrayOverlaps as FE, arrayContains as BE, isNotNull as Ct, ne as lt, or as Ce, isNull as ut, notInArray as Lt, inArray as Ge, lt as ye, gt as be, StringChunk as HE, sum as J, max as Z, min as le, count as rt, countDistinct as YE, desc as VE, asc as _t } from "drizzle-orm";
1
+ import { sql as o, eq as K, and as G, SQL as yE, gte as ae, lte as oe, arrayContained as bE, arrayOverlaps as FE, arrayContains as BE, isNotNull as Ct, ne as lt, or as Ce, isNull as ut, notInArray as Lt, inArray as Ge, lt as ye, gt as be, StringChunk as HE, sum as Q, max as Z, min as le, count as rt, countDistinct as YE, desc as VE, asc as _t } from "drizzle-orm";
2
2
  class Ue {
3
3
  /**
4
4
  * Default implementation returns template unchanged
@@ -2007,7 +2007,7 @@ function Dt(n, e, t) {
2007
2007
  return ct(n, e);
2008
2008
  throw new Error("Unable to determine database engine type. Please specify engineType parameter.");
2009
2009
  }
2010
- function Q(n) {
2010
+ function X(n) {
2011
2011
  return typeof n == "function" ? n() : n;
2012
2012
  }
2013
2013
  function Tt(n, e) {
@@ -2054,12 +2054,12 @@ function Ts(n, e) {
2054
2054
  throw new Error("expandBelongsToManyJoin can only be called on belongsToMany relationships with through configuration");
2055
2055
  const { table: t, sourceKey: E, targetKey: s, securitySql: i } = n.through, r = [];
2056
2056
  for (const R of E) {
2057
- const S = R.as || X;
2057
+ const S = R.as || K;
2058
2058
  r.push(S(R.source, R.target));
2059
2059
  }
2060
2060
  const T = [];
2061
2061
  for (const R of s) {
2062
- const S = R.as || X;
2062
+ const S = R.as || K;
2063
2063
  T.push(S(R.source, R.target));
2064
2064
  }
2065
2065
  let A;
@@ -2073,13 +2073,13 @@ function Ts(n, e) {
2073
2073
  {
2074
2074
  joinType: a,
2075
2075
  table: t,
2076
- condition: y(...r)
2076
+ condition: G(...r)
2077
2077
  },
2078
2078
  {
2079
2079
  joinType: a,
2080
2080
  table: t,
2081
2081
  // This will be replaced with target cube table in query planner
2082
- condition: y(...T)
2082
+ condition: G(...T)
2083
2083
  }
2084
2084
  ],
2085
2085
  junctionSecurityConditions: A
@@ -2174,7 +2174,7 @@ function os(n) {
2174
2174
  return {
2175
2175
  measures: n.measures ? [...n.measures].sort() : void 0,
2176
2176
  dimensions: n.dimensions ? [...n.dimensions].sort() : void 0,
2177
- filters: n.filters ? K(n.filters) : void 0,
2177
+ filters: n.filters ? x(n.filters) : void 0,
2178
2178
  timeDimensions: n.timeDimensions ? Is(n.timeDimensions) : void 0,
2179
2179
  limit: n.limit,
2180
2180
  offset: n.offset,
@@ -2196,7 +2196,7 @@ function As(n) {
2196
2196
  steps: n.steps.map((e) => {
2197
2197
  const t = {
2198
2198
  name: e.name,
2199
- filter: e.filter ? Array.isArray(e.filter) ? K(e.filter) : K([e.filter])[0] : void 0,
2199
+ filter: e.filter ? Array.isArray(e.filter) ? x(e.filter) : x([e.filter])[0] : void 0,
2200
2200
  timeToConvert: e.timeToConvert
2201
2201
  };
2202
2202
  return "cube" in e && e.cube && (t.cube = e.cube), t;
@@ -2213,7 +2213,7 @@ function Rs(n) {
2213
2213
  // Normalize starting step - sort filters for consistent hashing
2214
2214
  startingStep: {
2215
2215
  name: n.startingStep.name,
2216
- filter: n.startingStep.filter ? Array.isArray(n.startingStep.filter) ? K(n.startingStep.filter) : K([n.startingStep.filter])[0] : void 0
2216
+ filter: n.startingStep.filter ? Array.isArray(n.startingStep.filter) ? x(n.startingStep.filter) : x([n.startingStep.filter])[0] : void 0
2217
2217
  },
2218
2218
  // CRITICAL: Include step counts in cache key
2219
2219
  stepsBefore: n.stepsBefore,
@@ -2235,18 +2235,18 @@ function Ss(n) {
2235
2235
  periods: n.periods,
2236
2236
  retentionType: n.retentionType,
2237
2237
  // Normalize filters for consistent hashing
2238
- cohortFilters: n.cohortFilters ? Array.isArray(n.cohortFilters) ? K(n.cohortFilters) : K([n.cohortFilters])[0] : void 0,
2239
- activityFilters: n.activityFilters ? Array.isArray(n.activityFilters) ? K(n.activityFilters) : K([n.activityFilters])[0] : void 0,
2238
+ cohortFilters: n.cohortFilters ? Array.isArray(n.cohortFilters) ? x(n.cohortFilters) : x([n.cohortFilters])[0] : void 0,
2239
+ activityFilters: n.activityFilters ? Array.isArray(n.activityFilters) ? x(n.activityFilters) : x([n.activityFilters])[0] : void 0,
2240
2240
  // Include breakdown dimensions for cache key
2241
2241
  breakdownDimensions: n.breakdownDimensions
2242
2242
  };
2243
2243
  }
2244
- function K(n) {
2244
+ function x(n) {
2245
2245
  return [...n].map((e) => {
2246
2246
  if ("and" in e && e.and)
2247
- return { and: K(e.and) };
2247
+ return { and: x(e.and) };
2248
2248
  if ("or" in e && e.or)
2249
- return { or: K(e.or) };
2249
+ return { or: x(e.or) };
2250
2250
  const t = e;
2251
2251
  return {
2252
2252
  ...t,
@@ -2304,7 +2304,7 @@ class Ne {
2304
2304
  const i = typeof s == "number" ? new Date(s * (this.databaseAdapter.getEngineType() === "sqlite" ? 1e3 : 1)) : new Date(s), r = new Date(i);
2305
2305
  r.setUTCHours(23, 59, 59, 999), this.databaseAdapter.isTimestampInteger() ? s = this.databaseAdapter.getEngineType() === "sqlite" ? Math.floor(r.getTime() / 1e3) : r.getTime() : s = r.toISOString();
2306
2306
  }
2307
- return y(
2307
+ return G(
2308
2308
  ae(e, E),
2309
2309
  oe(e, s)
2310
2310
  );
@@ -2313,7 +2313,7 @@ class Ne {
2313
2313
  const E = this.parseRelativeDateRange(t);
2314
2314
  if (E) {
2315
2315
  let R, S;
2316
- return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (R = Math.floor(E.start.getTime() / 1e3), S = Math.floor(E.end.getTime() / 1e3)) : (R = E.start.getTime(), S = E.end.getTime()) : (R = E.start.toISOString(), S = E.end.toISOString()), y(
2316
+ return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (R = Math.floor(E.start.getTime() / 1e3), S = Math.floor(E.end.getTime() / 1e3)) : (R = E.start.getTime(), S = E.end.getTime()) : (R = E.start.toISOString(), S = E.end.toISOString()), G(
2317
2317
  ae(e, R),
2318
2318
  oe(e, S)
2319
2319
  );
@@ -2325,7 +2325,7 @@ class Ne {
2325
2325
  const T = new Date(i);
2326
2326
  T.setUTCHours(23, 59, 59, 999);
2327
2327
  let A, a;
2328
- return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (A = Math.floor(r.getTime() / 1e3), a = Math.floor(T.getTime() / 1e3)) : (A = r.getTime(), a = T.getTime()) : (A = r.toISOString(), a = T.toISOString()), y(
2328
+ return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (A = Math.floor(r.getTime() / 1e3), a = Math.floor(T.getTime() / 1e3)) : (A = r.getTime(), a = T.getTime()) : (A = r.toISOString(), a = T.toISOString()), G(
2329
2329
  ae(e, A),
2330
2330
  oe(e, a)
2331
2331
  );
@@ -2476,7 +2476,7 @@ class he {
2476
2476
  return Ge(e, r);
2477
2477
  } else if (r.length === 1) {
2478
2478
  const A = s?.type === "time" && this.dateTimeBuilder.normalizeDate(T) || T;
2479
- return X(e, A);
2479
+ return K(e, A);
2480
2480
  }
2481
2481
  return this.databaseAdapter.buildBooleanLiteral(!1);
2482
2482
  case "notEquals":
@@ -2511,7 +2511,7 @@ class he {
2511
2511
  const S = typeof a == "number" ? new Date(a * (this.databaseAdapter.getEngineType() === "sqlite" ? 1e3 : 1)) : new Date(a), I = new Date(S);
2512
2512
  I.setUTCHours(23, 59, 59, 999), this.databaseAdapter.isTimestampInteger() ? a = this.databaseAdapter.getEngineType() === "sqlite" ? Math.floor(I.getTime() / 1e3) : I.getTime() : a = I.toISOString();
2513
2513
  }
2514
- return y(
2514
+ return G(
2515
2515
  ae(e, A),
2516
2516
  oe(e, a)
2517
2517
  );
@@ -2527,7 +2527,7 @@ class he {
2527
2527
  return A ? be(e, A) : null;
2528
2528
  }
2529
2529
  case "between":
2530
- return r.length >= 2 ? y(
2530
+ return r.length >= 2 ? G(
2531
2531
  ae(e, r[0]),
2532
2532
  oe(e, r[1])
2533
2533
  ) : null;
@@ -2553,10 +2553,10 @@ class he {
2553
2553
  case "isEmpty":
2554
2554
  return Ce(
2555
2555
  ut(e),
2556
- X(e, "")
2556
+ K(e, "")
2557
2557
  );
2558
2558
  case "isNotEmpty":
2559
- return y(
2559
+ return G(
2560
2560
  Ct(e),
2561
2561
  lt(e, "")
2562
2562
  );
@@ -2579,7 +2579,7 @@ class he {
2579
2579
  buildLogicalFilter(e, t, E) {
2580
2580
  if ("and" in e && e.and) {
2581
2581
  const s = e.and.map((i) => this.buildSingleFilter(i, t, E)).filter((i) => i !== null);
2582
- return s.length > 0 ? s.length === 1 ? s[0] : y(...s) : null;
2582
+ return s.length > 0 ? s.length === 1 ? s[0] : G(...s) : null;
2583
2583
  }
2584
2584
  if ("or" in e && e.or) {
2585
2585
  const s = e.or.map((i) => this.buildSingleFilter(i, t, E)).filter((i) => i !== null);
@@ -3030,7 +3030,7 @@ class H {
3030
3030
  case "count":
3031
3031
  case "countDistinct":
3032
3032
  case "sum":
3033
- O = J(N);
3033
+ O = Q(N);
3034
3034
  break;
3035
3035
  case "avg":
3036
3036
  O = this.databaseAdapter.buildAvg(N);
@@ -3042,10 +3042,10 @@ class H {
3042
3042
  O = Z(N);
3043
3043
  break;
3044
3044
  case "number":
3045
- O = J(N);
3045
+ O = Q(N);
3046
3046
  break;
3047
3047
  default:
3048
- O = J(N);
3048
+ O = Q(N);
3049
3049
  }
3050
3050
  r.set(A, () => O);
3051
3051
  }
@@ -3087,7 +3087,7 @@ class H {
3087
3087
  case "count":
3088
3088
  case "countDistinct":
3089
3089
  case "sum":
3090
- return J(T);
3090
+ return Q(T);
3091
3091
  case "avg":
3092
3092
  return this.databaseAdapter.buildAvg(T);
3093
3093
  case "min":
@@ -3095,9 +3095,9 @@ class H {
3095
3095
  case "max":
3096
3096
  return Z(T);
3097
3097
  case "number":
3098
- return J(T);
3098
+ return Q(T);
3099
3099
  default:
3100
- return J(T);
3100
+ return Q(T);
3101
3101
  }
3102
3102
  }
3103
3103
  }
@@ -3131,7 +3131,7 @@ class H {
3131
3131
  return T ? o`(${T})` : void 0;
3132
3132
  }).filter(Boolean);
3133
3133
  if (i.length > 0) {
3134
- const r = i.length === 1 ? i[0] : y(...i);
3134
+ const r = i.length === 1 ? i[0] : G(...i);
3135
3135
  s = this.databaseAdapter.buildCaseWhen([
3136
3136
  { when: r, then: s }
3137
3137
  ]);
@@ -3143,7 +3143,7 @@ class H {
3143
3143
  case "countDistinct":
3144
3144
  return YE(s);
3145
3145
  case "sum":
3146
- return J(s);
3146
+ return Q(s);
3147
3147
  case "avg":
3148
3148
  return this.databaseAdapter.buildAvg(s);
3149
3149
  case "min":
@@ -3662,7 +3662,7 @@ class ls {
3662
3662
  const N = e;
3663
3663
  if (N.and) {
3664
3664
  const O = N.and.map((C) => this.processFilter(C, t, E, s, i)).filter((C) => C !== null);
3665
- return O.length > 0 ? y(...O) : null;
3665
+ return O.length > 0 ? G(...O) : null;
3666
3666
  }
3667
3667
  if (N.or) {
3668
3668
  const O = N.or.map((C) => this.processFilter(C, t, E, s, i)).filter((C) => C !== null);
@@ -3835,7 +3835,7 @@ class ue {
3835
3835
  const { cube: A, path: a } = r.shift(), R = this.cubes.get(A);
3836
3836
  if (R?.joins)
3837
3837
  for (const [, S] of Object.entries(R.joins)) {
3838
- const N = Q(S.targetCube).name;
3838
+ const N = X(S.targetCube).name;
3839
3839
  if (T.has(N))
3840
3840
  continue;
3841
3841
  const O = [
@@ -3915,7 +3915,7 @@ class ue {
3915
3915
  const R = this.cubes.get(T);
3916
3916
  if (R?.joins)
3917
3917
  for (const [, S] of Object.entries(R.joins)) {
3918
- const N = Q(S.targetCube).name;
3918
+ const N = X(S.targetCube).name;
3919
3919
  if (a.has(N))
3920
3920
  continue;
3921
3921
  const O = [
@@ -3963,10 +3963,10 @@ class ue {
3963
3963
  buildJoinCondition(e, t, E) {
3964
3964
  const s = [];
3965
3965
  for (const i of e.on) {
3966
- const r = t ? o`${o.identifier(t)}.${o.identifier(i.source.name)}` : at(i.source), T = E ? o`${o.identifier(E)}.${o.identifier(i.target.name)}` : at(i.target), A = i.as || X;
3966
+ const r = t ? o`${o.identifier(t)}.${o.identifier(i.source.name)}` : at(i.source), T = E ? o`${o.identifier(E)}.${o.identifier(i.target.name)}` : at(i.target), A = i.as || K;
3967
3967
  s.push(A(r, T));
3968
3968
  }
3969
- return y(...s);
3969
+ return G(...s);
3970
3970
  }
3971
3971
  /**
3972
3972
  * Get all reachable cubes from a starting cube
@@ -3981,7 +3981,7 @@ class ue {
3981
3981
  const s = E.shift(), i = this.cubes.get(s);
3982
3982
  if (i?.joins)
3983
3983
  for (const [, r] of Object.entries(i.joins)) {
3984
- const A = Q(r.targetCube).name;
3984
+ const A = X(r.targetCube).name;
3985
3985
  t.has(A) || (t.add(A), E.push(A));
3986
3986
  }
3987
3987
  }
@@ -4247,7 +4247,7 @@ class CE {
4247
4247
  if (!N)
4248
4248
  continue;
4249
4249
  const O = s.measures.filter(
4250
- (h) => h.startsWith(R.name + ".")
4250
+ (f) => f.startsWith(R.name + ".")
4251
4251
  ), C = this.extractMeasuresFromFilters(s, R), u = [.../* @__PURE__ */ new Set([...O, ...C])];
4252
4252
  if (u.length === 0)
4253
4253
  continue;
@@ -4256,19 +4256,19 @@ class CE {
4256
4256
  if (l?.hasIntermediateHasMany && l.intermediateJoins.length > 0)
4257
4257
  _ = l.correctJoinKeys, U = l.intermediateJoins;
4258
4258
  else {
4259
- const h = I ? this.findJoinInfoToCube(e, t.name) : this.findJoinInfoForCube(e, t, R.name);
4260
- if (!h)
4259
+ const f = I ? this.findJoinInfoToCube(e, t.name) : this.findJoinInfoForCube(e, t, R.name);
4260
+ if (!f)
4261
4261
  continue;
4262
- _ = I ? h.joinDef.on.map((G) => ({
4263
- sourceColumn: G.target.name,
4264
- targetColumn: G.source.name,
4265
- sourceColumnObj: G.target,
4266
- targetColumnObj: G.source
4267
- })) : h.joinDef.on.map((G) => ({
4268
- sourceColumn: G.source.name,
4269
- targetColumn: G.target.name,
4270
- sourceColumnObj: G.source,
4271
- targetColumnObj: G.target
4262
+ _ = I || "reversed" in f && f.reversed ? f.joinDef.on.map((y) => ({
4263
+ sourceColumn: y.target.name,
4264
+ targetColumn: y.source.name,
4265
+ sourceColumnObj: y.target,
4266
+ targetColumnObj: y.source
4267
+ })) : f.joinDef.on.map((y) => ({
4268
+ sourceColumn: y.source.name,
4269
+ targetColumn: y.target.name,
4270
+ sourceColumnObj: y.source,
4271
+ targetColumnObj: y.target
4272
4272
  })), U = void 0;
4273
4273
  }
4274
4274
  const D = this.findPropagatingFilters(s, R, e), m = /* @__PURE__ */ new Map([[R.name, R]]), { aggregateMeasures: P, requiredBaseMeasures: M } = H.categorizeForPostAggregation(
@@ -4276,13 +4276,13 @@ class CE {
4276
4276
  m
4277
4277
  ), g = [.../* @__PURE__ */ new Set([
4278
4278
  ...P,
4279
- ...Array.from(M).filter((h) => h.startsWith(R.name + "."))
4279
+ ...Array.from(M).filter((f) => f.startsWith(R.name + "."))
4280
4280
  ])];
4281
4281
  if (g.length > 0) {
4282
- const h = this.expandCalculatedMeasureDependencies(
4282
+ const f = this.expandCalculatedMeasureDependencies(
4283
4283
  R,
4284
4284
  g
4285
- ), G = this.findDownstreamJoinKeys(
4285
+ ), F = this.findDownstreamJoinKeys(
4286
4286
  R,
4287
4287
  s,
4288
4288
  e
@@ -4292,9 +4292,9 @@ class CE {
4292
4292
  alias: S,
4293
4293
  cteAlias: `${R.name.toLowerCase()}_agg`,
4294
4294
  joinKeys: _,
4295
- measures: h,
4295
+ measures: f,
4296
4296
  propagatingFilters: D.length > 0 ? D : void 0,
4297
- downstreamJoinKeys: G.length > 0 ? G : void 0,
4297
+ downstreamJoinKeys: F.length > 0 ? F : void 0,
4298
4298
  intermediateJoins: U && U.length > 0 ? U : void 0,
4299
4299
  cteType: "aggregate",
4300
4300
  cteReason: N
@@ -4311,7 +4311,7 @@ class CE {
4311
4311
  for (const [, E] of e)
4312
4312
  if (E.name !== t && E.joins) {
4313
4313
  for (const [, s] of Object.entries(E.joins))
4314
- if (Q(s.targetCube).name === t)
4314
+ if (X(s.targetCube).name === t)
4315
4315
  return { sourceCube: E, joinDef: s };
4316
4316
  }
4317
4317
  return null;
@@ -4396,7 +4396,7 @@ class CE {
4396
4396
  if (!i.has(T) && (i.add(T), !!A.joins)) {
4397
4397
  for (const [, a] of Object.entries(A.joins))
4398
4398
  if (a.relationship === "hasMany") {
4399
- const R = Q(a.targetCube);
4399
+ const R = X(a.targetCube);
4400
4400
  (r.has(T) || r.has(R.name)) && s.push({
4401
4401
  fromCube: T,
4402
4402
  toCube: R.name,
@@ -4436,15 +4436,21 @@ class CE {
4436
4436
  */
4437
4437
  findJoinInfoForCube(e, t, E) {
4438
4438
  if (t.joins) {
4439
- for (const [, s] of Object.entries(t.joins))
4440
- if (Q(s.targetCube).name === E)
4441
- return { sourceCube: t, joinDef: s };
4439
+ for (const [, i] of Object.entries(t.joins))
4440
+ if (X(i.targetCube).name === E)
4441
+ return { sourceCube: t, joinDef: i };
4442
4442
  }
4443
- for (const [, s] of e)
4444
- if (s.name !== t.name && s.joins) {
4445
- for (const [, i] of Object.entries(s.joins))
4446
- if (Q(i.targetCube).name === E)
4447
- return { sourceCube: s, joinDef: i };
4443
+ const s = e.get(E);
4444
+ if (s?.joins) {
4445
+ for (const [, i] of Object.entries(s.joins))
4446
+ if (X(i.targetCube).name === t.name)
4447
+ return { sourceCube: s, joinDef: i, reversed: !0 };
4448
+ }
4449
+ for (const [, i] of e)
4450
+ if (!(i.name === t.name || i.name === E) && i.joins) {
4451
+ for (const [, r] of Object.entries(i.joins))
4452
+ if (X(r.targetCube).name === E)
4453
+ return { sourceCube: i, joinDef: r };
4448
4454
  }
4449
4455
  return null;
4450
4456
  }
@@ -4475,7 +4481,7 @@ class CE {
4475
4481
  }
4476
4482
  if (e.joins)
4477
4483
  for (const [, r] of Object.entries(e.joins)) {
4478
- const A = Q(r.targetCube).name;
4484
+ const A = X(r.targetCube).name;
4479
4485
  if (i.has(A)) {
4480
4486
  const a = r.on.map((R) => ({
4481
4487
  sourceColumn: R.source.name,
@@ -4531,7 +4537,7 @@ class CE {
4531
4537
  if (!e.joins)
4532
4538
  return null;
4533
4539
  for (const [, E] of Object.entries(e.joins))
4534
- if (Q(E.targetCube).name === t && E.relationship === "hasMany")
4540
+ if (X(E.targetCube).name === t && E.relationship === "hasMany")
4535
4541
  return E;
4536
4542
  return null;
4537
4543
  }
@@ -4559,7 +4565,7 @@ class CE {
4559
4565
  const T = E.get(r);
4560
4566
  if (T?.joins) {
4561
4567
  for (const [, A] of Object.entries(T.joins))
4562
- if (Q(A.targetCube).name === t.name && A.relationship === "hasMany") {
4568
+ if (X(A.targetCube).name === t.name && A.relationship === "hasMany") {
4563
4569
  const R = this.extractFiltersForCube(e.filters, r), S = this.extractTimeDimensionFiltersForCube(e, r), I = [...R, ...S];
4564
4570
  I.length > 0 && A.on.length > 0 && s.push({
4565
4571
  sourceCube: T,
@@ -4985,16 +4991,16 @@ class us {
4985
4991
  for (const m of t.dimensions) {
4986
4992
  const [P, M] = m.split(".");
4987
4993
  if (P === R && r.dimensions && r.dimensions[M]) {
4988
- const g = r.dimensions[M], h = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E);
4989
- a[M] = o`${h}`.as(M);
4994
+ const g = r.dimensions[M], f = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E);
4995
+ a[M] = o`${f}`.as(M);
4990
4996
  }
4991
4997
  }
4992
4998
  if (t.timeDimensions)
4993
4999
  for (const m of t.timeDimensions) {
4994
5000
  const [P, M] = m.dimension.split(".");
4995
5001
  if (P === R && r.dimensions && r.dimensions[M]) {
4996
- const g = r.dimensions[M], h = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
4997
- a[M] = o`${h}`.as(M);
5002
+ const g = r.dimensions[M], f = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
5003
+ a[M] = o`${f}`.as(M);
4998
5004
  }
4999
5005
  }
5000
5006
  if (Object.keys(a).length === 0)
@@ -5002,10 +5008,10 @@ class us {
5002
5008
  let N = E.db.select(a).from(T.from);
5003
5009
  if (A && e.intermediateJoins)
5004
5010
  for (const m of e.intermediateJoins) {
5005
- const P = m.cube.sql(E), g = [X(m.cteJoinColumn, m.joinDef.on[0]?.target)];
5011
+ const P = m.cube.sql(E), g = [K(m.cteJoinColumn, m.joinDef.on[0]?.target)];
5006
5012
  m.securityFilter && g.push(m.securityFilter), N = N.leftJoin(
5007
5013
  P.from,
5008
- y(...g)
5014
+ G(...g)
5009
5015
  );
5010
5016
  }
5011
5017
  const O = s ? {
@@ -5016,8 +5022,8 @@ class us {
5016
5022
  for (const m of t.timeDimensions) {
5017
5023
  const [P, M] = m.dimension.split(".");
5018
5024
  if (P === R && r.dimensions && r.dimensions[M] && m.dateRange) {
5019
- const g = r.dimensions[M], h = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E), G = this.queryBuilder.buildDateRangeCondition(h, m.dateRange);
5020
- G && u.push(G);
5025
+ const g = r.dimensions[M], f = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E), F = this.queryBuilder.buildDateRangeCondition(f, m.dateRange);
5026
+ F && u.push(F);
5021
5027
  }
5022
5028
  }
5023
5029
  if (t.filters) {
@@ -5025,10 +5031,10 @@ class us {
5025
5031
  if (!("and" in m) && !("or" in m) && "member" in m && "operator" in m) {
5026
5032
  const P = m, [M, g] = P.member.split(".");
5027
5033
  if (M === R && r.dimensions && r.dimensions[g]) {
5028
- const h = r.dimensions[g];
5034
+ const f = r.dimensions[g];
5029
5035
  if (P.operator === "inDateRange") {
5030
- const G = this.queryBuilder.buildMeasureExpression({ sql: h.sql, type: "number" }, E), B = this.queryBuilder.buildDateRangeCondition(G, P.values);
5031
- B && u.push(B);
5036
+ const F = this.queryBuilder.buildMeasureExpression({ sql: f.sql, type: "number" }, E), y = this.queryBuilder.buildDateRangeCondition(F, P.values);
5037
+ y && u.push(y);
5032
5038
  }
5033
5039
  }
5034
5040
  }
@@ -5043,7 +5049,7 @@ class us {
5043
5049
  }
5044
5050
  const l = [];
5045
5051
  if (T.where && l.push(T.where), l.push(...C, ...u), l.length > 0) {
5046
- const m = l.length === 1 ? l[0] : y(...l);
5052
+ const m = l.length === 1 ? l[0] : G(...l);
5047
5053
  N = N.where(m);
5048
5054
  }
5049
5055
  const _ = [], U = /* @__PURE__ */ new Set(), D = (m) => {
@@ -5064,16 +5070,16 @@ class us {
5064
5070
  for (const m of t.dimensions) {
5065
5071
  const [P, M] = m.split(".");
5066
5072
  if (P === R && r.dimensions && r.dimensions[M]) {
5067
- const g = r.dimensions[M], h = b(g.sql, E);
5068
- _.push(h);
5073
+ const g = r.dimensions[M], f = b(g.sql, E);
5074
+ _.push(f);
5069
5075
  }
5070
5076
  }
5071
5077
  if (t.timeDimensions)
5072
5078
  for (const m of t.timeDimensions) {
5073
5079
  const [P, M] = m.dimension.split(".");
5074
5080
  if (P === R && r.dimensions && r.dimensions[M]) {
5075
- const g = r.dimensions[M], h = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
5076
- _.push(h);
5081
+ const g = r.dimensions[M], f = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
5082
+ _.push(f);
5077
5083
  }
5078
5084
  }
5079
5085
  return _.length > 0 && (N = N.groupBy(..._)), E.db.$with(e.cteAlias).as(N);
@@ -5096,13 +5102,13 @@ class us {
5096
5102
  const i = [];
5097
5103
  if (s.intermediateJoins && s.intermediateJoins.length > 0) {
5098
5104
  const r = s.intermediateJoins[0], T = s.joinKeys[0]?.sourceColumnObj, A = o`${o.identifier(t)}.${o.identifier(r.primaryJoinColumn.name)}`;
5099
- i.push(X(T, A));
5105
+ i.push(K(T, A));
5100
5106
  } else
5101
5107
  for (const r of s.joinKeys) {
5102
5108
  const T = r.sourceColumnObj || o.identifier(r.sourceColumn), A = o`${o.identifier(t)}.${o.identifier(r.targetColumn)}`;
5103
- i.push(X(T, A));
5109
+ i.push(K(T, A));
5104
5110
  }
5105
- return i.length === 1 ? i[0] : y(...i);
5111
+ return i.length === 1 ? i[0] : G(...i);
5106
5112
  }
5107
5113
  /**
5108
5114
  * Build a subquery filter for propagating filters from related cubes.
@@ -5131,12 +5137,12 @@ class us {
5131
5137
  }
5132
5138
  if (i.length === 0)
5133
5139
  return null;
5134
- const r = i.length === 1 ? i[0] : y(...i), T = e.joinConditions;
5140
+ const r = i.length === 1 ? i[0] : G(...i), T = e.joinConditions;
5135
5141
  if (T.length === 1) {
5136
5142
  const { source: A, target: a } = T[0], R = t.db.select({ pk: A }).from(s.from).where(r);
5137
5143
  return o`${a} IN ${R}`;
5138
5144
  } else {
5139
- const A = T.map((S) => X(S.source, S.target)), a = y(
5145
+ const A = T.map((S) => K(S.source, S.target)), a = G(
5140
5146
  ...A,
5141
5147
  r
5142
5148
  ), R = t.db.select({ one: o`1` }).from(s.from).where(a);
@@ -5743,7 +5749,7 @@ class ps {
5743
5749
  D && C.push(D);
5744
5750
  }
5745
5751
  }
5746
- return C.length === 0 ? null : C.length === 1 ? C[0] : u ? y(...C) : o`(${o.join(C, o` OR `)})`;
5752
+ return C.length === 0 ? null : C.length === 1 ? C[0] : u ? G(...C) : o`(${o.join(C, o` OR `)})`;
5747
5753
  }
5748
5754
  const T = e, [A, a] = T.member.split("."), R = T.dateRange !== void 0;
5749
5755
  if (T.operator !== "set" && T.operator !== "notSet" && !R && (!T.values || T.values.length === 0 || T.values[0] === void 0 || T.values[0] === ""))
@@ -5799,7 +5805,7 @@ class ps {
5799
5805
  step_time: o`MIN(${e.timeExpr})`.as("step_time")
5800
5806
  }).from(s.from);
5801
5807
  if (r = this.addCrossJoinsToQuery(r, e, t, i), i.length > 0) {
5802
- const T = i.length === 1 ? i[0] : y(...i);
5808
+ const T = i.length === 1 ? i[0] : G(...i);
5803
5809
  r = r.where(T);
5804
5810
  }
5805
5811
  return r = r.groupBy(e.bindingKeyExpr), t.db.$with(E).as(r);
@@ -5832,7 +5838,7 @@ class ps {
5832
5838
  o`${e.bindingKeyExpr} = ${o.identifier(i)}.binding_key`
5833
5839
  );
5834
5840
  if (R = this.addCrossJoinsToQuery(R, e, t, T), T.length > 0) {
5835
- const S = T.length === 1 ? T[0] : y(...T);
5841
+ const S = T.length === 1 ? T[0] : G(...T);
5836
5842
  R = R.where(S);
5837
5843
  }
5838
5844
  return R = R.groupBy(e.bindingKeyExpr), t.db.$with(s).as(R);
@@ -5848,8 +5854,8 @@ class ps {
5848
5854
  for (const r of i.joinPath) {
5849
5855
  const T = r.joinDef, A = [];
5850
5856
  for (const I of T.on)
5851
- I.as ? A.push(I.as(I.source, I.target)) : A.push(X(I.source, I.target));
5852
- const a = A.length === 1 ? A[0] : y(...A), S = i.cube.sql(E);
5857
+ I.as ? A.push(I.as(I.source, I.target)) : A.push(K(I.source, I.target));
5858
+ const a = A.length === 1 ? A[0] : G(...A), S = i.cube.sql(E);
5853
5859
  e = e.leftJoin(S.from, a), S.where && s.push(S.where);
5854
5860
  }
5855
5861
  return e;
@@ -6158,7 +6164,7 @@ class Ms {
6158
6164
  const I = this.buildFilterCondition(S, t, E);
6159
6165
  I && a.push(I);
6160
6166
  }
6161
- return a.length === 0 ? null : a.length === 1 ? a[0] : "and" in e ? y(...a) : o`(${o.join(a, o` OR `)})`;
6167
+ return a.length === 0 ? null : a.length === 1 ? a[0] : "and" in e ? G(...a) : o`(${o.join(a, o` OR `)})`;
6162
6168
  }
6163
6169
  if ("type" in e && "filters" in e) {
6164
6170
  const A = e, a = [];
@@ -6166,7 +6172,7 @@ class Ms {
6166
6172
  const S = this.buildFilterCondition(R, t, E);
6167
6173
  S && a.push(S);
6168
6174
  }
6169
- return a.length === 0 ? null : a.length === 1 ? a[0] : A.type === "and" ? y(...a) : o`(${o.join(a, o` OR `)})`;
6175
+ return a.length === 0 ? null : a.length === 1 ? a[0] : A.type === "and" ? G(...a) : o`(${o.join(a, o` OR `)})`;
6170
6176
  }
6171
6177
  const s = e, [, i] = s.member.split("."), r = t.dimensions?.[i];
6172
6178
  if (!r) return null;
@@ -6198,7 +6204,7 @@ class Ms {
6198
6204
  event_path: o`${T}`.as("event_path")
6199
6205
  }).from(s.from);
6200
6206
  if (a.length > 0) {
6201
- const S = a.length === 1 ? a[0] : y(...a);
6207
+ const S = a.length === 1 ? a[0] : G(...a);
6202
6208
  R = R.where(S);
6203
6209
  }
6204
6210
  return R = R.groupBy(i, T), e.entityLimit && (R = R.limit(e.entityLimit)), E.db.$with("starting_entities").as(R);
@@ -6215,7 +6221,7 @@ class Ms {
6215
6221
  o`${i} = ${o.identifier(S)}.binding_key`,
6216
6222
  o`${r} < ${o.identifier(S)}.${o.identifier(I)}`
6217
6223
  );
6218
- const C = O.length === 1 ? O[0] : y(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
6224
+ const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
6219
6225
  binding_key: o`${i}`.as("binding_key"),
6220
6226
  step_time: o`${r}`.as("step_time"),
6221
6227
  event_type: o`${T}`.as("event_type"),
@@ -6244,7 +6250,7 @@ class Ms {
6244
6250
  o`${i} = ${o.identifier(S)}.binding_key`,
6245
6251
  o`${r} > ${o.identifier(S)}.${o.identifier(I)}`
6246
6252
  );
6247
- const C = O.length === 1 ? O[0] : y(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
6253
+ const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
6248
6254
  binding_key: o`${i}`.as("binding_key"),
6249
6255
  step_time: o`${r}`.as("step_time"),
6250
6256
  event_type: o`${T}`.as("event_type"),
@@ -6275,7 +6281,7 @@ class Ms {
6275
6281
  s.where && O.push(s.where), O.push(
6276
6282
  o`${r} < ${o.identifier(S)}.${o.identifier(I)}`
6277
6283
  );
6278
- const C = O.length === 1 ? O[0] : y(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
6284
+ const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
6279
6285
  binding_key: o`${i}`.as("binding_key"),
6280
6286
  step_time: o`${r}`.as("step_time"),
6281
6287
  event_type: o`${T}`.as("event_type"),
@@ -6308,7 +6314,7 @@ class Ms {
6308
6314
  s.where && O.push(s.where), O.push(
6309
6315
  o`${r} > ${o.identifier(S)}.${o.identifier(I)}`
6310
6316
  );
6311
- const C = O.length === 1 ? O[0] : y(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
6317
+ const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
6312
6318
  binding_key: o`${i}`.as("binding_key"),
6313
6319
  step_time: o`${r}`.as("step_time"),
6314
6320
  event_type: o`${T}`.as("event_type"),
@@ -6744,7 +6750,7 @@ class Us {
6744
6750
  const u = this.buildSingleFilterCondition(C, t, E, s);
6745
6751
  u && I.push(u);
6746
6752
  }
6747
- return I.length === 0 ? null : I.length === 1 ? I[0] : N ? y(...I) : o`(${o.join(I, o` OR `)})`;
6753
+ return I.length === 0 ? null : I.length === 1 ? I[0] : N ? G(...I) : o`(${o.join(I, o` OR `)})`;
6748
6754
  }
6749
6755
  const i = e, [r, T] = i.member.split("."), A = E.get(r);
6750
6756
  if (!A) return null;
@@ -6786,7 +6792,7 @@ class Us {
6786
6792
  }
6787
6793
  let A = E.db.select(T).from(s.from);
6788
6794
  if (i.length > 0) {
6789
- const R = i.length === 1 ? i[0] : y(...i);
6795
+ const R = i.length === 1 ? i[0] : G(...i);
6790
6796
  A = A.where(R);
6791
6797
  }
6792
6798
  const a = [t.bindingKeyExpr];
@@ -6841,7 +6847,7 @@ class Us {
6841
6847
  o`${t.bindingKeyExpr} = cohort_base.binding_key`
6842
6848
  );
6843
6849
  if (i.length > 0) {
6844
- const S = i.length === 1 ? i[0] : y(...i);
6850
+ const S = i.length === 1 ? i[0] : G(...i);
6845
6851
  a = a.where(S);
6846
6852
  }
6847
6853
  const R = [
@@ -7374,15 +7380,15 @@ class te {
7374
7380
  if (!s.has(P)) {
7375
7381
  const g = {
7376
7382
  filters: m.filters
7377
- }, h = /* @__PURE__ */ new Map([[P, m.sourceCube]]), G = this.queryBuilder.buildWhereConditions(
7378
- h,
7383
+ }, f = /* @__PURE__ */ new Map([[P, m.sourceCube]]), F = this.queryBuilder.buildWhereConditions(
7384
+ f,
7379
7385
  g,
7380
7386
  E
7381
7387
  );
7382
- s.set(P, G);
7388
+ s.set(P, F);
7383
7389
  }
7384
7390
  const M = s.get(P);
7385
- M && M.length > 0 && (m.preBuiltFilterSQL = M.length === 1 ? M[0] : y(...M));
7391
+ M && M.length > 0 && (m.preBuiltFilterSQL = M.length === 1 ? M[0] : G(...M));
7386
7392
  }
7387
7393
  }
7388
7394
  const i = [], r = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map();
@@ -7409,58 +7415,58 @@ class te {
7409
7415
  if (S[P]) {
7410
7416
  const [, M] = P.split("."), g = a.get(m);
7411
7417
  if (g && g.measures && g.measures[M]) {
7412
- const h = g.measures[M], G = o`${o.identifier(D.cteAlias)}.${o.identifier(M)}`;
7413
- let B;
7414
- if (h.type === "calculated" && h.calculatedSql)
7415
- B = this.queryBuilder.buildCTECalculatedMeasure(
7416
- h,
7418
+ const f = g.measures[M], F = o`${o.identifier(D.cteAlias)}.${o.identifier(M)}`;
7419
+ let y;
7420
+ if (f.type === "calculated" && f.calculatedSql)
7421
+ y = this.queryBuilder.buildCTECalculatedMeasure(
7422
+ f,
7417
7423
  g,
7418
7424
  D,
7419
7425
  a,
7420
7426
  E
7421
7427
  );
7422
7428
  else {
7423
- const F = D.cteReason === "fanOutPrevention", W = this.shouldUseMaxForHasManyAtJoinKeyGrain(
7429
+ const B = D.cteReason === "fanOutPrevention", W = this.shouldUseMaxForHasManyAtJoinKeyGrain(
7424
7430
  D,
7425
7431
  t,
7426
7432
  a
7427
- ), V = F || W;
7428
- switch (h.type) {
7433
+ ), V = B || W;
7434
+ switch (f.type) {
7429
7435
  case "count":
7430
7436
  case "countDistinct":
7431
7437
  case "sum":
7432
- B = V ? Z(G) : J(G);
7438
+ y = V ? Z(F) : Q(F);
7433
7439
  break;
7434
7440
  case "avg":
7435
- B = V ? Z(G) : this.databaseAdapter.buildAvg(G);
7441
+ y = V ? Z(F) : this.databaseAdapter.buildAvg(F);
7436
7442
  break;
7437
7443
  case "min":
7438
- B = le(G);
7444
+ y = le(F);
7439
7445
  break;
7440
7446
  case "max":
7441
- B = Z(G);
7447
+ y = Z(F);
7442
7448
  break;
7443
7449
  case "number":
7444
- B = V ? Z(G) : J(G);
7450
+ y = V ? Z(F) : Q(F);
7445
7451
  break;
7446
7452
  default:
7447
- B = V ? Z(G) : J(G);
7453
+ y = V ? Z(F) : Q(F);
7448
7454
  }
7449
7455
  }
7450
- S[P] = o`${B}`.as(P);
7456
+ S[P] = o`${y}`.as(P);
7451
7457
  }
7452
7458
  }
7453
7459
  for (const P in S) {
7454
7460
  const [M, g] = P.split(".");
7455
7461
  if (M === m) {
7456
- const h = a.get(m), G = h && h.dimensions?.[g], B = P.startsWith(m + ".");
7457
- if (G || B) {
7458
- let F = D.joinKeys.find((W) => W.targetColumn === g);
7459
- if (!F && h?.dimensions?.[g]) {
7460
- const W = h.dimensions[g].sql;
7461
- F = D.joinKeys.find((V) => V.targetColumnObj === W);
7462
+ const f = a.get(m), F = f && f.dimensions?.[g], y = P.startsWith(m + ".");
7463
+ if (F || y) {
7464
+ let B = D.joinKeys.find((W) => W.targetColumn === g);
7465
+ if (!B && f?.dimensions?.[g]) {
7466
+ const W = f.dimensions[g].sql;
7467
+ B = D.joinKeys.find((V) => V.targetColumnObj === W);
7462
7468
  }
7463
- F ? S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P) : B && h?.dimensions?.[g] && (S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P));
7469
+ B ? S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P) : y && f?.dimensions?.[g] && (S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P));
7464
7470
  }
7465
7471
  }
7466
7472
  }
@@ -7471,20 +7477,20 @@ class te {
7471
7477
  if (M?.measures?.[P]) {
7472
7478
  const g = M.measures[P];
7473
7479
  if (H.isPostAggregationWindow(g)) {
7474
- const h = H.getWindowBaseMeasure(g, m);
7475
- if (h) {
7476
- const [G, B] = h.split("."), F = a.get(G);
7477
- if (F?.measures?.[B]) {
7478
- const W = F.measures[B], V = e.preAggregationCTEs?.find(
7479
- (ie) => ie.cube?.name === G && ie.measures?.includes(h)
7480
+ const f = H.getWindowBaseMeasure(g, m);
7481
+ if (f) {
7482
+ const [F, y] = f.split("."), B = a.get(F);
7483
+ if (B?.measures?.[y]) {
7484
+ const W = B.measures[y], V = e.preAggregationCTEs?.find(
7485
+ (ie) => ie.cube?.name === F && ie.measures?.includes(f)
7480
7486
  );
7481
7487
  let j;
7482
7488
  if (V) {
7483
- const ie = o`${o.identifier(V.cteAlias)}.${o.identifier(B)}`;
7489
+ const ie = o`${o.identifier(V.cteAlias)}.${o.identifier(y)}`;
7484
7490
  j = o`sum(${ie})`;
7485
7491
  } else
7486
- j = this.queryBuilder.buildMeasureExpression(W, E, F);
7487
- S[h] || (S[h] = o`${j}`.as(h));
7492
+ j = this.queryBuilder.buildMeasureExpression(W, E, B);
7493
+ S[f] || (S[f] = o`${j}`.as(f));
7488
7494
  const Oe = this.buildPostAggregationWindowExpression(
7489
7495
  g,
7490
7496
  j,
@@ -7531,59 +7537,59 @@ class te {
7531
7537
  continue;
7532
7538
  const P = r.get(D.cube.name);
7533
7539
  if (D.junctionTable) {
7534
- const F = D.junctionTable, W = [];
7535
- if (F.securitySql) {
7536
- const V = F.securitySql(E.securityContext);
7540
+ const B = D.junctionTable, W = [];
7541
+ if (B.securitySql) {
7542
+ const V = B.securitySql(E.securityContext);
7537
7543
  Array.isArray(V) ? W.push(...V) : W.push(V);
7538
7544
  }
7539
7545
  try {
7540
- switch (F.joinType || "left") {
7546
+ switch (B.joinType || "left") {
7541
7547
  case "left":
7542
- N = N.leftJoin(F.table, F.joinCondition);
7548
+ N = N.leftJoin(B.table, B.joinCondition);
7543
7549
  break;
7544
7550
  case "inner":
7545
- N = N.innerJoin(F.table, F.joinCondition);
7551
+ N = N.innerJoin(B.table, B.joinCondition);
7546
7552
  break;
7547
7553
  case "right":
7548
- N = N.rightJoin(F.table, F.joinCondition);
7554
+ N = N.rightJoin(B.table, B.joinCondition);
7549
7555
  break;
7550
7556
  case "full":
7551
- N = N.fullJoin(F.table, F.joinCondition);
7557
+ N = N.fullJoin(B.table, B.joinCondition);
7552
7558
  break;
7553
7559
  }
7554
7560
  W.length > 0 && I.push(...W);
7555
7561
  } catch {
7556
7562
  }
7557
7563
  }
7558
- let M, g, h;
7564
+ let M, g, f;
7559
7565
  if (P)
7560
- M = o`${o.identifier(P)}`, g = this.cteBuilder.buildCTEJoinCondition(D, P, e), h = void 0;
7566
+ M = o`${o.identifier(P)}`, g = this.cteBuilder.buildCTEJoinCondition(D, P, e), f = void 0;
7561
7567
  else {
7562
- const F = T.get(D.cube.name), W = D.cube.sql(E);
7563
- if (M = W.from, h = W.where, F) {
7568
+ const B = T.get(D.cube.name), W = D.cube.sql(E);
7569
+ if (M = W.from, f = W.where, B) {
7564
7570
  const V = [];
7565
- for (const j of F.joinKeys) {
7566
- const Oe = o`${o.identifier(F.cteAlias)}.${o.identifier(j.sourceColumn)}`, ie = j.targetColumnObj || o.identifier(j.targetColumn);
7567
- V.push(X(Oe, ie));
7571
+ for (const j of B.joinKeys) {
7572
+ const Oe = o`${o.identifier(B.cteAlias)}.${o.identifier(j.sourceColumn)}`, ie = j.targetColumnObj || o.identifier(j.targetColumn);
7573
+ V.push(K(Oe, ie));
7568
7574
  }
7569
- g = V.length === 1 ? V[0] : y(...V);
7575
+ g = V.length === 1 ? V[0] : G(...V);
7570
7576
  } else
7571
7577
  g = D.joinCondition;
7572
7578
  }
7573
- const G = D.joinType || "left", B = G !== "inner" && h ? y(g, h) : g;
7579
+ const F = D.joinType || "left", y = F !== "inner" && f ? G(g, f) : g;
7574
7580
  try {
7575
- switch (G) {
7581
+ switch (F) {
7576
7582
  case "left":
7577
- N = N.leftJoin(M, B), h && O.add(D.cube.name);
7583
+ N = N.leftJoin(M, y), f && O.add(D.cube.name);
7578
7584
  break;
7579
7585
  case "inner":
7580
7586
  N = N.innerJoin(M, g);
7581
7587
  break;
7582
7588
  case "right":
7583
- N = N.rightJoin(M, B), h && O.add(D.cube.name);
7589
+ N = N.rightJoin(M, y), f && O.add(D.cube.name);
7584
7590
  break;
7585
7591
  case "full":
7586
- N = N.fullJoin(M, B), h && O.add(D.cube.name);
7592
+ N = N.fullJoin(M, y), f && O.add(D.cube.name);
7587
7593
  break;
7588
7594
  }
7589
7595
  } catch {
@@ -7608,7 +7614,7 @@ class te {
7608
7614
  // Reuse pre-built filters for parameter deduplication
7609
7615
  );
7610
7616
  if (u.length > 0 && I.push(...u), I.length > 0) {
7611
- const D = I.length === 1 ? I[0] : y(...I);
7617
+ const D = I.length === 1 ? I[0] : G(...I);
7612
7618
  N = N.where(D);
7613
7619
  }
7614
7620
  const l = this.queryBuilder.buildGroupByFields(
@@ -7629,7 +7635,7 @@ class te {
7629
7635
  // Pass the queryPlan to handle CTE scenarios
7630
7636
  );
7631
7637
  if (_.length > 0) {
7632
- const D = _.length === 1 ? _[0] : y(..._);
7638
+ const D = _.length === 1 ? _[0] : G(..._);
7633
7639
  N = N.having(D);
7634
7640
  }
7635
7641
  const U = this.queryBuilder.buildOrderBy(t);
@@ -23343,9 +23349,9 @@ const Dr = [
23343
23349
  "SHOW FUNCTIONS",
23344
23350
  "SHOW SESSION"
23345
23351
  ]), Qr = L([
23346
- "UNION [ALL | DISTINCT]",
23347
- "EXCEPT [ALL | DISTINCT]",
23348
- "INTERSECT [ALL | DISTINCT]"
23352
+ "UNION [ALL | DISTINCT] [CORRESPONDING]",
23353
+ "EXCEPT [ALL | DISTINCT] [CORRESPONDING]",
23354
+ "INTERSECT [ALL | DISTINCT] [CORRESPONDING]"
23349
23355
  ]), kr = L([
23350
23356
  "JOIN",
23351
23357
  "{LEFT | RIGHT | FULL} [OUTER] JOIN",
@@ -26069,20 +26075,20 @@ const Dr = [
26069
26075
  tidb: mi,
26070
26076
  transactsql: aT,
26071
26077
  trino: Zr
26072
- }, Symbol.toStringTag, { value: "Module" })), Ie = (n) => n[n.length - 1], _E = (n) => n.sort((e, t) => t.length - e.length || e.localeCompare(t)), _e = (n) => n.replace(/\s+/gu, " "), tt = (n) => /\n/.test(n), x = (n) => n.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), Zt = /\s+/uy, ne = (n) => new RegExp(`(?:${n})`, "uy"), hT = (n) => n.split("").map((e) => / /gu.test(e) ? "\\s+" : `[${e.toUpperCase()}${e.toLowerCase()}]`).join(""), gT = (n) => n + "(?:-" + n + ")*", GT = ({ prefixes: n, requirePrefix: e }) => `(?:${n.map(hT).join("|")}${e ? "" : "|"})`, yT = (n) => new RegExp(`(?:${n.map(x).join("|")}).*?(?=\r
26078
+ }, Symbol.toStringTag, { value: "Module" })), Ie = (n) => n[n.length - 1], _E = (n) => n.sort((e, t) => t.length - e.length || e.localeCompare(t)), _e = (n) => n.replace(/\s+/gu, " "), tt = (n) => /\n/.test(n), J = (n) => n.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), Zt = /\s+/uy, ne = (n) => new RegExp(`(?:${n})`, "uy"), hT = (n) => n.split("").map((e) => / /gu.test(e) ? "\\s+" : `[${e.toUpperCase()}${e.toLowerCase()}]`).join(""), gT = (n) => n + "(?:-" + n + ")*", GT = ({ prefixes: n, requirePrefix: e }) => `(?:${n.map(hT).join("|")}${e ? "" : "|"})`, yT = (n) => new RegExp(`(?:${n.map(J).join("|")}).*?(?=\r
26073
26079
  |\r|
26074
26080
  |$)`, "uy"), zt = (n, e = []) => {
26075
26081
  const t = n === "open" ? 0 : 1, E = ["()", ...e].map((s) => s[t]);
26076
- return ne(E.map(x).join("|"));
26077
- }, eE = (n) => ne(`${_E(n).map(x).join("|")}`), bT = ({ rest: n, dashes: e }) => n || e ? `(?![${n || ""}${e ? "-" : ""}])` : "", k = (n, e = {}) => {
26082
+ return ne(E.map(J).join("|"));
26083
+ }, eE = (n) => ne(`${_E(n).map(J).join("|")}`), bT = ({ rest: n, dashes: e }) => n || e ? `(?![${n || ""}${e ? "-" : ""}])` : "", k = (n, e = {}) => {
26078
26084
  if (n.length === 0)
26079
26085
  return /^\b$/u;
26080
- const t = bT(e), E = _E(n).map(x).join("|").replace(/ /gu, "\\s+");
26086
+ const t = bT(e), E = _E(n).map(J).join("|").replace(/ /gu, "\\s+");
26081
26087
  return new RegExp(`(?:${E})${t}\\b`, "iuy");
26082
26088
  }, Et = (n, e) => {
26083
26089
  if (!n.length)
26084
26090
  return;
26085
- const t = n.map(x).join("|");
26091
+ const t = n.map(J).join("|");
26086
26092
  return ne(`(?:${t})(?:${e})`);
26087
26093
  }, FT = () => {
26088
26094
  const n = {
@@ -26090,7 +26096,7 @@ const Dr = [
26090
26096
  "[": "]",
26091
26097
  "(": ")",
26092
26098
  "{": "}"
26093
- }, e = "{left}(?:(?!{right}').)*?{right}", t = Object.entries(n).map(([r, T]) => e.replace(/{left}/g, x(r)).replace(/{right}/g, x(T))), E = x(Object.keys(n).join(""));
26099
+ }, e = "{left}(?:(?!{right}').)*?{right}", t = Object.entries(n).map(([r, T]) => e.replace(/{left}/g, J(r)).replace(/{right}/g, J(T))), E = J(Object.keys(n).join(""));
26094
26100
  return `[Qq]'(?:${String.raw`(?<tag>[^\s${E}])(?:(?!\k<tag>').)*?\k<tag>`}|${t.join("|")})'`;
26095
26101
  }, tE = {
26096
26102
  // - backtick quoted (using `` to escape)
@@ -26118,7 +26124,7 @@ const Dr = [
26118
26124
  // Oracle q'' strings: q'<text>' q'|text|' ...
26119
26125
  "q''": FT()
26120
26126
  }, cE = (n) => typeof n == "string" ? tE[n] : "regex" in n ? n.regex : GT(n) + tE[n.quote], BT = (n) => ne(n.map((e) => "regex" in e ? e.regex : cE(e)).join("|")), dE = (n) => n.map(cE).join("|"), EE = (n) => ne(dE(n)), HT = (n = {}) => ne(DE(n)), DE = ({ first: n, rest: e, dashes: t, allowFirstCharNumber: E } = {}) => {
26121
- const s = "\\p{Alphabetic}\\p{Mark}_", i = "\\p{Decimal_Number}", r = x(n ?? ""), T = x(e ?? ""), A = E ? `[${s}${i}${r}][${s}${i}${T}]*` : `[${s}${r}][${s}${i}${T}]*`;
26127
+ const s = "\\p{Alphabetic}\\p{Mark}_", i = "\\p{Decimal_Number}", r = J(n ?? ""), T = J(e ?? ""), A = E ? `[${s}${i}${r}][${s}${i}${T}]*` : `[${s}${r}][${s}${i}${T}]*`;
26122
26128
  return t ? gT(A) : A;
26123
26129
  };
26124
26130
  function mE(n, e) {
@@ -26425,7 +26431,7 @@ class WT {
26425
26431
  {
26426
26432
  type: d.QUOTED_PARAMETER,
26427
26433
  regex: Et(A.quoted, dE(e.identTypes)),
26428
- key: (a) => (({ tokenKey: R, quoteChar: S }) => R.replace(new RegExp(x("\\" + S), "gu"), S))({
26434
+ key: (a) => (({ tokenKey: R, quoteChar: S }) => R.replace(new RegExp(J("\\" + S), "gu"), S))({
26429
26435
  tokenKey: a.slice(2, -1),
26430
26436
  quoteChar: a.slice(-1)
26431
26437
  })
@@ -26852,7 +26858,7 @@ var p;
26852
26858
  function st(n) {
26853
26859
  return n[0];
26854
26860
  }
26855
- const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26861
+ const h = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26856
26862
  type: p.keyword,
26857
26863
  tokenType: n.type,
26858
26864
  text: n.text,
@@ -26872,7 +26878,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26872
26878
  }
26873
26879
  return n;
26874
26880
  }, aa = {
26875
- Lexer: f,
26881
+ Lexer: h,
26876
26882
  ParserRules: [
26877
26883
  { name: "main$ebnf$1", symbols: [] },
26878
26884
  { name: "main$ebnf$1", symbols: ["main$ebnf$1", "statement"], postprocess: (n) => n[0].concat([n[1]]) },
@@ -26884,8 +26890,8 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26884
26890
  return e && !e.hasSemicolon ? e.children.length > 0 ? n : n.slice(0, -1) : n;
26885
26891
  }
26886
26892
  },
26887
- { name: "statement$subexpression$1", symbols: [f.has("DELIMITER") ? { type: "DELIMITER" } : DELIMITER] },
26888
- { name: "statement$subexpression$1", symbols: [f.has("EOF") ? { type: "EOF" } : EOF] },
26893
+ { name: "statement$subexpression$1", symbols: [h.has("DELIMITER") ? { type: "DELIMITER" } : DELIMITER] },
26894
+ { name: "statement$subexpression$1", symbols: [h.has("EOF") ? { type: "EOF" } : EOF] },
26889
26895
  {
26890
26896
  name: "statement",
26891
26897
  symbols: ["expressions_or_clauses", "statement$subexpression$1"],
@@ -26911,12 +26917,12 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26911
26917
  { name: "clause", symbols: ["clause$subexpression$1"], postprocess: Ee },
26912
26918
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["free_form_sql"] },
26913
26919
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
26914
- { name: "limit_clause$ebnf$1$subexpression$1", symbols: [f.has("COMMA") ? { type: "COMMA" } : COMMA, "limit_clause$ebnf$1$subexpression$1$ebnf$1"] },
26920
+ { name: "limit_clause$ebnf$1$subexpression$1", symbols: [h.has("COMMA") ? { type: "COMMA" } : COMMA, "limit_clause$ebnf$1$subexpression$1$ebnf$1"] },
26915
26921
  { name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: st },
26916
26922
  { name: "limit_clause$ebnf$1", symbols: [], postprocess: () => null },
26917
26923
  {
26918
26924
  name: "limit_clause",
26919
- symbols: [f.has("LIMIT") ? { type: "LIMIT" } : LIMIT, "_", "expression_chain_", "limit_clause$ebnf$1"],
26925
+ symbols: [h.has("LIMIT") ? { type: "LIMIT" } : LIMIT, "_", "expression_chain_", "limit_clause$ebnf$1"],
26920
26926
  postprocess: ([n, e, t, E]) => {
26921
26927
  if (E) {
26922
26928
  const [s, i] = E;
@@ -26942,7 +26948,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26942
26948
  { name: "select_clause$subexpression$1", symbols: ["asteriskless_free_form_sql", "select_clause$subexpression$1$ebnf$2"] },
26943
26949
  {
26944
26950
  name: "select_clause",
26945
- symbols: [f.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT, "select_clause$subexpression$1"],
26951
+ symbols: [h.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT, "select_clause$subexpression$1"],
26946
26952
  postprocess: ([n, [e, t]]) => ({
26947
26953
  type: p.clause,
26948
26954
  nameKw: $(n),
@@ -26951,7 +26957,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26951
26957
  },
26952
26958
  {
26953
26959
  name: "select_clause",
26954
- symbols: [f.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT],
26960
+ symbols: [h.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT],
26955
26961
  postprocess: ([n]) => ({
26956
26962
  type: p.clause,
26957
26963
  nameKw: $(n),
@@ -26960,14 +26966,14 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26960
26966
  },
26961
26967
  {
26962
26968
  name: "all_columns_asterisk",
26963
- symbols: [f.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK],
26969
+ symbols: [h.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK],
26964
26970
  postprocess: () => ({ type: p.all_columns_asterisk })
26965
26971
  },
26966
26972
  { name: "other_clause$ebnf$1", symbols: [] },
26967
26973
  { name: "other_clause$ebnf$1", symbols: ["other_clause$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
26968
26974
  {
26969
26975
  name: "other_clause",
26970
- symbols: [f.has("RESERVED_CLAUSE") ? { type: "RESERVED_CLAUSE" } : RESERVED_CLAUSE, "other_clause$ebnf$1"],
26976
+ symbols: [h.has("RESERVED_CLAUSE") ? { type: "RESERVED_CLAUSE" } : RESERVED_CLAUSE, "other_clause$ebnf$1"],
26971
26977
  postprocess: ([n, e]) => ({
26972
26978
  type: p.clause,
26973
26979
  nameKw: $(n),
@@ -26978,7 +26984,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
26978
26984
  { name: "set_operation$ebnf$1", symbols: ["set_operation$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
26979
26985
  {
26980
26986
  name: "set_operation",
26981
- symbols: [f.has("RESERVED_SET_OPERATION") ? { type: "RESERVED_SET_OPERATION" } : RESERVED_SET_OPERATION, "set_operation$ebnf$1"],
26987
+ symbols: [h.has("RESERVED_SET_OPERATION") ? { type: "RESERVED_SET_OPERATION" } : RESERVED_SET_OPERATION, "set_operation$ebnf$1"],
26982
26988
  postprocess: ([n, e]) => ({
26983
26989
  type: p.set_operation,
26984
26990
  nameKw: $(n),
@@ -27051,7 +27057,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27051
27057
  { name: "atomic_expression", symbols: ["atomic_expression$subexpression$1"], postprocess: Ee },
27052
27058
  {
27053
27059
  name: "array_subscript",
27054
- symbols: [f.has("ARRAY_IDENTIFIER") ? { type: "ARRAY_IDENTIFIER" } : ARRAY_IDENTIFIER, "_", "square_brackets"],
27060
+ symbols: [h.has("ARRAY_IDENTIFIER") ? { type: "ARRAY_IDENTIFIER" } : ARRAY_IDENTIFIER, "_", "square_brackets"],
27055
27061
  postprocess: ([n, e, t]) => ({
27056
27062
  type: p.array_subscript,
27057
27063
  array: w({ type: p.identifier, quoted: !1, text: n.text }, { trailing: e }),
@@ -27060,7 +27066,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27060
27066
  },
27061
27067
  {
27062
27068
  name: "array_subscript",
27063
- symbols: [f.has("ARRAY_KEYWORD") ? { type: "ARRAY_KEYWORD" } : ARRAY_KEYWORD, "_", "square_brackets"],
27069
+ symbols: [h.has("ARRAY_KEYWORD") ? { type: "ARRAY_KEYWORD" } : ARRAY_KEYWORD, "_", "square_brackets"],
27064
27070
  postprocess: ([n, e, t]) => ({
27065
27071
  type: p.array_subscript,
27066
27072
  array: w($(n), { trailing: e }),
@@ -27069,7 +27075,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27069
27075
  },
27070
27076
  {
27071
27077
  name: "function_call",
27072
- symbols: [f.has("RESERVED_FUNCTION_NAME") ? { type: "RESERVED_FUNCTION_NAME" } : RESERVED_FUNCTION_NAME, "_", "parenthesis"],
27078
+ symbols: [h.has("RESERVED_FUNCTION_NAME") ? { type: "RESERVED_FUNCTION_NAME" } : RESERVED_FUNCTION_NAME, "_", "parenthesis"],
27073
27079
  postprocess: ([n, e, t]) => ({
27074
27080
  type: p.function_call,
27075
27081
  nameKw: w($(n), { trailing: e }),
@@ -27116,7 +27122,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27116
27122
  { name: "property_access$subexpression$1", symbols: ["parameter"] },
27117
27123
  {
27118
27124
  name: "property_access",
27119
- symbols: ["atomic_expression", "_", f.has("PROPERTY_ACCESS_OPERATOR") ? { type: "PROPERTY_ACCESS_OPERATOR" } : PROPERTY_ACCESS_OPERATOR, "_", "property_access$subexpression$1"],
27125
+ symbols: ["atomic_expression", "_", h.has("PROPERTY_ACCESS_OPERATOR") ? { type: "PROPERTY_ACCESS_OPERATOR" } : PROPERTY_ACCESS_OPERATOR, "_", "property_access$subexpression$1"],
27120
27126
  postprocess: (
27121
27127
  // Allowing property to be <array_subscript> is currently a hack.
27122
27128
  // A better way would be to allow <property_access> on the left side of array_subscript,
@@ -27132,7 +27138,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27132
27138
  },
27133
27139
  {
27134
27140
  name: "between_predicate",
27135
- symbols: [f.has("BETWEEN") ? { type: "BETWEEN" } : BETWEEN, "_", "andless_expression_chain", "_", f.has("AND") ? { type: "AND" } : AND, "_", "andless_expression"],
27141
+ symbols: [h.has("BETWEEN") ? { type: "BETWEEN" } : BETWEEN, "_", "andless_expression_chain", "_", h.has("AND") ? { type: "AND" } : AND, "_", "andless_expression"],
27136
27142
  postprocess: ([n, e, t, E, s, i, r]) => ({
27137
27143
  type: p.between_predicate,
27138
27144
  betweenKw: $(n),
@@ -27147,7 +27153,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27147
27153
  { name: "case_expression$ebnf$2", symbols: ["case_expression$ebnf$2", "case_clause"], postprocess: (n) => n[0].concat([n[1]]) },
27148
27154
  {
27149
27155
  name: "case_expression",
27150
- symbols: [f.has("CASE") ? { type: "CASE" } : CASE, "_", "case_expression$ebnf$1", "case_expression$ebnf$2", f.has("END") ? { type: "END" } : END],
27156
+ symbols: [h.has("CASE") ? { type: "CASE" } : CASE, "_", "case_expression$ebnf$1", "case_expression$ebnf$2", h.has("END") ? { type: "END" } : END],
27151
27157
  postprocess: ([n, e, t, E, s]) => ({
27152
27158
  type: p.case_expression,
27153
27159
  caseKw: w($(n), { trailing: e }),
@@ -27158,7 +27164,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27158
27164
  },
27159
27165
  {
27160
27166
  name: "case_clause",
27161
- symbols: [f.has("WHEN") ? { type: "WHEN" } : WHEN, "_", "expression_chain_", f.has("THEN") ? { type: "THEN" } : THEN, "_", "expression_chain_"],
27167
+ symbols: [h.has("WHEN") ? { type: "WHEN" } : WHEN, "_", "expression_chain_", h.has("THEN") ? { type: "THEN" } : THEN, "_", "expression_chain_"],
27162
27168
  postprocess: ([n, e, t, E, s, i]) => ({
27163
27169
  type: p.case_when,
27164
27170
  whenKw: w($(n), { trailing: e }),
@@ -27169,42 +27175,42 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27169
27175
  },
27170
27176
  {
27171
27177
  name: "case_clause",
27172
- symbols: [f.has("ELSE") ? { type: "ELSE" } : ELSE, "_", "expression_chain_"],
27178
+ symbols: [h.has("ELSE") ? { type: "ELSE" } : ELSE, "_", "expression_chain_"],
27173
27179
  postprocess: ([n, e, t]) => ({
27174
27180
  type: p.case_else,
27175
27181
  elseKw: w($(n), { trailing: e }),
27176
27182
  result: t
27177
27183
  })
27178
27184
  },
27179
- { name: "comma$subexpression$1", symbols: [f.has("COMMA") ? { type: "COMMA" } : COMMA] },
27185
+ { name: "comma$subexpression$1", symbols: [h.has("COMMA") ? { type: "COMMA" } : COMMA] },
27180
27186
  { name: "comma", symbols: ["comma$subexpression$1"], postprocess: ([[n]]) => ({ type: p.comma }) },
27181
- { name: "asterisk$subexpression$1", symbols: [f.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK] },
27187
+ { name: "asterisk$subexpression$1", symbols: [h.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK] },
27182
27188
  { name: "asterisk", symbols: ["asterisk$subexpression$1"], postprocess: ([[n]]) => ({ type: p.operator, text: n.text }) },
27183
- { name: "operator$subexpression$1", symbols: [f.has("OPERATOR") ? { type: "OPERATOR" } : OPERATOR] },
27189
+ { name: "operator$subexpression$1", symbols: [h.has("OPERATOR") ? { type: "OPERATOR" } : OPERATOR] },
27184
27190
  { name: "operator", symbols: ["operator$subexpression$1"], postprocess: ([[n]]) => ({ type: p.operator, text: n.text }) },
27185
- { name: "identifier$subexpression$1", symbols: [f.has("IDENTIFIER") ? { type: "IDENTIFIER" } : IDENTIFIER] },
27186
- { name: "identifier$subexpression$1", symbols: [f.has("QUOTED_IDENTIFIER") ? { type: "QUOTED_IDENTIFIER" } : QUOTED_IDENTIFIER] },
27187
- { name: "identifier$subexpression$1", symbols: [f.has("VARIABLE") ? { type: "VARIABLE" } : VARIABLE] },
27191
+ { name: "identifier$subexpression$1", symbols: [h.has("IDENTIFIER") ? { type: "IDENTIFIER" } : IDENTIFIER] },
27192
+ { name: "identifier$subexpression$1", symbols: [h.has("QUOTED_IDENTIFIER") ? { type: "QUOTED_IDENTIFIER" } : QUOTED_IDENTIFIER] },
27193
+ { name: "identifier$subexpression$1", symbols: [h.has("VARIABLE") ? { type: "VARIABLE" } : VARIABLE] },
27188
27194
  { name: "identifier", symbols: ["identifier$subexpression$1"], postprocess: ([[n]]) => ({ type: p.identifier, quoted: n.type !== "IDENTIFIER", text: n.text }) },
27189
- { name: "parameter$subexpression$1", symbols: [f.has("NAMED_PARAMETER") ? { type: "NAMED_PARAMETER" } : NAMED_PARAMETER] },
27190
- { name: "parameter$subexpression$1", symbols: [f.has("QUOTED_PARAMETER") ? { type: "QUOTED_PARAMETER" } : QUOTED_PARAMETER] },
27191
- { name: "parameter$subexpression$1", symbols: [f.has("NUMBERED_PARAMETER") ? { type: "NUMBERED_PARAMETER" } : NUMBERED_PARAMETER] },
27192
- { name: "parameter$subexpression$1", symbols: [f.has("POSITIONAL_PARAMETER") ? { type: "POSITIONAL_PARAMETER" } : POSITIONAL_PARAMETER] },
27193
- { name: "parameter$subexpression$1", symbols: [f.has("CUSTOM_PARAMETER") ? { type: "CUSTOM_PARAMETER" } : CUSTOM_PARAMETER] },
27195
+ { name: "parameter$subexpression$1", symbols: [h.has("NAMED_PARAMETER") ? { type: "NAMED_PARAMETER" } : NAMED_PARAMETER] },
27196
+ { name: "parameter$subexpression$1", symbols: [h.has("QUOTED_PARAMETER") ? { type: "QUOTED_PARAMETER" } : QUOTED_PARAMETER] },
27197
+ { name: "parameter$subexpression$1", symbols: [h.has("NUMBERED_PARAMETER") ? { type: "NUMBERED_PARAMETER" } : NUMBERED_PARAMETER] },
27198
+ { name: "parameter$subexpression$1", symbols: [h.has("POSITIONAL_PARAMETER") ? { type: "POSITIONAL_PARAMETER" } : POSITIONAL_PARAMETER] },
27199
+ { name: "parameter$subexpression$1", symbols: [h.has("CUSTOM_PARAMETER") ? { type: "CUSTOM_PARAMETER" } : CUSTOM_PARAMETER] },
27194
27200
  { name: "parameter", symbols: ["parameter$subexpression$1"], postprocess: ([[n]]) => ({ type: p.parameter, key: n.key, text: n.text }) },
27195
- { name: "literal$subexpression$1", symbols: [f.has("NUMBER") ? { type: "NUMBER" } : NUMBER] },
27196
- { name: "literal$subexpression$1", symbols: [f.has("STRING") ? { type: "STRING" } : STRING] },
27201
+ { name: "literal$subexpression$1", symbols: [h.has("NUMBER") ? { type: "NUMBER" } : NUMBER] },
27202
+ { name: "literal$subexpression$1", symbols: [h.has("STRING") ? { type: "STRING" } : STRING] },
27197
27203
  { name: "literal", symbols: ["literal$subexpression$1"], postprocess: ([[n]]) => ({ type: p.literal, text: n.text }) },
27198
- { name: "keyword$subexpression$1", symbols: [f.has("RESERVED_KEYWORD") ? { type: "RESERVED_KEYWORD" } : RESERVED_KEYWORD] },
27199
- { name: "keyword$subexpression$1", symbols: [f.has("RESERVED_KEYWORD_PHRASE") ? { type: "RESERVED_KEYWORD_PHRASE" } : RESERVED_KEYWORD_PHRASE] },
27200
- { name: "keyword$subexpression$1", symbols: [f.has("RESERVED_JOIN") ? { type: "RESERVED_JOIN" } : RESERVED_JOIN] },
27204
+ { name: "keyword$subexpression$1", symbols: [h.has("RESERVED_KEYWORD") ? { type: "RESERVED_KEYWORD" } : RESERVED_KEYWORD] },
27205
+ { name: "keyword$subexpression$1", symbols: [h.has("RESERVED_KEYWORD_PHRASE") ? { type: "RESERVED_KEYWORD_PHRASE" } : RESERVED_KEYWORD_PHRASE] },
27206
+ { name: "keyword$subexpression$1", symbols: [h.has("RESERVED_JOIN") ? { type: "RESERVED_JOIN" } : RESERVED_JOIN] },
27201
27207
  {
27202
27208
  name: "keyword",
27203
27209
  symbols: ["keyword$subexpression$1"],
27204
27210
  postprocess: ([[n]]) => $(n)
27205
27211
  },
27206
- { name: "data_type$subexpression$1", symbols: [f.has("RESERVED_DATA_TYPE") ? { type: "RESERVED_DATA_TYPE" } : RESERVED_DATA_TYPE] },
27207
- { name: "data_type$subexpression$1", symbols: [f.has("RESERVED_DATA_TYPE_PHRASE") ? { type: "RESERVED_DATA_TYPE_PHRASE" } : RESERVED_DATA_TYPE_PHRASE] },
27212
+ { name: "data_type$subexpression$1", symbols: [h.has("RESERVED_DATA_TYPE") ? { type: "RESERVED_DATA_TYPE" } : RESERVED_DATA_TYPE] },
27213
+ { name: "data_type$subexpression$1", symbols: [h.has("RESERVED_DATA_TYPE_PHRASE") ? { type: "RESERVED_DATA_TYPE_PHRASE" } : RESERVED_DATA_TYPE_PHRASE] },
27208
27214
  {
27209
27215
  name: "data_type",
27210
27216
  symbols: ["data_type$subexpression$1"],
@@ -27212,25 +27218,25 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27212
27218
  },
27213
27219
  {
27214
27220
  name: "data_type",
27215
- symbols: [f.has("RESERVED_PARAMETERIZED_DATA_TYPE") ? { type: "RESERVED_PARAMETERIZED_DATA_TYPE" } : RESERVED_PARAMETERIZED_DATA_TYPE, "_", "parenthesis"],
27221
+ symbols: [h.has("RESERVED_PARAMETERIZED_DATA_TYPE") ? { type: "RESERVED_PARAMETERIZED_DATA_TYPE" } : RESERVED_PARAMETERIZED_DATA_TYPE, "_", "parenthesis"],
27216
27222
  postprocess: ([n, e, t]) => ({
27217
27223
  type: p.parameterized_data_type,
27218
27224
  dataType: w(rE(n), { trailing: e }),
27219
27225
  parenthesis: t
27220
27226
  })
27221
27227
  },
27222
- { name: "logic_operator$subexpression$1", symbols: [f.has("AND") ? { type: "AND" } : AND] },
27223
- { name: "logic_operator$subexpression$1", symbols: [f.has("OR") ? { type: "OR" } : OR] },
27224
- { name: "logic_operator$subexpression$1", symbols: [f.has("XOR") ? { type: "XOR" } : XOR] },
27228
+ { name: "logic_operator$subexpression$1", symbols: [h.has("AND") ? { type: "AND" } : AND] },
27229
+ { name: "logic_operator$subexpression$1", symbols: [h.has("OR") ? { type: "OR" } : OR] },
27230
+ { name: "logic_operator$subexpression$1", symbols: [h.has("XOR") ? { type: "XOR" } : XOR] },
27225
27231
  {
27226
27232
  name: "logic_operator",
27227
27233
  symbols: ["logic_operator$subexpression$1"],
27228
27234
  postprocess: ([[n]]) => $(n)
27229
27235
  },
27230
- { name: "other_keyword$subexpression$1", symbols: [f.has("WHEN") ? { type: "WHEN" } : WHEN] },
27231
- { name: "other_keyword$subexpression$1", symbols: [f.has("THEN") ? { type: "THEN" } : THEN] },
27232
- { name: "other_keyword$subexpression$1", symbols: [f.has("ELSE") ? { type: "ELSE" } : ELSE] },
27233
- { name: "other_keyword$subexpression$1", symbols: [f.has("END") ? { type: "END" } : END] },
27236
+ { name: "other_keyword$subexpression$1", symbols: [h.has("WHEN") ? { type: "WHEN" } : WHEN] },
27237
+ { name: "other_keyword$subexpression$1", symbols: [h.has("THEN") ? { type: "THEN" } : THEN] },
27238
+ { name: "other_keyword$subexpression$1", symbols: [h.has("ELSE") ? { type: "ELSE" } : ELSE] },
27239
+ { name: "other_keyword$subexpression$1", symbols: [h.has("END") ? { type: "END" } : END] },
27234
27240
  {
27235
27241
  name: "other_keyword",
27236
27242
  symbols: ["other_keyword$subexpression$1"],
@@ -27241,7 +27247,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27241
27247
  { name: "_", symbols: ["_$ebnf$1"], postprocess: ([n]) => n },
27242
27248
  {
27243
27249
  name: "comment",
27244
- symbols: [f.has("LINE_COMMENT") ? { type: "LINE_COMMENT" } : LINE_COMMENT],
27250
+ symbols: [h.has("LINE_COMMENT") ? { type: "LINE_COMMENT" } : LINE_COMMENT],
27245
27251
  postprocess: ([n]) => ({
27246
27252
  type: p.line_comment,
27247
27253
  text: n.text,
@@ -27250,7 +27256,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27250
27256
  },
27251
27257
  {
27252
27258
  name: "comment",
27253
- symbols: [f.has("BLOCK_COMMENT") ? { type: "BLOCK_COMMENT" } : BLOCK_COMMENT],
27259
+ symbols: [h.has("BLOCK_COMMENT") ? { type: "BLOCK_COMMENT" } : BLOCK_COMMENT],
27254
27260
  postprocess: ([n]) => ({
27255
27261
  type: p.block_comment,
27256
27262
  text: n.text,
@@ -27259,7 +27265,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
27259
27265
  },
27260
27266
  {
27261
27267
  name: "comment",
27262
- symbols: [f.has("DISABLE_COMMENT") ? { type: "DISABLE_COMMENT" } : DISABLE_COMMENT],
27268
+ symbols: [h.has("DISABLE_COMMENT") ? { type: "DISABLE_COMMENT" } : DISABLE_COMMENT],
27263
27269
  postprocess: ([n]) => ({
27264
27270
  type: p.disable_comment,
27265
27271
  text: n.text,
@@ -27938,7 +27944,7 @@ class Nt {
27938
27944
  * Validates calculated measures during registration
27939
27945
  */
27940
27946
  registerCube(e) {
27941
- e.meta && console.log(`[DEBUG] registerCube: ${e.name} has meta:`, JSON.stringify(e.meta)), this.validateCalculatedMeasures(e), new se(this.cubes).populateDependencies(e), this.cubes.set(e.name, e), this.invalidateMetadataCache();
27947
+ this.validateCalculatedMeasures(e), new se(this.cubes).populateDependencies(e), this.cubes.set(e.name, e), this.invalidateMetadataCache();
27942
27948
  }
27943
27949
  /**
27944
27950
  * Validate calculated measures in a cube
@@ -28125,7 +28131,7 @@ ${t.join(`
28125
28131
  // Convert level names to full qualified names
28126
28132
  levels: a.levels.map((R) => R.includes(".") ? R : `${e.name}.${R}`)
28127
28133
  });
28128
- const A = {
28134
+ return {
28129
28135
  name: e.name,
28130
28136
  title: e.title || e.name,
28131
28137
  description: e.description,
@@ -28138,7 +28144,6 @@ ${t.join(`
28138
28144
  hierarchies: T.length > 0 ? T : void 0,
28139
28145
  meta: e.meta
28140
28146
  };
28141
- return e.meta && console.log(`[DEBUG] Cube ${e.name} has meta:`, JSON.stringify(e.meta)), A;
28142
28147
  }
28143
28148
  /**
28144
28149
  * Get SQL for a query without executing it (debugging)
@@ -30146,7 +30151,7 @@ export {
30146
30151
  Qa as getCubeInvalidationPattern,
30147
30152
  Tt as getJoinType,
30148
30153
  os as normalizeQuery,
30149
- Q as resolveCubeReference,
30154
+ X as resolveCubeReference,
30150
30155
  b as resolveSqlExpression,
30151
30156
  so as suggestQuery
30152
30157
  };