drizzle-cube 0.5.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
- package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
- package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
- package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
- package/dist/adapters/{utils.d.ts → adapters/utils.d.ts} +6 -81
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +50 -50
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +78 -78
- package/dist/adapters/google-BOnRIN1w.cjs +2 -0
- package/dist/{server/google-CFYljAOF.js → adapters/google-CvKM9yVM.js} +83 -71
- package/dist/adapters/{handler-Dz1F4iwf.js → handler-CfgE0JSL.js} +515 -578
- package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/hono/index.js +208 -178
- package/dist/adapters/locale-DDvZDFVn.js +8114 -0
- package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +49 -38
- package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
- package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +190 -197
- package/dist/{server/openai-y7GhJNdn.js → adapters/openai-B5jEiqiB.js} +776 -719
- package/dist/adapters/openai-D0musiYP.cjs +17 -0
- package/dist/{server/openai-DiVskd89.js → adapters/openai-cDlFSTk6.js} +61 -59
- package/dist/adapters/openai-vXvLni8v.cjs +1 -0
- package/dist/adapters/{utils-DosuoabY.js → utils-BPWZsX7k.js} +1285 -1220
- package/dist/adapters/utils-_whV4fXL.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +2 -2
- package/dist/client/charts/ChartLoader.d.ts +3 -17
- package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
- package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
- package/dist/client/charts.js +14 -13
- package/dist/client/chunks/{DashboardEditModal-6KRE36mm.js → DashboardEditModal-okVfH8ZK.js} +5446 -4486
- package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-CCpu0C-s.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
- package/dist/client/chunks/{RetentionCombinedChart-CCpu0C-s.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-B24PiIfr.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
- package/dist/client/chunks/{RetentionHeatmap-B24PiIfr.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
- package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
- package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-x576-O5p.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
- package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-CiHrLH6Y.js → chart-activity-grid-DX0SJbxs.js} +642 -494
- package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
- package/dist/client/chunks/chart-area-of01_62R.js +775 -0
- package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
- package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
- package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-Bu9hy-17.js → chart-box-plot-kkBixZ27.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-Bu9hy-17.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
- package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
- package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
- package/dist/client/chunks/{chart-candlestick-Dau5AF4E.js → chart-candlestick-DZp19Tzh.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-Dau5AF4E.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
- package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
- package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
- package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
- package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
- package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
- package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
- package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
- package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
- package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
- package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
- package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
- package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
- package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
- package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
- package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
- package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
- package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
- package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
- package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
- package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
- package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
- package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-Cm5jrpaw.js → chart-data-table-CKauQXme.js} +1046 -1121
- package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-Eke8IPtG.js → chart-funnel-CToKSBaL.js} +184 -222
- package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
- package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
- package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
- package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
- package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
- package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
- package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
- package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
- package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
- package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
- package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
- package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-BPW-EAm9.js → chart-markdown-CV75S_zL.js} +1359 -1240
- package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-BI3kADCp.js → chart-measure-profile-Ket8fJyf.js} +7 -7
- package/dist/client/chunks/{chart-measure-profile-BI3kADCp.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
- package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
- package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
- package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
- package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
- package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
- package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
- package/dist/client/chunks/{chart-sankey-CFzjGvZX.js → chart-sankey-DjrvKw6K.js} +36 -39
- package/dist/client/chunks/{chart-sankey-CFzjGvZX.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
- package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
- package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
- package/dist/client/chunks/{chart-sunburst-91Q2tzaB.js → chart-sunburst-leGpuDj7.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-91Q2tzaB.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
- package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
- package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
- package/dist/client/chunks/{chart-waterfall-DcHbbPaG.js → chart-waterfall-DyvQReN5.js} +7 -7
- package/dist/client/chunks/{chart-waterfall-DcHbbPaG.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
- package/dist/client/chunks/{charts-core-CrBDYN6N.js → charts-core-DaXSt1Dd.js} +2 -2
- package/dist/client/chunks/{charts-core-CrBDYN6N.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
- package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
- package/dist/client/chunks/{core-DsAWNRRv.js → core-D7vPfUIe.js} +2 -2
- package/dist/client/chunks/{core-DsAWNRRv.js.map → core-D7vPfUIe.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-oyr2wENY.js → nl-NL-2zTAWTej.js} +8 -2
- package/dist/client/chunks/{nl-NL-oyr2wENY.js.map → nl-NL-2zTAWTej.js.map} +1 -1
- package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
- package/dist/client/chunks/{schema-visualization-BszcrmZX.js → schema-visualization-Cb_E9_Gd.js} +12 -12
- package/dist/client/chunks/{schema-visualization-BszcrmZX.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-B5wCDJSj.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
- package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-CCeCYzDm.js → useExplainAI-evnZkjCY.js} +14 -14
- package/dist/client/chunks/{useExplainAI-CCeCYzDm.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
- package/dist/client/chunks/{utils-kqa-JIMg.js → utils-3P6z1vz5.js} +3 -3
- package/dist/client/chunks/{utils-kqa-JIMg.js.map → utils-3P6z1vz5.js.map} +1 -1
- package/dist/client/chunks/{vendor-0hJNlZXQ.js → vendor-DSpR0IW6.js} +43 -43
- package/dist/client/chunks/{vendor-0hJNlZXQ.js.map → vendor-DSpR0IW6.js.map} +1 -1
- package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
- package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
- package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
- package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
- package/dist/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
- package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
- package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
- package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
- package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +2 -1
- package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
- package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -1
- package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
- package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
- package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
- package/dist/client/components/AnalysisBuilder/LimitSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
- package/dist/client/components/AnalysisBuilder/SectionHeading.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
- package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
- package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
- package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
- package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
- package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
- package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
- package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
- package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
- package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
- package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
- package/dist/client/components/AnalyticsPage.d.ts +1 -1
- package/dist/client/components/ChartErrorBoundary.d.ts +1 -1
- package/dist/client/components/ChartTypeSelector.d.ts +1 -1
- package/dist/client/components/ColorPaletteSelector.d.ts +1 -1
- package/dist/client/components/DashboardEditModal.d.ts +2 -1
- package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
- package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +1 -1
- package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
- package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +1 -1
- package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
- package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
- package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
- package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
- package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
- package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
- package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
- package/dist/client/components/DashboardGrid.d.ts +1 -1
- package/dist/client/components/DashboardPortletCard.d.ts +2 -57
- package/dist/client/components/DashboardThumbnailPlaceholder.d.ts +1 -1
- package/dist/client/components/DataBrowser/DataBrowserSidebar.d.ts +1 -1
- package/dist/client/components/DataBrowser/DataBrowserToolbar.d.ts +1 -1
- package/dist/client/components/DataBrowser/index.d.ts +1 -1
- package/dist/client/components/DataHistogram.d.ts +1 -1
- package/dist/client/components/DebugModal.d.ts +1 -1
- package/dist/client/components/DrillBreadcrumb.d.ts +2 -1
- package/dist/client/components/LoadingIndicator.d.ts +1 -1
- package/dist/client/components/MobileStackedLayout.d.ts +1 -1
- package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
- package/dist/client/components/PortletContainer.d.ts +1 -1
- package/dist/client/components/PortletFilterConfigModal.d.ts +6 -4
- package/dist/client/components/RowManagedLayout.d.ts +1 -1
- package/dist/client/components/ScaledGridWrapper.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/index.d.ts +1 -1
- package/dist/client/components/TextPortletModal.d.ts +1 -1
- package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
- package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
- package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
- package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
- package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
- package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
- package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
- package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
- package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
- package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
- package/dist/client/components/charts/AxisFormatControls.d.ts +5 -3
- package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
- package/dist/client/components/charts/BarSeries.d.ts +29 -0
- package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
- package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
- package/dist/client/components/charts/ChartContainer.d.ts +1 -1
- package/dist/client/components/charts/ChartLegend.d.ts +1 -1
- package/dist/client/components/charts/ChartStates.d.ts +38 -0
- package/dist/client/components/charts/ChartTooltip.d.ts +1 -1
- package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
- package/dist/client/components/charts/FunnelViews.d.ts +16 -0
- package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
- package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
- package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
- package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
- package/dist/client/components/charts/KpiStates.d.ts +19 -0
- package/dist/client/components/charts/MissingDependencyFallback.d.ts +1 -1
- package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
- package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
- package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
- package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
- package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
- package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
- package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
- package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
- package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
- package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
- package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
- package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
- package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
- package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
- package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
- package/dist/client/components/dashboard/DashboardContext.d.ts +2 -2
- package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
- package/dist/client/components/dashboard/DashboardFilterBar.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardGridSurface.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardModals.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardToolbar.d.ts +1 -1
- package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
- package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
- package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
- package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
- package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
- package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
- package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
- package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
- package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
- package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
- package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
- package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
- package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
- package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
- package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
- package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
- package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
- package/dist/client/components/shared/utils.d.ts +4 -43
- package/dist/client/components.js +3 -3
- package/dist/client/hooks/agentChatStream.d.ts +39 -0
- package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
- package/dist/client/hooks/drillNavigation.d.ts +25 -0
- package/dist/client/hooks/useDashboardHook.d.ts +2 -2
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.d.ts +1 -1
- package/dist/client/icons.js +2 -2
- package/dist/client/index.js +816 -669
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers/CubeApiProvider.d.ts +1 -1
- package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
- package/dist/client/providers/CubeMetaProvider.d.ts +1 -1
- package/dist/client/providers/CubeProvider.d.ts +1 -1
- package/dist/client/providers/I18nProvider.d.ts +1 -1
- package/dist/client/providers.js +3 -3
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
- package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
- package/dist/client/shared/queryTransforms.d.ts +20 -0
- package/dist/client/shared/utils.d.ts +2 -4
- package/dist/client/stores/analysisBuilderStore.d.ts +1 -1
- package/dist/client/stores/dashboardStore.d.ts +1 -1
- package/dist/client/stores/dataBrowserStore.d.ts +1 -1
- package/dist/client/stores/notebookStore.d.ts +1 -1
- package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
- package/dist/client/styles.css +1 -1
- package/dist/client/types/drill.d.ts +1 -1
- package/dist/client/types.d.ts +7 -2
- package/dist/client/utils/axisValueFormatting.d.ts +32 -0
- package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
- package/dist/client/utils/filterUtils.d.ts +33 -5
- package/dist/client/utils/joinReachability.d.ts +27 -0
- package/dist/client/utils/timeValueFormatting.d.ts +32 -0
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +55 -55
- package/dist/server/google-BOnRIN1w.cjs +2 -0
- package/dist/{adapters/google-CFYljAOF.js → server/google-CvKM9yVM.js} +83 -71
- package/dist/server/index.cjs +179 -211
- package/dist/server/index.d.ts +2 -5050
- package/dist/server/index.js +6360 -6462
- package/dist/{adapters/openai-y7GhJNdn.js → server/openai-B5jEiqiB.js} +776 -719
- package/dist/server/openai-D0musiYP.cjs +17 -0
- package/dist/{adapters/openai-DiVskd89.js → server/openai-cDlFSTk6.js} +61 -59
- package/dist/server/openai-vXvLni8v.cjs +1 -0
- package/dist/server/server/adapters/base-adapter.d.ts +332 -0
- package/dist/server/server/adapters/databend-adapter.d.ts +63 -0
- package/dist/server/server/adapters/duckdb-adapter.d.ts +68 -0
- package/dist/server/server/adapters/mysql-adapter.d.ts +65 -0
- package/dist/server/server/adapters/postgres-adapter.d.ts +55 -0
- package/dist/server/server/adapters/singlestore-adapter.d.ts +4 -0
- package/dist/server/server/adapters/snowflake-adapter.d.ts +53 -0
- package/dist/server/server/adapters/sqlite-adapter.d.ts +120 -0
- package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
- package/dist/server/server/agent/chart-validation.d.ts +22 -0
- package/dist/server/server/agent/handler-steps.d.ts +37 -0
- package/dist/server/server/agent/handler.d.ts +25 -0
- package/dist/server/server/agent/index.d.ts +11 -0
- package/dist/server/server/agent/providers/anthropic.d.ts +24 -0
- package/dist/server/server/agent/providers/factory.d.ts +12 -0
- package/dist/server/server/agent/providers/google.d.ts +23 -0
- package/dist/server/server/agent/providers/index.d.ts +6 -0
- package/dist/server/server/agent/providers/openai.d.ts +26 -0
- package/dist/server/server/agent/providers/types.d.ts +95 -0
- package/dist/server/server/agent/system-prompt.d.ts +5 -0
- package/dist/server/server/agent/tools.d.ts +28 -0
- package/dist/server/server/agent/types.d.ts +192 -0
- package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
- package/dist/server/server/ai/discovery.d.ts +66 -0
- package/dist/server/server/ai/index.d.ts +10 -0
- package/dist/server/server/ai/mcp-prompts.d.ts +83 -0
- package/dist/server/server/ai/query-schema.d.ts +258 -0
- package/dist/server/server/ai/schemas.d.ts +63 -0
- package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
- package/dist/server/server/ai/suggestion.d.ts +16 -0
- package/dist/server/server/ai/validation-helpers.d.ts +21 -0
- package/dist/server/server/ai/validation.d.ts +31 -0
- package/dist/server/server/builders/analysis-utils.d.ts +106 -0
- package/dist/server/server/builders/comparison-query-builder.d.ts +70 -0
- package/dist/server/server/builders/cte-builder.d.ts +108 -0
- package/dist/server/server/builders/date-time-builder.d.ts +34 -0
- package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
- package/dist/server/server/builders/filter-builder.d.ts +25 -0
- package/dist/server/server/builders/filter-operators.d.ts +23 -0
- package/dist/server/server/builders/flow-query-builder.d.ts +136 -0
- package/dist/server/server/builders/funnel-query-builder.d.ts +145 -0
- package/dist/server/server/builders/group-by-builder.d.ts +38 -0
- package/dist/server/server/builders/index.d.ts +13 -0
- package/dist/server/server/builders/measure-builder.d.ts +185 -0
- package/dist/server/server/builders/retention-query-builder.d.ts +98 -0
- package/dist/server/server/cache-providers/index.d.ts +5 -0
- package/dist/server/server/cache-providers/memory.d.ts +105 -0
- package/dist/server/server/cache-utils.d.ts +85 -0
- package/dist/server/server/compiler-metadata.d.ts +11 -0
- package/dist/server/server/compiler.d.ts +212 -0
- package/dist/server/server/cube-utils.d.ts +158 -0
- package/dist/server/server/database-utils.d.ts +18 -0
- package/dist/server/server/execution/annotation-builder.d.ts +12 -0
- package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
- package/dist/server/server/execution/mode-router.d.ts +25 -0
- package/dist/server/server/execution/query-result-cache.d.ts +21 -0
- package/dist/server/server/execution/result-post-processor.d.ts +10 -0
- package/dist/server/server/executor.d.ts +186 -0
- package/dist/server/server/executors/base-executor.d.ts +16 -0
- package/dist/server/server/executors/databend-executor.d.ts +33 -0
- package/dist/server/server/executors/duckdb-executor.d.ts +33 -0
- package/dist/server/server/executors/explain-utils.d.ts +28 -0
- package/dist/server/server/executors/index.d.ts +21 -0
- package/dist/server/server/executors/mysql-executor.d.ts +27 -0
- package/dist/server/server/executors/postgres-executor.d.ts +27 -0
- package/dist/server/server/executors/singlestore-executor.d.ts +9 -0
- package/dist/server/server/executors/snowflake-executor.d.ts +33 -0
- package/dist/server/server/executors/sqlite-executor.d.ts +28 -0
- package/dist/server/server/explain/databend-parser.d.ts +16 -0
- package/dist/server/server/explain/duckdb-parser.d.ts +28 -0
- package/dist/server/server/explain/explain-tree.d.ts +20 -0
- package/dist/server/server/explain/index.d.ts +9 -0
- package/dist/server/server/explain/mysql-parser.d.ts +38 -0
- package/dist/server/server/explain/postgres-parser.d.ts +18 -0
- package/dist/server/server/explain/snowflake-parser.d.ts +17 -0
- package/dist/server/server/explain/sqlite-parser.d.ts +23 -0
- package/dist/server/server/filter-cache.d.ts +73 -0
- package/dist/server/server/gap-filler.d.ts +48 -0
- package/dist/server/server/index.d.ts +38 -0
- package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
- package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
- package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
- package/dist/server/server/logical-plan/index.d.ts +19 -0
- package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
- package/dist/server/server/logical-plan/logical-plan-builder.d.ts +58 -0
- package/dist/server/server/logical-plan/logical-planner.d.ts +39 -0
- package/dist/server/server/logical-plan/optimiser.d.ts +34 -0
- package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
- package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
- package/dist/server/server/logical-plan/types.d.ts +199 -0
- package/dist/server/server/measure-classification.d.ts +40 -0
- package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
- package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +118 -0
- package/dist/server/server/physical-plan/index.d.ts +2 -0
- package/dist/server/server/physical-plan/processors/cte-processor.d.ts +6 -0
- package/dist/server/server/physical-plan/processors/index.d.ts +8 -0
- package/dist/server/server/physical-plan/processors/joins-processor.d.ts +6 -0
- package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
- package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
- package/dist/server/server/physical-plan/processors/predicates-processor.d.ts +6 -0
- package/dist/server/server/physical-plan/processors/selection-processor.d.ts +6 -0
- package/dist/server/server/physical-plan/processors/shared.d.ts +38 -0
- package/dist/server/server/physical-plan/processors/window-processor.d.ts +6 -0
- package/dist/server/server/prompts/explain-analysis-prompt.d.ts +47 -0
- package/dist/server/server/prompts/index.d.ts +27 -0
- package/dist/server/server/prompts/single-step-prompt.d.ts +31 -0
- package/dist/server/server/prompts/step0-validation-prompt.d.ts +39 -0
- package/dist/server/server/prompts/step1-shape-prompt.d.ts +29 -0
- package/dist/server/server/prompts/step2-complete-prompt.d.ts +19 -0
- package/dist/server/server/prompts/types.d.ts +37 -0
- package/dist/server/server/query-handlers.d.ts +79 -0
- package/dist/server/server/query-modes.d.ts +28 -0
- package/dist/server/server/query-validator.d.ts +9 -0
- package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +98 -0
- package/dist/server/server/resolvers/index.d.ts +6 -0
- package/dist/server/server/resolvers/join-path-resolver.d.ts +158 -0
- package/dist/server/server/sql-format.d.ts +11 -0
- package/dist/server/server/template-substitution.d.ts +57 -0
- package/dist/server/server/types/analysis.d.ts +189 -0
- package/dist/server/server/types/cache.d.ts +132 -0
- package/dist/server/server/types/core.d.ts +164 -0
- package/dist/server/server/types/cube.d.ts +544 -0
- package/dist/server/server/types/executor.d.ts +156 -0
- package/dist/server/server/types/flow.d.ts +144 -0
- package/dist/server/server/types/funnel.d.ts +118 -0
- package/dist/server/server/types/index.d.ts +11 -0
- package/dist/server/server/types/metadata.d.ts +113 -0
- package/dist/server/server/types/query.d.ts +153 -0
- package/dist/server/server/types/retention.d.ts +141 -0
- package/dist/server/server/types/utils.d.ts +11 -0
- package/dist/server/server/types/validation.d.ts +14 -0
- package/package.json +15 -8
- package/dist/adapters/google-DUlXeeDA.cjs +0 -2
- package/dist/adapters/handler-C63rJUUK.cjs +0 -25
- package/dist/adapters/locale-CTNwPVZI.cjs +0 -198
- package/dist/adapters/locale-gU_d1Wja.js +0 -8249
- package/dist/adapters/mcp-transport-C4J4SAcn.cjs +0 -40
- package/dist/adapters/mcp-transport-CVUiifEc.js +0 -579
- package/dist/adapters/openai-6wrBvAnv.cjs +0 -1
- package/dist/adapters/openai-BDwb2u7y.cjs +0 -17
- package/dist/adapters/utils-CkEkU8Bo.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-6KRE36mm.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-x576-O5p.js.map +0 -1
- package/dist/client/chunks/analysis-builder-zd48FVJO.js +0 -5367
- package/dist/client/chunks/analysis-builder-zd48FVJO.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-CiHrLH6Y.js.map +0 -1
- package/dist/client/chunks/chart-area-CXFK-Grv.js +0 -450
- package/dist/client/chunks/chart-area-CXFK-Grv.js.map +0 -1
- package/dist/client/chunks/chart-bar-DKXfLoGG.js +0 -271
- package/dist/client/chunks/chart-bar-DKXfLoGG.js.map +0 -1
- package/dist/client/chunks/chart-bubble-DGkTQlxM.js +0 -273
- package/dist/client/chunks/chart-bubble-DGkTQlxM.js.map +0 -1
- package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
- package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
- package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
- package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
- package/dist/client/chunks/chart-data-table-Cm5jrpaw.js.map +0 -1
- package/dist/client/chunks/chart-funnel-Eke8IPtG.js.map +0 -1
- package/dist/client/chunks/chart-gauge-DeRZNsyl.js +0 -424
- package/dist/client/chunks/chart-gauge-DeRZNsyl.js.map +0 -1
- package/dist/client/chunks/chart-heat-map-C86thSJ4.js +0 -231
- package/dist/client/chunks/chart-heat-map-C86thSJ4.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-CxOYD2f1.js +0 -343
- package/dist/client/chunks/chart-kpi-delta-CxOYD2f1.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-C6gWz-x4.js +0 -322
- package/dist/client/chunks/chart-kpi-number-C6gWz-x4.js.map +0 -1
- package/dist/client/chunks/chart-kpi-text-dDONrhS-.js +0 -149
- package/dist/client/chunks/chart-kpi-text-dDONrhS-.js.map +0 -1
- package/dist/client/chunks/chart-line-r4iWevKZ.js +0 -433
- package/dist/client/chunks/chart-line-r4iWevKZ.js.map +0 -1
- package/dist/client/chunks/chart-markdown-BPW-EAm9.js.map +0 -1
- package/dist/client/chunks/chart-pie-yqH2YVEI.js +0 -172
- package/dist/client/chunks/chart-pie-yqH2YVEI.js.map +0 -1
- package/dist/client/chunks/chart-radar-B-_3v-rE.js +0 -154
- package/dist/client/chunks/chart-radar-B-_3v-rE.js.map +0 -1
- package/dist/client/chunks/chart-radial-bar-C0EgzfAF.js +0 -148
- package/dist/client/chunks/chart-radial-bar-C0EgzfAF.js.map +0 -1
- package/dist/client/chunks/chart-scatter-DZPirzwX.js +0 -255
- package/dist/client/chunks/chart-scatter-DZPirzwX.js.map +0 -1
- package/dist/client/chunks/chart-tree-map-Bi4axCvh.js +0 -298
- package/dist/client/chunks/chart-tree-map-Bi4axCvh.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-B5wCDJSj.js.map +0 -1
- package/dist/server/google-DUlXeeDA.cjs +0 -2
- package/dist/server/openai-6wrBvAnv.cjs +0 -1
- package/dist/server/openai-BDwb2u7y.cjs +0 -17
- /package/dist/adapters/{express → adapters/express}/index.d.ts +0 -0
- /package/dist/adapters/{fastify → adapters/fastify}/index.d.ts +0 -0
- /package/dist/adapters/{hono → adapters/hono}/index.d.ts +0 -0
- /package/dist/adapters/{locale.d.ts → adapters/locale.d.ts} +0 -0
- /package/dist/adapters/{mcp-tools.d.ts → adapters/mcp-tools.d.ts} +0 -0
- /package/dist/adapters/{mcp-transport.d.ts → adapters/mcp-transport.d.ts} +0 -0
- /package/dist/adapters/{nextjs → adapters/nextjs}/index.d.ts +0 -0
- /package/dist/adapters/{types.d.ts → adapters/types.d.ts} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Cube, MeasureMetadata, DimensionMetadata, CubeRelationshipMetadata, HierarchyMetadata, TimeGranularity } from './types';
|
|
2
|
+
/** Default time granularities used when a time dimension omits `granularities`. */
|
|
3
|
+
export declare const DEFAULT_TIME_GRANULARITIES: TimeGranularity[];
|
|
4
|
+
/** Build measure metadata, normalizing drillMembers to fully-qualified names. */
|
|
5
|
+
export declare function buildMeasureMetadata(cube: Cube): MeasureMetadata[];
|
|
6
|
+
/** Build dimension metadata, including granularities for time dimensions. */
|
|
7
|
+
export declare function buildDimensionMetadata(cube: Cube): DimensionMetadata[];
|
|
8
|
+
/** Build relationship metadata from a cube's joins, resolving target cubes. */
|
|
9
|
+
export declare function buildRelationshipMetadata(cube: Cube, cubes: Map<string, Cube>, getColumnName: (column: any) => string): CubeRelationshipMetadata[];
|
|
10
|
+
/** Build hierarchy metadata, qualifying level names to full member names. */
|
|
11
|
+
export declare function buildHierarchyMetadata(cube: Cube): HierarchyMetadata[];
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { SemanticQuery, QueryResult, SecurityContext, DatabaseExecutor, CubeMetadata, Cube, QueryAnalysis, CacheConfig, ExplainOptions, ExplainResult, ExecutionOptions, RLSSetupFn } from './types';
|
|
2
|
+
import { PlanOptimiser } from './logical-plan';
|
|
3
|
+
export { validateQueryAgainstCubes } from './query-validator';
|
|
4
|
+
export declare class SemanticLayerCompiler {
|
|
5
|
+
private cubes;
|
|
6
|
+
private metadataCache?;
|
|
7
|
+
private cacheConfig?;
|
|
8
|
+
private rlsSetup?;
|
|
9
|
+
private planOptimiser?;
|
|
10
|
+
private db?;
|
|
11
|
+
private schema?;
|
|
12
|
+
private engineType?;
|
|
13
|
+
constructor(options?: {
|
|
14
|
+
drizzle?: DatabaseExecutor['db'];
|
|
15
|
+
schema?: any;
|
|
16
|
+
databaseExecutor?: DatabaseExecutor;
|
|
17
|
+
engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
|
|
18
|
+
/** Cache configuration for query result caching */
|
|
19
|
+
cache?: CacheConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Row-Level Security setup function.
|
|
22
|
+
* When provided, every query execution opens a transaction, calls this function
|
|
23
|
+
* to configure RLS (e.g., set JWT claims and switch roles), then runs the query.
|
|
24
|
+
* Dry-run/SQL generation is NOT wrapped in a transaction.
|
|
25
|
+
*/
|
|
26
|
+
rlsSetup?: RLSSetupFn;
|
|
27
|
+
/**
|
|
28
|
+
* Optional logical-plan optimiser injected into every QueryExecutor.
|
|
29
|
+
* Defaults to a no-op IdentityOptimiser when omitted.
|
|
30
|
+
*/
|
|
31
|
+
planOptimiser?: PlanOptimiser;
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Set or update the database connection
|
|
35
|
+
*/
|
|
36
|
+
setDatabaseExecutor(executor: DatabaseExecutor): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get the database engine type for SQL formatting
|
|
39
|
+
*/
|
|
40
|
+
getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake' | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Set Drizzle instance and schema directly
|
|
43
|
+
*/
|
|
44
|
+
setDrizzle(db: DatabaseExecutor['db'], schema?: any, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake'): void;
|
|
45
|
+
/**
|
|
46
|
+
* Check if database executor is configured
|
|
47
|
+
*/
|
|
48
|
+
hasExecutor(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Create a fresh DatabaseExecutor from stored ingredients, or throw.
|
|
51
|
+
*/
|
|
52
|
+
private createDbExecutor;
|
|
53
|
+
/**
|
|
54
|
+
* Create a query executor with optional cache integration.
|
|
55
|
+
* Each call creates a fresh DatabaseExecutor so concurrent requests
|
|
56
|
+
* never share mutable state.
|
|
57
|
+
*/
|
|
58
|
+
private createQueryExecutor;
|
|
59
|
+
/**
|
|
60
|
+
* Format SQL result using current engine dialect.
|
|
61
|
+
*/
|
|
62
|
+
private formatSqlResult;
|
|
63
|
+
/**
|
|
64
|
+
* Register a simplified cube with dynamic query building
|
|
65
|
+
* Validates calculated measures during registration
|
|
66
|
+
*/
|
|
67
|
+
registerCube(cube: Cube): void;
|
|
68
|
+
/**
|
|
69
|
+
* Validate that all string-based cube references in joins resolve to registered cubes.
|
|
70
|
+
* Call after all cubes are registered for strict startup validation.
|
|
71
|
+
* Throws an error listing all unresolved references.
|
|
72
|
+
*/
|
|
73
|
+
validateCubeReferences(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Validate calculated measures in a cube
|
|
76
|
+
* Checks template syntax, dependency existence, and circular dependencies
|
|
77
|
+
*/
|
|
78
|
+
private validateCalculatedMeasures;
|
|
79
|
+
/**
|
|
80
|
+
* Get a cube by name
|
|
81
|
+
*/
|
|
82
|
+
getCube(name: string): Cube | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Get all registered cubes
|
|
85
|
+
*/
|
|
86
|
+
getAllCubes(): Cube[];
|
|
87
|
+
/**
|
|
88
|
+
* Get all cubes as a Map for multi-cube queries
|
|
89
|
+
*/
|
|
90
|
+
getAllCubesMap(): Map<string, Cube>;
|
|
91
|
+
/**
|
|
92
|
+
* Unified query execution method that handles both single and multi-cube queries
|
|
93
|
+
* @param options.skipCache - Skip cache lookup (but still cache the fresh result)
|
|
94
|
+
*/
|
|
95
|
+
execute(query: SemanticQuery, securityContext: SecurityContext, options?: ExecutionOptions): Promise<QueryResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Execute a multi-cube query
|
|
98
|
+
* @param options.skipCache - Skip cache lookup (but still cache the fresh result)
|
|
99
|
+
*/
|
|
100
|
+
executeMultiCubeQuery(query: SemanticQuery, securityContext: SecurityContext, options?: ExecutionOptions): Promise<QueryResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Execute a single cube query
|
|
103
|
+
*/
|
|
104
|
+
executeQuery(cubeName: string, query: SemanticQuery, securityContext: SecurityContext): Promise<QueryResult>;
|
|
105
|
+
/**
|
|
106
|
+
* Get metadata for all cubes (for API responses)
|
|
107
|
+
* Uses caching to improve performance for repeated requests
|
|
108
|
+
* Cache is invalidated when cubes are modified (registerCube, removeCube, clearCubes)
|
|
109
|
+
*/
|
|
110
|
+
getMetadata(): CubeMetadata[];
|
|
111
|
+
/**
|
|
112
|
+
* Extract column name from Drizzle column reference
|
|
113
|
+
* Handles different column types and extracts the actual column name
|
|
114
|
+
*/
|
|
115
|
+
private getColumnName;
|
|
116
|
+
/**
|
|
117
|
+
* Generate cube metadata for API responses from cubes
|
|
118
|
+
* Includes drill-down support: drillMembers on measures, granularities on time dimensions, hierarchies
|
|
119
|
+
*/
|
|
120
|
+
private generateCubeMetadata;
|
|
121
|
+
/**
|
|
122
|
+
* Get SQL for a query without executing it (debugging)
|
|
123
|
+
*/
|
|
124
|
+
generateSQL(cubeName: string, query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
125
|
+
sql: string;
|
|
126
|
+
params?: any[];
|
|
127
|
+
}>;
|
|
128
|
+
/**
|
|
129
|
+
* Get SQL for a multi-cube query without executing it (debugging)
|
|
130
|
+
*/
|
|
131
|
+
generateMultiCubeSQL(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
132
|
+
sql: string;
|
|
133
|
+
params?: any[];
|
|
134
|
+
}>;
|
|
135
|
+
/**
|
|
136
|
+
* Canonical dry-run SQL generation entrypoint for all query modes.
|
|
137
|
+
*/
|
|
138
|
+
dryRun(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
139
|
+
sql: string;
|
|
140
|
+
params?: any[];
|
|
141
|
+
}>;
|
|
142
|
+
/**
|
|
143
|
+
* Get SQL for a funnel query without executing it (debugging)
|
|
144
|
+
* Returns the actual CTE-based SQL that would be executed for funnel queries
|
|
145
|
+
*/
|
|
146
|
+
dryRunFunnel(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
147
|
+
sql: string;
|
|
148
|
+
params?: any[];
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* Get SQL for a flow query without executing it (debugging)
|
|
152
|
+
* Returns the actual CTE-based SQL that would be executed for flow queries
|
|
153
|
+
*/
|
|
154
|
+
dryRunFlow(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
155
|
+
sql: string;
|
|
156
|
+
params?: any[];
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Generate SQL for a retention query without execution (dry-run)
|
|
160
|
+
* Returns the CTE-based SQL that would be executed for retention analysis
|
|
161
|
+
*/
|
|
162
|
+
dryRunRetention(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
163
|
+
sql: string;
|
|
164
|
+
params?: any[];
|
|
165
|
+
}>;
|
|
166
|
+
/**
|
|
167
|
+
* Execute EXPLAIN on a query to get the execution plan
|
|
168
|
+
* Uses the same secure path as execute/dryRun to generate SQL,
|
|
169
|
+
* then runs database EXPLAIN on it.
|
|
170
|
+
*/
|
|
171
|
+
explainQuery(query: SemanticQuery, securityContext: SecurityContext, options?: ExplainOptions): Promise<ExplainResult>;
|
|
172
|
+
/**
|
|
173
|
+
* Check if a cube exists
|
|
174
|
+
*/
|
|
175
|
+
hasCube(name: string): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Unregister a cube by name.
|
|
178
|
+
* Returns true if the cube existed and was removed, false if not found.
|
|
179
|
+
*/
|
|
180
|
+
unregisterCube(name: string): boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Remove a cube
|
|
183
|
+
*/
|
|
184
|
+
removeCube(name: string): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Clear all cubes
|
|
187
|
+
*/
|
|
188
|
+
clearCubes(): void;
|
|
189
|
+
/**
|
|
190
|
+
* Invalidate the metadata cache
|
|
191
|
+
* Called whenever cubes are modified
|
|
192
|
+
*/
|
|
193
|
+
private invalidateMetadataCache;
|
|
194
|
+
/**
|
|
195
|
+
* Get cube names
|
|
196
|
+
*/
|
|
197
|
+
getCubeNames(): string[];
|
|
198
|
+
/**
|
|
199
|
+
* Validate a query against registered cubes
|
|
200
|
+
* Ensures all referenced cubes and fields exist
|
|
201
|
+
*/
|
|
202
|
+
validateQuery(query: SemanticQuery): {
|
|
203
|
+
isValid: boolean;
|
|
204
|
+
errors: string[];
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Analyze query planning decisions for debugging and transparency
|
|
208
|
+
* Returns detailed metadata about how the query would be planned
|
|
209
|
+
* Used by the playground UI to help users understand query structure
|
|
210
|
+
*/
|
|
211
|
+
analyzeQuery(query: SemanticQuery, securityContext: SecurityContext): QueryAnalysis;
|
|
212
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { SQL, AnyColumn } from 'drizzle-orm';
|
|
2
|
+
import { Cube, CubeJoin, Dimension, QueryContext, MultiCubeQueryContext, SqlExpression } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve cube reference (handles direct, lazy, and string name references)
|
|
5
|
+
*
|
|
6
|
+
* String references are resolved from the optional `cubes` registry map.
|
|
7
|
+
* Returns `null` when a string ref cannot be resolved (logs a warning).
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveCubeReference(ref: Cube | (() => Cube) | string, cubes?: Map<string, Cube>): Cube | null;
|
|
10
|
+
/**
|
|
11
|
+
* Reverse a semantic relationship type for bidirectional join path resolution.
|
|
12
|
+
* When traversing a join edge in reverse (target→source instead of source→target),
|
|
13
|
+
* the relationship semantics flip: belongsTo↔hasMany, hasOne stays hasOne,
|
|
14
|
+
* belongsToMany stays belongsToMany (symmetric).
|
|
15
|
+
*/
|
|
16
|
+
export declare function reverseRelationship(relationship: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Derive SQL join type from semantic relationship
|
|
19
|
+
*/
|
|
20
|
+
export declare function getJoinType(relationship: string, override?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* DRIZZLE ORM LIMITATION: SQL Object Mutation Protection
|
|
23
|
+
*
|
|
24
|
+
* Create an isolated copy of a SQL expression to prevent mutation issues
|
|
25
|
+
* when the expression will be reused across multiple query contexts.
|
|
26
|
+
*
|
|
27
|
+
* ## Background
|
|
28
|
+
*
|
|
29
|
+
* Drizzle SQL objects are mutable - their internal `queryChunks` array can be
|
|
30
|
+
* modified during query construction. When column objects (like employees.id)
|
|
31
|
+
* are reused across multiple parts of a query (SELECT, WHERE, GROUP BY), this
|
|
32
|
+
* mutation can cause:
|
|
33
|
+
* - Duplicate SQL fragments in generated queries
|
|
34
|
+
* - Incorrect parameter binding order
|
|
35
|
+
* - Query execution failures
|
|
36
|
+
*
|
|
37
|
+
* ## Evidence from Drizzle Source Code
|
|
38
|
+
*
|
|
39
|
+
* Investigation of Drizzle ORM source code (/tmp/drizzle-orm/drizzle-orm/src/sql/sql.ts)
|
|
40
|
+
* revealed:
|
|
41
|
+
*
|
|
42
|
+
* 1. SQL objects have a mutable `queryChunks` array (line 133)
|
|
43
|
+
* 2. The `append()` method directly mutates this array
|
|
44
|
+
* 3. No public `clone()` method exists (only internal SQL.Aliased.clone())
|
|
45
|
+
* 4. The `sql` template function creates NEW arrays but chunks are pushed by reference
|
|
46
|
+
*
|
|
47
|
+
* ## The Double Wrapping Pattern
|
|
48
|
+
*
|
|
49
|
+
* `sql`${sql`${expr}`}`` creates two layers of SQL isolation:
|
|
50
|
+
*
|
|
51
|
+
* **Single wrap** (`sql`${expr}``):
|
|
52
|
+
* - Creates a new SQL object
|
|
53
|
+
* - But queryChunks contains REFERENCES to original objects
|
|
54
|
+
* - Original objects can still be mutated
|
|
55
|
+
*
|
|
56
|
+
* **Double wrap** (`sql`${sql`${expr}`}``):
|
|
57
|
+
* - Inner wrap: Creates fresh SQL from original expression
|
|
58
|
+
* - Outer wrap: Creates complete isolation from shared state
|
|
59
|
+
* - When Drizzle processes nested SQL, it recursively builds from inner chunks
|
|
60
|
+
* - This prevents corruption when SQL expressions are reused
|
|
61
|
+
*
|
|
62
|
+
* ## When to Use
|
|
63
|
+
*
|
|
64
|
+
* - **resolveSqlExpression()**: ALWAYS (expressions may be reused)
|
|
65
|
+
* - **buildMeasureExpression()**: ALWAYS (after resolveSqlExpression)
|
|
66
|
+
* - **New aggregations**: Single wrap OK (creating fresh SQL for first time)
|
|
67
|
+
*
|
|
68
|
+
* ## Alternatives Investigated
|
|
69
|
+
*
|
|
70
|
+
* - ❌ Use Drizzle's clone() - Doesn't exist publicly
|
|
71
|
+
* - ❌ Store SQL factory functions - Still returns same column objects
|
|
72
|
+
* - ❌ Create fresh column references - Impossible, columns are singletons
|
|
73
|
+
* - ❌ Avoid SQL reuse - Unavoidable (same dimension in SELECT, WHERE, GROUP BY)
|
|
74
|
+
*
|
|
75
|
+
* ## Performance Impact
|
|
76
|
+
*
|
|
77
|
+
* - Memory: ~200 bytes per wrap (negligible)
|
|
78
|
+
* - CPU: Two function calls during query building (microseconds)
|
|
79
|
+
* - No runtime query performance impact
|
|
80
|
+
*
|
|
81
|
+
* @param expr - SQL expression that may be reused across query contexts
|
|
82
|
+
* @returns Isolated SQL expression safe for reuse
|
|
83
|
+
*/
|
|
84
|
+
export declare function isolateSqlExpression(expr: AnyColumn | SQL): SQL;
|
|
85
|
+
/**
|
|
86
|
+
* Sanitize a property key to prevent prototype pollution.
|
|
87
|
+
* Keys in this codebase come from validated cube field names (e.g., "Cube.measure")
|
|
88
|
+
* but CodeQL cannot trace that validation across module boundaries.
|
|
89
|
+
*/
|
|
90
|
+
export declare function safeKey(key: string): string;
|
|
91
|
+
/**
|
|
92
|
+
* Helper to resolve SQL expressions with mutation protection
|
|
93
|
+
*
|
|
94
|
+
* Evaluates function-based SQL expressions and applies isolation to prevent
|
|
95
|
+
* Drizzle's internal mutation from corrupting reused SQL objects.
|
|
96
|
+
*
|
|
97
|
+
* @param expr - Column, SQL object, or function that returns one
|
|
98
|
+
* @param ctx - Query context for function evaluation
|
|
99
|
+
* @returns Isolated SQL expression safe for reuse
|
|
100
|
+
*/
|
|
101
|
+
export declare function resolveSqlExpression(expr: AnyColumn | SQL | ((ctx: QueryContext) => AnyColumn | SQL), ctx: QueryContext): AnyColumn | SQL;
|
|
102
|
+
/**
|
|
103
|
+
* Resolve a dimension's SQL expression for use in a filter condition.
|
|
104
|
+
*
|
|
105
|
+
* For non-time dimensions, use the raw column so Drizzle preserves column type
|
|
106
|
+
* metadata for proper parameter binding (e.g. UUID columns need type info) — this
|
|
107
|
+
* deliberately bypasses isolateSqlExpression. For time dimensions, keep isolated
|
|
108
|
+
* SQL because normalizeDate() returns strings.
|
|
109
|
+
*
|
|
110
|
+
* Centralises the filter-field resolution that was previously copy-pasted across
|
|
111
|
+
* the filter builder, executor, and funnel/flow/retention builders.
|
|
112
|
+
*/
|
|
113
|
+
export declare function resolveFilterFieldExpr(dimension: Dimension, ctx: QueryContext): AnyColumn | SQL;
|
|
114
|
+
/**
|
|
115
|
+
* Helper to create multi-cube query context
|
|
116
|
+
*/
|
|
117
|
+
export declare function createMultiCubeContext(baseContext: QueryContext, cubes: Map<string, Cube>, currentCube: Cube): MultiCubeQueryContext;
|
|
118
|
+
/**
|
|
119
|
+
* Type guard to check if value is a function-based SQL expression
|
|
120
|
+
*/
|
|
121
|
+
export declare function isFunctionSqlExpression(expr: SqlExpression): expr is (ctx: QueryContext) => AnyColumn | SQL;
|
|
122
|
+
/**
|
|
123
|
+
* Helper function to create cubes
|
|
124
|
+
*/
|
|
125
|
+
export declare function defineCube(name: string, definition: Omit<Cube, 'name'>): Cube;
|
|
126
|
+
/**
|
|
127
|
+
* Build the Drizzle join condition for a regular (belongsTo/hasOne/hasMany)
|
|
128
|
+
* join from its symbolic CubeJoin definition. Columns are isolated to prevent
|
|
129
|
+
* Drizzle's mutable queryChunks from corrupting reused expressions. The
|
|
130
|
+
* condition is symmetric, so it is correct for reversed joins as-is.
|
|
131
|
+
*
|
|
132
|
+
* This is the materialization counterpart used by DrizzlePlanBuilder; it
|
|
133
|
+
* mirrors JoinPathResolver.buildJoinCondition(joinDef, null, null).
|
|
134
|
+
*/
|
|
135
|
+
export declare function buildRegularJoinCondition(joinDef: CubeJoin): SQL;
|
|
136
|
+
/**
|
|
137
|
+
* Expanded join information for belongsToMany relationships
|
|
138
|
+
*/
|
|
139
|
+
export interface ExpandedBelongsToManyJoin {
|
|
140
|
+
/** Junction table joins */
|
|
141
|
+
junctionJoins: Array<{
|
|
142
|
+
joinType: 'inner' | 'left' | 'right' | 'full';
|
|
143
|
+
table: any;
|
|
144
|
+
condition: SQL;
|
|
145
|
+
}>;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Expand a belongsToMany join into junction table joins
|
|
149
|
+
* This converts a many-to-many relationship into two separate joins:
|
|
150
|
+
* 1. Source cube -> Junction table
|
|
151
|
+
* 2. Junction table -> Target cube
|
|
152
|
+
*
|
|
153
|
+
* Junction-table security is intentionally NOT materialized here: it must be
|
|
154
|
+
* applied (in the WHERE clause) at physical-build time from the stored
|
|
155
|
+
* `through.securitySql` function with the request's security context, so the
|
|
156
|
+
* join conditions here are a pure function of the join definition.
|
|
157
|
+
*/
|
|
158
|
+
export declare function expandBelongsToManyJoin(joinDef: CubeJoin): ExpandedBelongsToManyJoin;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DatabaseAdapter } from './adapters/base-adapter';
|
|
2
|
+
/**
|
|
3
|
+
* Create a database adapter for the specified engine type
|
|
4
|
+
* @param engineType - The database engine type
|
|
5
|
+
* @returns Database adapter instance
|
|
6
|
+
*/
|
|
7
|
+
export declare function createDatabaseAdapter(engineType: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake'): DatabaseAdapter;
|
|
8
|
+
/**
|
|
9
|
+
* Get available database adapters
|
|
10
|
+
* @returns Array of supported engine types
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSupportedEngines(): ('postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake')[];
|
|
13
|
+
/**
|
|
14
|
+
* Check if an engine type is supported
|
|
15
|
+
* @param engineType - Engine type to check
|
|
16
|
+
* @returns True if supported, false otherwise
|
|
17
|
+
*/
|
|
18
|
+
export declare function isEngineSupported(engineType: string): engineType is 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PhysicalQueryPlan, SemanticQuery, MeasureAnnotation, DimensionAnnotation, TimeDimensionAnnotation } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Generate annotations for UI metadata - unified approach.
|
|
4
|
+
* Collects measure/dimension/timeDimension titles from every cube in the plan
|
|
5
|
+
* (primary + joins + multi-fact merge groups).
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildAnnotations(queryPlan: PhysicalQueryPlan, query: SemanticQuery): {
|
|
8
|
+
measures: Record<string, MeasureAnnotation>;
|
|
9
|
+
dimensions: Record<string, DimensionAnnotation>;
|
|
10
|
+
segments: Record<string, never>;
|
|
11
|
+
timeDimensions: Record<string, TimeDimensionAnnotation>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Cube, SemanticQuery, QueryContext } from '../types';
|
|
2
|
+
import { FilterCacheManager } from '../filter-cache';
|
|
3
|
+
import { DrizzleSqlBuilder } from '../physical-plan/drizzle-sql-builder';
|
|
4
|
+
export declare class FilterCachePreloader {
|
|
5
|
+
private readonly queryBuilder;
|
|
6
|
+
constructor(queryBuilder: DrizzleSqlBuilder);
|
|
7
|
+
/**
|
|
8
|
+
* Pre-build filter SQL and store in cache for reuse across CTEs and main query
|
|
9
|
+
* This enables parameter deduplication - the same filter values are shared
|
|
10
|
+
* rather than appearing as separate parameters in different parts of the query
|
|
11
|
+
*/
|
|
12
|
+
preload(query: SemanticQuery, filterCache: FilterCacheManager, cubes: Map<string, Cube>, context: QueryContext): void;
|
|
13
|
+
/** Resolve the dimension a filter/time-dimension member refers to, or null. */
|
|
14
|
+
private resolveMemberDimension;
|
|
15
|
+
/** Pre-build and cache the SQL for a single simple (non-logical) filter. */
|
|
16
|
+
private preloadRegularFilter;
|
|
17
|
+
/** Pre-build and cache the date-range SQL for a single time dimension. */
|
|
18
|
+
private preloadTimeDimensionFilter;
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Cube, SemanticQuery } from '../types';
|
|
2
|
+
import { ComparisonQueryBuilder } from '../builders/comparison-query-builder';
|
|
3
|
+
import { FunnelQueryBuilder } from '../builders/funnel-query-builder';
|
|
4
|
+
import { FlowQueryBuilder } from '../builders/flow-query-builder';
|
|
5
|
+
import { RetentionQueryBuilder } from '../builders/retention-query-builder';
|
|
6
|
+
export type QueryExecutionMode = 'regular' | 'comparison' | 'funnel' | 'flow' | 'retention';
|
|
7
|
+
export interface ModeRouterBuilders {
|
|
8
|
+
comparison: ComparisonQueryBuilder;
|
|
9
|
+
funnel: FunnelQueryBuilder;
|
|
10
|
+
flow: FlowQueryBuilder;
|
|
11
|
+
retention: RetentionQueryBuilder;
|
|
12
|
+
}
|
|
13
|
+
export declare class ModeRouter {
|
|
14
|
+
private readonly builders;
|
|
15
|
+
constructor(builders: ModeRouterBuilders);
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the single active execution mode for a query.
|
|
18
|
+
* Throws if more than one analysis mode is present.
|
|
19
|
+
*/
|
|
20
|
+
resolveMode(query: SemanticQuery): QueryExecutionMode;
|
|
21
|
+
/**
|
|
22
|
+
* Validate a query for its resolved mode. Throws a translated error on failure.
|
|
23
|
+
*/
|
|
24
|
+
validateForMode(mode: QueryExecutionMode, cubes: Map<string, Cube>, query: SemanticQuery): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SecurityContext, SemanticQuery, QueryResult, CacheConfig } from '../types';
|
|
2
|
+
export declare class QueryResultCache {
|
|
3
|
+
private readonly cacheConfig?;
|
|
4
|
+
constructor(cacheConfig?: CacheConfig | undefined);
|
|
5
|
+
/**
|
|
6
|
+
* Returns the cache key when caching is enabled and a provider is configured,
|
|
7
|
+
* otherwise undefined (which disables lookup and store).
|
|
8
|
+
*/
|
|
9
|
+
generateKey(query: SemanticQuery, securityContext: SecurityContext): string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Look up a cached result. Returns the cached value (with cache metadata
|
|
12
|
+
* attached) on a hit, or undefined on miss / bypass / no-cache. Emits
|
|
13
|
+
* hit/miss events; lookup errors are non-fatal.
|
|
14
|
+
*/
|
|
15
|
+
lookup(cacheKey: string | undefined, skipCache: boolean): Promise<QueryResult | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Store a fresh result under the given key. No-ops when caching is disabled
|
|
18
|
+
* or the key is undefined. Store errors are non-fatal.
|
|
19
|
+
*/
|
|
20
|
+
store(cacheKey: string | undefined, result: QueryResult): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SemanticQuery } from '../types';
|
|
2
|
+
import { DatabaseAdapter } from '../adapters/base-adapter';
|
|
3
|
+
/**
|
|
4
|
+
* Normalise time-dimension values in result rows and apply gap filling.
|
|
5
|
+
*
|
|
6
|
+
* @param data Raw rows from the database executor
|
|
7
|
+
* @param query The semantic query (for timeDimensions + measures)
|
|
8
|
+
* @param databaseAdapter Adapter used to convert engine-specific date results
|
|
9
|
+
*/
|
|
10
|
+
export declare function postProcessResultRows(data: unknown, query: SemanticQuery, databaseAdapter: DatabaseAdapter): Record<string, unknown>[];
|