drizzle-cube 0.7.0 → 0.8.0

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 (301) hide show
  1. package/dist/adapters/ActivityGridChart.config-BQhBE_Mr.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-C3tSuOGV.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-3cme8HyQ.js +2 -0
  4. package/dist/adapters/AreaChart.config-BSxrT52Z.cjs +1 -0
  5. package/dist/adapters/BarChart.config-BKS8IecE.cjs +1 -0
  6. package/dist/adapters/BarChart.config-lt_7PdIi.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-B7qvRnrF.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-Dv6ECj2j.js +2 -0
  9. package/dist/adapters/BubbleChart.config-BrIH7OAy.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-Fhotb7Pg.js +2 -0
  11. package/dist/adapters/CandlestickChart.config-CWH41FmF.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-RPtXuxsX.js +2 -0
  13. package/dist/adapters/DataTable.config-71L0GzlT.js +2 -0
  14. package/dist/adapters/DataTable.config-BsOMQq3J.cjs +1 -0
  15. package/dist/adapters/FunnelChart.config-Cqte9C04.cjs +1 -0
  16. package/dist/adapters/FunnelChart.config-DJtwWeNz.js +2 -0
  17. package/dist/adapters/GaugeChart.config-WkwZ9VdS.cjs +1 -0
  18. package/dist/adapters/GaugeChart.config-vpVQlP5B.js +2 -0
  19. package/dist/adapters/HeatMapChart.config-DcmkDl07.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-DsmMgGxJ.js +2 -0
  21. package/dist/adapters/KpiDelta.config-DVy561BH.js +2 -0
  22. package/dist/adapters/KpiDelta.config-dpqwLHNE.cjs +1 -0
  23. package/dist/adapters/KpiNumber.config-927l8nq8.js +2 -0
  24. package/dist/adapters/KpiNumber.config-BqFBMfPf.cjs +1 -0
  25. package/dist/adapters/KpiText.config-C-fZXuHq.cjs +1 -0
  26. package/dist/adapters/KpiText.config-CWoXuhMA.js +2 -0
  27. package/dist/adapters/LineChart.config-DTp7pqOY.js +2 -0
  28. package/dist/adapters/LineChart.config-DUGvSjcH.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-23Dmv2Ty.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-Cb2TnS0I.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-B2qbWdhy.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-CvBCeI5b.js +2 -0
  33. package/dist/adapters/PieChart.config-BzJb13QA.js +2 -0
  34. package/dist/adapters/PieChart.config-plCn5Ehr.cjs +1 -0
  35. package/dist/adapters/ProportionBarChart.config-1r-_moBH.cjs +1 -0
  36. package/dist/adapters/ProportionBarChart.config-CN6TtHTp.js +2 -0
  37. package/dist/adapters/RadarChart.config-BYhdj9M7.js +2 -0
  38. package/dist/adapters/RadarChart.config-CeUMP-1g.cjs +1 -0
  39. package/dist/adapters/RadialBarChart.config-B88yXNsq.cjs +1 -0
  40. package/dist/adapters/RadialBarChart.config-ZMK9HMoh.js +2 -0
  41. package/dist/adapters/RetentionCombinedChart.config-B5yvgUHM.cjs +1 -0
  42. package/dist/adapters/RetentionCombinedChart.config-Dd-YMdK8.js +2 -0
  43. package/dist/adapters/RetentionHeatmap.config-BYzDleoV.cjs +1 -0
  44. package/dist/adapters/RetentionHeatmap.config-Dvj7yTB0.js +2 -0
  45. package/dist/adapters/SankeyChart.config-CPFRmgFb.cjs +1 -0
  46. package/dist/adapters/SankeyChart.config-ClgqXM1N.js +2 -0
  47. package/dist/adapters/ScatterChart.config-CvJiqPa5.cjs +1 -0
  48. package/dist/adapters/ScatterChart.config-DLZ3rYMq.js +2 -0
  49. package/dist/adapters/SunburstChart.config-C_1V5hoQ.cjs +1 -0
  50. package/dist/adapters/SunburstChart.config-FNU75NCg.js +2 -0
  51. package/dist/adapters/TreeMapChart.config-CprZk_YF.js +2 -0
  52. package/dist/adapters/TreeMapChart.config-DNwd0ge9.cjs +1 -0
  53. package/dist/adapters/WaterfallChart.config-BBhcN_Fh.cjs +1 -0
  54. package/dist/adapters/WaterfallChart.config-H7s6SSV3.js +2 -0
  55. package/dist/adapters/{compiler-DAyodAnH.cjs → compiler-BaLO10VN.cjs} +7 -7
  56. package/dist/adapters/{compiler-Dq04wAjm.js → compiler-CQJ5GOwF.js} +286 -119
  57. package/dist/adapters/core/http-port.d.ts +34 -7
  58. package/dist/adapters/core/index.cjs +1 -1
  59. package/dist/adapters/core/index.d.ts +1 -0
  60. package/dist/adapters/core/index.js +2 -2
  61. package/dist/adapters/core/rest-handlers.d.ts +1 -1
  62. package/dist/adapters/{core-BjxfG6Uf.js → core-DXkuSUBg.js} +80 -64
  63. package/dist/adapters/core-DgTGXxDu.cjs +1 -0
  64. package/dist/adapters/express/index.cjs +2 -2
  65. package/dist/adapters/express/index.d.ts +11 -2
  66. package/dist/adapters/express/index.js +14 -14
  67. package/dist/adapters/fastify/index.cjs +2 -2
  68. package/dist/adapters/fastify/index.d.ts +11 -2
  69. package/dist/adapters/fastify/index.js +12 -12
  70. package/dist/adapters/{handler-ox6qxLw5.js → handler-CphYSZRh.js} +76 -77
  71. package/dist/adapters/{handler-C6Hj6_Yk.cjs → handler-DrRT6c14.cjs} +8 -8
  72. package/dist/adapters/hono/index.cjs +1 -1
  73. package/dist/adapters/hono/index.js +9 -9
  74. package/dist/adapters/mcp-tools-handlers.d.ts +10 -3
  75. package/dist/adapters/mcp-tools.cjs +1 -1
  76. package/dist/adapters/mcp-tools.js +18 -20
  77. package/dist/adapters/mcp-transport-BGkSz-ZT.cjs +40 -0
  78. package/dist/adapters/mcp-transport-fJud19xz.js +606 -0
  79. package/dist/adapters/mcp-transport.d.ts +13 -2
  80. package/dist/adapters/nextjs/index.cjs +1 -1
  81. package/dist/adapters/nextjs/index.d.ts +5 -2
  82. package/dist/adapters/nextjs/index.js +32 -32
  83. package/dist/adapters/{openai-C9LNhHfK.js → openai-CBrN4nxl.js} +2 -2
  84. package/dist/adapters/{openai-DlT-0VRC.cjs → openai-CI9vGKSf.cjs} +1 -1
  85. package/dist/adapters/{openai-BffpdO4n.cjs → openai-CSzWluuv.cjs} +1 -1
  86. package/dist/adapters/{openai-CmyXJWti.js → openai-D-VMcPao.js} +1 -1
  87. package/dist/adapters/utils-BY0-KFyI.cjs +128 -0
  88. package/dist/adapters/{utils-tjiwXFnP.js → utils-DkmShl5f.js} +29 -22
  89. package/dist/adapters/utils.cjs +1 -1
  90. package/dist/adapters/utils.d.ts +2 -2
  91. package/dist/adapters/utils.js +1 -1
  92. package/dist/cjs/adapters/core/http-port.d.ts +34 -7
  93. package/dist/cjs/adapters/core/index.d.ts +1 -0
  94. package/dist/cjs/adapters/core/rest-handlers.d.ts +1 -1
  95. package/dist/cjs/adapters/express/index.d.ts +11 -2
  96. package/dist/cjs/adapters/fastify/index.d.ts +11 -2
  97. package/dist/cjs/adapters/mcp-tools-handlers.d.ts +10 -3
  98. package/dist/cjs/adapters/mcp-transport.d.ts +13 -2
  99. package/dist/cjs/adapters/nextjs/index.d.ts +5 -2
  100. package/dist/cjs/adapters/utils.d.ts +2 -2
  101. package/dist/cjs/client/charts/chartConfigs.d.ts +1 -1
  102. package/dist/cjs/client/components/charts/GaugeChart.d.ts +8 -0
  103. package/dist/cjs/client/components/charts/gaugeChartHelpers.d.ts +117 -12
  104. package/dist/cjs/server/adapters/base-adapter.d.ts +46 -0
  105. package/dist/cjs/server/adapters/databend-adapter.d.ts +5 -0
  106. package/dist/cjs/server/adapters/duckdb-adapter.d.ts +5 -0
  107. package/dist/cjs/server/adapters/mysql-adapter.d.ts +14 -0
  108. package/dist/cjs/server/adapters/postgres-adapter.d.ts +15 -0
  109. package/dist/cjs/server/adapters/snowflake-adapter.d.ts +6 -0
  110. package/dist/cjs/server/adapters/sqlite-adapter.d.ts +21 -0
  111. package/dist/cjs/server/attribute-dimensions.d.ts +99 -0
  112. package/dist/cjs/server/cache-utils.d.ts +5 -1
  113. package/dist/cjs/server/compiler-metadata.d.ts +24 -3
  114. package/dist/cjs/server/compiler.d.ts +157 -10
  115. package/dist/cjs/server/execution/query-result-cache.d.ts +1 -1
  116. package/dist/cjs/server/index.d.ts +11 -3
  117. package/dist/cjs/server/query-handlers.d.ts +1 -1
  118. package/dist/cjs/server/types/core.d.ts +8 -0
  119. package/dist/cjs/server/types/cube.d.ts +27 -2
  120. package/dist/client/charts/chartConfigs.d.ts +1 -1
  121. package/dist/client/charts.js +12 -12
  122. package/dist/client/chunks/{DashboardEditModal-ByXLlXZD.js → DashboardEditModal-9An5EDAz.js} +1061 -992
  123. package/dist/client/chunks/{DashboardEditModal-ByXLlXZD.js.map → DashboardEditModal-9An5EDAz.js.map} +1 -1
  124. package/dist/client/chunks/{ProportionBarChart-lOeVz8ZC.js → ProportionBarChart-BVcbGY2C.js} +3 -3
  125. package/dist/client/chunks/{ProportionBarChart-lOeVz8ZC.js.map → ProportionBarChart-BVcbGY2C.js.map} +1 -1
  126. package/dist/client/chunks/{RetentionCombinedChart-Mcm7zHFx.js → RetentionCombinedChart-D68Rvdi-.js} +3 -3
  127. package/dist/client/chunks/{RetentionCombinedChart-Mcm7zHFx.js.map → RetentionCombinedChart-D68Rvdi-.js.map} +1 -1
  128. package/dist/client/chunks/{RetentionHeatmap-4VJx5KDM.js → RetentionHeatmap-CE7BAjrB.js} +2 -2
  129. package/dist/client/chunks/{RetentionHeatmap-4VJx5KDM.js.map → RetentionHeatmap-CE7BAjrB.js.map} +1 -1
  130. package/dist/client/chunks/{af-ZA-BTaChuqI.js → af-ZA-C0dGb_53.js} +7 -3
  131. package/dist/client/chunks/af-ZA-C0dGb_53.js.map +1 -0
  132. package/dist/client/chunks/{analysis-builder-CWTJQQtL.js → analysis-builder-D1pYvvwc.js} +9 -9
  133. package/dist/client/chunks/{analysis-builder-CWTJQQtL.js.map → analysis-builder-D1pYvvwc.js.map} +1 -1
  134. package/dist/client/chunks/{analysis-builder-shared-l-4WKVS1.js → analysis-builder-shared-BQvwUc6z.js} +9 -9
  135. package/dist/client/chunks/{analysis-builder-shared-l-4WKVS1.js.map → analysis-builder-shared-BQvwUc6z.js.map} +1 -1
  136. package/dist/client/chunks/{chart-activity-grid-DVOhLgxv.js → chart-activity-grid-DvD_4wJz.js} +12 -5
  137. package/dist/client/chunks/chart-activity-grid-DvD_4wJz.js.map +1 -0
  138. package/dist/client/chunks/{chart-area-C-5ATxvi.js → chart-area-DPp3hSOK.js} +2 -2
  139. package/dist/client/chunks/{chart-area-C-5ATxvi.js.map → chart-area-DPp3hSOK.js.map} +1 -1
  140. package/dist/client/chunks/{chart-bar-CPiLaXHP.js → chart-bar-Od3pOyZ0.js} +3 -3
  141. package/dist/client/chunks/{chart-bar-CPiLaXHP.js.map → chart-bar-Od3pOyZ0.js.map} +1 -1
  142. package/dist/client/chunks/{chart-box-plot-Bae5O9xC.js → chart-box-plot-l0iFn2n2.js} +2 -2
  143. package/dist/client/chunks/{chart-box-plot-Bae5O9xC.js.map → chart-box-plot-l0iFn2n2.js.map} +1 -1
  144. package/dist/client/chunks/{chart-bubble-BFN5WIpf.js → chart-bubble-Dl0RcP8N.js} +2 -2
  145. package/dist/client/chunks/{chart-bubble-BFN5WIpf.js.map → chart-bubble-Dl0RcP8N.js.map} +1 -1
  146. package/dist/client/chunks/{chart-candlestick-PBQKp_z7.js → chart-candlestick-DZMqbscF.js} +2 -2
  147. package/dist/client/chunks/{chart-candlestick-PBQKp_z7.js.map → chart-candlestick-DZMqbscF.js.map} +1 -1
  148. package/dist/client/chunks/{chart-config-gauge-DNafFwfS.js → chart-config-gauge-CJktdjox.js} +3 -4
  149. package/dist/client/chunks/chart-config-gauge-CJktdjox.js.map +1 -0
  150. package/dist/client/chunks/{chart-data-table-SNSqZj9B.js → chart-data-table-DgiNBOWf.js} +5 -5
  151. package/dist/client/chunks/chart-data-table-DgiNBOWf.js.map +1 -0
  152. package/dist/client/chunks/{chart-funnel-CkHSXp6h.js → chart-funnel-YLZlyN1X.js} +2 -2
  153. package/dist/client/chunks/{chart-funnel-CkHSXp6h.js.map → chart-funnel-YLZlyN1X.js.map} +1 -1
  154. package/dist/client/chunks/{chart-gauge-DHIGq3TH.js → chart-gauge-BsqE2wwF.js} +169 -116
  155. package/dist/client/chunks/chart-gauge-BsqE2wwF.js.map +1 -0
  156. package/dist/client/chunks/{chart-heat-map-Bb8L1XQr.js → chart-heat-map-BsND8RM_.js} +3 -3
  157. package/dist/client/chunks/{chart-heat-map-Bb8L1XQr.js.map → chart-heat-map-BsND8RM_.js.map} +1 -1
  158. package/dist/client/chunks/{chart-kpi-delta-BJCOXE-F.js → chart-kpi-delta-m0azuva-.js} +3 -3
  159. package/dist/client/chunks/{chart-kpi-delta-BJCOXE-F.js.map → chart-kpi-delta-m0azuva-.js.map} +1 -1
  160. package/dist/client/chunks/{chart-kpi-number-Cdqgv20g.js → chart-kpi-number-6JS15SqF.js} +5 -5
  161. package/dist/client/chunks/{chart-kpi-number-Cdqgv20g.js.map → chart-kpi-number-6JS15SqF.js.map} +1 -1
  162. package/dist/client/chunks/{chart-kpi-text-B10ZHCsI.js → chart-kpi-text-BqX8p8Jn.js} +3 -3
  163. package/dist/client/chunks/{chart-kpi-text-B10ZHCsI.js.map → chart-kpi-text-BqX8p8Jn.js.map} +1 -1
  164. package/dist/client/chunks/{chart-line-CzvVL3Be.js → chart-line-NCmpxBfE.js} +3 -3
  165. package/dist/client/chunks/{chart-line-CzvVL3Be.js.map → chart-line-NCmpxBfE.js.map} +1 -1
  166. package/dist/client/chunks/{chart-markdown-C0xxBW81.js → chart-markdown-ZOobqiiX.js} +2 -2
  167. package/dist/client/chunks/{chart-markdown-C0xxBW81.js.map → chart-markdown-ZOobqiiX.js.map} +1 -1
  168. package/dist/client/chunks/{chart-measure-profile-BSUPFZCR.js → chart-measure-profile-CBAZaicJ.js} +3 -3
  169. package/dist/client/chunks/{chart-measure-profile-BSUPFZCR.js.map → chart-measure-profile-CBAZaicJ.js.map} +1 -1
  170. package/dist/client/chunks/{chart-pie-CwRfwWWZ.js → chart-pie-ChrasEI8.js} +3 -3
  171. package/dist/client/chunks/{chart-pie-CwRfwWWZ.js.map → chart-pie-ChrasEI8.js.map} +1 -1
  172. package/dist/client/chunks/{chart-radar-Dfql2E7i.js → chart-radar-CxSVF7yL.js} +3 -3
  173. package/dist/client/chunks/{chart-radar-Dfql2E7i.js.map → chart-radar-CxSVF7yL.js.map} +1 -1
  174. package/dist/client/chunks/{chart-radial-bar-oE9OZ1IX.js → chart-radial-bar--SN0Wph0.js} +3 -3
  175. package/dist/client/chunks/{chart-radial-bar-oE9OZ1IX.js.map → chart-radial-bar--SN0Wph0.js.map} +1 -1
  176. package/dist/client/chunks/{chart-sankey-tK7Oz1bC.js → chart-sankey-CDOSGg9r.js} +2 -2
  177. package/dist/client/chunks/{chart-sankey-tK7Oz1bC.js.map → chart-sankey-CDOSGg9r.js.map} +1 -1
  178. package/dist/client/chunks/{chart-scatter-BtLfAsZb.js → chart-scatter-DgcEF-kI.js} +3 -3
  179. package/dist/client/chunks/{chart-scatter-BtLfAsZb.js.map → chart-scatter-DgcEF-kI.js.map} +1 -1
  180. package/dist/client/chunks/{chart-sunburst-B7ryWwQ1.js → chart-sunburst-MB-jlGBm.js} +3 -3
  181. package/dist/client/chunks/{chart-sunburst-B7ryWwQ1.js.map → chart-sunburst-MB-jlGBm.js.map} +1 -1
  182. package/dist/client/chunks/{chart-tree-map-DU5M3-qe.js → chart-tree-map-DeDXveVd.js} +3 -3
  183. package/dist/client/chunks/{chart-tree-map-DU5M3-qe.js.map → chart-tree-map-DeDXveVd.js.map} +1 -1
  184. package/dist/client/chunks/{chart-waterfall-CAwutpzd.js → chart-waterfall-ur4vkO1j.js} +3 -3
  185. package/dist/client/chunks/{chart-waterfall-CAwutpzd.js.map → chart-waterfall-ur4vkO1j.js.map} +1 -1
  186. package/dist/client/chunks/{charts-core-BxBB2zBE.js → charts-core-BAH5pkSB.js} +2 -2
  187. package/dist/client/chunks/{charts-core-BxBB2zBE.js.map → charts-core-BAH5pkSB.js.map} +1 -1
  188. package/dist/client/chunks/charts-loader-eToV8je7.js +85 -0
  189. package/dist/client/chunks/{charts-loader-0avVzeDd.js.map → charts-loader-eToV8je7.js.map} +1 -1
  190. package/dist/client/chunks/{exceljs.min-DWC_b8G9.js → exceljs.min-CiByP8VQ.js} +2 -3
  191. package/dist/client/chunks/{exceljs.min-DWC_b8G9.js.map → exceljs.min-CiByP8VQ.js.map} +1 -1
  192. package/dist/client/chunks/{nl-NL-BSMhprPr.js → nl-NL-CMXHDBr0.js} +10 -3
  193. package/dist/client/chunks/nl-NL-CMXHDBr0.js.map +1 -0
  194. package/dist/client/chunks/{schema-visualization-CGbnbzj_.js → schema-visualization-BEbFtUIL.js} +3 -3
  195. package/dist/client/chunks/{schema-visualization-CGbnbzj_.js.map → schema-visualization-BEbFtUIL.js.map} +1 -1
  196. package/dist/client/chunks/{useDirtyStateTracking-Dc-Si4db.js → useDirtyStateTracking-CSDg96Rw.js} +4 -4
  197. package/dist/client/chunks/{useDirtyStateTracking-Dc-Si4db.js.map → useDirtyStateTracking-CSDg96Rw.js.map} +1 -1
  198. package/dist/client/chunks/{useExplainAI-DJbc7Lu4.js → useExplainAI-BnkoZ-zS.js} +4 -4
  199. package/dist/client/chunks/{useExplainAI-DJbc7Lu4.js.map → useExplainAI-BnkoZ-zS.js.map} +1 -1
  200. package/dist/client/chunks/{vendor-cTfe9Kho.js → vendor-BmJDaduD.js} +2 -2
  201. package/dist/client/chunks/vendor-BmJDaduD.js.map +1 -0
  202. package/dist/client/components/charts/GaugeChart.d.ts +8 -0
  203. package/dist/client/components/charts/gaugeChartHelpers.d.ts +117 -12
  204. package/dist/client/components.js +1 -1
  205. package/dist/client/hooks.js +3 -3
  206. package/dist/client/icons.js +1 -1
  207. package/dist/client/index.js +13 -13
  208. package/dist/client/providers.js +1 -1
  209. package/dist/client/schema.js +1 -1
  210. package/dist/client/utils.js +4 -4
  211. package/dist/client-bundle-stats.html +1 -1
  212. package/dist/mcp-app/mcp-app.html +88 -88
  213. package/dist/server/adapters/base-adapter.d.ts +46 -0
  214. package/dist/server/adapters/databend-adapter.d.ts +5 -0
  215. package/dist/server/adapters/duckdb-adapter.d.ts +5 -0
  216. package/dist/server/adapters/mysql-adapter.d.ts +14 -0
  217. package/dist/server/adapters/postgres-adapter.d.ts +15 -0
  218. package/dist/server/adapters/snowflake-adapter.d.ts +6 -0
  219. package/dist/server/adapters/sqlite-adapter.d.ts +21 -0
  220. package/dist/server/attribute-dimensions.d.ts +99 -0
  221. package/dist/server/cache-utils.d.ts +5 -1
  222. package/dist/server/compiler-metadata.d.ts +24 -3
  223. package/dist/server/compiler.d.ts +157 -10
  224. package/dist/server/execution/query-result-cache.d.ts +1 -1
  225. package/dist/server/index.cjs +40 -36
  226. package/dist/server/index.d.ts +11 -3
  227. package/dist/server/index.js +681 -482
  228. package/dist/server/{openai-Czk1BdHa.js → openai-6uUf7h-5.js} +1 -1
  229. package/dist/server/{openai-DBwI1OSu.cjs → openai-BBe1XbZd.cjs} +1 -1
  230. package/dist/server/{openai-Cu4TXXjl.cjs → openai-BmADmD1e.cjs} +1 -1
  231. package/dist/server/{openai-CUf4vc3Q.js → openai-C1gLuR-0.js} +1 -1
  232. package/dist/server/query-handlers.d.ts +1 -1
  233. package/dist/server/types/core.d.ts +8 -0
  234. package/dist/server/types/cube.d.ts +27 -2
  235. package/package.json +2 -2
  236. package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +0 -1
  237. package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +0 -2
  238. package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +0 -1
  239. package/dist/adapters/AreaChart.config-CJoxLP3Y.js +0 -2
  240. package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +0 -1
  241. package/dist/adapters/BarChart.config-CGu2Bqrx.js +0 -2
  242. package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +0 -2
  243. package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +0 -1
  244. package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +0 -1
  245. package/dist/adapters/BubbleChart.config-CWoXeLdm.js +0 -2
  246. package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +0 -1
  247. package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +0 -2
  248. package/dist/adapters/DataTable.config-CdAzueTs.cjs +0 -1
  249. package/dist/adapters/DataTable.config-D_KmPyxV.js +0 -2
  250. package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +0 -1
  251. package/dist/adapters/FunnelChart.config-DCRHQoFc.js +0 -2
  252. package/dist/adapters/GaugeChart.config-DAybRXP3.js +0 -2
  253. package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +0 -1
  254. package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +0 -1
  255. package/dist/adapters/HeatMapChart.config-DHpXNONW.js +0 -2
  256. package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +0 -2
  257. package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +0 -1
  258. package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +0 -2
  259. package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +0 -1
  260. package/dist/adapters/KpiText.config-DIRIC97F.cjs +0 -1
  261. package/dist/adapters/KpiText.config-eODcP6Hn.js +0 -2
  262. package/dist/adapters/LineChart.config-32-9zA2V.js +0 -2
  263. package/dist/adapters/LineChart.config-BukeFp6z.cjs +0 -1
  264. package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +0 -2
  265. package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +0 -1
  266. package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +0 -2
  267. package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +0 -1
  268. package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +0 -1
  269. package/dist/adapters/PieChart.config-DgAj3y-I.js +0 -2
  270. package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +0 -2
  271. package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +0 -1
  272. package/dist/adapters/RadarChart.config-D7iHY1v9.js +0 -2
  273. package/dist/adapters/RadarChart.config-ghlANG2-.cjs +0 -1
  274. package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +0 -2
  275. package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +0 -1
  276. package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +0 -2
  277. package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +0 -1
  278. package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +0 -1
  279. package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +0 -2
  280. package/dist/adapters/SankeyChart.config-BNBcIHaD.js +0 -2
  281. package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +0 -1
  282. package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +0 -1
  283. package/dist/adapters/ScatterChart.config-CEhtoLWc.js +0 -2
  284. package/dist/adapters/SunburstChart.config-ClseCzji.cjs +0 -1
  285. package/dist/adapters/SunburstChart.config-nnphNoVO.js +0 -2
  286. package/dist/adapters/TreeMapChart.config-C8-75muA.js +0 -2
  287. package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +0 -1
  288. package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +0 -1
  289. package/dist/adapters/WaterfallChart.config-uW5YyOji.js +0 -2
  290. package/dist/adapters/core-zV2w0hO2.cjs +0 -1
  291. package/dist/adapters/mcp-transport-C_t_p0wU.cjs +0 -40
  292. package/dist/adapters/mcp-transport-DFH9e6de.js +0 -603
  293. package/dist/adapters/utils-C5FLHK04.cjs +0 -128
  294. package/dist/client/chunks/af-ZA-BTaChuqI.js.map +0 -1
  295. package/dist/client/chunks/chart-activity-grid-DVOhLgxv.js.map +0 -1
  296. package/dist/client/chunks/chart-config-gauge-DNafFwfS.js.map +0 -1
  297. package/dist/client/chunks/chart-data-table-SNSqZj9B.js.map +0 -1
  298. package/dist/client/chunks/chart-gauge-DHIGq3TH.js.map +0 -1
  299. package/dist/client/chunks/charts-loader-0avVzeDd.js +0 -85
  300. package/dist/client/chunks/nl-NL-BSMhprPr.js.map +0 -1
  301. package/dist/client/chunks/vendor-cTfe9Kho.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { C as e, D as t, E as n, O as r, S as i, T as a, w as o } from "./utils-tjiwXFnP.js";
