drizzle-cube 0.6.1 → 0.6.3

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 (796) hide show
  1. package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +2 -0
  3. package/dist/adapters/AreaChart.config-1B8iQnfn.js +2 -0
  4. package/dist/adapters/AreaChart.config-hnncyQL4.cjs +1 -0
  5. package/dist/adapters/BarChart.config-C-QCf1rL.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CFelK1qP.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-B_M4hzzV.js +2 -0
  10. package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-fuhyFvob.js +2 -0
  13. package/dist/adapters/DataTable.config-q2gqBi6t.cjs +1 -0
  14. package/dist/adapters/DataTable.config-wIQnHX5R.js +2 -0
  15. package/dist/adapters/FunnelChart.config-Dz710ssx.js +2 -0
  16. package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +1 -0
  17. package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +1 -0
  18. package/dist/adapters/GaugeChart.config-CgwniXkd.js +2 -0
  19. package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +2 -0
  21. package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +1 -0
  22. package/dist/adapters/KpiDelta.config-C_dYM64q.js +2 -0
  23. package/dist/adapters/KpiNumber.config-CXg6toZG.js +2 -0
  24. package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +1 -0
  25. package/dist/adapters/KpiText.config-BY-SJvAF.js +2 -0
  26. package/dist/adapters/KpiText.config-GSIxy0CE.cjs +1 -0
  27. package/dist/adapters/LineChart.config-CJtF8SOu.js +2 -0
  28. package/dist/adapters/LineChart.config-d0y60gw9.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +2 -0
  33. package/dist/adapters/PieChart.config-CDxfXCIt.cjs +1 -0
  34. package/dist/adapters/PieChart.config-CuZxQc5m.js +2 -0
  35. package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +1 -0
  36. package/dist/adapters/RadarChart.config-KrxwaaGu.js +2 -0
  37. package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +2 -0
  38. package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +1 -0
  39. package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +1 -0
  40. package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +2 -0
  41. package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +2 -0
  42. package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +1 -0
  43. package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +1 -0
  44. package/dist/adapters/SankeyChart.config-kzAnW0C7.js +2 -0
  45. package/dist/adapters/ScatterChart.config-4Okvn27v.js +2 -0
  46. package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +1 -0
  47. package/dist/adapters/SunburstChart.config-BsUQkIM_.js +2 -0
  48. package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +1 -0
  49. package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +2 -0
  50. package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +1 -0
  51. package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +1 -0
  52. package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +2 -0
  53. package/dist/adapters/chartConfigHelpers-CcvqrIWF.js +72 -0
  54. package/dist/adapters/chartConfigHelpers-DHQB-_v5.cjs +1 -0
  55. package/dist/adapters/{locale-ZLUUNUxr.cjs → compiler-ChGO4ZLU.cjs} +1 -1
  56. package/dist/adapters/{locale-DDvZDFVn.js → compiler-LKTN9PTt.js} +2 -21
  57. package/dist/adapters/core/cube-http-handler.d.ts +27 -0
  58. package/dist/adapters/core/http-port.d.ts +39 -0
  59. package/dist/adapters/core/index.cjs +1 -0
  60. package/dist/adapters/core/index.d.ts +11 -0
  61. package/dist/adapters/core/index.js +2 -0
  62. package/dist/adapters/core/mcp-handler.d.ts +13 -0
  63. package/dist/adapters/core/rest-handlers.d.ts +14 -0
  64. package/dist/adapters/core/security-context.d.ts +17 -0
  65. package/dist/adapters/core-Bbchr0ui.js +244 -0
  66. package/dist/adapters/core-F1pCQPde.cjs +1 -0
  67. package/dist/adapters/express/index.cjs +2 -2
  68. package/dist/adapters/express/index.js +93 -201
  69. package/dist/adapters/fastify/index.cjs +2 -2
  70. package/dist/adapters/fastify/index.js +79 -217
  71. package/dist/adapters/handler-DRZb2ip6.cjs +25 -0
  72. package/dist/adapters/{handler-CfgE0JSL.js → handler-u8FyzPBT.js} +1572 -1500
  73. package/dist/adapters/hono/index.cjs +2 -2
  74. package/dist/adapters/hono/index.js +69 -225
  75. package/dist/adapters/mcp-tools.cjs +1 -1
  76. package/dist/adapters/mcp-tools.js +1 -1
  77. package/dist/adapters/mcp-transport-Bw_zqky2.js +591 -0
  78. package/dist/adapters/mcp-transport-CNIPoe1i.cjs +40 -0
  79. package/dist/adapters/nextjs/index.cjs +1 -1
  80. package/dist/adapters/nextjs/index.d.ts +8 -9
  81. package/dist/adapters/nextjs/index.js +181 -288
  82. package/dist/adapters/nextjs/mcp-handler.d.ts +0 -28
  83. package/dist/adapters/{openai-D0musiYP.cjs → openai-B4kAJTSD.cjs} +3 -3
  84. package/dist/adapters/{openai-vXvLni8v.cjs → openai-Cdf2wWZA.cjs} +1 -1
  85. package/dist/adapters/{openai-B5jEiqiB.js → openai-CmMzrs1Y.js} +18 -2
  86. package/dist/adapters/{openai-cDlFSTk6.js → openai-DhzGY9R4.js} +1 -1
  87. package/dist/cjs/adapters/core/cube-http-handler.d.ts +27 -0
  88. package/dist/cjs/adapters/core/http-port.d.ts +39 -0
  89. package/dist/cjs/adapters/core/index.d.ts +11 -0
  90. package/dist/cjs/adapters/core/mcp-handler.d.ts +13 -0
  91. package/dist/cjs/adapters/core/rest-handlers.d.ts +14 -0
  92. package/dist/cjs/adapters/core/security-context.d.ts +17 -0
  93. package/dist/cjs/adapters/express/index.d.ts +114 -0
  94. package/dist/cjs/adapters/fastify/index.d.ts +113 -0
  95. package/dist/cjs/adapters/hono/agent-handler.d.ts +9 -0
  96. package/dist/cjs/adapters/hono/index.d.ts +120 -0
  97. package/dist/cjs/adapters/locale.d.ts +8 -0
  98. package/dist/cjs/adapters/mcp-tools-handlers.d.ts +18 -0
  99. package/dist/cjs/adapters/mcp-tools.d.ts +134 -0
  100. package/dist/cjs/adapters/mcp-transport.d.ts +158 -0
  101. package/dist/cjs/adapters/nextjs/index.d.ts +195 -0
  102. package/dist/cjs/adapters/nextjs/mcp-handler.d.ts +8 -0
  103. package/dist/cjs/adapters/types.d.ts +41 -0
  104. package/dist/cjs/adapters/utils.d.ts +354 -0
  105. package/dist/cjs/client/adapters/adapterRegistry.d.ts +44 -0
  106. package/dist/cjs/client/adapters/flowModeAdapter.d.ts +3 -0
  107. package/dist/cjs/client/adapters/funnelModeAdapter.d.ts +19 -0
  108. package/dist/cjs/client/adapters/index.d.ts +29 -0
  109. package/dist/cjs/client/adapters/modeAdapter.d.ts +117 -0
  110. package/dist/cjs/client/adapters/queryModeAdapter.d.ts +16 -0
  111. package/dist/cjs/client/adapters/retentionModeAdapter.d.ts +3 -0
  112. package/dist/cjs/client/charts/ChartLoader.d.ts +69 -0
  113. package/dist/cjs/client/charts/chartComponentRegistry.d.ts +38 -0
  114. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +38 -0
  115. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +19 -0
  116. package/dist/cjs/client/charts/chartConfigs.d.ts +142 -0
  117. package/dist/cjs/client/charts/chartPlugin.d.ts +73 -0
  118. package/dist/cjs/client/charts/chartRegistry.d.ts +73 -0
  119. package/dist/cjs/client/charts/lazyChartConfigRegistry.d.ts +100 -0
  120. package/dist/cjs/client/charts.d.ts +17 -0
  121. package/dist/cjs/client/client/BatchCoordinator.d.ts +38 -0
  122. package/dist/cjs/client/client/CubeClient.d.ts +32 -0
  123. package/dist/cjs/client/components/AIAssistant/constants.d.ts +11 -0
  124. package/dist/cjs/client/components/AIAssistant/index.d.ts +10 -0
  125. package/dist/cjs/client/components/AIAssistant/types.d.ts +49 -0
  126. package/dist/cjs/client/components/AIAssistant/utils.d.ts +17 -0
  127. package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +27 -0
  128. package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +14 -0
  129. package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +9 -0
  130. package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +6 -0
  131. package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +12 -0
  132. package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +15 -0
  133. package/dist/cjs/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  134. package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  135. package/dist/cjs/client/components/AgenticNotebook/index.d.ts +56 -0
  136. package/dist/cjs/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  137. package/dist/cjs/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  138. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +25 -0
  139. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +29 -0
  140. package/dist/cjs/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +18 -0
  141. package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +11 -0
  142. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +20 -0
  143. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +14 -0
  144. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +16 -0
  145. package/dist/cjs/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +27 -0
  146. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +12 -0
  147. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  148. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  149. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +14 -0
  150. package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +17 -0
  151. package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  152. package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +12 -0
  153. package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  154. package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +9 -0
  155. package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  156. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +49 -0
  157. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  158. package/dist/cjs/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +16 -0
  159. package/dist/cjs/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +4 -0
  160. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchItem.d.ts +6 -0
  161. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchModal.d.ts +2 -0
  162. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  163. package/dist/cjs/client/components/AnalysisBuilder/FilterConfigModal.d.ts +17 -0
  164. package/dist/cjs/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  165. package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +28 -0
  166. package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  167. package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +57 -0
  168. package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  169. package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +21 -0
  170. package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +24 -0
  171. package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +48 -0
  172. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +25 -0
  173. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +26 -0
  174. package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  175. package/dist/cjs/client/components/AnalysisBuilder/LimitSection.d.ts +14 -0
  176. package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +11 -0
  177. package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  178. package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +9 -0
  179. package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +36 -0
  180. package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +71 -0
  181. package/dist/cjs/client/components/AnalysisBuilder/SectionHeading.d.ts +12 -0
  182. package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  183. package/dist/cjs/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  184. package/dist/cjs/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  185. package/dist/cjs/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  186. package/dist/cjs/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  187. package/dist/cjs/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  188. package/dist/cjs/client/components/AnalysisBuilder/index.d.ts +9 -0
  189. package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +851 -0
  190. package/dist/cjs/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  191. package/dist/cjs/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  192. package/dist/cjs/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +69 -0
  193. package/dist/cjs/client/components/AnalysisBuilder/utils/filterUtils.d.ts +19 -0
  194. package/dist/cjs/client/components/AnalysisBuilder/utils/idUtils.d.ts +11 -0
  195. package/dist/cjs/client/components/AnalysisBuilder/utils/index.d.ts +11 -0
  196. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +11 -0
  197. package/dist/cjs/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +14 -0
  198. package/dist/cjs/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  199. package/dist/cjs/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  200. package/dist/cjs/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  201. package/dist/cjs/client/components/AnalysisBuilder/utils/storageUtils.d.ts +44 -0
  202. package/dist/cjs/client/components/AnalysisBuilderLazy.d.ts +4 -0
  203. package/dist/cjs/client/components/AnalyticsDashboard.d.ts +2 -0
  204. package/dist/cjs/client/components/AnalyticsPage.d.ts +1 -0
  205. package/dist/cjs/client/components/AnalyticsPortlet.d.ts +10 -0
  206. package/dist/cjs/client/components/ChartErrorBoundary.d.ts +21 -0
  207. package/dist/cjs/client/components/ChartTypeSelector.d.ts +15 -0
  208. package/dist/cjs/client/components/ColorPaletteSelector.d.ts +11 -0
  209. package/dist/cjs/client/components/ConfirmModal.d.ts +30 -0
  210. package/dist/cjs/client/components/DashboardEditModal.d.ts +15 -0
  211. package/dist/cjs/client/components/DashboardFilterPanel.d.ts +15 -0
  212. package/dist/cjs/client/components/DashboardFilters/CompactFilterBar.d.ts +13 -0
  213. package/dist/cjs/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  214. package/dist/cjs/client/components/DashboardFilters/CustomDateDropdown.d.ts +10 -0
  215. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +20 -0
  216. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  217. package/dist/cjs/client/components/DashboardFilters/DashboardFilterItem.d.ts +14 -0
  218. package/dist/cjs/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  219. package/dist/cjs/client/components/DashboardFilters/DatePresetChips.d.ts +8 -0
  220. package/dist/cjs/client/components/DashboardFilters/EditModeFilterList.d.ts +13 -0
  221. package/dist/cjs/client/components/DashboardFilters/FilterChip.d.ts +12 -0
  222. package/dist/cjs/client/components/DashboardFilters/FilterEditModal.d.ts +15 -0
  223. package/dist/cjs/client/components/DashboardFilters/FilterValuePopover.d.ts +11 -0
  224. package/dist/cjs/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +13 -0
  225. package/dist/cjs/client/components/DashboardFilters/XTDDropdown.d.ts +10 -0
  226. package/dist/cjs/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  227. package/dist/cjs/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  228. package/dist/cjs/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  229. package/dist/cjs/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  230. package/dist/cjs/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  231. package/dist/cjs/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  232. package/dist/cjs/client/components/DashboardGrid.d.ts +22 -0
  233. package/dist/cjs/client/components/DashboardPortletCard.d.ts +4 -0
  234. package/dist/cjs/client/components/DashboardThumbnailPlaceholder.d.ts +13 -0
  235. package/dist/cjs/client/components/DataBrowser/DataBrowserSidebar.d.ts +16 -0
  236. package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +16 -0
  237. package/dist/cjs/client/components/DataBrowser/DataBrowserToolbar.d.ts +22 -0
  238. package/dist/cjs/client/components/DataBrowser/index.d.ts +28 -0
  239. package/dist/cjs/client/components/DataHistogram.d.ts +27 -0
  240. package/dist/cjs/client/components/DebugModal.d.ts +17 -0
  241. package/dist/cjs/client/components/DrillBreadcrumb.d.ts +7 -0
  242. package/dist/cjs/client/components/DrillMenu.d.ts +8 -0
  243. package/dist/cjs/client/components/FloatingEditToolbar.d.ts +30 -0
  244. package/dist/cjs/client/components/LoadingIndicator.d.ts +16 -0
  245. package/dist/cjs/client/components/MobileStackedLayout.d.ts +14 -0
  246. package/dist/cjs/client/components/Modal.d.ts +16 -0
  247. package/dist/cjs/client/components/PortletAnalysisModal.d.ts +27 -0
  248. package/dist/cjs/client/components/PortletContainer.d.ts +10 -0
  249. package/dist/cjs/client/components/PortletFilterConfigModal.d.ts +13 -0
  250. package/dist/cjs/client/components/RowManagedLayout.d.ts +19 -0
  251. package/dist/cjs/client/components/ScaledGridWrapper.d.ts +12 -0
  252. package/dist/cjs/client/components/SchemaVisualization/CubeNode.d.ts +25 -0
  253. package/dist/cjs/client/components/SchemaVisualization/FieldDetailPanel.d.ts +15 -0
  254. package/dist/cjs/client/components/SchemaVisualization/RelationshipEdge.d.ts +13 -0
  255. package/dist/cjs/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +3 -0
  256. package/dist/cjs/client/components/SchemaVisualization/index.d.ts +10 -0
  257. package/dist/cjs/client/components/SchemaVisualization/useERDLayout.d.ts +39 -0
  258. package/dist/cjs/client/components/SchemaVisualization/xyflowContext.d.ts +11 -0
  259. package/dist/cjs/client/components/TextPortletModal.d.ts +12 -0
  260. package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  261. package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  262. package/dist/cjs/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  263. package/dist/cjs/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  264. package/dist/cjs/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  265. package/dist/cjs/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  266. package/dist/cjs/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  267. package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  268. package/dist/cjs/client/components/charts/ActivityGridChart.config.d.ts +10 -0
  269. package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +4 -0
  270. package/dist/cjs/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  271. package/dist/cjs/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  272. package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +19 -0
  273. package/dist/cjs/client/components/charts/AreaChart.config.d.ts +10 -0
  274. package/dist/cjs/client/components/charts/AreaChart.d.ts +4 -0
  275. package/dist/cjs/client/components/charts/AxisFormatControls.d.ts +37 -0
  276. package/dist/cjs/client/components/charts/BarChart.config.d.ts +10 -0
  277. package/dist/cjs/client/components/charts/BarChart.d.ts +4 -0
  278. package/dist/cjs/client/components/charts/BarChart.helpers.d.ts +23 -0
  279. package/dist/cjs/client/components/charts/BarSeries.d.ts +29 -0
  280. package/dist/cjs/client/components/charts/BoxPlotChart.config.d.ts +10 -0
  281. package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +4 -0
  282. package/dist/cjs/client/components/charts/BubbleChart.config.d.ts +10 -0
  283. package/dist/cjs/client/components/charts/BubbleChart.d.ts +4 -0
  284. package/dist/cjs/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  285. package/dist/cjs/client/components/charts/BubbleChart.render.d.ts +21 -0
  286. package/dist/cjs/client/components/charts/CandlestickChart.config.d.ts +10 -0
  287. package/dist/cjs/client/components/charts/CandlestickChart.d.ts +4 -0
  288. package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -0
  289. package/dist/cjs/client/components/charts/ChartLegend.d.ts +7 -0
  290. package/dist/cjs/client/components/charts/ChartStates.d.ts +38 -0
  291. package/dist/cjs/client/components/charts/ChartTooltip.d.ts +7 -0
  292. package/dist/cjs/client/components/charts/DataTable.config.d.ts +10 -0
  293. package/dist/cjs/client/components/charts/DataTable.d.ts +4 -0
  294. package/dist/cjs/client/components/charts/FunnelChart.config.d.ts +14 -0
  295. package/dist/cjs/client/components/charts/FunnelChart.d.ts +11 -0
  296. package/dist/cjs/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  297. package/dist/cjs/client/components/charts/FunnelViews.d.ts +16 -0
  298. package/dist/cjs/client/components/charts/GaugeChart.config.d.ts +10 -0
  299. package/dist/cjs/client/components/charts/GaugeChart.d.ts +4 -0
  300. package/dist/cjs/client/components/charts/HeatMapCanvas.d.ts +25 -0
  301. package/dist/cjs/client/components/charts/HeatMapChart.config.d.ts +13 -0
  302. package/dist/cjs/client/components/charts/HeatMapChart.d.ts +10 -0
  303. package/dist/cjs/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  304. package/dist/cjs/client/components/charts/KpiDelta.config.d.ts +10 -0
  305. package/dist/cjs/client/components/charts/KpiDelta.d.ts +4 -0
  306. package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  307. package/dist/cjs/client/components/charts/KpiNumber.config.d.ts +10 -0
  308. package/dist/cjs/client/components/charts/KpiNumber.d.ts +4 -0
  309. package/dist/cjs/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  310. package/dist/cjs/client/components/charts/KpiStates.d.ts +19 -0
  311. package/dist/cjs/client/components/charts/KpiText.config.d.ts +10 -0
  312. package/dist/cjs/client/components/charts/KpiText.d.ts +4 -0
  313. package/dist/cjs/client/components/charts/LineChart.config.d.ts +10 -0
  314. package/dist/cjs/client/components/charts/LineChart.d.ts +4 -0
  315. package/dist/cjs/client/components/charts/MarkdownChart.config.d.ts +10 -0
  316. package/dist/cjs/client/components/charts/MarkdownChart.d.ts +4 -0
  317. package/dist/cjs/client/components/charts/MeasureProfileChart.config.d.ts +10 -0
  318. package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +4 -0
  319. package/dist/cjs/client/components/charts/MissingDependencyFallback.d.ts +12 -0
  320. package/dist/cjs/client/components/charts/PieChart.config.d.ts +10 -0
  321. package/dist/cjs/client/components/charts/PieChart.d.ts +4 -0
  322. package/dist/cjs/client/components/charts/RadarChart.config.d.ts +10 -0
  323. package/dist/cjs/client/components/charts/RadarChart.d.ts +4 -0
  324. package/dist/cjs/client/components/charts/RadialBarChart.config.d.ts +10 -0
  325. package/dist/cjs/client/components/charts/RadialBarChart.d.ts +4 -0
  326. package/dist/cjs/client/components/charts/RetentionCombinedChart.config.d.ts +2 -0
  327. package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +14 -0
  328. package/dist/cjs/client/components/charts/RetentionHeatmap.config.d.ts +2 -0
  329. package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +7 -0
  330. package/dist/cjs/client/components/charts/SankeyChart.config.d.ts +14 -0
  331. package/dist/cjs/client/components/charts/SankeyChart.d.ts +10 -0
  332. package/dist/cjs/client/components/charts/ScatterChart.config.d.ts +10 -0
  333. package/dist/cjs/client/components/charts/ScatterChart.d.ts +4 -0
  334. package/dist/cjs/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  335. package/dist/cjs/client/components/charts/ScatterSeries.d.ts +17 -0
  336. package/dist/cjs/client/components/charts/ScatterTooltip.d.ts +21 -0
  337. package/dist/cjs/client/components/charts/SunburstChart.config.d.ts +14 -0
  338. package/dist/cjs/client/components/charts/SunburstChart.d.ts +10 -0
  339. package/dist/cjs/client/components/charts/TreeMapChart.config.d.ts +10 -0
  340. package/dist/cjs/client/components/charts/TreeMapChart.d.ts +4 -0
  341. package/dist/cjs/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  342. package/dist/cjs/client/components/charts/TreeMapContent.d.ts +24 -0
  343. package/dist/cjs/client/components/charts/TreeMapLegend.d.ts +13 -0
  344. package/dist/cjs/client/components/charts/WaterfallChart.config.d.ts +10 -0
  345. package/dist/cjs/client/components/charts/WaterfallChart.d.ts +4 -0
  346. package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  347. package/dist/cjs/client/components/charts/chartAxisResolution.d.ts +32 -0
  348. package/dist/cjs/client/components/charts/chartScaffolding.d.ts +77 -0
  349. package/dist/cjs/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  350. package/dist/cjs/client/components/charts/index.d.ts +25 -0
  351. package/dist/cjs/client/components/charts/kpiTextHelpers.d.ts +46 -0
  352. package/dist/cjs/client/components/charts/radarChartHelpers.d.ts +14 -0
  353. package/dist/cjs/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  354. package/dist/cjs/client/components/charts/useChartDimensions.d.ts +20 -0
  355. package/dist/cjs/client/components/charts/useKpiDimensions.d.ts +30 -0
  356. package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +113 -0
  357. package/dist/cjs/client/components/dashboard/DashboardCoordinator.d.ts +2 -0
  358. package/dist/cjs/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  359. package/dist/cjs/client/components/dashboard/DashboardFilterBar.d.ts +8 -0
  360. package/dist/cjs/client/components/dashboard/DashboardGridSurface.d.ts +8 -0
  361. package/dist/cjs/client/components/dashboard/DashboardModals.d.ts +8 -0
  362. package/dist/cjs/client/components/dashboard/DashboardProvider.d.ts +2 -0
  363. package/dist/cjs/client/components/dashboard/DashboardToolbar.d.ts +11 -0
  364. package/dist/cjs/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  365. package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +17 -0
  366. package/dist/cjs/client/components/dashboard/index.d.ts +13 -0
  367. package/dist/cjs/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  368. package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  369. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  370. package/dist/cjs/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  371. package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  372. package/dist/cjs/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  373. package/dist/cjs/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  374. package/dist/cjs/client/components/shared/DateRangeFilter.d.ts +4 -0
  375. package/dist/cjs/client/components/shared/DateRangeSelector.d.ts +13 -0
  376. package/dist/cjs/client/components/shared/FilterBuilder.d.ts +4 -0
  377. package/dist/cjs/client/components/shared/FilterGroup.d.ts +4 -0
  378. package/dist/cjs/client/components/shared/FilterItem.d.ts +4 -0
  379. package/dist/cjs/client/components/shared/FilterValueSelector.d.ts +4 -0
  380. package/dist/cjs/client/components/shared/dateRangeUtils.d.ts +40 -0
  381. package/dist/cjs/client/components/shared/filterDisplayUtils.d.ts +10 -0
  382. package/dist/cjs/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  383. package/dist/cjs/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  384. package/dist/cjs/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  385. package/dist/cjs/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  386. package/dist/cjs/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  387. package/dist/cjs/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  388. package/dist/cjs/client/components/shared/queryFieldUtils.d.ts +21 -0
  389. package/dist/cjs/client/components/shared/types.d.ts +60 -0
  390. package/dist/cjs/client/components/shared/utils.d.ts +71 -0
  391. package/dist/cjs/client/components.d.ts +17 -0
  392. package/dist/cjs/client/hooks/agentChatStream.d.ts +39 -0
  393. package/dist/cjs/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  394. package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +7 -0
  395. package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +53 -0
  396. package/dist/cjs/client/hooks/dashboard/useGridLayoutEngine.d.ts +10 -0
  397. package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +18 -0
  398. package/dist/cjs/client/hooks/drillNavigation.d.ts +25 -0
  399. package/dist/cjs/client/hooks/queries/index.d.ts +20 -0
  400. package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +85 -0
  401. package/dist/cjs/client/hooks/queries/useCubeMetaQuery.d.ts +51 -0
  402. package/dist/cjs/client/hooks/queries/useDryRunQuery.d.ts +153 -0
  403. package/dist/cjs/client/hooks/queries/useExplainAI.d.ts +62 -0
  404. package/dist/cjs/client/hooks/queries/useExplainQuery.d.ts +62 -0
  405. package/dist/cjs/client/hooks/queries/useFlowQuery.d.ts +72 -0
  406. package/dist/cjs/client/hooks/queries/useFunnelQuery.d.ts +20 -0
  407. package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +70 -0
  408. package/dist/cjs/client/hooks/queries/useRetentionQuery.d.ts +67 -0
  409. package/dist/cjs/client/hooks/useAgentChat.d.ts +60 -0
  410. package/dist/cjs/client/hooks/useAnalysisBuilderHook.d.ts +245 -0
  411. package/dist/cjs/client/hooks/useAnalysisEffects.d.ts +33 -0
  412. package/dist/{client/hooks/useAnalysisQueryExecution.d.ts → cjs/client/hooks/useAnalysisQuery.d.ts} +3 -3
  413. package/dist/cjs/client/hooks/useAnalysisState.d.ts +165 -0
  414. package/dist/cjs/client/hooks/useCubeFieldLabel.d.ts +16 -0
  415. package/dist/cjs/client/hooks/useDashboardHook.d.ts +123 -0
  416. package/dist/cjs/client/hooks/useDataBrowser.d.ts +67 -0
  417. package/dist/cjs/client/hooks/useDebounce.d.ts +12 -0
  418. package/dist/cjs/client/hooks/useDebounceQuery.d.ts +48 -0
  419. package/dist/cjs/client/hooks/useDirtyStateTracking.d.ts +37 -0
  420. package/dist/cjs/client/hooks/useDragAutoScroll.d.ts +18 -0
  421. package/dist/cjs/client/hooks/useDrillInteraction.d.ts +9 -0
  422. package/dist/cjs/client/hooks/useElementVisibility.d.ts +30 -0
  423. package/dist/cjs/client/hooks/useFilterValues.d.ts +19 -0
  424. package/dist/cjs/client/hooks/useNotebookLayout.d.ts +8 -0
  425. package/dist/cjs/client/hooks/useResponsiveDashboard.d.ts +16 -0
  426. package/dist/cjs/client/hooks/useScrollDetection.d.ts +29 -0
  427. package/dist/cjs/client/hooks/useTheme.d.ts +11 -0
  428. package/dist/cjs/client/hooks/useTranslation.d.ts +21 -0
  429. package/dist/cjs/client/hooks.d.ts +17 -0
  430. package/dist/cjs/client/icons/customIcons.d.ts +22 -0
  431. package/dist/cjs/client/icons/defaultIcons.d.ts +5 -0
  432. package/dist/cjs/client/icons/index.d.ts +22 -0
  433. package/dist/cjs/client/icons/registry.d.ts +58 -0
  434. package/dist/cjs/client/icons/types.d.ts +134 -0
  435. package/dist/cjs/client/icons.d.ts +2 -0
  436. package/dist/cjs/client/index.d.ts +76 -0
  437. package/dist/cjs/client/providers/CubeApiProvider.d.ts +24 -0
  438. package/dist/cjs/client/providers/CubeFeaturesProvider.d.ts +19 -0
  439. package/dist/cjs/client/providers/CubeMetaContext.d.ts +11 -0
  440. package/dist/cjs/client/providers/CubeMetaProvider.d.ts +6 -0
  441. package/dist/cjs/client/providers/CubeProvider.d.ts +70 -0
  442. package/dist/cjs/client/providers/I18nProvider.d.ts +18 -0
  443. package/dist/cjs/client/providers/ScrollContainerContext.d.ts +19 -0
  444. package/dist/cjs/client/providers.d.ts +10 -0
  445. package/dist/cjs/client/schema.d.ts +13 -0
  446. package/dist/cjs/client/shared/chartConfigBuilders.d.ts +18 -0
  447. package/dist/cjs/client/shared/chartDefaults.d.ts +59 -0
  448. package/dist/cjs/client/shared/components/CodeBlock.d.ts +13 -0
  449. package/dist/cjs/client/shared/components/QueryAnalysisPanel.d.ts +7 -0
  450. package/dist/cjs/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  451. package/dist/cjs/client/shared/index.d.ts +11 -0
  452. package/dist/cjs/client/shared/queryKey.d.ts +1 -0
  453. package/dist/cjs/client/shared/queryTransforms.d.ts +20 -0
  454. package/dist/cjs/client/shared/types.d.ts +184 -0
  455. package/dist/cjs/client/shared/utils.d.ts +104 -0
  456. package/dist/cjs/client/stores/analysisBuilderStore.d.ts +578 -0
  457. package/dist/cjs/client/stores/dashboardStore.d.ts +292 -0
  458. package/dist/cjs/client/stores/dataBrowserStore.d.ts +34 -0
  459. package/dist/cjs/client/stores/index.d.ts +13 -0
  460. package/dist/cjs/client/stores/notebookStore.d.ts +157 -0
  461. package/dist/cjs/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  462. package/dist/cjs/client/stores/slices/coreSlice.d.ts +96 -0
  463. package/dist/cjs/client/stores/slices/flowSlice.d.ts +69 -0
  464. package/dist/cjs/client/stores/slices/funnelSlice.d.ts +61 -0
  465. package/dist/cjs/client/stores/slices/index.d.ts +13 -0
  466. package/dist/cjs/client/stores/slices/querySlice.d.ts +55 -0
  467. package/dist/cjs/client/stores/slices/retentionSlice.d.ts +66 -0
  468. package/dist/cjs/client/stores/slices/uiSlice.d.ts +52 -0
  469. package/dist/cjs/client/theme/index.d.ts +135 -0
  470. package/dist/cjs/client/types/analysisConfig.d.ts +185 -0
  471. package/dist/cjs/client/types/drill.d.ts +240 -0
  472. package/dist/cjs/client/types/flow.d.ts +191 -0
  473. package/dist/cjs/client/types/funnel.d.ts +288 -0
  474. package/dist/cjs/client/types/retention.d.ts +301 -0
  475. package/dist/cjs/client/types.d.ts +600 -0
  476. package/dist/cjs/client/utils/axisValueFormatting.d.ts +32 -0
  477. package/dist/cjs/client/utils/chartConstants.d.ts +16 -0
  478. package/dist/cjs/client/utils/chartUtils.d.ts +35 -0
  479. package/dist/cjs/client/utils/colorPalettes.d.ts +35 -0
  480. package/dist/cjs/client/utils/comparisonUtils.d.ts +96 -0
  481. package/dist/cjs/client/utils/configMigration.d.ts +85 -0
  482. package/dist/cjs/client/utils/drillQueryBuilder.d.ts +41 -0
  483. package/dist/cjs/client/utils/exportXlsx.d.ts +20 -0
  484. package/dist/cjs/client/utils/filterUtils.d.ts +113 -0
  485. package/dist/cjs/client/utils/funnelExecution.d.ts +211 -0
  486. package/dist/cjs/client/utils/funnelValidation.d.ts +46 -0
  487. package/dist/cjs/client/utils/index.d.ts +94 -0
  488. package/dist/cjs/client/utils/joinReachability.d.ts +27 -0
  489. package/dist/cjs/client/utils/measureIcons.d.ts +11 -0
  490. package/dist/cjs/client/utils/multiQueryUtils.d.ts +86 -0
  491. package/dist/cjs/client/utils/multiQueryValidation.d.ts +69 -0
  492. package/dist/cjs/client/utils/periodUtils.d.ts +40 -0
  493. package/dist/cjs/client/utils/pivotUtils.d.ts +87 -0
  494. package/dist/cjs/client/utils/shareUtils.d.ts +61 -0
  495. package/dist/cjs/client/utils/syntaxHighlighting.d.ts +36 -0
  496. package/dist/cjs/client/utils/targetUtils.d.ts +36 -0
  497. package/dist/cjs/client/utils/thumbnail.d.ts +36 -0
  498. package/dist/cjs/client/utils/timeValueFormatting.d.ts +32 -0
  499. package/dist/cjs/client/utils.d.ts +8 -0
  500. package/dist/cjs/package.json +3 -0
  501. package/dist/cjs/server/adapters/base-adapter.d.ts +332 -0
  502. package/dist/cjs/server/adapters/databend-adapter.d.ts +63 -0
  503. package/dist/cjs/server/adapters/duckdb-adapter.d.ts +68 -0
  504. package/dist/cjs/server/adapters/mysql-adapter.d.ts +65 -0
  505. package/dist/cjs/server/adapters/postgres-adapter.d.ts +55 -0
  506. package/dist/cjs/server/adapters/singlestore-adapter.d.ts +4 -0
  507. package/dist/cjs/server/adapters/snowflake-adapter.d.ts +53 -0
  508. package/dist/cjs/server/adapters/sqlite-adapter.d.ts +120 -0
  509. package/dist/cjs/server/adapters/window-function-builder.d.ts +11 -0
  510. package/dist/cjs/server/agent/chart-validation.d.ts +22 -0
  511. package/dist/cjs/server/agent/handler-steps.d.ts +37 -0
  512. package/dist/cjs/server/agent/handler.d.ts +25 -0
  513. package/dist/cjs/server/agent/index.d.ts +11 -0
  514. package/dist/cjs/server/agent/providers/anthropic.d.ts +24 -0
  515. package/dist/cjs/server/agent/providers/factory.d.ts +12 -0
  516. package/dist/cjs/server/agent/providers/google.d.ts +23 -0
  517. package/dist/cjs/server/agent/providers/index.d.ts +6 -0
  518. package/dist/cjs/server/agent/providers/openai.d.ts +26 -0
  519. package/dist/cjs/server/agent/providers/types.d.ts +95 -0
  520. package/dist/cjs/server/agent/system-prompt.d.ts +5 -0
  521. package/dist/cjs/server/agent/tools.d.ts +28 -0
  522. package/dist/cjs/server/agent/types.d.ts +192 -0
  523. package/dist/cjs/server/ai/discovery-helpers.d.ts +29 -0
  524. package/dist/cjs/server/ai/discovery.d.ts +66 -0
  525. package/dist/cjs/server/ai/index.d.ts +10 -0
  526. package/dist/cjs/server/ai/mcp-prompts.d.ts +83 -0
  527. package/dist/cjs/server/ai/query-schema.d.ts +258 -0
  528. package/dist/cjs/server/ai/schemas.d.ts +63 -0
  529. package/dist/cjs/server/ai/suggestion-helpers.d.ts +33 -0
  530. package/dist/cjs/server/ai/suggestion.d.ts +16 -0
  531. package/dist/cjs/server/ai/validation-helpers.d.ts +21 -0
  532. package/dist/cjs/server/ai/validation.d.ts +31 -0
  533. package/dist/cjs/server/builders/analysis-utils.d.ts +106 -0
  534. package/dist/cjs/server/builders/comparison-query-builder.d.ts +70 -0
  535. package/dist/cjs/server/builders/cte-builder.d.ts +108 -0
  536. package/dist/cjs/server/builders/date-time-builder.d.ts +34 -0
  537. package/dist/cjs/server/builders/date-time-helpers.d.ts +34 -0
  538. package/dist/cjs/server/builders/filter-builder.d.ts +25 -0
  539. package/dist/cjs/server/builders/filter-operators.d.ts +23 -0
  540. package/dist/cjs/server/builders/flow-query-builder.d.ts +136 -0
  541. package/dist/cjs/server/builders/funnel-query-builder.d.ts +145 -0
  542. package/dist/cjs/server/builders/group-by-builder.d.ts +38 -0
  543. package/dist/cjs/server/builders/index.d.ts +13 -0
  544. package/dist/cjs/server/builders/measure-builder.d.ts +185 -0
  545. package/dist/cjs/server/builders/retention-query-builder.d.ts +98 -0
  546. package/dist/cjs/server/cache-providers/index.d.ts +5 -0
  547. package/dist/cjs/server/cache-providers/memory.d.ts +105 -0
  548. package/dist/cjs/server/cache-utils.d.ts +85 -0
  549. package/dist/cjs/server/compiler-metadata.d.ts +11 -0
  550. package/dist/cjs/server/compiler.d.ts +212 -0
  551. package/dist/cjs/server/cube-utils.d.ts +158 -0
  552. package/dist/cjs/server/database-utils.d.ts +18 -0
  553. package/dist/cjs/server/execution/annotation-builder.d.ts +12 -0
  554. package/dist/cjs/server/execution/filter-cache-preloader.d.ts +19 -0
  555. package/dist/cjs/server/execution/mode-router.d.ts +25 -0
  556. package/dist/cjs/server/execution/query-result-cache.d.ts +21 -0
  557. package/dist/cjs/server/execution/result-post-processor.d.ts +10 -0
  558. package/dist/cjs/server/executor.d.ts +186 -0
  559. package/dist/cjs/server/executors/base-executor.d.ts +16 -0
  560. package/dist/cjs/server/executors/databend-executor.d.ts +33 -0
  561. package/dist/cjs/server/executors/duckdb-executor.d.ts +33 -0
  562. package/dist/cjs/server/executors/explain-utils.d.ts +28 -0
  563. package/dist/cjs/server/executors/index.d.ts +21 -0
  564. package/dist/cjs/server/executors/mysql-executor.d.ts +27 -0
  565. package/dist/cjs/server/executors/postgres-executor.d.ts +27 -0
  566. package/dist/cjs/server/executors/singlestore-executor.d.ts +9 -0
  567. package/dist/cjs/server/executors/snowflake-executor.d.ts +33 -0
  568. package/dist/cjs/server/executors/sqlite-executor.d.ts +28 -0
  569. package/dist/cjs/server/explain/databend-parser.d.ts +16 -0
  570. package/dist/cjs/server/explain/duckdb-parser.d.ts +28 -0
  571. package/dist/cjs/server/explain/explain-tree.d.ts +20 -0
  572. package/dist/cjs/server/explain/index.d.ts +9 -0
  573. package/dist/cjs/server/explain/mysql-parser.d.ts +38 -0
  574. package/dist/cjs/server/explain/postgres-parser.d.ts +18 -0
  575. package/dist/cjs/server/explain/snowflake-parser.d.ts +17 -0
  576. package/dist/cjs/server/explain/sqlite-parser.d.ts +23 -0
  577. package/dist/cjs/server/filter-cache.d.ts +73 -0
  578. package/dist/cjs/server/gap-filler.d.ts +48 -0
  579. package/dist/cjs/server/index.d.ts +38 -0
  580. package/dist/cjs/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  581. package/dist/cjs/server/logical-plan/cte-planner.d.ts +104 -0
  582. package/dist/cjs/server/logical-plan/filter-propagation.d.ts +44 -0
  583. package/dist/cjs/server/logical-plan/index.d.ts +19 -0
  584. package/dist/cjs/server/logical-plan/join-planner.d.ts +27 -0
  585. package/dist/cjs/server/logical-plan/logical-plan-builder.d.ts +58 -0
  586. package/dist/cjs/server/logical-plan/logical-planner.d.ts +39 -0
  587. package/dist/cjs/server/logical-plan/optimiser.d.ts +34 -0
  588. package/dist/cjs/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  589. package/dist/cjs/server/logical-plan/planner-utils.d.ts +20 -0
  590. package/dist/cjs/server/logical-plan/types.d.ts +199 -0
  591. package/dist/cjs/server/measure-classification.d.ts +40 -0
  592. package/dist/cjs/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  593. package/dist/cjs/server/physical-plan/drizzle-sql-builder.d.ts +118 -0
  594. package/dist/cjs/server/physical-plan/index.d.ts +2 -0
  595. package/dist/cjs/server/physical-plan/processors/cte-processor.d.ts +6 -0
  596. package/dist/cjs/server/physical-plan/processors/index.d.ts +8 -0
  597. package/dist/cjs/server/physical-plan/processors/joins-processor.d.ts +6 -0
  598. package/dist/cjs/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  599. package/dist/cjs/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  600. package/dist/cjs/server/physical-plan/processors/predicates-processor.d.ts +6 -0
  601. package/dist/cjs/server/physical-plan/processors/selection-processor.d.ts +6 -0
  602. package/dist/cjs/server/physical-plan/processors/shared.d.ts +38 -0
  603. package/dist/cjs/server/physical-plan/processors/window-processor.d.ts +6 -0
  604. package/dist/cjs/server/prompts/explain-analysis-prompt.d.ts +47 -0
  605. package/dist/cjs/server/prompts/index.d.ts +27 -0
  606. package/dist/cjs/server/prompts/single-step-prompt.d.ts +31 -0
  607. package/dist/cjs/server/prompts/step0-validation-prompt.d.ts +39 -0
  608. package/dist/cjs/server/prompts/step1-shape-prompt.d.ts +29 -0
  609. package/dist/cjs/server/prompts/step2-complete-prompt.d.ts +19 -0
  610. package/dist/cjs/server/prompts/types.d.ts +37 -0
  611. package/dist/cjs/server/query-handlers.d.ts +79 -0
  612. package/dist/cjs/server/query-modes.d.ts +28 -0
  613. package/dist/cjs/server/query-validator.d.ts +9 -0
  614. package/dist/cjs/server/resolvers/calculated-measure-resolver.d.ts +98 -0
  615. package/dist/cjs/server/resolvers/index.d.ts +6 -0
  616. package/dist/cjs/server/resolvers/join-path-resolver.d.ts +158 -0
  617. package/dist/cjs/server/sql-format.d.ts +11 -0
  618. package/dist/cjs/server/template-substitution.d.ts +57 -0
  619. package/dist/cjs/server/types/analysis.d.ts +189 -0
  620. package/dist/cjs/server/types/cache.d.ts +132 -0
  621. package/dist/cjs/server/types/core.d.ts +164 -0
  622. package/dist/cjs/server/types/cube.d.ts +544 -0
  623. package/dist/cjs/server/types/executor.d.ts +156 -0
  624. package/dist/cjs/server/types/flow.d.ts +144 -0
  625. package/dist/cjs/server/types/funnel.d.ts +118 -0
  626. package/dist/cjs/server/types/index.d.ts +11 -0
  627. package/dist/cjs/server/types/metadata.d.ts +113 -0
  628. package/dist/cjs/server/types/query.d.ts +153 -0
  629. package/dist/cjs/server/types/retention.d.ts +141 -0
  630. package/dist/cjs/server/types/utils.d.ts +11 -0
  631. package/dist/cjs/server/types/validation.d.ts +14 -0
  632. package/dist/client/charts/chartComponentRegistry.d.ts +1 -9
  633. package/dist/client/charts/chartConfigRegistry.d.ts +5 -1
  634. package/dist/client/charts/chartPlugin.d.ts +1 -2
  635. package/dist/client/charts/chartRegistry.d.ts +73 -0
  636. package/dist/client/charts.js +3 -3
  637. package/dist/client/chunks/{DashboardEditModal-okVfH8ZK.js → DashboardEditModal-CWurUU2B.js} +7 -7
  638. package/dist/client/chunks/{DashboardEditModal-okVfH8ZK.js.map → DashboardEditModal-CWurUU2B.js.map} +1 -1
  639. package/dist/client/chunks/{analysis-builder-DB88FojM.js → analysis-builder-Uj_Fxv0-.js} +1588 -1857
  640. package/dist/client/chunks/analysis-builder-Uj_Fxv0-.js.map +1 -0
  641. package/dist/client/chunks/{analysis-builder-shared-BVK4TYfR.js → analysis-builder-shared-AdAYIfj_.js} +1531 -1266
  642. package/dist/client/chunks/analysis-builder-shared-AdAYIfj_.js.map +1 -0
  643. package/dist/client/chunks/{chart-config-activity-grid-D_UX4NHC.js → chart-config-activity-grid-BU_bkvER.js} +1 -11
  644. package/dist/client/chunks/chart-config-activity-grid-BU_bkvER.js.map +1 -0
  645. package/dist/client/chunks/{chart-config-area-BNigHUy8.js → chart-config-area-DxwIZ4Uf.js} +1 -5
  646. package/dist/client/chunks/{chart-config-area-BNigHUy8.js.map → chart-config-area-DxwIZ4Uf.js.map} +1 -1
  647. package/dist/client/chunks/{chart-config-bar-DSO_LRTx.js → chart-config-bar-Cc8GY9aQ.js} +5 -9
  648. package/dist/client/chunks/chart-config-bar-Cc8GY9aQ.js.map +1 -0
  649. package/dist/client/chunks/{chart-config-box-plot-oW8axV2q.js → chart-config-box-plot-Bs8ovYvV.js} +3 -8
  650. package/dist/client/chunks/chart-config-box-plot-Bs8ovYvV.js.map +1 -0
  651. package/dist/client/chunks/{chart-config-bubble-gIoqVyjZ.js → chart-config-bubble-BfgY7pt8.js} +1 -11
  652. package/dist/client/chunks/chart-config-bubble-BfgY7pt8.js.map +1 -0
  653. package/dist/client/chunks/{chart-config-candlestick-N6DchAA3.js → chart-config-candlestick-jaeNNEtC.js} +1 -11
  654. package/dist/client/chunks/chart-config-candlestick-jaeNNEtC.js.map +1 -0
  655. package/dist/client/chunks/{chart-config-data-table-d7VBY-y_.js → chart-config-data-table-CRk0C0rW.js} +1 -4
  656. package/dist/client/chunks/chart-config-data-table-CRk0C0rW.js.map +1 -0
  657. package/dist/client/chunks/{chart-config-funnel-DEYMcxsD.js → chart-config-funnel-boT_LNfl.js} +1 -4
  658. package/dist/client/chunks/chart-config-funnel-boT_LNfl.js.map +1 -0
  659. package/dist/client/chunks/{chart-config-gauge-Dq-_H9UN.js → chart-config-gauge-C5uJEr97.js} +3 -8
  660. package/dist/client/chunks/chart-config-gauge-C5uJEr97.js.map +1 -0
  661. package/dist/client/chunks/{chart-config-heat-map-CfRnRNcw.js → chart-config-heat-map-CCarP44-.js} +1 -11
  662. package/dist/client/chunks/chart-config-heat-map-CCarP44-.js.map +1 -0
  663. package/dist/client/chunks/{chart-config-kpi-delta-DSQbvqu_.js → chart-config-kpi-delta-DYopvwyG.js} +3 -8
  664. package/dist/client/chunks/chart-config-kpi-delta-DYopvwyG.js.map +1 -0
  665. package/dist/client/chunks/{chart-config-kpi-number-EFSWY1We.js → chart-config-kpi-number-BhMdoArB.js} +3 -8
  666. package/dist/client/chunks/chart-config-kpi-number-BhMdoArB.js.map +1 -0
  667. package/dist/client/chunks/{chart-config-kpi-text-KM3V5X2u.js → chart-config-kpi-text-DE6Zdi53.js} +3 -8
  668. package/dist/client/chunks/chart-config-kpi-text-DE6Zdi53.js.map +1 -0
  669. package/dist/client/chunks/{chart-config-line-D6jG8PCH.js → chart-config-line-CBfM0Rds.js} +6 -10
  670. package/dist/client/chunks/chart-config-line-CBfM0Rds.js.map +1 -0
  671. package/dist/client/chunks/{chart-config-markdown-BtRIe8JN.js → chart-config-markdown-BCDyBI8K.js} +1 -4
  672. package/dist/client/chunks/chart-config-markdown-BCDyBI8K.js.map +1 -0
  673. package/dist/client/chunks/{chart-config-measure-profile-DxRGa-zf.js → chart-config-measure-profile-BgQIH1u2.js} +1 -8
  674. package/dist/client/chunks/chart-config-measure-profile-BgQIH1u2.js.map +1 -0
  675. package/dist/client/chunks/{chart-config-pie-BhzW-fdn.js → chart-config-pie-ChfFz6DV.js} +5 -9
  676. package/dist/client/chunks/chart-config-pie-ChfFz6DV.js.map +1 -0
  677. package/dist/client/chunks/{chart-config-radar-D7REP1q_.js → chart-config-radar-BlAIGnww.js} +5 -9
  678. package/dist/client/chunks/chart-config-radar-BlAIGnww.js.map +1 -0
  679. package/dist/client/chunks/{chart-config-radial-bar-Byx6qOPU.js → chart-config-radial-bar-VFerwbCO.js} +5 -9
  680. package/dist/client/chunks/chart-config-radial-bar-VFerwbCO.js.map +1 -0
  681. package/dist/client/chunks/{chart-config-sankey-BTnWA7EW.js → chart-config-sankey-BhrDxIgj.js} +1 -4
  682. package/dist/client/chunks/chart-config-sankey-BhrDxIgj.js.map +1 -0
  683. package/dist/client/chunks/{chart-config-scatter-DSYTjwRb.js → chart-config-scatter-q_olh54e.js} +1 -11
  684. package/dist/client/chunks/chart-config-scatter-q_olh54e.js.map +1 -0
  685. package/dist/client/chunks/{chart-config-sunburst-Bwjtdf7X.js → chart-config-sunburst-BOmkOnKn.js} +1 -4
  686. package/dist/client/chunks/chart-config-sunburst-BOmkOnKn.js.map +1 -0
  687. package/dist/client/chunks/{chart-config-tree-map-DVrvf3yQ.js → chart-config-tree-map-BjX88YBY.js} +5 -9
  688. package/dist/client/chunks/chart-config-tree-map-BjX88YBY.js.map +1 -0
  689. package/dist/client/chunks/{chart-config-waterfall-DmFeQdIk.js → chart-config-waterfall-QsWXVSoF.js} +3 -8
  690. package/dist/client/chunks/chart-config-waterfall-QsWXVSoF.js.map +1 -0
  691. package/dist/client/chunks/{chart-data-table-CKauQXme.js → chart-data-table-D4g5_jfF.js} +1277 -1094
  692. package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +1 -0
  693. package/dist/client/chunks/{chart-kpi-delta-Dn-jjO-2.js → chart-kpi-delta-BvWOt8-D.js} +2 -2
  694. package/dist/client/chunks/{chart-kpi-delta-Dn-jjO-2.js.map → chart-kpi-delta-BvWOt8-D.js.map} +1 -1
  695. package/dist/client/chunks/{chart-kpi-number-P_WBiO5S.js → chart-kpi-number-xgZmMiQY.js} +3 -3
  696. package/dist/client/chunks/{chart-kpi-number-P_WBiO5S.js.map → chart-kpi-number-xgZmMiQY.js.map} +1 -1
  697. package/dist/client/chunks/{chart-kpi-text-C-Y4eb5H.js → chart-kpi-text-ZO3eFi7t.js} +2 -2
  698. package/dist/client/chunks/{chart-kpi-text-C-Y4eb5H.js.map → chart-kpi-text-ZO3eFi7t.js.map} +1 -1
  699. package/dist/client/chunks/{charts-loader-DdTeCeNo.js → charts-loader-B0DOQMFH.js} +6 -6
  700. package/dist/client/chunks/{charts-loader-DdTeCeNo.js.map → charts-loader-B0DOQMFH.js.map} +1 -1
  701. package/dist/client/chunks/{schema-visualization-Cb_E9_Gd.js → schema-visualization-DJPTktM6.js} +2 -2
  702. package/dist/client/chunks/{schema-visualization-Cb_E9_Gd.js.map → schema-visualization-DJPTktM6.js.map} +1 -1
  703. package/dist/client/chunks/{useDirtyStateTracking-MbpxH_v6.js → useDirtyStateTracking-BY_IIG1n.js} +2 -2
  704. package/dist/client/chunks/{useDirtyStateTracking-MbpxH_v6.js.map → useDirtyStateTracking-BY_IIG1n.js.map} +1 -1
  705. package/dist/client/chunks/{useExplainAI-evnZkjCY.js → useExplainAI-PjMBmj2p.js} +4 -4
  706. package/dist/client/chunks/{useExplainAI-evnZkjCY.js.map → useExplainAI-PjMBmj2p.js.map} +1 -1
  707. package/dist/client/chunks/{utils-3P6z1vz5.js → utils-Cq-j5E5I.js} +2 -2
  708. package/dist/client/chunks/{utils-3P6z1vz5.js.map → utils-Cq-j5E5I.js.map} +1 -1
  709. package/dist/client/chunks/{vendor-DSpR0IW6.js → vendor-D4jADu8t.js} +2 -2
  710. package/dist/client/chunks/{vendor-DSpR0IW6.js.map → vendor-D4jADu8t.js.map} +1 -1
  711. package/dist/client/components/AIAssistant/index.d.ts +2 -2
  712. package/dist/client/components/charts/ActivityGridChart.config.d.ts +6 -1
  713. package/dist/client/components/charts/AreaChart.config.d.ts +6 -1
  714. package/dist/client/components/charts/BarChart.config.d.ts +6 -1
  715. package/dist/client/components/charts/BoxPlotChart.config.d.ts +6 -1
  716. package/dist/client/components/charts/BubbleChart.config.d.ts +6 -1
  717. package/dist/client/components/charts/CandlestickChart.config.d.ts +6 -1
  718. package/dist/client/components/charts/DataTable.config.d.ts +6 -1
  719. package/dist/client/components/charts/FunnelChart.config.d.ts +5 -0
  720. package/dist/client/components/charts/GaugeChart.config.d.ts +6 -1
  721. package/dist/client/components/charts/HeatMapChart.config.d.ts +6 -1
  722. package/dist/client/components/charts/KpiDelta.config.d.ts +6 -1
  723. package/dist/client/components/charts/KpiNumber.config.d.ts +6 -1
  724. package/dist/client/components/charts/KpiText.config.d.ts +6 -1
  725. package/dist/client/components/charts/LineChart.config.d.ts +6 -1
  726. package/dist/client/components/charts/MarkdownChart.config.d.ts +6 -1
  727. package/dist/client/components/charts/MeasureProfileChart.config.d.ts +6 -1
  728. package/dist/client/components/charts/PieChart.config.d.ts +6 -1
  729. package/dist/client/components/charts/RadarChart.config.d.ts +6 -1
  730. package/dist/client/components/charts/RadialBarChart.config.d.ts +6 -1
  731. package/dist/client/components/charts/SankeyChart.config.d.ts +5 -0
  732. package/dist/client/components/charts/ScatterChart.config.d.ts +6 -1
  733. package/dist/client/components/charts/SunburstChart.config.d.ts +5 -0
  734. package/dist/client/components/charts/TreeMapChart.config.d.ts +6 -1
  735. package/dist/client/components/charts/WaterfallChart.config.d.ts +6 -1
  736. package/dist/client/components.js +2 -2
  737. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +1 -1
  738. package/dist/client/hooks/useAnalysisEffects.d.ts +33 -0
  739. package/dist/client/hooks/useAnalysisQuery.d.ts +144 -0
  740. package/dist/client/hooks/useAnalysisState.d.ts +165 -0
  741. package/dist/client/hooks.js +3 -3
  742. package/dist/client/icons/registry.d.ts +0 -6
  743. package/dist/client/icons/types.d.ts +5 -0
  744. package/dist/client/icons.js +1 -1
  745. package/dist/client/index.js +9 -9
  746. package/dist/client/providers.js +1 -1
  747. package/dist/client/schema.js +1 -1
  748. package/dist/client/utils.js +3 -3
  749. package/dist/client-bundle-stats.html +1 -1
  750. package/dist/mcp-app/mcp-app.html +34 -34
  751. package/dist/server/chartConfigHelpers-CcvqrIWF.js +72 -0
  752. package/dist/server/chartConfigHelpers-DHQB-_v5.cjs +1 -0
  753. package/dist/server/index.cjs +68 -68
  754. package/dist/server/index.js +3800 -3728
  755. package/dist/server/{openai-D0musiYP.cjs → openai-B4kAJTSD.cjs} +3 -3
  756. package/dist/server/{openai-vXvLni8v.cjs → openai-Cdf2wWZA.cjs} +1 -1
  757. package/dist/server/{openai-B5jEiqiB.js → openai-CmMzrs1Y.js} +18 -2
  758. package/dist/server/{openai-cDlFSTk6.js → openai-DhzGY9R4.js} +1 -1
  759. package/package.json +85 -29
  760. package/dist/adapters/handler-Cn0dOctE.cjs +0 -25
  761. package/dist/adapters/hono/mcp-handler.d.ts +0 -37
  762. package/dist/adapters/mcp-transport-B7ddET3M.cjs +0 -40
  763. package/dist/adapters/mcp-transport-Dfuj4j4q.js +0 -591
  764. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +0 -1
  765. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +0 -1
  766. package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.js.map +0 -1
  767. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +0 -1
  768. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +0 -1
  769. package/dist/client/chunks/chart-config-bubble-gIoqVyjZ.js.map +0 -1
  770. package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +0 -1
  771. package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +0 -1
  772. package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +0 -1
  773. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +0 -1
  774. package/dist/client/chunks/chart-config-heat-map-CfRnRNcw.js.map +0 -1
  775. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +0 -1
  776. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +0 -1
  777. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +0 -1
  778. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +0 -1
  779. package/dist/client/chunks/chart-config-markdown-BtRIe8JN.js.map +0 -1
  780. package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +0 -1
  781. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +0 -1
  782. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +0 -1
  783. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +0 -1
  784. package/dist/client/chunks/chart-config-sankey-BTnWA7EW.js.map +0 -1
  785. package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +0 -1
  786. package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +0 -1
  787. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +0 -1
  788. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +0 -1
  789. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +0 -1
  790. package/dist/client/hooks/useAnalysisAI.d.ts +0 -56
  791. package/dist/client/hooks/useAnalysisChartDefaults.d.ts +0 -35
  792. package/dist/client/hooks/useAnalysisCombinedFields.d.ts +0 -18
  793. package/dist/client/hooks/useAnalysisInitialization.d.ts +0 -25
  794. package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +0 -32
  795. package/dist/client/hooks/useAnalysisShare.d.ts +0 -18
  796. package/dist/client/hooks/useAnalysisUIState.d.ts +0 -24
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.activityGridChartConfig=e.g;
@@ -0,0 +1,2 @@
1
+ import { g as e } from "./handler-u8FyzPBT.js";
2
+ export { e as activityGridChartConfig };
@@ -0,0 +1,2 @@
1
+ import { w as e } from "./handler-u8FyzPBT.js";
2
+ export { e as areaChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.areaChartConfig=e.w;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.barChartConfig=e.E;
@@ -0,0 +1,2 @@
1
+ import { E as e } from "./handler-u8FyzPBT.js";
2
+ export { e as barChartConfig };
@@ -0,0 +1,2 @@
1
+ import { a as e } from "./handler-u8FyzPBT.js";
2
+ export { e as boxPlotChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.boxPlotChartConfig=e.a;
@@ -0,0 +1,2 @@
1
+ import { x as e } from "./handler-u8FyzPBT.js";
2
+ export { e as bubbleChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.bubbleChartConfig=e.x;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.candlestickChartConfig=e.r;
@@ -0,0 +1,2 @@
1
+ import { r as e } from "./handler-u8FyzPBT.js";
2
+ export { e as candlestickChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.dataTableConfig=e._;
@@ -0,0 +1,2 @@
1
+ import { _ as e } from "./handler-u8FyzPBT.js";
2
+ export { e as dataTableConfig };
@@ -0,0 +1,2 @@
1
+ import { d as e } from "./handler-u8FyzPBT.js";
2
+ export { e as funnelChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.funnelChartConfig=e.d;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.gaugeChartConfig=e.t;
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./handler-u8FyzPBT.js";
2
+ export { e as gaugeChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.heatmapChartConfig=e.c;
@@ -0,0 +1,2 @@
1
+ import { c as e } from "./handler-u8FyzPBT.js";
2
+ export { e as heatmapChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.kpiDeltaConfig=e.m;
@@ -0,0 +1,2 @@
1
+ import { m as e } from "./handler-u8FyzPBT.js";
2
+ export { e as kpiDeltaConfig };
@@ -0,0 +1,2 @@
1
+ import { h as e } from "./handler-u8FyzPBT.js";
2
+ export { e as kpiNumberConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.kpiNumberConfig=e.h;
@@ -0,0 +1,2 @@
1
+ import { p as e } from "./handler-u8FyzPBT.js";
2
+ export { e as kpiTextConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.kpiTextConfig=e.p;
@@ -0,0 +1,2 @@
1
+ import { T as e } from "./handler-u8FyzPBT.js";
2
+ export { e as lineChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.lineChartConfig=e.T;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.markdownConfig=e.f;
@@ -0,0 +1,2 @@
1
+ import { f as e } from "./handler-u8FyzPBT.js";
2
+ export { e as markdownConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.measureProfileChartConfig=e.n;
@@ -0,0 +1,2 @@
1
+ import { n as e } from "./handler-u8FyzPBT.js";
2
+ export { e as measureProfileChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.pieChartConfig=e.C;
@@ -0,0 +1,2 @@
1
+ import { C as e } from "./handler-u8FyzPBT.js";
2
+ export { e as pieChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.radarChartConfig=e.b;
@@ -0,0 +1,2 @@
1
+ import { b as e } from "./handler-u8FyzPBT.js";
2
+ export { e as radarChartConfig };
@@ -0,0 +1,2 @@
1
+ import { y as e } from "./handler-u8FyzPBT.js";
2
+ export { e as radialBarChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.radialBarChartConfig=e.y;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.retentionCombinedConfig=e.o;
@@ -0,0 +1,2 @@
1
+ import { o as e } from "./handler-u8FyzPBT.js";
2
+ export { e as retentionCombinedConfig };
@@ -0,0 +1,2 @@
1
+ import { s as e } from "./handler-u8FyzPBT.js";
2
+ export { e as retentionHeatmapConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.retentionHeatmapConfig=e.s;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.sankeyChartConfig=e.u;
@@ -0,0 +1,2 @@
1
+ import { u as e } from "./handler-u8FyzPBT.js";
2
+ export { e as sankeyChartConfig };
@@ -0,0 +1,2 @@
1
+ import { S as e } from "./handler-u8FyzPBT.js";
2
+ export { e as scatterChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.scatterChartConfig=e.S;
@@ -0,0 +1,2 @@
1
+ import { l as e } from "./handler-u8FyzPBT.js";
2
+ export { e as sunburstChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.sunburstChartConfig=e.l;
@@ -0,0 +1,2 @@
1
+ import { v as e } from "./handler-u8FyzPBT.js";
2
+ export { e as treemapChartConfig };
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.treemapChartConfig=e.v;
@@ -0,0 +1 @@
1
+ const e=require("./handler-DRZb2ip6.cjs");exports.waterfallChartConfig=e.i;
@@ -0,0 +1,2 @@
1
+ import { i as e } from "./handler-u8FyzPBT.js";
2
+ export { e as waterfallChartConfig };
@@ -0,0 +1,72 @@
1
+ //#region src/client/charts/chartConfigHelpers.ts
2
+ function e({ measureCount: e, dimensionCount: t }) {
3
+ return e < 1 ? {
4
+ available: !1,
5
+ reason: "chart.availability.requiresMeasure"
6
+ } : t < 1 ? {
7
+ available: !1,
8
+ reason: "chart.availability.requiresDimension"
9
+ } : { available: !0 };
10
+ }
11
+ function t({ measureCount: e }) {
12
+ return e < 1 ? {
13
+ available: !1,
14
+ reason: "chart.availability.requiresMeasure"
15
+ } : { available: !0 };
16
+ }
17
+ var n = {
18
+ key: "target",
19
+ label: "chart.option.target.label",
20
+ type: "string",
21
+ placeholder: "e.g., 100 or 50,75 for spread",
22
+ description: "chart.option.target.description"
23
+ }, r = {
24
+ key: "connectNulls",
25
+ label: "chart.option.connectNulls.label",
26
+ type: "boolean",
27
+ defaultValue: !1,
28
+ description: "chart.option.connectNulls.description"
29
+ }, i = {
30
+ key: "leftYAxisFormat",
31
+ label: "chart.option.leftYAxisFormat.label",
32
+ type: "axisFormat",
33
+ description: "chart.option.leftYAxisFormat.description"
34
+ }, a = {
35
+ key: "rightYAxisFormat",
36
+ label: "chart.option.rightYAxisFormat.label",
37
+ type: "axisFormat",
38
+ description: "chart.option.rightYAxisFormat.description"
39
+ };
40
+ function o(e = "chart.option.valueFormat.description") {
41
+ return {
42
+ key: "leftYAxisFormat",
43
+ label: "chart.option.valueFormat.label",
44
+ type: "axisFormat",
45
+ description: e
46
+ };
47
+ }
48
+ function s(e) {
49
+ return {
50
+ key: "stackType",
51
+ label: "chart.option.stacking.label",
52
+ type: "select",
53
+ defaultValue: "none",
54
+ options: [
55
+ {
56
+ value: "none",
57
+ label: "chart.option.accentBorder.none"
58
+ },
59
+ {
60
+ value: "normal",
61
+ label: "chart.option.stacking.stacked"
62
+ },
63
+ {
64
+ value: "percent",
65
+ label: "chart.option.stacking.percent"
66
+ }
67
+ ],
68
+ description: e
69
+ };
70
+ }
71
+ //#endregion
72
+ export { a, o as c, e as i, i as n, s as o, t as r, n as s, r as t };
@@ -0,0 +1 @@
1
+ function e({measureCount:e,dimensionCount:t}){return e<1?{available:!1,reason:`chart.availability.requiresMeasure`}:t<1?{available:!1,reason:`chart.availability.requiresDimension`}:{available:!0}}function t({measureCount:e}){return e<1?{available:!1,reason:`chart.availability.requiresMeasure`}:{available:!0}}var n={key:`target`,label:`chart.option.target.label`,type:`string`,placeholder:`e.g., 100 or 50,75 for spread`,description:`chart.option.target.description`},r={key:`connectNulls`,label:`chart.option.connectNulls.label`,type:`boolean`,defaultValue:!1,description:`chart.option.connectNulls.description`},i={key:`leftYAxisFormat`,label:`chart.option.leftYAxisFormat.label`,type:`axisFormat`,description:`chart.option.leftYAxisFormat.description`},a={key:`rightYAxisFormat`,label:`chart.option.rightYAxisFormat.label`,type:`axisFormat`,description:`chart.option.rightYAxisFormat.description`};function o(e=`chart.option.valueFormat.description`){return{key:`leftYAxisFormat`,label:`chart.option.valueFormat.label`,type:`axisFormat`,description:e}}function s(e){return{key:`stackType`,label:`chart.option.stacking.label`,type:`select`,defaultValue:`none`,options:[{value:`none`,label:`chart.option.accentBorder.none`},{value:`normal`,label:`chart.option.stacking.stacked`},{value:`percent`,label:`chart.option.stacking.percent`}],description:e}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}});
@@ -163,4 +163,4 @@ const e=require("./utils-_whV4fXL.cjs");var t=Symbol.for(`drizzle:entityKind`);f
163
163
  GROUP BY binding_key${C.raw(i)}
164
164
  )`,s=this.databaseAdapter.buildPeriodSeriesSubquery(a),c={period_number:C`p.period_number`.as(`period_number`),retained_users:C`COUNT(DISTINCT CASE WHEN ump.max_period >= p.period_number THEN ump.binding_key END)`.as(`retained_users`)},l=[C`p.period_number`];for(let e=0;e<n;e++)c[`breakdown_${e}`]=C.raw(`ump.breakdown_${e}`).as(`breakdown_${e}`),l.push(C.raw(`ump.breakdown_${e}`));return t.db.select(c).from(C`${o} ump`).innerJoin(s,C`TRUE`).groupBy(...l)}buildPeriodNumberExpression(e,t,n){return this.databaseAdapter.buildDateDiffPeriods(e,t,n)}},Xr=class{queryPlanner;constructor(e){this.queryPlanner=e}plan(e,t,n){return this.planWithAnalysis(e,t,n).plan}planWithAnalysis(t,n,r){let i=Array.from(this.queryPlanner.analyzeCubeUsage(n));if(i.length===0)throw Error(e.O(`server.errors.noCubesInQuery`));let a=this.queryPlanner.analyzePrimaryCube(i,n,t),o=a.selectedCube,s=t.get(o);if(!s)throw Error(e.O(`server.errors.primaryCubeNotFound`,{cubeName:o}));let c=i.filter(e=>e!==o).map(e=>this.queryPlanner.analyzeJoinPathForTarget(t,o,e,n)),l=i.length>1?this.queryPlanner.buildJoinPlanForPrimary(t,s,i,r,n):[],u=i.length>1?this.queryPlanner.buildPreAggregationCTEs(t,s,l,n,r)??[]:[],d=this.queryPlanner.buildWarnings(n,u),f=this.buildSourceFromPhases(s,l,u,t,n,r),p=f.source,m=this.buildQueryNode(p,n,t,d),h=this.buildPreAggregationAnalysis(u),g=new Map;for(let e of i){let n=t.get(e);n&&g.set(e,n)}let _=xn(n.measures??[],g),v=[...c.filter(e=>!e.pathFound&&e.error).map(e=>e.error),...d.map(e=>e.message)];return{plan:m,analysis:{timestamp:new Date().toISOString(),cubeCount:i.length,cubesInvolved:[...i].sort(),primaryCube:a,joinPaths:c,preAggregations:h,querySummary:{queryType:u.length>0?`multi_cube_cte`:i.length>1?`multi_cube_join`:`single_cube`,measureStrategy:f.strategy,joinCount:l.length,cteCount:u.length,hasPreAggregation:u.length>0,hasWindowFunctions:_},warnings:v.length>0?v:void 0,planningTrace:{steps:[{phase:`cube_usage`,decision:`Identified ${i.length} cube${i.length===1?``:`s`} from query members`,details:{cubesInvolved:[...i].sort()}},{phase:`primary_cube_selection`,decision:`Selected '${a.selectedCube}' as primary cube (${a.reason})`,details:{selectedCube:a.selectedCube,reason:a.reason,candidates:a.candidates?.map(e=>e.cubeName)}},{phase:`join_planning`,decision:`Planned ${l.length} join${l.length===1?``:`s`}`,details:{joinCount:l.length,joinTargets:l.map(e=>e.target.name),pathSelection:c.map(e=>({targetCube:e.targetCube,strategy:e.selection?.strategy,selectedRank:e.selection?.selectedRank,selectedScore:e.selection?.selectedScore}))}},{phase:`cte_planning`,decision:`Planned ${u.length} pre-aggregation CTE${u.length===1?``:`s`}`,details:{cteCount:u.length,cubes:u.map(e=>e.cube.name)}},{phase:`measure_strategy`,decision:`Selected '${f.strategy}' measure strategy`,details:{strategy:f.strategy,regularMeasures:f.classification.regular.map(e=>e.name),multipliedMeasures:f.classification.multiplied.map(e=>e.name),deduplicationSafeMeasures:f.classification.deduplicationSafe.map(e=>e.name),sourceType:p.type}},{phase:`warnings`,decision:d.length>0?`Generated ${d.length} planning warning${d.length===1?``:`s`}`:`No planning warnings generated`,details:{warningCodes:d.map(e=>e.code)}}]}}}}buildSourceFromPhases(e,t,n,r,i,a){let o=this.tryBuildMultiFactMergeSource(i,r,a);if(o)return{source:o,strategy:`multiFactMerge`,classification:{regular:this.buildMeasureRefs(i,r),multiplied:[],deduplicationSafe:[]}};let s=this.buildSimpleSourceFromPhases(e,t,n,r,i),c=this.classifyMeasuresForStrategy(s.schema.measures,n),l=this.selectMeasureStrategy(c,i,r);return l===`keysDeduplication`?{source:this.buildKeysDeduplicationSource(s,c),strategy:l,classification:c}:{source:s,strategy:l,classification:c}}buildSimpleSourceFromPhases(e,t,n,r,i){let a=this.buildMeasureRefs(i,r),o=this.buildDimensionRefs(i,r),s=this.buildTimeDimensionRefs(i,r),c=this.toCubeRef(e),l=t,u=n.map(e=>{let t=this.toCubeRef(e.cube);return{type:`ctePreAggregate`,schema:this.buildCTESchema(e,r),cube:t,alias:e.alias,cteAlias:e.cteAlias,joinKeys:e.joinKeys,measures:e.measures,propagatingFilters:e.propagatingFilters,downstreamJoinKeys:e.downstreamJoinKeys,intermediateJoins:e.intermediateJoins,cteType:e.cteType??`aggregate`,cteReason:e.cteReason??`hasMany`}});return{type:`simpleSource`,schema:{measures:a,dimensions:o,timeDimensions:s},primaryCube:c,joins:l,ctes:u}}tryBuildMultiFactMergeSource(e,t,n){if(!e.measures||e.measures.length<2)return null;let r=new Set;for(let t of e.measures){let[e]=t.split(`.`);e&&r.add(e)}if(r.size<2)return null;let i=new Set;for(let t of e.dimensions??[]){let[e]=t.split(`.`);e&&i.add(e)}for(let t of e.timeDimensions??[]){let[e]=t.dimension.split(`.`);e&&i.add(e)}if(i.size!==1)return null;let a=Array.from(i)[0];if(r.has(a)||!t.get(a))return null;let o=Array.from(r);if(!o.every(e=>this.hasDirectJoinToSharedDimension(t.get(e),a,t)))return null;let s=this.buildDimensionRefs(e,t),c=this.buildTimeDimensionRefs(e,t),l={measures:this.buildMeasureRefs(e,t),dimensions:s,timeDimensions:c},u=[];for(let r of o){let i=(e.measures??[]).filter(e=>e.startsWith(`${r}.`)),o=new Set([r,a]),s={measures:i,dimensions:e.dimensions,timeDimensions:e.timeDimensions,filters:this.projectFiltersToAllowedCubes(e.filters,o)},c=this.buildGroupQueryNode(s,t,n);if(!c)return null;u.push(c)}return u.length<2?null:{type:`multiFactMerge`,schema:l,groups:u,sharedDimensions:s,mergeStrategy:`fullJoin`}}hasDirectJoinToSharedDimension(e,t,n){if(!e?.joins)return!1;for(let[,r]of Object.entries(e.joins)){let e=I(r.targetCube,n);if(!(!e||e.name!==t)&&(r.relationship===`belongsTo`||r.relationship===`hasOne`))return!0}return!1}buildGroupQueryNode(e,t,n){let r=Array.from(this.queryPlanner.analyzeCubeUsage(e));if(r.length===0)return null;let i=this.queryPlanner.analyzePrimaryCube(r,e,t),a=t.get(i.selectedCube);if(!a)return null;let o=r.length>1?this.queryPlanner.buildJoinPlanForPrimary(t,a,r,n,e):[],s=r.length>1?this.queryPlanner.buildPreAggregationCTEs(t,a,o,e,n)??[]:[],c=this.queryPlanner.buildWarnings(e,s),l=this.buildSourceFromPhases(a,o,s,t,e,n);return this.buildQueryNode(l.source,e,t,c)}projectFiltersToAllowedCubes(e,t){if(!e||e.length===0)return;let n=e.map(e=>this.projectFilterNodeToAllowedCubes(e,t)).filter(e=>!!e);return n.length>0?n:void 0}projectFilterNodeToAllowedCubes(e,t){if(`member`in e){let[n]=e.member.split(`.`);return n&&t.has(n)?e:null}if(`and`in e){let n=(e.and??[]).map(e=>this.projectFilterNodeToAllowedCubes(e,t)).filter(e=>!!e);return n.length===0?null:n.length===1?n[0]:{and:n}}if(`or`in e){let n=(e.or??[]).map(e=>this.projectFilterNodeToAllowedCubes(e,t)).filter(e=>!!e);return n.length===0?null:n.length===1?n[0]:{or:n}}return null}classifyMeasuresForStrategy(e,t){let n={regular:[],multiplied:[],deduplicationSafe:[]},r=new Set(t.filter(e=>e.cteReason===`fanOutPrevention`).map(e=>e.cube.name));for(let t of e){let e=t.cube.cube,i=e.measures?.[t.localName];if(!i||!r.has(e.name)){n.regular.push(t);continue}this.isDeduplicationSafeMeasure(i)?n.deduplicationSafe.push(t):n.multiplied.push(t)}return n}selectMeasureStrategy(e,t,n){return e.multiplied.length===0?`simple`:e.multiplied.every(e=>this.getPrimaryKeyColumns(e.cube.cube).length>0)&&this.isKeysDeduplicationExecutionSupported(e,t,n)?`keysDeduplication`:`ctePreAggregateFallback`}isKeysDeduplicationExecutionSupported(e,t,n){let r=new Set(e.multiplied.map(e=>e.cube.name));if(r.size!==1)return!1;let i=Array.from(r)[0],a=t.measures??[];if(a.length===0)return!1;let o=n.get(i);if(!o)return!1;for(let e of a){let[t,r]=e.split(`.`);if(t!==i){let e=n.get(t)?.measures?.[r];if(!e||![`sum`,`count`,`number`,`min`,`max`].includes(e.type))return!1;continue}let a=o.measures?.[r];if(!a||![`sum`,`count`,`number`,`min`,`max`,`avg`].includes(a.type))return!1}return!this.queryHasMeasureFilter(t,i,o)}queryHasMeasureFilter(e,t,n){let r=e=>{let[r,i]=e.split(`.`);return r===t&&!!n.measures?.[i]},i=e=>{if(!e)return!1;for(let t of e){if(`and`in t){if(i(t.and))return!0;continue}if(`or`in t){if(i(t.or))return!0;continue}if(`member`in t&&r(t.member))return!0}return!1};return i(e.filters)}buildKeysDeduplicationSource(e,t){let n=this.deduplicateColumnRefs(t.multiplied.flatMap(e=>this.getPrimaryKeyColumns(e.cube.cube))),r=t.regular.length>0?t.regular.map(e=>e.name):void 0;return{type:`keysDeduplication`,schema:e.schema,keysSource:e,measureSource:e,joinOn:n,regularMeasures:r}}isDeduplicationSafeMeasure(e){return e.type===`countDistinct`||e.type===`countDistinctApprox`}getPrimaryKeyColumns(e){let t=[];for(let[n,r]of Object.entries(e.dimensions??{}))!r.primaryKey||typeof r.sql==`function`||t.push({column:r.sql,alias:`${e.name}.${n}`});return t}deduplicateColumnRefs(e){let t=new Map;for(let n of e){let e=n.alias??String(n.column?.name??``);t.has(e)||t.set(e,n)}return Array.from(t.values())}buildQueryNode(e,t,n,r){let i=this.buildMeasureRefs(t,n),a=this.buildDimensionRefs(t,n),o=this.buildTimeDimensionRefs(t,n),s=this.buildOrderByRefs(t),c=t.filters??[];return{type:`query`,schema:{measures:i,dimensions:a,timeDimensions:o},source:e,dimensions:a,measures:i,filters:c,timeDimensions:o,orderBy:s,limit:t.limit,offset:t.offset,ungrouped:t.ungrouped,warnings:r}}buildPreAggregationAnalysis(e){return e.map(e=>({cubeName:e.cube.name,cteAlias:e.cteAlias,reason:e.cteReason===`fanOutPrevention`?`Potential fan-out from hasMany joins - pre-aggregate ${e.cube.name} to preserve correctness`:`hasMany relationship requires pre-aggregation for ${e.cube.name}`,reasonType:e.cteReason,measures:e.measures,joinKeys:e.joinKeys.map(e=>({sourceColumn:e.sourceColumn,targetColumn:e.targetColumn})),cteType:e.cteType}))}buildMeasureRefs(t,n){return t.measures?t.measures.map(t=>{let[r,i]=t.split(`.`),a=n.get(r);if(!a)throw Error(e.O(`server.errors.cubeNotFoundForMeasure`,{cubeName:r,measure:t}));return{name:t,cube:this.toCubeRef(a),localName:i}}):[]}buildDimensionRefs(t,n){return t.dimensions?t.dimensions.map(t=>{let[r,i]=t.split(`.`),a=n.get(r);if(!a)throw Error(e.O(`server.errors.cubeNotFoundForDimension`,{cubeName:r,dimension:t}));return{name:t,cube:this.toCubeRef(a),localName:i}}):[]}buildTimeDimensionRefs(t,n){return t.timeDimensions?t.timeDimensions.map(t=>{let[r,i]=t.dimension.split(`.`),a=n.get(r);if(!a)throw Error(e.O(`server.errors.cubeNotFoundForTimeDimension`,{cubeName:r,timeDimension:t.dimension}));return{name:t.dimension,cube:this.toCubeRef(a),localName:i,granularity:t.granularity,dateRange:t.dateRange,fillMissingDates:t.fillMissingDates,compareDateRange:t.compareDateRange}}):[]}buildOrderByRefs(e){return e.order?Object.entries(e.order).map(([e,t])=>({name:e,direction:t})):[]}toCubeRef(e){return{name:e.name,cube:e}}buildCTESchema(e,t){return{measures:e.measures.map(e=>{let[n,r]=e.split(`.`);return{name:e,cube:{name:n,cube:t.get(n)},localName:r}}),dimensions:[],timeDimensions:[]}}},Zr=class{name=`identity`;optimise(e){return e}};function Qr(e,t,n,r){let i=$r(e,n,r),a=[],o=new Map,s=new Map;if(e.preAggregationCTEs&&e.preAggregationCTEs.length>0)for(let c of e.preAggregationCTEs){let l=r.cteBuilder.buildPreAggregationCTE(c,t,n,e,i);l&&(a.push(l),o.set(c.cube.name,c.cteAlias),ei(c,s))}return{preBuiltFilterMap:i,ctes:a,cteAliasMap:o,downstreamCubeMap:s}}function $r(e,t,n){let r=new Map;if(!e.preAggregationCTEs||e.preAggregationCTEs.length===0)return r;for(let i of e.preAggregationCTEs)if(!(!i.propagatingFilters||i.propagatingFilters.length===0))for(let e of i.propagatingFilters){let i=e.sourceCube.name;if(!r.has(i)){let a={filters:e.filters},o=new Map([[i,e.sourceCube]]),s=n.queryBuilder.buildWhereConditions(o,a,t);r.set(i,s)}let a=r.get(i);a&&a.length>0&&(e.preBuiltFilterSQL=a.length===1?a[0]:D(...a))}return r}function ei(e,t){if(e.downstreamJoinKeys)for(let n of e.downstreamJoinKeys)t.set(n.targetCubeName,{cteAlias:e.cteAlias,joinKeys:n.joinKeys})}function ti(e,t,n,r,i,a){if(n.measures)for(let o of n.measures){let[s,c]=o.split(`.`),l=i.get(s);if(!l?.measures?.[c])continue;let u=l.measures[c];if(!Z.isPostAggregationWindow(u))continue;let d=Z.getWindowBaseMeasure(u,s);if(!d)continue;let[f,p]=d.split(`.`),m=i.get(f);if(!m?.measures?.[p])continue;let h=m.measures[p],g=t.preAggregationCTEs?.find(e=>e.cube?.name===f&&e.measures?.includes(d)),_;_=g?C`sum(${C`${C.identifier(g.cteAlias)}.${C.identifier(p)}`})`:a.queryBuilder.buildMeasureExpression(h,r,m),e[d]||(e[d]=C`${_}`.as(d));let v=ni(u,_,n,r,l,t,a);v&&(e[o]=C`${v}`.as(o))}}function ni(e,t,n,r,i,a,o){let s=e.windowConfig||{},c=(e,t)=>{if(!a.preAggregationCTEs)return null;let n=a.preAggregationCTEs.find(t=>t.cube?.name===e);return n&&n.cteAlias?C`${C.identifier(n.cteAlias)}.${C.identifier(t)}`:null},l;if(s.orderBy&&s.orderBy.length>0)l=s.orderBy.map(e=>{let a=e.field.includes(`.`)?e.field.split(`.`)[1]:e.field;if(n.timeDimensions)for(let t of n.timeDimensions){let[n,s]=t.dimension.split(`.`);if(s===a){let l=c(n,a);if(l)return{field:l,direction:e.direction};let u=i.dimensions?.[s];if(u)return{field:o.queryBuilder.buildTimeDimensionExpression(u.sql,t.granularity,r),direction:e.direction}}}let l=i.dimensions?.[a];return l?{field:z(l.sql,r),direction:e.direction}:a===(s.measure?.includes(`.`)?s.measure.split(`.`)[1]:s.measure)||e.field===s.measure?{field:t,direction:e.direction}:null}).filter(e=>e!==null);else if(n.timeDimensions&&n.timeDimensions.length>0){let e=n.timeDimensions[0],[t,a]=e.dimension.split(`.`),s=c(t,a);if(s)l=[{field:s,direction:`asc`}];else{let n=i.name===t?i:void 0;if(n?.dimensions?.[a]){let t=n.dimensions[a];l=[{field:o.queryBuilder.buildTimeDimensionExpression(t.sql,e.granularity,r),direction:`asc`}]}}}let u;s.partitionBy&&s.partitionBy.length>0&&(u=s.partitionBy.map(e=>{let t=e.includes(`.`)?e.split(`.`)[1]:e,n=i.dimensions?.[t];return n?z(n.sql,r):null}).filter(e=>e!==null));let d=o.databaseAdapter.buildWindowFunction(e.type,t,u,l,{offset:s.offset,defaultValue:s.defaultValue,nTile:s.nTile,frame:s.frame});if(!d)return null;switch(s.operation||Z.getDefaultWindowOperation(e.type)){case`difference`:return C`${t} - ${d}`;case`ratio`:return C`${t} / NULLIF(${d}, 0)`;case`percentChange`:return C`((${t} - ${d}) / NULLIF(${d}, 0)) * 100`;default:return d}}function ri(e,t,n,r,i){let a={...i.queryBuilder.buildSelections(e.joinCubes.length>0?r:e.primaryCube,t,n)};if(e.preAggregationCTEs)for(let o of e.preAggregationCTEs)ii(a,o,t,n,r,i),oi(a,o,r);return ti(a,e,t,n,r,i),a}function ii(e,t,n,r,i,a){let o=t.cube.name;for(let s of t.measures){if(!e[s])continue;let[,c]=s.split(`.`),l=i.get(o);if(!l?.measures?.[c])continue;let u=l.measures[c],d=C`${C.identifier(t.cteAlias)}.${C.identifier(c)}`,f;f=u.type===`calculated`&&u.calculatedSql?a.queryBuilder.buildCTECalculatedMeasure(u,l,t,i,r):ai(u,d,t,n,i,a),e[s]=C`${f}`.as(s)}}function ai(e,t,n,r,i,a){let o=n.cteReason===`fanOutPrevention`,s=si(n,r,i),c=o||s;switch(e.type){case`count`:case`countDistinct`:case`sum`:return c?j(t):xe(t);case`avg`:return c?j(t):a.databaseAdapter.buildAvg(t);case`min`:return Se(t);case`max`:return j(t);case`number`:return j(t);default:return c?j(t):xe(t)}}function oi(e,t,n){let r=t.cube.name;for(let i in e){let[a,o]=i.split(`.`);if(a!==r)continue;let s=n.get(r),c=s&&s.dimensions?.[o],l=i.startsWith(r+`.`);if(!c&&!l)continue;let u=t.joinKeys.find(e=>e.targetColumn===o);if(!u&&s?.dimensions?.[o]){let e=s.dimensions[o].sql;u=t.joinKeys.find(t=>t.targetColumnObj===e)}(u||l&&s?.dimensions?.[o])&&(e[i]=C`${C.identifier(t.cteAlias)}.${C.identifier(o)}`.as(i))}}function si(e,t,n){return e.cteReason!==`hasMany`||e.downstreamJoinKeys&&e.downstreamJoinKeys.length>0||e.intermediateJoins&&e.intermediateJoins.length>0||!(t.dimensions&&t.dimensions.length>0||t.timeDimensions&&t.timeDimensions.length>0)||t.dimensions?.some(t=>t.startsWith(`${e.cube.name}.`))||t.timeDimensions?.some(t=>t.dimension.startsWith(`${e.cube.name}.`))?!1:e.joinKeys.length>0&&e.joinKeys.every(e=>!!e.sourceColumnObj&&ci(e.sourceColumnObj,t,n))}function ci(e,t,n){if(t.dimensions)for(let r of t.dimensions){let[t,i]=r.split(`.`);if(n.get(t)?.dimensions?.[i]?.sql===e)return!0}if(t.timeDimensions)for(let r of t.timeDimensions){if(r.granularity)continue;let[t,i]=r.dimension.split(`.`);if(n.get(t)?.dimensions?.[i]?.sql===e)return!0}return!1}function $(e,t,n,r){switch(t){case`inner`:return e.innerJoin(n,r);case`right`:return e.rightJoin(n,r);case`full`:return e.fullJoin(n,r);default:return e.leftJoin(n,r)}}function li(e){let t=new Map;if(t.set(e.primaryCube.name,e.primaryCube),e.joinCubes)for(let n of e.joinCubes)t.set(n.cube.name,n.cube);return t}function ui(e,t,n,r,i,a){let o=[],s=di(t,n,r,i);s=fi(s,n.joins);let c=new Set,l=pi(e);if(e.joinCubes&&e.joinCubes.length>0)for(let n of e.joinCubes){let r=n.cube.name;l.has(r)&&!i.cteAliasMap.has(r)||(s=mi(s,n,e,i,t,o),s=_i(s,n,e,i,t,a,c))}return{drizzleQuery:s,allWhereConditions:o,cubesWithSecurityInJoin:c,absorbedIntermediateCubes:l}}function di(e,t,n,r){return r.ctes.length>0?e.db.with(...r.ctes).select(n).from(t.from):e.db.select(n).from(t.from)}function fi(e,t){if(!t)return e;let n=e;for(let e of t)n=$(n,e.type??`left`,e.table,e.on);return n}function pi(e){let t=new Set;if(e.preAggregationCTEs){for(let n of e.preAggregationCTEs)if(n.intermediateJoins&&n.intermediateJoins.length>0)for(let e of n.intermediateJoins)t.add(e.cube.name)}return t}function mi(e,t,n,r,i,a){let o=t.junctionTable;if(!o)return e;let s=hi(o,t,n,r),c=[];if(o.securitySql){let e=o.securitySql(i.securityContext);Array.isArray(e)?c.push(...e):c.push(e)}try{let t=$(e,o.joinType??`left`,o.table,s);return c.length>0&&a.push(...c),t}catch{return e}}function hi(e,t,n,r){let i=e.joinCondition,a=e.sourceCubeName?r.cteAliasMap.get(e.sourceCubeName):void 0;if(!a)return i;let o=(n.preAggregationCTEs?.find(t=>t.cube.name===e.sourceCubeName))?.downstreamJoinKeys?.find(e=>e.targetCubeName===t.cube.name);if(o&&o.joinKeys.length>0){let e=[];for(let t of o.joinKeys){let n=C`${C.identifier(a)}.${C.identifier(t.sourceColumn)}`,r=t.targetColumnObj;r&&e.push(E(r,n))}e.length>0&&(i=D(...e))}return i}function gi(e,t,n,r,i,a){if(t)return{joinTarget:C`${C.identifier(t)}`,joinCondition:a.cteBuilder.buildCTEJoinCondition(e,t,r),securityCondition:void 0,joinCubeBase:void 0};let o=n.downstreamCubeMap.get(e.cube.name),s=e.cube.sql(i),c;if(o&&!e.junctionTable){let e=[];for(let t of o.joinKeys){let n=C`${C.identifier(o.cteAlias)}.${C.identifier(t.sourceColumn)}`,r=t.targetColumnObj||C.identifier(t.targetColumn);e.push(E(n,r))}c=e.length===1?e[0]:D(...e)}else c=e.joinCondition;return{joinTarget:s.from,joinCondition:c,securityCondition:s.where,joinCubeBase:s}}function _i(e,t,n,r,i,a,o){let{joinTarget:s,joinCondition:c,securityCondition:l,joinCubeBase:u}=gi(t,r.cteAliasMap.get(t.cube.name),r,n,i,a),d=t.joinType||`left`,f=d!==`inner`&&l?D(c,l):c;try{let n;return d===`inner`?n=e.innerJoin(s,c):(n=$(e,d,s,f),l&&o.add(t.cube.name)),fi(n,u?.joins)}catch{return e}}function vi(e,t,n,r,i,a,o,s){let c=yi(e,t,n,r,i,a,o,s),l=o.drizzleQuery;if(c.length>0){let e=c.length===1?c[0]:D(...c);l=l.where(e)}return bi(l,e,t,n,r,s)}function yi(e,t,n,r,i,a,o,s){let c=[...o.allWhereConditions];if(i.where&&c.push(i.where),e.joinCubes&&e.joinCubes.length>0)for(let t of e.joinCubes){let e=t.cube.name;if(a.cteAliasMap.get(e)||o.absorbedIntermediateCubes.has(e)||o.cubesWithSecurityInJoin.has(e))continue;let r=t.cube.sql(n);r.where&&c.push(r.where)}let l=s.queryBuilder.buildWhereConditions(e.joinCubes.length>0?r:e.primaryCube,t,n,e,a.preBuiltFilterMap);return l.length>0&&c.push(...l),c}function bi(e,t,n,r,i,a){let o=t.joinCubes.length>0?i:t.primaryCube,s=e,c=a.queryBuilder.buildGroupByFields(o,n,r,t);if(c.length>0&&(s=s.groupBy(...c)),!n.ungrouped){let e=a.queryBuilder.buildHavingConditions(o,n,r,t);if(e.length>0){let t=e.length===1?e[0]:D(...e);s=s.having(t)}}let l=a.queryBuilder.buildOrderBy(n);return l.length>0&&(s=s.orderBy(...l)),a.queryBuilder.applyLimitAndOffset(s,n)}function xi(e,t,n,r){let i=e.keysDeduplication;if(!i?.multipliedCubeName||!t.measures?.length)return null;let a=e.joinCubes.length>0?li(e):new Map([[e.primaryCube.name,e.primaryCube]]),o=a.get(i.multipliedCubeName);if(!o||!Ai(t,o,i.multipliedCubeName))return null;let s=i.primaryKeyDimensions.length>0?i.primaryKeyDimensions:Mi(o);if(s.length===0)return null;let c=`${i.multipliedCubeName.toLowerCase()}_keys`,l=`${i.multipliedCubeName.toLowerCase()}_pk_agg`,u=i.regularMeasures??[],d=Si(t,n,r,a,o,s,u);if(!d)return null;let f=Ci(e,t,n,r,a,c,d.keysSelections,d.keyGroupBy),p=Ei(t,n,r,o,s,d.multipliedMeasures,l);return p?ki(t,n,r,a,o,{keysAlias:c,aggAlias:l,keysCte:f,aggCte:p,pkDimensions:s,pkAliases:d.pkAliases,multipliedMeasures:d.multipliedMeasures,regularMeasureNames:u}):null}function Si(e,t,n,r,i,a,o){let s={},c=[];if(e.dimensions)for(let n of e.dimensions){let[e,i]=n.split(`.`),a=r.get(e),o=a?.dimensions?.[i];if(!a||!o)return null;let l=z(o.sql,t);s[n]=C`${l}`.as(n),c.push(l)}if(e.timeDimensions)for(let i of e.timeDimensions){let[e,a]=i.dimension.split(`.`),o=r.get(e),l=o?.dimensions?.[a];if(!o||!l)return null;let u=n.queryBuilder.buildTimeDimensionExpression(l.sql,i.granularity,t);s[i.dimension]=C`${u}`.as(i.dimension),c.push(u)}let l=[];for(let e of a){let n=i.dimensions?.[e];if(!n)return null;let r=z(n.sql,t),a=`__pk__${e}`;s[a]=C`${r}`.as(a),c.push(r),l.push(a)}let u=new Set(o),d=e.measures.filter(e=>!u.has(e));if(o.length>0){let e=n.queryBuilder.buildResolvedMeasures(o,r,t);for(let t of o){let n=e.get(t);if(!n)return null;let r=`__reg__${t.replace(`.`,`__`)}`;s[r]=C`${n()}`.as(r)}}return{keysSelections:s,keyGroupBy:c,pkAliases:l,multipliedMeasures:d}}function Ci(e,t,n,r,i,a,o,s){let c=e.primaryCube.sql(n),l=[];c.where&&l.push(c.where);let u=n.db.select(o).from(c.from);if(c.joins)for(let e of c.joins)u=$(u,e.type??`left`,e.table,e.on);for(let t of e.joinCubes)u=wi(u,t,n,l);return l.push(...r.queryBuilder.buildWhereConditions(i,t,n)),u=Oi(u,l),s.length>0&&(u=u.groupBy(...s)),n.db.$with(a).as(u)}function wi(e,t,n,r){let i=e;t.junctionTable&&(i=$(i,t.junctionTable.joinType??`left`,t.junctionTable.table,t.junctionTable.joinCondition),Ti(t.junctionTable.securitySql,n,r));let a=t.cube.sql(n);if(i=$(i,t.joinType??`left`,a.from,t.joinCondition),a.joins)for(let e of a.joins)i=$(i,e.type??`left`,e.table,e.on);return a.where&&r.push(a.where),i}function Ti(e,t,n){if(!e)return;let r=e(t.securityContext);Array.isArray(r)?n.push(...r):n.push(r)}function Ei(e,t,n,r,i,a,o){let s=r.sql(t),c=Di(t,n,r,i,a);if(!c)return null;let l=t.db.select(c.aggSelections).from(s.from);if(s.joins)for(let e of s.joins)l=$(l,e.type??`left`,e.table,e.on);let u=[];return s.where&&u.push(s.where),u.push(...n.queryBuilder.buildWhereConditions(r,e,t)),l=Oi(l,u),c.aggGroupBy.length>0&&(l=l.groupBy(...c.aggGroupBy)),t.db.$with(o).as(l)}function Di(e,t,n,r,i){let a={},o=[];for(let t of r){let r=n.dimensions?.[t];if(!r)return null;let i=z(r.sql,e);a[t]=C`${i}`.as(t),o.push(i)}let s=new Set;for(let e of i){let[,t]=e.split(`.`);n.measures?.[t]?.type===`avg`&&s.add(t)}let c=i.filter(e=>{let[,t]=e.split(`.`);return!s.has(t)});if(c.length>0){let r=t.queryBuilder.buildResolvedMeasures(c,new Map([[n.name,n]]),e);for(let e of c){let[,t]=e.split(`.`),n=r.get(e);if(!n||typeof n!=`function`)return null;a[t]=C`${n()}`.as(t)}}for(let t of i){let[,r]=t.split(`.`);if(!s.has(r))continue;let i=n.measures?.[r];if(!i?.sql)return null;let o=z(i.sql,e),c=`__avg_sum__${r}`,l=`__avg_count__${r}`;a[c]=C`sum(${o})`.as(c),a[l]=C`count(${o})`.as(l)}return{aggSelections:a,aggGroupBy:o}}function Oi(e,t){return t.length===0?e:e.where(t.length===1?t[0]:D(...t))}function ki(e,t,n,r,i,a){let{keysAlias:o,aggAlias:s,keysCte:c,aggCte:l,pkDimensions:u,pkAliases:d,multipliedMeasures:f,regularMeasureNames:p}=a,m={};for(let t of e.dimensions??[])m[t]=C`${C.identifier(o)}.${C.identifier(t)}`.as(t);for(let t of e.timeDimensions??[])m[t.dimension]=C`${C.identifier(o)}.${C.identifier(t.dimension)}`.as(t.dimension);for(let e of f){let[,t]=e.split(`.`),n=i.measures?.[t];m[e]=Ni(n?.type??`sum`,s,t,e)}for(let e of p){let[t,n]=e.split(`.`),i=r.get(t)?.measures?.[n],a=`__reg__${e.replace(`.`,`__`)}`;m[e]=Ni(i?.type??`sum`,o,a,e)}let h=t.db.with(c,l).select(m).from(C`${C.identifier(o)}`),g=d.map((e,t)=>E(C`${C.identifier(o)}.${C.identifier(e)}`,C`${C.identifier(s)}.${C.identifier(u[t])}`)),_=g.length===1?g[0]:D(...g);h=h.leftJoin(C`${C.identifier(s)}`,_);let v=[...(e.dimensions??[]).map(e=>C`${C.identifier(o)}.${C.identifier(e)}`),...(e.timeDimensions??[]).map(e=>C`${C.identifier(o)}.${C.identifier(e.dimension)}`)];v.length>0&&(h=h.groupBy(...v));let y=n.queryBuilder.buildOrderBy(e,Object.keys(m));return y.length>0&&(h=h.orderBy(...y)),n.queryBuilder.applyLimitAndOffset(h,e)}function Ai(e,t,n){if(!e.measures?.length)return!1;for(let r of e.measures){let[e,i]=r.split(`.`);if(e!==n)continue;let a=t.measures?.[i];if(!a||![`sum`,`count`,`number`,`min`,`max`,`avg`].includes(a.type))return!1}return!ji(e,t,n)}function ji(e,t,n){let r=e=>{if(!e)return!1;for(let i of e){if(`and`in i){if(r(i.and))return!0;continue}if(`or`in i){if(r(i.or))return!0;continue}if(`member`in i){let[e,r]=i.member.split(`.`);if(e===n&&t.measures?.[r])return!0}}return!1};return r(e.filters)}function Mi(e){return Object.entries(e.dimensions??{}).filter(([,e])=>!!e.primaryKey).map(([e])=>e)}function Ni(e,t,n,r){switch(e){case`min`:return C`min(${C`${C.identifier(t)}.${C.identifier(n)}`})`.as(r);case`max`:return C`max(${C`${C.identifier(t)}.${C.identifier(n)}`})`.as(r);case`avg`:return C`sum(${C`${C.identifier(t)}.${C.identifier(`__avg_sum__${n}`)}`}) / nullif(sum(${C`${C.identifier(t)}.${C.identifier(`__avg_count__${n}`)}`}), 0)`.as(r);default:return C`coalesce(sum(${C`${C.identifier(t)}.${C.identifier(n)}`}), 0)`.as(r)}}function Pi(e,t,n,r,i){let a=e.multiFactMerge;if(!a||a.groups.length<2)return null;let o=[...t.dimensions??[],...(t.timeDimensions??[]).map(e=>e.dimension)],s=Array.from(new Set(o)),c=s.length>0,l=Vi(r),u=c&&a.mergeStrategy===`fullJoin`&&!l,d=a.groups.map(e=>{let t=i(e.queryPlan,e.query,n);return n.db.$with(e.alias).as(t)});return u?Ri(t,n,r,a,d,s):Li(t,n,r,a,d,s,Bi(a.mergeStrategy,c,l))}function Fi(e,t,n){let r={};for(let e of t)r[e]=C`${Hi(n,e)}`.as(e);for(let t of e.groups)for(let e of t.measures)r[e]=C`coalesce(${C`${C.identifier(t.alias)}.${C.identifier(e)}`}, 0)`.as(e);return r}function Ii(e,t,n){if(t.length===0)return C`1 = 1`;let r=t.map(t=>E(n.get(t),C`${C.identifier(e)}.${C.identifier(t)}`));return r.length===1?r[0]:D(...r)}function Li(e,t,n,r,i,a,o){let s=r.groups[0].alias,c=Fi(r,a,r.groups.map(e=>e.alias)),l=t.db.with(...i).select(c).from(C`${C.identifier(s)}`),u=new Map;for(let e of a)u.set(e,C`${C.identifier(s)}.${C.identifier(e)}`);for(let e=1;e<r.groups.length;e++){let t=r.groups[e].alias,n=Ii(t,a,u);if(l=$(l,o,C`${C.identifier(t)}`,n),a.length>0&&o===`full`)for(let e of a)u.set(e,C`coalesce(${u.get(e)}, ${C`${C.identifier(t)}.${C.identifier(e)}`})`)}let d=n.queryBuilder.buildOrderBy(e,Object.keys(c));return d.length>0&&(l=l.orderBy(...d)),n.queryBuilder.applyLimitAndOffset(l,e)}function Ri(e,t,n,r,i,a){let o=`mf_all_keys`,s=r.groups.map(e=>C`select ${zi(e.alias,a)} from ${C.identifier(e.alias)}`),c=C`${C.join(s,C` union `)}`,l=t.db.$with(o).as(c),u={};for(let e of a)u[e]=C`${C.identifier(o)}.${C.identifier(e)}`.as(e);for(let e of r.groups)for(let t of e.measures)u[t]=C`coalesce(${C`${C.identifier(e.alias)}.${C.identifier(t)}`}, 0)`.as(t);let d=t.db.with(...i,l).select(u).from(C`${C.identifier(o)}`);for(let e of r.groups){let t=a.map(t=>E(C`${C.identifier(o)}.${C.identifier(t)}`,C`${C.identifier(e.alias)}.${C.identifier(t)}`)),n=t.length===1?t[0]:D(...t);d=d.leftJoin(C`${C.identifier(e.alias)}`,n)}let f=n.queryBuilder.buildOrderBy(e,Object.keys(u));return f.length>0&&(d=d.orderBy(...f)),n.queryBuilder.applyLimitAndOffset(d,e)}function zi(e,t){let n=t.map(t=>C`${C.identifier(e)}.${C.identifier(t)} as ${C.identifier(t)}`);return C.join(n,C`, `)}function Bi(e,t,n){return!t||e===`innerJoin`?`inner`:e===`leftJoin`?`left`:n?`full`:`left`}function Vi(e){let t=e.databaseAdapter.getEngineType();return t===`postgres`||t===`duckdb`}function Hi(e,t){if(e.length===1)return C`${C.identifier(e[0])}.${C.identifier(t)}`;let n=e.map(e=>C`${C.identifier(e)}.${C.identifier(t)}`),r=n[0];for(let e=1;e<n.length;e++)r=C`coalesce(${r}, ${n[e]})`;return r}var Ui=class{queryBuilder;cteBuilder;databaseAdapter;constructor(e,t,n){this.queryBuilder=e,this.cteBuilder=t,this.databaseAdapter=n}derivePhysicalPlanContext(e){let t=e.source;if(t.type===`multiFactMerge`)return this.derivePhysicalPlanContextFromMultiFact(e,t);if(t.type===`fullKeyAggregate`)return this.derivePhysicalPlanContextFromFullKeyAggregate(e,t);let n=this.resolvePhysicalSimpleSource(t),r=this.resolveKeysDeduplicationMeta(t);return{primaryCube:n.primaryCube.cube,joinCubes:n.joins.map(e=>this.materializeJoin(e)),preAggregationCTEs:n.ctes.map(e=>({cube:e.cube.cube,alias:e.alias,cteAlias:e.cteAlias,joinKeys:e.joinKeys,measures:e.measures,propagatingFilters:e.propagatingFilters,downstreamJoinKeys:e.downstreamJoinKeys,intermediateJoins:e.intermediateJoins,cteType:e.cteType,cteReason:e.cteReason})),keysDeduplication:r,warnings:e.warnings.length>0?e.warnings:void 0}}materializeJoin(e){if(e.junctionTable){let t=jt(e.joinDef);return{cube:e.target.cube,alias:e.alias,joinType:e.joinType,joinCondition:t.junctionJoins[1].condition,relationship:e.relationship,junctionTable:{table:e.junctionTable.table,alias:e.junctionTable.alias,joinType:e.junctionTable.joinType,joinCondition:t.junctionJoins[0].condition,securitySql:e.joinDef.through?.securitySql,sourceCubeName:e.junctionTable.sourceCubeName}}}return{cube:e.target.cube,alias:e.alias,joinType:e.joinType,joinCondition:At(e.joinDef),relationship:e.relationship}}derivePhysicalPlanContextFromMultiFact(e,t){let n=t.groups.map((e,t)=>{if(e.type!==`query`)return null;let n=e,r=this.derivePhysicalPlanContext(n),i=this.toSemanticQuery(n);return{alias:`mf_group_${t+1}`,query:i,queryPlan:r,measures:i.measures??[]}}).filter(e=>!!e);if(n.length===0)throw Error(`multiFactMerge requires at least one query group`);let r=n[0];return{primaryCube:r.queryPlan.primaryCube,joinCubes:r.queryPlan.joinCubes,preAggregationCTEs:r.queryPlan.preAggregationCTEs,warnings:e.warnings.length>0?e.warnings:void 0,multiFactMerge:{mergeStrategy:t.mergeStrategy,sharedDimensions:t.sharedDimensions.map(e=>e.name),groups:n}}}derivePhysicalPlanContextFromFullKeyAggregate(e,t){let n=t.subqueries.map((e,t)=>{if(e.type!==`query`)throw Error(`fullKeyAggregate currently requires query subqueries`);let n=e,r=this.derivePhysicalPlanContext(n),i=this.toSemanticQuery(n);return{alias:`fka_group_${t+1}`,query:i,queryPlan:r,measures:i.measures??[]}});if(n.length===0)throw Error(`fullKeyAggregate requires at least one subquery`);let r=n[0];return{primaryCube:r.queryPlan.primaryCube,joinCubes:r.queryPlan.joinCubes,preAggregationCTEs:r.queryPlan.preAggregationCTEs,warnings:e.warnings.length>0?e.warnings:void 0,multiFactMerge:{mergeStrategy:`fullJoin`,sharedDimensions:t.dimensions.map(e=>e.name),groups:n}}}toSemanticQuery(e){let t=e.orderBy.length>0?Object.fromEntries(e.orderBy.map(e=>[e.name,e.direction])):void 0;return{measures:e.measures.map(e=>e.name),dimensions:e.dimensions.map(e=>e.name),timeDimensions:e.timeDimensions.map(e=>({dimension:e.name,granularity:e.granularity,dateRange:e.dateRange,fillMissingDates:e.fillMissingDates,compareDateRange:e.compareDateRange})),filters:e.filters,order:t,limit:e.limit,offset:e.offset,ungrouped:e.ungrouped}}resolvePhysicalSimpleSource(e){switch(e.type){case`simpleSource`:return e;case`keysDeduplication`:return this.resolvePhysicalSimpleSourceFromKeysDedup(e);default:throw Error(`Current SQL builder does not support logical node '${e.type}' in physical conversion`)}}resolvePhysicalSimpleSourceFromKeysDedup(e){let t=e.measureSource;if(t.type===`simpleSource`)return t;let n=e.keysSource;if(n.type===`simpleSource`)return n;throw Error(`keysDeduplication requires at least one simpleSource child for SQL physical conversion`)}resolveKeysDeduplicationMeta(e){if(e.type!==`keysDeduplication`)return;let t=e,n=new Set;for(let e of t.joinOn){if(!e.alias)continue;let[t,r]=e.alias.split(`.`);t&&r&&n.add(t)}let r=n.size===1?Array.from(n)[0]:``;return r?{multipliedCubeName:r,primaryKeyDimensions:t.joinOn.map(e=>e.alias?.split(`.`)[1]??``).filter(Boolean),regularMeasures:t.regularMeasures}:void 0}build(e,t,n){let r={queryBuilder:this.queryBuilder,cteBuilder:this.cteBuilder,databaseAdapter:this.databaseAdapter},i=Pi(e,t,n,r,(e,t,n)=>this.build(e,t,n));if(i)return i;let a=xi(e,t,n,r);if(a)return a;let o=Qr(e,t,n,r),s=e.primaryCube.sql(n),c=e.joinCubes.length>0?li(e):new Map([[e.primaryCube.name,e.primaryCube]]);return vi(e,t,n,c,s,o,ui(e,n,s,ri(e,t,n,c,r),o,r),r)}};function Wi(e,t){if(!(typeof process>`u`||!process.env?.DC_DEBUG))try{let{sql:n,params:r}=t.toSQL();console.log(`\n[DC_DEBUG] ${e}`),console.log(n),r.length>0&&console.log(`params:`,r),console.log()}catch{}}var Gi=class{dbExecutor;queryBuilder;drizzlePlanBuilder;databaseAdapter;comparisonQueryBuilder;funnelQueryBuilder;flowQueryBuilder;retentionQueryBuilder;logicalPlanBuilder;planOptimiser;modeRouter;resultCache;filterCachePreloader;rlsSetup;constructor(t,n,r,i){if(this.dbExecutor=t,this.databaseAdapter=t.databaseAdapter,!this.databaseAdapter)throw Error(e.O(`server.errors.dbAdapterRequired`));this.queryBuilder=new On(this.databaseAdapter);let a=new Un,o=new Gn(this.queryBuilder);this.drizzlePlanBuilder=new Ui(this.queryBuilder,o,this.databaseAdapter),this.comparisonQueryBuilder=new Vr(this.databaseAdapter),this.funnelQueryBuilder=new Hr(this.databaseAdapter),this.flowQueryBuilder=new Ur(this.databaseAdapter),this.retentionQueryBuilder=new Yr(this.databaseAdapter),this.logicalPlanBuilder=new Xr(a),this.planOptimiser=i??new Zr,this.rlsSetup=r,this.modeRouter=new jr({comparison:this.comparisonQueryBuilder,funnel:this.funnelQueryBuilder,flow:this.flowQueryBuilder,retention:this.retentionQueryBuilder}),this.resultCache=new Br(n),this.filterCachePreloader=new pr(this.queryBuilder)}async withRLSContext(t,n){if(!this.rlsSetup)return n();let r=this.dbExecutor.db;if(!r.transaction)throw Error(e.O(`server.errors.rlsRequiresTransactions`));let i=this.rlsSetup;return r.transaction(async e=>{await i(e,t);let r=Object.create(this.dbExecutor);return r.db=e,this.dbExecutor=r,n()})}async execute(t,n,r,i){try{let e=this.modeRouter.resolveMode(n);this.modeRouter.validateForMode(e,t,n);let a=this.resultCache.generateKey(n,r);return await this.resultCache.lookup(a,i?.skipCache??!1)||await this.withRLSContext(r,()=>this.executeQueryByModeWithCache(e,t,n,r,a))}catch(t){if(t instanceof Error){let n=t;for(;n.cause instanceof Error;)n=n.cause;let r=n.message,i=n;throw i.code&&(r+=` [${i.code}]`),i.detail&&(r+=` Detail: ${i.detail}`),i.hint&&(r+=` Hint: ${i.hint}`),t.message=e.O(`server.errors.queryExecutionFailed`,{message:r}),t}throw Error(e.O(`server.errors.queryExecutionUnknown`),{cause:t})}}buildLogicalPlan(e,t,n){let r=new H,i=this.createQueryContext(n,r,t);return this.filterCachePreloader.preload(t,r,e,i),this.buildRegularQueryArtifacts(e,t,i).optimisedPlan}analyzeQuery(e,t,n){let r=new H,i=this.createQueryContext(n,r,t);return this.filterCachePreloader.preload(t,r,e,i),this.buildRegularQueryArtifacts(e,t,i).analysis}async executeQuery(e,t,n){let r=new Map;return r.set(e.name,e),this.execute(r,t,n)}async executeComparisonQueryWithCache(e,t,n,r){let i=await this.executeComparisonQuery(e,t,n);return await this.resultCache.store(r,i),i}async executeComparisonQuery(e,t,n){let{timeDimension:r,periods:i,granularity:a,periodQueries:o}=this.buildComparisonExecutionPlan(t),s=o.map(async(t,r)=>({result:await this.executeStandardQuery(e,t,n),period:i[r]})),c=await Promise.all(s),l=this.comparisonQueryBuilder.mergeComparisonResults(c,r,a);return l.data=this.comparisonQueryBuilder.sortComparisonResults(l.data,r.dimension),l}buildComparisonExecutionPlan(t){let n=this.comparisonQueryBuilder.getComparisonTimeDimension(t);if(!n||!n.compareDateRange)throw Error(e.O(`server.errors.noCompareDateRange`));let r=this.comparisonQueryBuilder.normalizePeriods(n.compareDateRange);if(r.length<2)throw Error(e.O(`server.errors.compareDateRangeInvalid`));let i=r.map(e=>this.comparisonQueryBuilder.createPeriodQuery(t,e));return{timeDimension:n,granularity:n.granularity||`day`,periods:r,periodQueries:i}}async executeAnalysisQueryWithCache(e,t){let n=await e();return await this.resultCache.store(t,n),n}async executeFunnelQuery(e,t,n){let r=t.funnel,i={db:this.dbExecutor.db,schema:this.dbExecutor.schema,securityContext:n},a=this.funnelQueryBuilder.buildFunnelQuery(r,e,i);Wi(`funnel query`,a);let o=await a,s=this.funnelQueryBuilder.transformResult(o,r),c={measures:{},dimensions:{},segments:{},timeDimensions:{}};return c.funnel={config:r,steps:r.steps.map((e,t)=>({name:e.name,index:t,timeToConvert:e.timeToConvert}))},{data:s,annotation:c}}async executeFlowQuery(e,t,n){let r=t.flow,i={db:this.dbExecutor.db,schema:this.dbExecutor.schema,securityContext:n},a=this.flowQueryBuilder.buildFlowQuery(r,e,i);Wi(`flow query`,a);let o=await a,s=this.flowQueryBuilder.transformResult(o),c={measures:{},dimensions:{},segments:{},timeDimensions:{}};return c.flow={config:r,startingStep:{name:r.startingStep.name},stepsBefore:r.stepsBefore,stepsAfter:r.stepsAfter},{data:[s],annotation:c}}async executeRetentionQuery(e,t,n){let r=t.retention,i={db:this.dbExecutor.db,schema:this.dbExecutor.schema,securityContext:n},a=this.retentionQueryBuilder.buildRetentionQuery(r,e,i);Wi(`retention query`,a);let o=await a,s=this.retentionQueryBuilder.transformResult(o,r),c={measures:{},dimensions:{},segments:{},timeDimensions:{}};return c.retention={config:r,granularity:r.granularity,periods:r.periods,retentionType:r.retentionType,breakdownDimensions:r.breakdownDimensions},{data:s,annotation:c}}async executeStandardQuery(e,t,n,r){let i=new H,a=this.createQueryContext(n,i,t);this.filterCachePreloader.preload(t,i,e,a);let{optimisedPlan:o}=this.buildRegularQueryArtifacts(e,t,a),s=this.drizzlePlanBuilder.derivePhysicalPlanContext(o),c=this.drizzlePlanBuilder.toSemanticQuery(o);this.validateSecurityContext(s,a);let l=this.drizzlePlanBuilder.build(s,c,a);Wi(`query`,l);let u=this.queryBuilder.collectNumericFields(e,t),d={data:fr(await this.dbExecutor.execute(l,u),t,this.databaseAdapter),annotation:Kn(s,t),warnings:o.warnings?.length?o.warnings:void 0};return await this.resultCache.store(r,d),d}createQueryContext(e,t,n){return{db:this.dbExecutor.db,schema:this.dbExecutor.schema,securityContext:e,filterCache:t,ungrouped:n?.ungrouped}}getOptimiserEngineType(){return this.dbExecutor.getEngineType?.()??`postgres`}buildRegularQueryArtifacts(e,t,n){let r=this.logicalPlanBuilder.planWithAnalysis(e,t,n),i=this.planOptimiser.optimise(r.plan,{engineType:this.getOptimiserEngineType()});return{logicalPlan:r.plan,analysis:r.analysis,optimisedPlan:i}}validateSecurityContext(e,t){let n=typeof process<`u`?process.env.NODE_ENV:void 0,r=typeof process<`u`?process.env?.DRIZZLE_CUBE_WARN_SECURITY:void 0;if(n!==`development`&&!r)return;let i=[e.primaryCube];for(let t of e.joinCubes||[])i.push(t.cube);for(let t of e.preAggregationCTEs||[])i.push(t.cube);let a=new Set;for(let e of i)if(!a.has(e.name)){a.add(e.name);try{if(e.public||this.rlsSetup)continue;e.sql(t).where||console.warn(`[drizzle-cube] WARNING: Cube '${e.name}' has no security filtering. If this cube contains public data, add 'public: true' to suppress this warning. Otherwise, ensure sql() returns: { from: table, where: eq(table.orgId, ctx.securityContext.orgId) }. For databases that support Row Level Security (e.g. PostgreSQL), you can configure rlsSetup to run session-level commands (SET LOCAL, SET ROLE) instead.`)}catch{}}}async generateSQL(e,t,n){let r=new Map;return r.set(e.name,e),this.generateUnifiedSQL(r,t,n)}async generateMultiCubeSQL(e,t,n){return this.generateUnifiedSQL(e,t,n)}async dryRunFunnel(e,t,n){return this.dryRunAnalysis(t,n,{has:e=>this.funnelQueryBuilder.hasFunnel(e),invalidConfigKey:`server.errors.invalidFunnelConfig`,getConfig:e=>e.funnel,validate:t=>this.funnelQueryBuilder.validateConfig(t,e),validationFailedKey:`server.errors.funnelValidationFailed`,build:(t,n)=>this.funnelQueryBuilder.buildFunnelQuery(t,e,n)})}async dryRunFlow(e,t,n){return this.dryRunAnalysis(t,n,{has:e=>this.flowQueryBuilder.hasFlow(e),invalidConfigKey:`server.errors.invalidFlowConfig`,getConfig:e=>e.flow,validate:t=>this.flowQueryBuilder.validateConfig(t,e),validationFailedKey:`server.errors.flowValidationFailed`,build:(t,n)=>this.flowQueryBuilder.buildFlowQuery(t,e,n)})}async dryRunRetention(e,t,n){return this.dryRunAnalysis(t,n,{has:e=>this.retentionQueryBuilder.hasRetention(e),invalidConfigKey:`server.errors.invalidRetentionConfig`,getConfig:e=>e.retention,validate:t=>this.retentionQueryBuilder.validateConfig(t,e),validationFailedKey:`server.errors.retentionValidationFailed`,build:(t,n)=>this.retentionQueryBuilder.buildRetentionQuery(t,e,n)})}async dryRunAnalysis(t,n,r){if(!r.has(t))throw Error(e.O(r.invalidConfigKey));let i=r.getConfig(t),a=r.validate(i);if(!a.isValid)throw Error(e.O(r.validationFailedKey,{errors:a.errors.join(`, `)}));let o={db:this.dbExecutor.db,schema:this.dbExecutor.schema,securityContext:n},s=r.build(i,o).toSQL();return{sql:s.sql,params:s.params}}async explainQuery(e,t,n,r){let i=await this.dryRunSQL(e,t,n);return this.withRLSContext(n,()=>this.dbExecutor.explainQuery(i.sql,i.params||[],r))}async dryRunSQL(e,t,n){let r=this.modeRouter.resolveMode(t);return this.modeRouter.validateForMode(r,e,t),this.generateSqlForMode(r,e,t,n)}async generateUnifiedSQL(e,t,n){let r=new H,i=this.createQueryContext(n,r,t);this.filterCachePreloader.preload(t,r,e,i);let{optimisedPlan:a}=this.buildRegularQueryArtifacts(e,t,i),o=this.drizzlePlanBuilder.derivePhysicalPlanContext(a),s=this.drizzlePlanBuilder.toSemanticQuery(a),c=this.drizzlePlanBuilder.build(o,s,i).toSQL();return{sql:c.sql,params:c.params}}async executeQueryByModeWithCache(e,t,n,r,i){return{regular:()=>this.executeStandardQuery(t,n,r,i),comparison:()=>this.executeComparisonQueryWithCache(t,n,r,i),funnel:()=>this.executeAnalysisQueryWithCache(()=>this.executeFunnelQuery(t,n,r),i),flow:()=>this.executeAnalysisQueryWithCache(()=>this.executeFlowQuery(t,n,r),i),retention:()=>this.executeAnalysisQueryWithCache(()=>this.executeRetentionQuery(t,n,r),i)}[kt(e)]()}async generateSqlForMode(e,t,n,r){return{regular:()=>this.generateUnifiedSQL(t,n,r),comparison:()=>this.generateComparisonSQL(t,n,r),funnel:()=>this.dryRunFunnel(t,n,r),flow:()=>this.dryRunFlow(t,n,r),retention:()=>this.dryRunRetention(t,n,r)}[kt(e)]()}async generateComparisonSQL(e,t,n){let r=this.buildComparisonExecutionPlan(t).periodQueries[0];return this.generateUnifiedSQL(e,r,n)}},Ki=[`year`,`quarter`,`month`,`week`,`day`,`hour`];function qi(e,t){return t.includes(`.`)?t:`${e}.${t}`}function Ji(e){let t=Object.keys(e.measures),n=Array(t.length);for(let r=0;r<t.length;r++){let i=t[r],a=e.measures[i],o;a.drillMembers&&a.drillMembers.length>0&&(o=a.drillMembers.map(t=>qi(e.name,t))),n[r]={name:`${e.name}.${i}`,title:a.title||i,shortTitle:a.title||i,type:a.type,format:void 0,description:a.description,synonyms:a.synonyms,drillMembers:o}}return n}function Yi(e){let t=Object.keys(e.dimensions),n=Array(t.length);for(let r=0;r<t.length;r++){let i=t[r],a=e.dimensions[i],o=a.type===`time`?a.granularities||Ki:void 0;n[r]={name:`${e.name}.${i}`,title:a.title||i,shortTitle:a.title||i,type:a.type,format:void 0,description:a.description,synonyms:a.synonyms,granularities:o}}return n}function Xi(e,t,n){let r=[];if(!e.joins)return r;for(let[,i]of Object.entries(e.joins)){let e=I(i.targetCube,t);e&&r.push({targetCube:e.name,relationship:i.relationship,joinFields:i.on.map(e=>({sourceField:n(e.source),targetField:n(e.target)}))})}return r}function Zi(e){let t=[];if(!e.hierarchies)return t;for(let[,n]of Object.entries(e.hierarchies))t.push({name:n.name,title:n.title||n.name,cubeName:e.name,levels:n.levels.map(t=>qi(e.name,t))});return t}var Qi=class{cubes=new Map;metadataCache;cacheConfig;rlsSetup;planOptimiser;db;schema;engineType;constructor(e){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}setDatabaseExecutor(e){this.db=e.db,this.schema=e.schema,this.engineType=e.getEngineType()}getEngineType(){return this.engineType}setDrizzle(e,t,n){this.db=e,this.schema=t,this.engineType=n}hasExecutor(){return!!this.db}createDbExecutor(){if(!this.db)throw Error(e.O(`server.errors.dbNotConfigured`));return Dt(this.db,this.schema,this.engineType)}createQueryExecutor(e=!1){return new Gi(this.createDbExecutor(),e?this.cacheConfig:void 0,this.rlsSetup,this.planOptimiser)}formatSqlResult(t){let n=this.getEngineType()??`postgres`;return{sql:e.S(t.sql,n),params:t.params}}registerCube(e){this.validateCalculatedMeasures(e),new X(this.cubes).populateDependencies(e),this.cubes.set(e.name,e),this.invalidateMetadataCache()}validateCubeReferences(){let t=[];for(let[n,r]of this.cubes)if(r.joins)for(let[i,a]of Object.entries(r.joins))typeof a.targetCube==`string`&&!this.cubes.has(a.targetCube)&&t.push(e.O(`server.errors.cubeRefUnresolved`,{cubeName:n,joinName:i,targetCube:a.targetCube}));if(t.length>0)throw Error(e.O(`server.errors.unresolvedCubeRefs`,{details:t.map(e=>` - ${e}`).join(`
165
165
  `)}))}validateCalculatedMeasures(t){let n=[];for(let[r,i]of Object.entries(t.measures))if(i.type===`calculated`){if(!i.calculatedSql){n.push(e.O(`server.validation.calculatedMeasure.mustHaveCalculatedSql`,{cubeName:t.name,fieldName:r}));continue}let a=Tn(i.calculatedSql);if(!a.isValid){n.push(e.O(`server.validation.calculatedMeasure.invalidSyntax`,{cubeName:t.name,fieldName:r,errors:a.errors.join(`, `)}));continue}let o=new Map(this.cubes);o.set(t.name,t);let s=new X(o);try{s.validateDependencies(t)}catch(e){n.push(e instanceof Error?e.message:String(e))}}if(n.length===0){let r=new Map(this.cubes);r.set(t.name,t);let i=new X(r);i.buildGraph(t);let a=i.detectCycle();a&&n.push(e.O(`server.validation.calculatedMeasure.circularDependency`,{cycle:a.join(` -> `)}))}if(n.length>0)throw Error(e.O(`server.errors.calculatedMeasureValidation`,{cubeName:t.name,details:n.join(`
166
- `)}))}getCube(e){return this.cubes.get(e)}getAllCubes(){return Array.from(this.cubes.values())}getAllCubesMap(){return this.cubes}async execute(e,t,n){return this.createQueryExecutor(!0).execute(this.cubes,e,t,n)}async executeMultiCubeQuery(e,t,n){return this.execute(e,t,n)}async executeQuery(t,n,r){if(!this.cubes.get(t))throw Error(e.O(`server.errors.cubeNotFound`,{cubeName:t}));return this.execute(n,r)}getMetadata(){return this.metadataCache||=Array.from(this.cubes.values()).map(e=>this.generateCubeMetadata(e)),this.metadataCache}getColumnName(e){if(e&&e.name||e&&e.columnType&&e.name)return e.name;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(e._.name)return e._.name;if(e.name)return e.name;if(e.columnName)return e.columnName}return`unknown_column`}generateCubeMetadata(e){let t=Ji(e),n=Yi(e),r=Xi(e,this.cubes,e=>this.getColumnName(e)),i=Zi(e);return{name:e.name,title:e.title||e.name,description:e.description,exampleQuestions:e.exampleQuestions,measures:t,dimensions:n,segments:[],relationships:r.length>0?r:void 0,hierarchies:i.length>0?i:void 0,meta:e.meta}}async generateSQL(t,n,r){let i=this.getCube(t);if(!i)throw Error(e.O(`server.errors.cubeNotFound`,{cubeName:t}));let a=await this.createQueryExecutor().generateSQL(i,n,r);return this.formatSqlResult(a)}async generateMultiCubeSQL(e,t){let n=await this.createQueryExecutor().generateMultiCubeSQL(this.cubes,e,t);return this.formatSqlResult(n)}async dryRun(e,t){let n=await this.createQueryExecutor().dryRunSQL(this.cubes,e,t);return this.formatSqlResult(n)}async dryRunFunnel(e,t){return this.dryRun(e,t)}async dryRunFlow(e,t){return this.dryRun(e,t)}async dryRunRetention(e,t){return this.dryRun(e,t)}async explainQuery(e,t,n){return this.createQueryExecutor().explainQuery(this.cubes,e,t,n)}hasCube(e){return this.cubes.has(e)}unregisterCube(e){return this.removeCube(e)}removeCube(e){let t=this.cubes.delete(e);return t&&this.invalidateMetadataCache(),t}clearCubes(){this.cubes.clear(),this.invalidateMetadataCache()}invalidateMetadataCache(){this.metadataCache=void 0}getCubeNames(){return Array.from(this.cubes.keys())}validateQuery(e){return hr(this.cubes,e)}analyzeQuery(e,t){return this.createQueryExecutor(!0).analyzeQuery(this.cubes,e,t)}},$i=`x-dc-locale`;function ea(e){if(!e)return;let t=(Array.isArray(e)?e[0]:e).split(`,`)[0]?.trim();if(t&&/^[A-Za-z0-9-]{2,35}$/.test(t))return t}function ta(e){return ea(e($i))}function na(e,t){let n=e&&typeof e==`object`?e:{},r=typeof n.locale==`string`?n.locale:void 0,i=t??r??`en-GB`;return r===i?n:{...n,locale:i}}function ra(e){let t=Array.isArray(e)?[...e]:(e??``).split(`,`).map(e=>e.trim()).filter(Boolean);return t.some(e=>e.toLowerCase()===`x-dc-locale`)||t.push(`X-DC-Locale`),t}Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Qi}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ta}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return na}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ra}});
166
+ `)}))}getCube(e){return this.cubes.get(e)}getAllCubes(){return Array.from(this.cubes.values())}getAllCubesMap(){return this.cubes}async execute(e,t,n){return this.createQueryExecutor(!0).execute(this.cubes,e,t,n)}async executeMultiCubeQuery(e,t,n){return this.execute(e,t,n)}async executeQuery(t,n,r){if(!this.cubes.get(t))throw Error(e.O(`server.errors.cubeNotFound`,{cubeName:t}));return this.execute(n,r)}getMetadata(){return this.metadataCache||=Array.from(this.cubes.values()).map(e=>this.generateCubeMetadata(e)),this.metadataCache}getColumnName(e){if(e&&e.name||e&&e.columnType&&e.name)return e.name;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(e._.name)return e._.name;if(e.name)return e.name;if(e.columnName)return e.columnName}return`unknown_column`}generateCubeMetadata(e){let t=Ji(e),n=Yi(e),r=Xi(e,this.cubes,e=>this.getColumnName(e)),i=Zi(e);return{name:e.name,title:e.title||e.name,description:e.description,exampleQuestions:e.exampleQuestions,measures:t,dimensions:n,segments:[],relationships:r.length>0?r:void 0,hierarchies:i.length>0?i:void 0,meta:e.meta}}async generateSQL(t,n,r){let i=this.getCube(t);if(!i)throw Error(e.O(`server.errors.cubeNotFound`,{cubeName:t}));let a=await this.createQueryExecutor().generateSQL(i,n,r);return this.formatSqlResult(a)}async generateMultiCubeSQL(e,t){let n=await this.createQueryExecutor().generateMultiCubeSQL(this.cubes,e,t);return this.formatSqlResult(n)}async dryRun(e,t){let n=await this.createQueryExecutor().dryRunSQL(this.cubes,e,t);return this.formatSqlResult(n)}async dryRunFunnel(e,t){return this.dryRun(e,t)}async dryRunFlow(e,t){return this.dryRun(e,t)}async dryRunRetention(e,t){return this.dryRun(e,t)}async explainQuery(e,t,n){return this.createQueryExecutor().explainQuery(this.cubes,e,t,n)}hasCube(e){return this.cubes.has(e)}unregisterCube(e){return this.removeCube(e)}removeCube(e){let t=this.cubes.delete(e);return t&&this.invalidateMetadataCache(),t}clearCubes(){this.cubes.clear(),this.invalidateMetadataCache()}invalidateMetadataCache(){this.metadataCache=void 0}getCubeNames(){return Array.from(this.cubes.keys())}validateQuery(e){return hr(this.cubes,e)}analyzeQuery(e,t){return this.createQueryExecutor(!0).analyzeQuery(this.cubes,e,t)}};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Qi}});
@@ -8090,25 +8090,6 @@ var ia = class {
8090
8090
  analyzeQuery(e, t) {
8091
8091
  return this.createQueryExecutor(!0).analyzeQuery(this.cubes, e, t);
8092
8092
  }
8093
- }, aa = "x-dc-locale";
8094
- function oa(e) {
8095
- if (!e) return;
8096
- let t = (Array.isArray(e) ? e[0] : e).split(",")[0]?.trim();
8097
- if (t && /^[A-Za-z0-9-]{2,35}$/.test(t)) return t;
8098
- }
8099
- function sa(e) {
8100
- return oa(e(aa));
8101
- }
8102
- function ca(e, t) {
8103
- let n = e && typeof e == "object" ? e : {}, r = typeof n.locale == "string" ? n.locale : void 0, i = t ?? r ?? "en-GB";
8104
- return r === i ? n : {
8105
- ...n,
8106
- locale: i
8107
- };
8108
- }
8109
- function la(e) {
8110
- let t = Array.isArray(e) ? [...e] : (e ?? "").split(",").map((e) => e.trim()).filter(Boolean);
8111
- return t.some((e) => e.toLowerCase() === "x-dc-locale") || t.push("X-DC-Locale"), t;
8112
- }
8093
+ };
8113
8094
  //#endregion
8114
- export { ia as i, sa as n, ca as r, la as t };
8095
+ export { ia as t };
@@ -0,0 +1,27 @@
1
+ import { SemanticLayerCompiler } from '../../server/compiler.js';
2
+ import { MCPOptions } from '../utils.js';
3
+ import { HttpPort, McpHttpPort } from './http-port.js';
4
+ import { BaseSecurityContextThunk } from './security-context.js';
5
+ import { RestHandlers } from './rest-handlers.js';
6
+ export type { BaseSecurityContextThunk } from './security-context.js';
7
+ export interface CubeHttpHandlerOptions {
8
+ /** The semantic layer the handlers validate and execute against. */
9
+ semanticLayer: SemanticLayerCompiler;
10
+ /** Called in the REST `/load` catch-all 500 path with the thrown error (e.g. for logging). */
11
+ onError: (error: unknown) => void;
12
+ /**
13
+ * MCP endpoint config. Resolved once into the MCP POST handler. When omitted,
14
+ * MCP defaults are used; the adapter decides whether to route the MCP path.
15
+ */
16
+ mcp?: MCPOptions;
17
+ }
18
+ export interface CubeHttpHandler extends RestHandlers {
19
+ handleLoadGet<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
20
+ handleLoadPost<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
21
+ handleMcpPost<TRes>(port: McpHttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
22
+ }
23
+ /**
24
+ * Build all HTTP handlers once. Each REST entry point owns its own request
25
+ * extraction, then funnels into a shared validate/execute/format tail.
26
+ */
27
+ export declare function createCubeHttpHandler(options: CubeHttpHandlerOptions): CubeHttpHandler;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Framework port for the HTTP handler core.
3
+ *
4
+ * Captures the minimal transport surface a handler needs, generically over the
5
+ * framework's response type `TRes` so the same core works for adapters that
6
+ * mutate a response object (Express) and adapters that return a `Response`
7
+ * (Hono/Next.js). Implementations are constructed per request by each adapter.
8
+ *
9
+ * This interface is public — third parties implement it to build adapters for
10
+ * other frameworks. Add new capabilities as optional members or via a separate
11
+ * extension interface; a new required member is a breaking change.
12
+ */
13
+ export interface HttpPort<TRes> {
14
+ /** Read a request header by (case-insensitive) name. Synchronous. */
15
+ getHeader(name: string): string | undefined;
16
+ /** Resolve the parsed request body. Async (Express resolves `req.body`; others await `.json()`). */
17
+ getBody(): Promise<unknown>;
18
+ /** Read a raw query-string value by name (used by GET). */
19
+ getQueryParam(name: string): string | undefined;
20
+ /** Send a response with the given status and JSON body; returns the framework's response value. */
21
+ send(status: number, body: unknown): TRes;
22
+ }
23
+ /**
24
+ * Extension of {@link HttpPort} for the MCP POST handler, which needs to set
25
+ * response headers (WWW-Authenticate, MCP-Session-Id), emit a single-event SSE
26
+ * response, and send an empty-body acknowledgement (202 for notifications).
27
+ *
28
+ * Kept separate from the minimal REST port so third-party adapters only
29
+ * implement these when they wire up MCP. New required members on this interface
30
+ * are still a breaking change for MCP-capable adapters.
31
+ */
32
+ export interface McpHttpPort<TRes> extends HttpPort<TRes> {
33
+ /** Set a response header. Must be called before `send`/`sendSse`/`sendEmpty`. */
34
+ setHeader(name: string, value: string): void;
35
+ /** Send a single-event SSE response (status 200): write the pre-serialized body, then end. */
36
+ sendSse(status: number, body: string): TRes;
37
+ /** Send an empty-body response (no JSON), e.g. a 202 notification acknowledgement. */
38
+ sendEmpty(status: number): TRes;
39
+ }
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../core-F1pCQPde.cjs");exports.createCubeHttpHandler=e.t,exports.resolveSecurityContext=e.n,exports.withLocaleFromHeaders=e.r;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Public entry point for the framework-agnostic HTTP handler core.
3
+ *
4
+ * Third parties can build adapters for other frameworks by implementing
5
+ * {@link HttpPort} (REST) / {@link McpHttpPort} (MCP) and driving them with
6
+ * {@link createCubeHttpHandler}.
7
+ */
8
+ export type { HttpPort, McpHttpPort } from './http-port.js';
9
+ export { withLocaleFromHeaders, resolveSecurityContext, type HeaderReader, type BaseSecurityContextThunk } from './security-context.js';
10
+ export { createCubeHttpHandler, type CubeHttpHandler, type CubeHttpHandlerOptions } from './cube-http-handler.js';
11
+ export type { RestHandlers } from './rest-handlers.js';
@@ -0,0 +1,2 @@
1
+ import { n as e, r as t, t as n } from "../core-Bbchr0ui.js";
2
+ export { n as createCubeHttpHandler, e as resolveSecurityContext, t as withLocaleFromHeaders };
@@ -0,0 +1,13 @@
1
+ import { SemanticLayerCompiler } from '../../server/compiler.js';
2
+ import { MCPOptions } from '../utils.js';
3
+ import { McpHttpPort } from './http-port.js';
4
+ import { BaseSecurityContextThunk } from './security-context.js';
5
+ export interface McpPostHandler {
6
+ handleMcpPost<TRes>(port: McpHttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
7
+ }
8
+ /**
9
+ * Build the MCP POST handler once. Resolves the static resources/prompts/
10
+ * instructions and app config from {@link MCPOptions} at setup time, mirroring
11
+ * the per-request plumbing the adapters used to do inline.
12
+ */
13
+ export declare function createMcpPostHandler(semanticLayer: SemanticLayerCompiler, mcp: MCPOptions): McpPostHandler;
@@ -0,0 +1,14 @@
1
+ import { SemanticLayerCompiler } from '../../server/compiler.js';
2
+ import { HttpPort } from './http-port.js';
3
+ import { BaseSecurityContextThunk } from './security-context.js';
4
+ /** REST handlers keyed by endpoint; each closes over the shared semantic layer. */
5
+ export interface RestHandlers {
6
+ handleMetaGet<TRes>(port: HttpPort<TRes>): TRes;
7
+ handleSqlGet<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
8
+ handleSqlPost<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
9
+ handleDryRunGet<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
10
+ handleDryRunPost<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
11
+ handleBatchPost<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
12
+ handleExplainPost<TRes>(port: HttpPort<TRes>, getBaseSecurityContext: BaseSecurityContextThunk): Promise<TRes>;
13
+ }
14
+ export declare function createRestHandlers(semanticLayer: SemanticLayerCompiler): RestHandlers;
@@ -0,0 +1,17 @@
1
+ import { SecurityContext } from '../../server/index.js';
2
+ /** Returns the base (pre-locale) security context for a request. */
3
+ export type BaseSecurityContextThunk = () => SecurityContext | Promise<SecurityContext>;
4
+ /** Reads a request header by (case-insensitive) name. */
5
+ export type HeaderReader = (name: string) => string | undefined;
6
+ /**
7
+ * Merge the request locale (from the `X-DC-Locale` header) into a base security
8
+ * context. Replaces the per-adapter `extractSecurityContextWithLocale` wrappers.
9
+ */
10
+ export declare function withLocaleFromHeaders(base: SecurityContext, readHeader: HeaderReader): SecurityContext;
11
+ /**
12
+ * Resolve the base security context and merge the request locale in one step —
13
+ * the standard preamble for every authenticated core handler.
14
+ */
15
+ export declare function resolveSecurityContext(getBaseSecurityContext: BaseSecurityContextThunk, readHeader: HeaderReader): Promise<SecurityContext>;
16
+ /** Strip CR/LF from a thrown value for single-line logging (log-injection guard). */
17
+ export declare function sanitizeForLog(error: unknown): string;