1
+ import { C as e, D as t, E as n, O as r, S as i, T as a, w as o } from "./utils-DkmShl5f.js";
2
2
  //#region node_modules/drizzle-orm/entity.js
3
3
  var s = Symbol.for("drizzle:entityKind");
4
4
  function c(e, t) {
@@ -581,6 +581,15 @@ var N = class {
581
581
  buildWindowFunction(e, t, n, r, i) {
582
582
  return Le(e, t, Ne(n, r, i), i);
583
583
  }
584
+ decimalTryCastPattern() {
585
+ return "^ *[+-]?([0-9]+(\\.[0-9]+)?|\\.[0-9]+) *$";
586
+ }
587
+ integerTryCastPattern() {
588
+ return "^ *[+-]?[0-9]+ *$";
589
+ }
590
+ timestampTryCastPattern() {
591
+ return "^ *[0-9]{4}-[0-9]{2}-[0-9]{2}([ T][0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?([+-][0-9]{2}:?[0-9]{2}|Z)?)? *$";
592
+ }
584
593
  buildPattern(e, t) {
585
594
  switch (e) {
586
595
  case "contains":
@@ -659,6 +668,14 @@ var N = class {
659
668
  default: throw Error(`Unsupported cast type: ${t}`);
660
669
  }
661
670
  }
671
+ tryCastToType(e, t) {
672
+ switch (t) {
673
+ case "timestamp": return T`CASE WHEN ${e} ~ ${this.timestampTryCastPattern()} THEN ${e}::timestamp ELSE NULL END`;
674
+ case "decimal": return T`CASE WHEN ${e} ~ ${this.decimalTryCastPattern()} THEN ${e}::decimal ELSE NULL END`;
675
+ case "integer": return T`CASE WHEN ${e} ~ ${this.integerTryCastPattern()} THEN ${e}::integer ELSE NULL END`;
676
+ default: throw Error(`Unsupported cast type: ${t}`);
677
+ }
678
+ }
662
679
  getCapabilities() {
663
680
  return {
664
681
  supportsPercentile: !0,
@@ -735,6 +752,14 @@ var N = class {
735
752
  default: throw Error(`Unsupported cast type: ${t}`);
736
753
  }
737
754
  }
755
+ tryCastToType(e, t) {
756
+ switch (t) {
757
+ case "timestamp": return T`CASE WHEN ${e} REGEXP ${this.timestampTryCastPattern()} THEN CAST(${e} AS DATETIME) ELSE NULL END`;
758
+ case "decimal": return T`CASE WHEN ${e} REGEXP ${this.decimalTryCastPattern()} THEN CAST(${e} AS DECIMAL(10,2)) ELSE NULL END`;
759
+ case "integer": return T`CASE WHEN ${e} REGEXP ${this.integerTryCastPattern()} THEN CAST(${e} AS SIGNED INTEGER) ELSE NULL END`;
760
+ default: throw Error(`Unsupported cast type: ${t}`);
761
+ }
762
+ }
738
763
  nullToZero(e) {
739
764
  return T`IFNULL(${e}, 0)`;
740
765
  }
@@ -823,6 +848,14 @@ var N = class {
823
848
  default: throw Error(`Unsupported cast type: ${t}`);
824
849
  }
825
850
  }
851
+ tryCastToType(e, t) {
852
+ switch (t) {
853
+ case "timestamp": return T`CASE WHEN TRIM(${e}) = '' OR TRIM(${e}) GLOB '*[^0-9-]*' THEN NULL ELSE datetime(${e} / 1000, 'unixepoch') END`;
854
+ case "decimal": return T`CASE WHEN TRIM(${e}) = '' OR TRIM(${e}) GLOB '*[^0-9.+-]*' THEN NULL ELSE CAST(${e} AS REAL) END`;
855
+ case "integer": return T`CASE WHEN TRIM(${e}) = '' OR TRIM(${e}) GLOB '*[^0-9+-]*' THEN NULL ELSE CAST(${e} AS INTEGER) END`;
856
+ default: throw Error(`Unsupported cast type: ${t}`);
857
+ }
858
+ }
826
859
  nullToZero(e) {
827
860
  return T`IFNULL(${e}, 0)`;
828
861
  }
@@ -922,6 +955,14 @@ var N = class {
922
955
  default: throw Error(`Unsupported cast type: ${t}`);
923
956
  }
924
957
  }
958
+ tryCastToType(e, t) {
959
+ switch (t) {
960
+ case "timestamp": return T`TRY_CAST(${e} AS timestamp)`;
961
+ case "decimal": return T`TRY_CAST(${e} AS decimal)`;
962
+ case "integer": return T`TRY_CAST(${e} AS integer)`;
963
+ default: throw Error(`Unsupported cast type: ${t}`);
964
+ }
965
+ }
925
966
  getCapabilities() {
926
967
  return {
927
968
  supportsPercentile: !0,
@@ -985,6 +1026,14 @@ var N = class {
985
1026
  default: throw Error(`Unsupported cast type: ${t}`);
986
1027
  }
987
1028
  }
1029
+ tryCastToType(e, t) {
1030
+ switch (t) {
1031
+ case "timestamp": return T`TRY_CAST(${e} AS TIMESTAMP)`;
1032
+ case "decimal": return T`TRY_CAST(${e} AS DECIMAL)`;
1033
+ case "integer": return T`TRY_CAST(${e} AS INTEGER)`;
1034
+ default: throw Error(`Unsupported cast type: ${t}`);
1035
+ }
1036
+ }
988
1037
  getCapabilities() {
989
1038
  return {
990
1039
  supportsPercentile: !1,
@@ -1046,6 +1095,14 @@ var N = class {
1046
1095
  default: throw Error(`Unsupported cast type: ${t}`);
1047
1096
  }
1048
1097
  }
1098
+ tryCastToType(e, t) {
1099
+ switch (t) {
1100
+ case "timestamp": return T`TRY_CAST(${e} AS TIMESTAMP)`;
1101
+ case "decimal": return T`TRY_CAST(${e} AS DECIMAL)`;
1102
+ case "integer": return T`TRY_CAST(${e} AS INTEGER)`;
1103
+ default: throw Error(`Unsupported cast type: ${t}`);
1104
+ }
1105
+ }
1049
1106
  getCapabilities() {
1050
1107
  return {
1051
1108
  supportsPercentile: !0,
@@ -5070,13 +5127,13 @@ var Rr = class {
5070
5127
  };
5071
5128
  //#endregion
5072
5129
  //#region src/server/cache-utils.ts
5073
- function zr(e, t, n = {}) {
5074
- let r = n.keyPrefix ?? "drizzle-cube:", i = Br(e), a = `${r}query:${Kr(JSON.stringify(i))}`;
5130
+ function zr(e, t, n = {}, r) {
5131
+ let i = n.keyPrefix ?? "drizzle-cube:", a = Br(e), o = `${i}query:${Kr(JSON.stringify(a))}`;
5075
5132
  if (n.includeSecurityContext !== !1) {
5076
5133
  let e = Kr(n.securityContextSerializer ? n.securityContextSerializer(t) : JSON.stringify(Gr(t)));
5077
- a += `:ctx:${e}`;
5134
+ o += `:ctx:${e}`;
5078
5135
  }
5079
- return a;
5136
+ return r && (o += `:cubes:${r}`), o;
5080
5137
  }
5081
5138
  function Br(e) {
5082
5139
  return {
@@ -5179,8 +5236,8 @@ var qr = class {
5179
5236
  constructor(e) {
5180
5237
  this.cacheConfig = e;
5181
5238
  }
5182
- generateKey(e, t) {
5183
- if (this.cacheConfig?.enabled !== !1 && this.cacheConfig?.provider) return zr(e, t, this.cacheConfig);
5239
+ generateKey(e, t, n) {
5240
+ if (this.cacheConfig?.enabled !== !1 && this.cacheConfig?.provider) return zr(e, t, this.cacheConfig, n);
5184
5241
  }
5185
5242
  async lookup(e, t) {
5186
5243
  if (!(!e || !this.cacheConfig?.provider)) {
@@ -7629,7 +7686,7 @@ var ra = class {
7629
7686
  try {
7630
7687
  let r = this.modeRouter.resolveMode(t);
7631
7688
  this.modeRouter.validateForMode(r, e, t);
7632
- let a = this.resultCache.generateKey(t, n);
7689
+ let a = this.resultCache.generateKey(t, n, i?.cubeSetKey);
7633
7690
  return await this.resultCache.lookup(a, i?.skipCache ?? !1) || await this.withRLSContext(n, () => this.executeQueryByModeWithCache(r, e, t, n, a));
7634
7691
  } catch (e) {
7635
7692
  if (e instanceof Error) {
@@ -7682,11 +7739,7 @@ var ra = class {
7682
7739
  return await this.resultCache.store(t, n), n;
7683
7740
  }
7684
7741
  async executeFunnelQuery(e, t, n) {
7685
- let r = t.funnel, i = {
7686
- db: this.dbExecutor.db,
7687
- schema: this.dbExecutor.schema,
7688
- securityContext: n
7689
- }, a = this.funnelQueryBuilder.buildFunnelQuery(r, e, i);
7742
+ let r = t.funnel, i = this.createQueryContext(n), a = this.funnelQueryBuilder.buildFunnelQuery(r, e, i);
7690
7743
  na("funnel query", a);
7691
7744
  let o = await a, s = this.funnelQueryBuilder.transformResult(o, r), c = {
7692
7745
  measures: {},
@@ -7707,11 +7760,7 @@ var ra = class {
7707
7760
  };
7708
7761
  }
7709
7762
  async executeFlowQuery(e, t, n) {
7710
- let r = t.flow, i = {
7711
- db: this.dbExecutor.db,
7712
- schema: this.dbExecutor.schema,
7713
- securityContext: n
7714
- }, a = this.flowQueryBuilder.buildFlowQuery(r, e, i);
7763
+ let r = t.flow, i = this.createQueryContext(n), a = this.flowQueryBuilder.buildFlowQuery(r, e, i);
7715
7764
  na("flow query", a);
7716
7765
  let o = await a, s = this.flowQueryBuilder.transformResult(o), c = {
7717
7766
  measures: {},
@@ -7730,11 +7779,7 @@ var ra = class {
7730
7779
  };
7731
7780
  }
7732
7781
  async executeRetentionQuery(e, t, n) {
7733
- let r = t.retention, i = {
7734
- db: this.dbExecutor.db,
7735
- schema: this.dbExecutor.schema,
7736
- securityContext: n
7737
- }, a = this.retentionQueryBuilder.buildRetentionQuery(r, e, i);
7782
+ let r = t.retention, i = this.createQueryContext(n), a = this.retentionQueryBuilder.buildRetentionQuery(r, e, i);
7738
7783
  na("retention query", a);
7739
7784
  let o = await a, s = this.retentionQueryBuilder.transformResult(o, r), c = {
7740
7785
  measures: {},
@@ -7773,7 +7818,9 @@ var ra = class {
7773
7818
  schema: this.dbExecutor.schema,
7774
7819
  securityContext: e,
7775
7820
  filterCache: t,
7776
- ungrouped: n?.ungrouped
7821
+ ungrouped: n?.ungrouped,
7822
+ cast: (e, t) => this.databaseAdapter.castToType(e, t),
7823
+ tryCast: (e, t) => this.databaseAdapter.tryCastToType(e, t)
7777
7824
  };
7778
7825
  }
7779
7826
  getOptimiserEngineType() {
@@ -7843,11 +7890,7 @@ var ra = class {
7843
7890
  if (!n.has(e)) throw Error(r(n.invalidConfigKey));
7844
7891
  let i = n.getConfig(e), a = n.validate(i);
7845
7892
  if (!a.isValid) throw Error(r(n.validationFailedKey, { errors: a.errors.join(", ") }));
7846
- let o = {
7847
- db: this.dbExecutor.db,
7848
- schema: this.dbExecutor.schema,
7849
- securityContext: t
7850
- }, s = n.build(i, o).toSQL();
7893
+ let o = this.createQueryContext(t), s = n.build(i, o).toSQL();
7851
7894
  return {
7852
7895
  sql: s.sql,
7853
7896
  params: s.params
@@ -7903,11 +7946,18 @@ var ra = class {
7903
7946
  function aa(e, t) {
7904
7947
  return t.includes(".") ? t : `${e}.${t}`;
7905
7948
  }
7906
- function oa(e) {
7907
- let t = Object.keys(e.measures), n = Array(t.length);
7949
+ function oa(e, t) {
7950
+ if (!t.includes(".")) return t;
7951
+ let n = `${e}.`;
7952
+ return t.startsWith(n) ? t.slice(n.length) : null;
7953
+ }
7954
+ function sa(e) {
7955
+ let t = Object.keys(e.measures), n = [];
7908
7956
  for (let r = 0; r < t.length; r++) {
7909
- let i = t[r], a = e.measures[i], o;
7910
- a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) => aa(e.name, t))), n[r] = {
7957
+ let i = t[r], a = e.measures[i];
7958
+ if (a.shown === !1) continue;
7959
+ let o;
7960
+ a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) => aa(e.name, t))), n.push({
7911
7961
  name: `${e.name}.${i}`,
7912
7962
  title: a.title || i,
7913
7963
  shortTitle: a.title || i,
@@ -7916,15 +7966,17 @@ function oa(e) {
7916
7966
  description: a.description,
7917
7967
  synonyms: a.synonyms,
7918
7968
  drillMembers: o
7919
- };
7969
+ });
7920
7970
  }
7921
7971
  return n;
7922
7972
  }
7923
- function sa(e) {
7924
- let t = Object.keys(e.dimensions), n = Array(t.length);
7973
+ function ca(e) {
7974
+ let t = Object.keys(e.dimensions), n = [];
7925
7975
  for (let r = 0; r < t.length; r++) {
7926
- let i = t[r], a = e.dimensions[i], o = a.type === "time" ? a.granularities || ia : void 0;
7927
- n[r] = {
7976
+ let i = t[r], a = e.dimensions[i];
7977
+ if (a.shown === !1) continue;
7978
+ let o = a.type === "time" ? a.granularities || ia : void 0;
7979
+ n.push({
7928
7980
  name: `${e.name}.${i}`,
7929
7981
  title: a.title || i,
7930
7982
  shortTitle: a.title || i,
@@ -7933,11 +7985,11 @@ function sa(e) {
7933
7985
  description: a.description,
7934
7986
  synonyms: a.synonyms,
7935
7987
  granularities: o
7936
- };
7988
+ });
7937
7989
  }
7938
7990
  return n;
7939
7991
  }
7940
- function ca(e, t, n) {
7992
+ function la(e, t, n) {
7941
7993
  let r = [];
7942
7994
  if (!e.joins) return r;
7943
7995
  for (let [, i] of Object.entries(e.joins)) {
@@ -7953,22 +8005,38 @@ function ca(e, t, n) {
7953
8005
  }
7954
8006
  return r;
7955
8007
  }
7956
- function la(e) {
8008
+ function ua(e) {
7957
8009
  let t = [];
7958
8010
  if (!e.hierarchies) return t;
7959
- for (let [, n] of Object.entries(e.hierarchies)) t.push({
7960
- name: n.name,
7961
- title: n.title || n.name,
7962
- cubeName: e.name,
7963
- levels: n.levels.map((t) => aa(e.name, t))
7964
- });
8011
+ for (let [, n] of Object.entries(e.hierarchies)) {
8012
+ let r = n.levels.filter((t) => {
8013
+ let n = oa(e.name, t);
8014
+ return n === null || e.dimensions[n]?.shown !== !1;
8015
+ }).map((t) => aa(e.name, t));
8016
+ r.length !== 0 && t.push({
8017
+ name: n.name,
8018
+ title: n.title || n.name,
8019
+ cubeName: e.name,
8020
+ levels: r
8021
+ });
8022
+ }
7965
8023
  return t;
7966
8024
  }
7967
- //#endregion
7968
- //#region src/server/compiler.ts
7969
- var ua = class {
7970
- cubes = /* @__PURE__ */ new Map();
7971
- metadataCache;
8025
+ Object.freeze({});
8026
+ function da(e) {
8027
+ if (typeof process > "u") return;
8028
+ let t = process.env?.DC_DEBUG;
8029
+ (t === "true" || t === "cubesets") && console.log(`[DC_DEBUG] ${e}`);
8030
+ }
8031
+ var fa = class {
8032
+ baseCubes = /* @__PURE__ */ new Map();
8033
+ cubeSets = /* @__PURE__ */ new Map();
8034
+ metadataCache = /* @__PURE__ */ new Map();
8035
+ baseGeneration = 0;
8036
+ registrationCounter = 0;
8037
+ contextToCubeSetId;
8038
+ missingCubeSet = "base";
8039
+ onCubeSetRegistered;
7972
8040
  cacheConfig;
7973
8041
  rlsSetup;
7974
8042
  planOptimiser;
@@ -7976,7 +8044,7 @@ var ua = class {
7976
8044
  schema;
7977
8045
  engineType;
7978
8046
  constructor(e) {
7979
- e?.databaseExecutor ? (this.db = e.databaseExecutor.db, this.schema = e.databaseExecutor.schema, this.engineType = e.databaseExecutor.getEngineType()) : e?.drizzle && (this.db = e.drizzle, this.schema = e.schema, this.engineType = e.engineType), this.cacheConfig = e?.cache, this.rlsSetup = e?.rlsSetup, this.planOptimiser = e?.planOptimiser;
8047
+ e?.databaseExecutor ? (this.db = e.databaseExecutor.db, this.schema = e.databaseExecutor.schema, this.engineType = e.databaseExecutor.getEngineType()) : e?.drizzle && (this.db = e.drizzle, this.schema = e.schema, this.engineType = e.engineType), this.cacheConfig = e?.cache, this.rlsSetup = e?.rlsSetup, this.planOptimiser = e?.planOptimiser, this.contextToCubeSetId = e?.contextToCubeSetId, this.missingCubeSet = e?.missingCubeSet ?? "base", this.onCubeSetRegistered = e?.onCubeSetRegistered;
7980
8048
  }
7981
8049
  setDatabaseExecutor(e) {
7982
8050
  this.db = e.db, this.schema = e.schema, this.engineType = e.getEngineType();
@@ -8005,79 +8073,175 @@ var ua = class {
8005
8073
  };
8006
8074
  }
8007
8075
  registerCube(e) {
8008
- this.validateCalculatedMeasures(e), new Y(this.cubes).populateDependencies(e), this.cubes.set(e.name, e), this.invalidateMetadataCache();
8076
+ this.prepareCube(e, this.baseCubes), this.baseCubes.set(e.name, e), this.baseGeneration++, this.rebuildAllMergedSets(), this.metadataCache.clear();
8077
+ }
8078
+ registerCubeSet(e, t) {
8079
+ if (e === "") throw Error(r("server.errors.cubeSetIdEmpty"));
8080
+ let n = Date.now(), i = /* @__PURE__ */ new Map();
8081
+ for (let e of t) {
8082
+ let t = new Map(this.baseCubes);
8083
+ for (let [e, n] of i) t.set(e, n);
8084
+ this.prepareCube(e, t), i.set(e.name, e);
8085
+ }
8086
+ let a = ++this.registrationCounter, o = this.mergeWithBase(i), s = Date.now() - n;
8087
+ this.cubeSets.set(e, {
8088
+ overlay: i,
8089
+ merged: o,
8090
+ generation: a,
8091
+ durationMs: s
8092
+ }), this.metadataCache.delete(e);
8093
+ let c = 0;
8094
+ for (let e of i.values()) c += Object.keys(e.dimensions ?? {}).length;
8095
+ let l = {
8096
+ setId: e,
8097
+ cubeCount: o.size,
8098
+ dimensionCount: c,
8099
+ generation: a,
8100
+ durationMs: s
8101
+ };
8102
+ da(`registered cube set '${e}': ${i.size} cube(s), ${c} dimension(s), generation ${a}, ${s}ms`), this.onCubeSetRegistered?.(l);
8103
+ }
8104
+ unregisterCubeSet(e) {
8105
+ let t = this.cubeSets.delete(e);
8106
+ return t && this.metadataCache.delete(e), t;
8107
+ }
8108
+ hasCubeSet(e) {
8109
+ return this.cubeSets.has(e);
8110
+ }
8111
+ getCubeSetIds() {
8112
+ return Array.from(this.cubeSets.keys());
8113
+ }
8114
+ getCubeSetStats() {
8115
+ let e = 0, t = 0, n;
8116
+ for (let [r, i] of this.cubeSets) e += i.merged.size, t += i.durationMs, (!n || i.durationMs > n.durationMs) && (n = {
8117
+ setId: r,
8118
+ durationMs: i.durationMs
8119
+ });
8120
+ return {
8121
+ setCount: this.cubeSets.size,
8122
+ cubeCount: e,
8123
+ totalRegistrationMs: t,
8124
+ slowestSet: n
8125
+ };
8126
+ }
8127
+ prepareCube(e, t) {
8128
+ this.validateCalculatedMeasures(e, t), new Y(t).populateDependencies(e);
8129
+ }
8130
+ mergeWithBase(e) {
8131
+ let t = new Map(this.baseCubes);
8132
+ for (let [n, r] of e) t.set(n, r);
8133
+ return t;
8134
+ }
8135
+ rebuildAllMergedSets() {
8136
+ for (let e of this.cubeSets.values()) e.merged = this.mergeWithBase(e.overlay);
8137
+ }
8138
+ resolveSetId(e) {
8139
+ if (!this.contextToCubeSetId) return "";
8140
+ let t = this.contextToCubeSetId(e);
8141
+ if (t == null || t === "") return "";
8142
+ let n = String(t);
8143
+ if (!this.cubeSets.has(n)) {
8144
+ if (this.missingCubeSet === "throw") throw Error(r("server.errors.cubeSetNotFound", { setId: n }));
8145
+ return "";
8146
+ }
8147
+ return n;
8148
+ }
8149
+ resolveCubes(e) {
8150
+ let t = this.resolveSetId(e);
8151
+ return t === "" ? this.baseCubes : this.cubeSets.get(t)?.merged ?? this.baseCubes;
8152
+ }
8153
+ cubeSetCacheKey(e) {
8154
+ let t = this.cubeSets.get(e)?.generation ?? 0;
8155
+ return `${e}:${this.baseGeneration}.${t}`;
8009
8156
  }
8010
8157
  validateCubeReferences() {
8011
- let e = [];
8012
- for (let [t, n] of this.cubes) if (n.joins) for (let [i, a] of Object.entries(n.joins)) typeof a.targetCube == "string" && !this.cubes.has(a.targetCube) && e.push(r("server.errors.cubeRefUnresolved", {
8013
- cubeName: t,
8014
- joinName: i,
8015
- targetCube: a.targetCube
8016
- }));
8017
- if (e.length > 0) throw Error(r("server.errors.unresolvedCubeRefs", { details: e.map((e) => ` - ${e}`).join("\n") }));
8158
+ let e = /* @__PURE__ */ new Set();
8159
+ for (let t of this.unresolvedJoinRefs(this.baseCubes)) e.add(t);
8160
+ for (let t of this.cubeSets.values()) for (let n of this.unresolvedJoinRefs(t.merged)) e.add(n);
8161
+ if (e.size > 0) {
8162
+ let t = Array.from(e, (e) => ` - ${e}`).join("\n");
8163
+ throw Error(r("server.errors.unresolvedCubeRefs", { details: t }));
8164
+ }
8165
+ }
8166
+ *unresolvedJoinRefs(e) {
8167
+ for (let [t, n] of e) if (n.joins) for (let [i, a] of Object.entries(n.joins)) {
8168
+ let { targetCube: n } = a;
8169
+ typeof n == "string" && !e.has(n) && (yield r("server.errors.cubeRefUnresolved", {
8170
+ cubeName: t,
8171
+ joinName: i,
8172
+ targetCube: n
8173
+ }));
8174
+ }
8018
8175
  }
8019
- validateCalculatedMeasures(e) {
8020
- let t = [];
8021
- for (let [n, i] of Object.entries(e.measures)) if (i.type === "calculated") {
8022
- if (!i.calculatedSql) {
8023
- t.push(r("server.validation.calculatedMeasure.mustHaveCalculatedSql", {
8176
+ validateCalculatedMeasures(e, t) {
8177
+ let n = [];
8178
+ for (let [i, a] of Object.entries(e.measures)) if (a.type === "calculated") {
8179
+ if (!a.calculatedSql) {
8180
+ n.push(r("server.validation.calculatedMeasure.mustHaveCalculatedSql", {
8024
8181
  cubeName: e.name,
8025
- fieldName: n
8182
+ fieldName: i
8026
8183
  }));
8027
8184
  continue;
8028
8185
  }
8029
- let a = Mn(i.calculatedSql);
8030
- if (!a.isValid) {
8031
- t.push(r("server.validation.calculatedMeasure.invalidSyntax", {
8186
+ let o = Mn(a.calculatedSql);
8187
+ if (!o.isValid) {
8188
+ n.push(r("server.validation.calculatedMeasure.invalidSyntax", {
8032
8189
  cubeName: e.name,
8033
- fieldName: n,
8034
- errors: a.errors.join(", ")
8190
+ fieldName: i,
8191
+ errors: o.errors.join(", ")
8035
8192
  }));
8036
8193
  continue;
8037
8194
  }
8038
- let o = new Map(this.cubes);
8039
- o.set(e.name, e);
8040
- let s = new Y(o);
8195
+ let s = new Map(t);
8196
+ s.set(e.name, e);
8197
+ let c = new Y(s);
8041
8198
  try {
8042
- s.validateDependencies(e);
8199
+ c.validateDependencies(e);
8043
8200
  } catch (e) {
8044
- t.push(e instanceof Error ? e.message : String(e));
8201
+ n.push(e instanceof Error ? e.message : String(e));
8045
8202
  }
8046
8203
  }
8047
- if (t.length === 0) {
8048
- let n = new Map(this.cubes);
8049
- n.set(e.name, e);
8050
- let i = new Y(n);
8051
- i.buildGraph(e);
8052
- let a = i.detectCycle();
8053
- a && t.push(r("server.validation.calculatedMeasure.circularDependency", { cycle: a.join(" -> ") }));
8054
- }
8055
- if (t.length > 0) throw Error(r("server.errors.calculatedMeasureValidation", {
8204
+ if (n.length === 0) {
8205
+ let i = new Map(t);
8206
+ i.set(e.name, e);
8207
+ let a = new Y(i);
8208
+ a.buildGraph(e);
8209
+ let o = a.detectCycle();
8210
+ o && n.push(r("server.validation.calculatedMeasure.circularDependency", { cycle: o.join(" -> ") }));
8211
+ }
8212
+ if (n.length > 0) throw Error(r("server.errors.calculatedMeasureValidation", {
8056
8213
  cubeName: e.name,
8057
- details: t.join("\n")
8214
+ details: n.join("\n")
8058
8215
  }));
8059
8216
  }
8060
- getCube(e) {
8061
- return this.cubes.get(e);
8217
+ getCube(e, t) {
8218
+ return this.resolveCubes(t).get(e);
8062
8219
  }
8063
- getAllCubes() {
8064
- return Array.from(this.cubes.values());
8220
+ getAllCubes(e) {
8221
+ return Array.from(this.resolveCubes(e).values());
8065
8222
  }
8066
- getAllCubesMap() {
8067
- return this.cubes;
8223
+ getAllCubesMap(e) {
8224
+ return this.resolveCubes(e);
8068
8225
  }
8069
8226
  async execute(e, t, n) {
8070
- return this.createQueryExecutor(!0).execute(this.cubes, e, t, n);
8227
+ let r = this.createQueryExecutor(!0), i = this.resolveSetId(t);
8228
+ return r.execute(this.cubeSetId2Cubes(i), e, t, {
8229
+ ...n,
8230
+ cubeSetKey: this.cubeSetCacheKey(i)
8231
+ });
8071
8232
  }
8072
8233
  async executeMultiCubeQuery(e, t, n) {
8073
8234
  return this.execute(e, t, n);
8074
8235
  }
8075
8236
  async executeQuery(e, t, n) {
8076
- if (!this.cubes.get(e)) throw Error(r("server.errors.cubeNotFound", { cubeName: e }));
8237
+ if (!this.resolveCubes(n).get(e)) throw Error(r("server.errors.cubeNotFound", { cubeName: e }));
8077
8238
  return this.execute(t, n);
8078
8239
  }
8079
- getMetadata() {
8080
- return this.metadataCache ||= Array.from(this.cubes.values()).map((e) => this.generateCubeMetadata(e)), this.metadataCache;
8240
+ getMetadata(e) {
8241
+ let t = this.resolveSetId(e), n = this.metadataCache.get(t);
8242
+ if (n) return n;
8243
+ let r = this.cubeSetId2Cubes(t), i = Array.from(r.values()).map((e) => this.generateCubeMetadata(e, r));
8244
+ return this.metadataCache.set(t, i), i;
8081
8245
  }
8082
8246
  getColumnName(e) {
8083
8247
  if (e && e.name || e && e.columnType && e.name) return e.name;
@@ -8089,33 +8253,33 @@ var ua = class {
8089
8253
  }
8090
8254
  return "unknown_column";
8091
8255
  }
8092
- generateCubeMetadata(e) {
8093
- let t = oa(e), n = sa(e), r = ca(e, this.cubes, (e) => this.getColumnName(e)), i = la(e);
8256
+ generateCubeMetadata(e, t) {
8257
+ let n = sa(e), r = ca(e), i = la(e, t, (e) => this.getColumnName(e)), a = ua(e);
8094
8258
  return {
8095
8259
  name: e.name,
8096
8260
  title: e.title || e.name,
8097
8261
  description: e.description,
8098
8262
  exampleQuestions: e.exampleQuestions,
8099
- measures: t,
8100
- dimensions: n,
8263
+ measures: n,
8264
+ dimensions: r,
8101
8265
  segments: [],
8102
- relationships: r.length > 0 ? r : void 0,
8103
- hierarchies: i.length > 0 ? i : void 0,
8266
+ relationships: i.length > 0 ? i : void 0,
8267
+ hierarchies: a.length > 0 ? a : void 0,
8104
8268
  meta: e.meta
8105
8269
  };
8106
8270
  }
8107
8271
  async generateSQL(e, t, n) {
8108
- let i = this.getCube(e);
8272
+ let i = this.getCube(e, n);
8109
8273
  if (!i) throw Error(r("server.errors.cubeNotFound", { cubeName: e }));
8110
8274
  let a = await this.createQueryExecutor().generateSQL(i, t, n);
8111
8275
  return this.formatSqlResult(a);
8112
8276
  }
8113
8277
  async generateMultiCubeSQL(e, t) {
8114
- let n = await this.createQueryExecutor().generateMultiCubeSQL(this.cubes, e, t);
8278
+ let n = await this.createQueryExecutor().generateMultiCubeSQL(this.resolveCubes(t), e, t);
8115
8279
  return this.formatSqlResult(n);
8116
8280
  }
8117
8281
  async dryRun(e, t) {
8118
- let n = await this.createQueryExecutor().dryRunSQL(this.cubes, e, t);
8282
+ let n = await this.createQueryExecutor().dryRunSQL(this.resolveCubes(t), e, t);
8119
8283
  return this.formatSqlResult(n);
8120
8284
  }
8121
8285
  async dryRunFunnel(e, t) {
@@ -8128,33 +8292,36 @@ var ua = class {
8128
8292
  return this.dryRun(e, t);
8129
8293
  }
8130
8294
  async explainQuery(e, t, n) {
8131
- return this.createQueryExecutor().explainQuery(this.cubes, e, t, n);
8295
+ return this.createQueryExecutor().explainQuery(this.resolveCubes(t), e, t, n);
8132
8296
  }
8133
- hasCube(e) {
8134
- return this.cubes.has(e);
8297
+ hasCube(e, t) {
8298
+ return this.resolveCubes(t).has(e);
8135
8299
  }
8136
8300
  unregisterCube(e) {
8137
8301
  return this.removeCube(e);
8138
8302
  }
8139
8303
  removeCube(e) {
8140
- let t = this.cubes.delete(e);
8141
- return t && this.invalidateMetadataCache(), t;
8304
+ let t = this.baseCubes.delete(e);
8305
+ return t && (this.baseGeneration++, this.rebuildAllMergedSets(), this.invalidateMetadataCache()), t;
8142
8306
  }
8143
8307
  clearCubes() {
8144
- this.cubes.clear(), this.invalidateMetadataCache();
8308
+ this.baseCubes.clear(), this.baseGeneration++, this.rebuildAllMergedSets(), this.invalidateMetadataCache();
8145
8309
  }
8146
8310
  invalidateMetadataCache() {
8147
- this.metadataCache = void 0;
8311
+ this.metadataCache.clear();
8312
+ }
8313
+ cubeSetId2Cubes(e) {
8314
+ return e === "" ? this.baseCubes : this.cubeSets.get(e)?.merged ?? this.baseCubes;
8148
8315
  }
8149
- getCubeNames() {
8150
- return Array.from(this.cubes.keys());
8316
+ getCubeNames(e) {
8317
+ return Array.from(this.resolveCubes(e).keys());
8151
8318
  }
8152
- validateQuery(e) {
8153
- return Sr(this.cubes, e);
8319
+ validateQuery(e, t) {
8320
+ return Sr(this.resolveCubes(t), e);
8154
8321
  }
8155
8322
  analyzeQuery(e, t) {
8156
- return this.createQueryExecutor(!0).analyzeQuery(this.cubes, e, t);
8323
+ return this.createQueryExecutor(!0).analyzeQuery(this.resolveCubes(t), e, t);
8157
8324
  }
8158
8325
  };
8159
8326
  //#endregion
8160
- export { ua as t };
8327
+ export { fa as t };