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,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Analysis Types
|
|
3
|
+
* Provides transparency into query planning decisions for debugging
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Reason why a cube was selected as primary (FROM table)
|
|
7
|
+
*/
|
|
8
|
+
export type PrimaryCubeSelectionReason = 'most_dimensions' | 'most_connected' | 'alphabetical_fallback' | 'single_cube';
|
|
9
|
+
/**
|
|
10
|
+
* Candidate cube considered for primary selection
|
|
11
|
+
*/
|
|
12
|
+
export interface PrimaryCubeCandidate {
|
|
13
|
+
/** Cube name */
|
|
14
|
+
cubeName: string;
|
|
15
|
+
/** Number of dimensions from this cube in the query */
|
|
16
|
+
dimensionCount: number;
|
|
17
|
+
/** Number of join definitions on this cube */
|
|
18
|
+
joinCount: number;
|
|
19
|
+
/** Whether this cube can reach all other required cubes */
|
|
20
|
+
canReachAll: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Primary cube selection analysis
|
|
24
|
+
*/
|
|
25
|
+
export interface PrimaryCubeAnalysis {
|
|
26
|
+
/** Name of the selected primary cube */
|
|
27
|
+
selectedCube: string;
|
|
28
|
+
/** Reason for selection */
|
|
29
|
+
reason: PrimaryCubeSelectionReason;
|
|
30
|
+
/** Human-readable explanation */
|
|
31
|
+
explanation: string;
|
|
32
|
+
/** Other candidates that were considered */
|
|
33
|
+
candidates?: PrimaryCubeCandidate[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Single step in a join path
|
|
37
|
+
*/
|
|
38
|
+
export interface JoinPathStep {
|
|
39
|
+
/** Source cube name */
|
|
40
|
+
fromCube: string;
|
|
41
|
+
/** Target cube name */
|
|
42
|
+
toCube: string;
|
|
43
|
+
/** Relationship type used (effective, after reversal if applicable) */
|
|
44
|
+
relationship: 'belongsTo' | 'hasOne' | 'hasMany' | 'belongsToMany';
|
|
45
|
+
/** SQL join type that will be used */
|
|
46
|
+
joinType: 'inner' | 'left' | 'right' | 'full';
|
|
47
|
+
/** Join condition columns */
|
|
48
|
+
joinColumns: Array<{
|
|
49
|
+
sourceColumn: string;
|
|
50
|
+
targetColumn: string;
|
|
51
|
+
}>;
|
|
52
|
+
/** Junction table info for belongsToMany */
|
|
53
|
+
junctionTable?: {
|
|
54
|
+
tableName: string;
|
|
55
|
+
sourceColumns: string[];
|
|
56
|
+
targetColumns: string[];
|
|
57
|
+
};
|
|
58
|
+
/** True when this step was discovered via a reversed edge */
|
|
59
|
+
reversed?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Complete join path from primary to target cube
|
|
63
|
+
*/
|
|
64
|
+
export interface JoinPathAnalysis {
|
|
65
|
+
/** Target cube name */
|
|
66
|
+
targetCube: string;
|
|
67
|
+
/** Whether a path was found */
|
|
68
|
+
pathFound: boolean;
|
|
69
|
+
/** The join steps (if found) */
|
|
70
|
+
path?: JoinPathStep[];
|
|
71
|
+
/** Total path length */
|
|
72
|
+
pathLength?: number;
|
|
73
|
+
/** Error message if path not found */
|
|
74
|
+
error?: string;
|
|
75
|
+
/** Cubes that were visited during BFS search */
|
|
76
|
+
visitedCubes?: string[];
|
|
77
|
+
/** Path selection decision and scoring details (when preferred routing is used) */
|
|
78
|
+
selection?: {
|
|
79
|
+
strategy: 'shortest' | 'preferred' | 'fallbackShortest';
|
|
80
|
+
preferredCubes?: string[];
|
|
81
|
+
selectedRank?: number;
|
|
82
|
+
selectedScore?: number;
|
|
83
|
+
candidates?: Array<{
|
|
84
|
+
rank: number;
|
|
85
|
+
score: number;
|
|
86
|
+
usesPreferredJoin: boolean;
|
|
87
|
+
preferredCubesInPath: number;
|
|
88
|
+
usesProcessed: boolean;
|
|
89
|
+
scoreBreakdown: {
|
|
90
|
+
preferredJoinBonus: number;
|
|
91
|
+
preferredCubeBonus: number;
|
|
92
|
+
lengthPenalty: number;
|
|
93
|
+
};
|
|
94
|
+
path: JoinPathStep[];
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Pre-aggregation CTE analysis
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* Reason why a cube requires a CTE
|
|
103
|
+
*/
|
|
104
|
+
export type CTEReason = 'hasMany' | 'fanOutPrevention';
|
|
105
|
+
export interface PreAggregationAnalysis {
|
|
106
|
+
/** Cube being pre-aggregated */
|
|
107
|
+
cubeName: string;
|
|
108
|
+
/** CTE alias in the query */
|
|
109
|
+
cteAlias: string;
|
|
110
|
+
/** Why this cube needs a CTE (human-readable explanation) */
|
|
111
|
+
reason: string;
|
|
112
|
+
/** Typed reason for programmatic use */
|
|
113
|
+
reasonType?: CTEReason;
|
|
114
|
+
/** Measures included in CTE (aggregate measures + window base measures) */
|
|
115
|
+
measures: string[];
|
|
116
|
+
/** Join keys used */
|
|
117
|
+
joinKeys: Array<{
|
|
118
|
+
sourceColumn: string;
|
|
119
|
+
targetColumn: string;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* Type of CTE:
|
|
123
|
+
* - 'aggregate': Standard CTE with GROUP BY (count, sum, avg, etc.)
|
|
124
|
+
*
|
|
125
|
+
* Note: Window function CTEs are no longer used. Post-aggregation window
|
|
126
|
+
* functions are applied in the outer query after data is aggregated.
|
|
127
|
+
*/
|
|
128
|
+
cteType?: 'aggregate';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Query structure summary
|
|
132
|
+
*/
|
|
133
|
+
export interface QuerySummary {
|
|
134
|
+
/** Query type: 'single_cube', 'multi_cube_join', or 'multi_cube_cte' */
|
|
135
|
+
queryType: 'single_cube' | 'multi_cube_join' | 'multi_cube_cte';
|
|
136
|
+
/** Strategy selected for multiplied-measure handling / multi-fact merge */
|
|
137
|
+
measureStrategy?: 'simple' | 'keysDeduplication' | 'ctePreAggregateFallback' | 'multiFactMerge';
|
|
138
|
+
/** Total number of joins */
|
|
139
|
+
joinCount: number;
|
|
140
|
+
/** Total number of CTEs */
|
|
141
|
+
cteCount: number;
|
|
142
|
+
/** Has hasMany relationships requiring aggregation */
|
|
143
|
+
hasPreAggregation: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Whether query contains post-aggregation window function measures.
|
|
146
|
+
* These window functions (lag, lead, rank, etc.) operate on aggregated
|
|
147
|
+
* data and are applied in the outer query after CTEs.
|
|
148
|
+
*/
|
|
149
|
+
hasWindowFunctions?: boolean;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Structured planner trace for explain/dry-run UIs.
|
|
153
|
+
* Captures key decisions made during logical planning.
|
|
154
|
+
*/
|
|
155
|
+
export interface PlanningTraceStep {
|
|
156
|
+
/** Pipeline phase name */
|
|
157
|
+
phase: 'cube_usage' | 'primary_cube_selection' | 'join_planning' | 'cte_planning' | 'measure_strategy' | 'warnings';
|
|
158
|
+
/** Short summary of what was decided */
|
|
159
|
+
decision: string;
|
|
160
|
+
/** Optional machine-readable details */
|
|
161
|
+
details?: Record<string, unknown>;
|
|
162
|
+
}
|
|
163
|
+
export interface PlanningTrace {
|
|
164
|
+
/** Ordered decision trace */
|
|
165
|
+
steps: PlanningTraceStep[];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Complete query analysis result
|
|
169
|
+
*/
|
|
170
|
+
export interface QueryAnalysis {
|
|
171
|
+
/** Timestamp of analysis */
|
|
172
|
+
timestamp: string;
|
|
173
|
+
/** Number of cubes involved */
|
|
174
|
+
cubeCount: number;
|
|
175
|
+
/** List of all cubes used */
|
|
176
|
+
cubesInvolved: string[];
|
|
177
|
+
/** Primary cube selection details */
|
|
178
|
+
primaryCube: PrimaryCubeAnalysis;
|
|
179
|
+
/** Join path analysis for each joined cube */
|
|
180
|
+
joinPaths: JoinPathAnalysis[];
|
|
181
|
+
/** Pre-aggregation CTE details */
|
|
182
|
+
preAggregations: PreAggregationAnalysis[];
|
|
183
|
+
/** Overall query structure summary */
|
|
184
|
+
querySummary: QuerySummary;
|
|
185
|
+
/** Warnings or potential issues */
|
|
186
|
+
warnings?: string[];
|
|
187
|
+
/** Structured decision trace for debugging and dry-run UIs */
|
|
188
|
+
planningTrace?: PlanningTrace;
|
|
189
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { SecurityContext } from './core';
|
|
2
|
+
/**
|
|
3
|
+
* Return type for cache get operations
|
|
4
|
+
* Includes value and optional metadata for TTL tracking
|
|
5
|
+
*/
|
|
6
|
+
export interface CacheGetResult<T> {
|
|
7
|
+
value: T;
|
|
8
|
+
metadata?: CacheEntryMetadata;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Metadata about a cached entry
|
|
12
|
+
* Used to provide cache information in query responses
|
|
13
|
+
*/
|
|
14
|
+
export interface CacheEntryMetadata {
|
|
15
|
+
/** Unix timestamp (ms) when the entry was cached */
|
|
16
|
+
cachedAt: number;
|
|
17
|
+
/** Original TTL in milliseconds */
|
|
18
|
+
ttlMs: number;
|
|
19
|
+
/** Remaining TTL in milliseconds */
|
|
20
|
+
ttlRemainingMs: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cache provider interface that users implement for their preferred backend
|
|
24
|
+
* All methods use async/Promise to support network-based caches (Redis, etc.)
|
|
25
|
+
*/
|
|
26
|
+
export interface CacheProvider {
|
|
27
|
+
/**
|
|
28
|
+
* Get a cached value by key
|
|
29
|
+
* @returns The cached value with metadata, or null/undefined if not found or expired
|
|
30
|
+
*/
|
|
31
|
+
get<T = unknown>(key: string): Promise<CacheGetResult<T> | null | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Set a value in the cache
|
|
34
|
+
* @param key - Cache key
|
|
35
|
+
* @param value - Value to cache (must be JSON-serializable)
|
|
36
|
+
* @param ttlMs - Time-to-live in milliseconds (optional, uses default if not provided)
|
|
37
|
+
*/
|
|
38
|
+
set<T = unknown>(key: string, value: T, ttlMs?: number): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Delete a specific key from the cache
|
|
41
|
+
* @returns true if key existed and was deleted, false otherwise
|
|
42
|
+
*/
|
|
43
|
+
delete(key: string): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Delete all keys matching a pattern (for cache invalidation)
|
|
46
|
+
* Pattern uses glob-style matching: 'prefix:*' matches all keys starting with 'prefix:'
|
|
47
|
+
* @returns Number of keys deleted
|
|
48
|
+
*/
|
|
49
|
+
deletePattern(pattern: string): Promise<number>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a key exists in the cache
|
|
52
|
+
*/
|
|
53
|
+
has(key: string): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Optional: Called when the cache provider is no longer needed
|
|
56
|
+
* Use for cleanup (e.g., closing Redis connections)
|
|
57
|
+
*/
|
|
58
|
+
close?(): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cache event for monitoring and debugging
|
|
62
|
+
*/
|
|
63
|
+
export interface CacheEvent {
|
|
64
|
+
/** Type of cache event */
|
|
65
|
+
type: 'hit' | 'miss' | 'set' | 'error';
|
|
66
|
+
/** Cache key involved */
|
|
67
|
+
key: string;
|
|
68
|
+
/** Duration of the cache operation in milliseconds */
|
|
69
|
+
durationMs: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Cache configuration options
|
|
73
|
+
*/
|
|
74
|
+
export interface CacheConfig {
|
|
75
|
+
/**
|
|
76
|
+
* Cache provider implementation
|
|
77
|
+
* Required if caching is enabled
|
|
78
|
+
*/
|
|
79
|
+
provider: CacheProvider;
|
|
80
|
+
/**
|
|
81
|
+
* Default TTL in milliseconds
|
|
82
|
+
* @default 300000 (5 minutes)
|
|
83
|
+
*/
|
|
84
|
+
defaultTtlMs?: number;
|
|
85
|
+
/**
|
|
86
|
+
* Prefix for all cache keys
|
|
87
|
+
* Useful for multi-environment setups (e.g., 'prod:', 'dev:')
|
|
88
|
+
* @default 'drizzle-cube:'
|
|
89
|
+
*/
|
|
90
|
+
keyPrefix?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Enable/disable caching globally
|
|
93
|
+
* Allows disabling without removing configuration
|
|
94
|
+
* @default true
|
|
95
|
+
*/
|
|
96
|
+
enabled?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Whether to include security context in cache key
|
|
99
|
+
* CRITICAL for multi-tenant applications - should almost always be true
|
|
100
|
+
* @default true
|
|
101
|
+
*/
|
|
102
|
+
includeSecurityContext?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Custom function to extract cacheable parts of security context
|
|
105
|
+
* Use when security context contains non-serializable values
|
|
106
|
+
* @default Uses JSON.stringify on entire security context
|
|
107
|
+
*/
|
|
108
|
+
securityContextSerializer?: (ctx: SecurityContext) => string;
|
|
109
|
+
/**
|
|
110
|
+
* Callback for cache errors (get/set failures)
|
|
111
|
+
* Cache errors are non-fatal by default - queries still execute
|
|
112
|
+
*/
|
|
113
|
+
onError?: (error: Error, operation: 'get' | 'set' | 'delete') => void;
|
|
114
|
+
/**
|
|
115
|
+
* Callback for cache events (hits, misses, sets)
|
|
116
|
+
* Useful for monitoring and debugging
|
|
117
|
+
*/
|
|
118
|
+
onCacheEvent?: (event: CacheEvent) => void;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Cache metadata included in QueryResult when served from cache
|
|
122
|
+
*/
|
|
123
|
+
export interface QueryCacheMetadata {
|
|
124
|
+
/** Always true when this object is present */
|
|
125
|
+
hit: true;
|
|
126
|
+
/** ISO timestamp when the result was cached */
|
|
127
|
+
cachedAt: string;
|
|
128
|
+
/** Original TTL in milliseconds */
|
|
129
|
+
ttlMs: number;
|
|
130
|
+
/** Remaining TTL in milliseconds */
|
|
131
|
+
ttlRemainingMs: number;
|
|
132
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { SQL, AnyColumn } from 'drizzle-orm';
|
|
2
|
+
import { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
|
|
3
|
+
import { MySql2Database } from 'drizzle-orm/mysql2';
|
|
4
|
+
import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
|
|
5
|
+
/**
|
|
6
|
+
* Security context passed to cube SQL functions
|
|
7
|
+
* Contains user/tenant-specific data for filtering
|
|
8
|
+
*/
|
|
9
|
+
export interface SecurityContext {
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Severity level for query warnings
|
|
14
|
+
*/
|
|
15
|
+
export type QueryWarningSeverity = 'info' | 'warning' | 'error';
|
|
16
|
+
/**
|
|
17
|
+
* Warning emitted during query planning or execution
|
|
18
|
+
* Provides user-facing feedback about potential query issues
|
|
19
|
+
*/
|
|
20
|
+
export interface QueryWarning {
|
|
21
|
+
/** Unique code for programmatic handling (e.g., 'FAN_OUT_NO_DIMENSIONS') */
|
|
22
|
+
code: string;
|
|
23
|
+
/** Human-readable warning message */
|
|
24
|
+
message: string;
|
|
25
|
+
/** Severity level for UI styling */
|
|
26
|
+
severity: QueryWarningSeverity;
|
|
27
|
+
/** Cubes involved in the warning (if applicable) */
|
|
28
|
+
cubes?: string[];
|
|
29
|
+
/** Measures involved in the warning (if applicable) */
|
|
30
|
+
measures?: string[];
|
|
31
|
+
/** Actionable suggestion for the user */
|
|
32
|
+
suggestion?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Query execution result
|
|
36
|
+
*/
|
|
37
|
+
export interface QueryResult {
|
|
38
|
+
data: Record<string, unknown>[];
|
|
39
|
+
annotation: {
|
|
40
|
+
measures: Record<string, MeasureAnnotation>;
|
|
41
|
+
dimensions: Record<string, DimensionAnnotation>;
|
|
42
|
+
segments: Record<string, unknown>;
|
|
43
|
+
timeDimensions: Record<string, TimeDimensionAnnotation>;
|
|
44
|
+
/** Period comparison metadata (present when compareDateRange is used) */
|
|
45
|
+
periods?: PeriodComparisonMetadata;
|
|
46
|
+
};
|
|
47
|
+
/** Cache metadata - indicates whether result was served from cache */
|
|
48
|
+
cache?: {
|
|
49
|
+
/** True if result was served from cache, false if freshly computed */
|
|
50
|
+
hit: boolean;
|
|
51
|
+
/** ISO timestamp when the result was cached (only present on cache hit) */
|
|
52
|
+
cachedAt?: string;
|
|
53
|
+
/** Original TTL in milliseconds (only present on cache hit) */
|
|
54
|
+
ttlMs?: number;
|
|
55
|
+
/** Remaining TTL in milliseconds (only present on cache hit) */
|
|
56
|
+
ttlRemainingMs?: number;
|
|
57
|
+
};
|
|
58
|
+
/** Warnings about potential query issues (e.g., fan-out without dimensions) */
|
|
59
|
+
warnings?: QueryWarning[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Period comparison metadata for compareDateRange queries
|
|
63
|
+
* Provides information about the periods being compared
|
|
64
|
+
*/
|
|
65
|
+
export interface PeriodComparisonMetadata {
|
|
66
|
+
/** The date ranges being compared */
|
|
67
|
+
ranges: [string, string][];
|
|
68
|
+
/** Human-readable labels for each period */
|
|
69
|
+
labels: string[];
|
|
70
|
+
/** The time dimension used for comparison */
|
|
71
|
+
timeDimension: string;
|
|
72
|
+
/** Granularity used for the comparison */
|
|
73
|
+
granularity?: TimeGranularity;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* SQL generation result
|
|
77
|
+
*/
|
|
78
|
+
export interface SqlResult {
|
|
79
|
+
sql: string;
|
|
80
|
+
params?: unknown[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Options for query execution
|
|
84
|
+
*/
|
|
85
|
+
export interface ExecutionOptions {
|
|
86
|
+
/** Skip the cache lookup (but still cache the result for future requests) */
|
|
87
|
+
skipCache?: boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Core database interface that supports all Drizzle instances
|
|
91
|
+
* Uses flexible typing for maximum compatibility across different database drivers
|
|
92
|
+
*/
|
|
93
|
+
export interface DrizzleDatabase {
|
|
94
|
+
select: (fields?: any) => any;
|
|
95
|
+
insert: (table: any) => any;
|
|
96
|
+
update: (table: any) => any;
|
|
97
|
+
delete: (table: any) => any;
|
|
98
|
+
execute?: (query: SQL) => Promise<unknown[]>;
|
|
99
|
+
run?: (query: SQL) => unknown;
|
|
100
|
+
all?: (query: SQL) => unknown[];
|
|
101
|
+
get?: (query: SQL) => unknown;
|
|
102
|
+
$with: (alias: string) => {
|
|
103
|
+
as: (query: any) => any;
|
|
104
|
+
};
|
|
105
|
+
with: (...args: any[]) => any;
|
|
106
|
+
schema?: unknown;
|
|
107
|
+
transaction?: <T>(fn: (tx: any) => Promise<T>, ...args: any[]) => Promise<T>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Transaction-scoped database instance passed to RLS setup.
|
|
111
|
+
* Structurally identical to DrizzleDatabase — the alias communicates
|
|
112
|
+
* that the value lives inside a transaction, not the root connection.
|
|
113
|
+
*/
|
|
114
|
+
export type DrizzleTransaction = DrizzleDatabase;
|
|
115
|
+
/**
|
|
116
|
+
* Row-Level Security setup function.
|
|
117
|
+
* Called inside a transaction before query execution to configure
|
|
118
|
+
* database-level RLS (e.g., setting JWT claims and switching roles in Postgres).
|
|
119
|
+
*
|
|
120
|
+
* @param tx - The transaction-scoped Drizzle database instance
|
|
121
|
+
* @param securityContext - The security context extracted from the request
|
|
122
|
+
*/
|
|
123
|
+
export type RLSSetupFn = (tx: DrizzleTransaction, securityContext: SecurityContext) => Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Type helpers for specific database types
|
|
126
|
+
*/
|
|
127
|
+
export type PostgresDatabase = PostgresJsDatabase<any>;
|
|
128
|
+
export type MySQLDatabase = MySql2Database<any>;
|
|
129
|
+
export type SQLiteDatabase = BetterSQLite3Database<any>;
|
|
130
|
+
/**
|
|
131
|
+
* Drizzle column reference type
|
|
132
|
+
* Use native Drizzle AnyColumn type for better type safety
|
|
133
|
+
*/
|
|
134
|
+
export type DrizzleColumn = AnyColumn;
|
|
135
|
+
/**
|
|
136
|
+
* Annotation interfaces for UI metadata
|
|
137
|
+
*/
|
|
138
|
+
export interface MeasureAnnotation {
|
|
139
|
+
title: string;
|
|
140
|
+
shortTitle: string;
|
|
141
|
+
type: MeasureType;
|
|
142
|
+
format?: MeasureFormat;
|
|
143
|
+
}
|
|
144
|
+
export interface DimensionAnnotation {
|
|
145
|
+
title: string;
|
|
146
|
+
shortTitle: string;
|
|
147
|
+
type: string;
|
|
148
|
+
format?: DimensionFormat;
|
|
149
|
+
}
|
|
150
|
+
export interface TimeDimensionAnnotation {
|
|
151
|
+
title: string;
|
|
152
|
+
shortTitle: string;
|
|
153
|
+
type: string;
|
|
154
|
+
granularity?: TimeGranularity;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Type enums and constants
|
|
158
|
+
*/
|
|
159
|
+
export type MeasureType = 'count' | 'countDistinct' | 'countDistinctApprox' | 'sum' | 'avg' | 'min' | 'max' | 'runningTotal' | 'number' | 'calculated' | 'stddev' | 'stddevSamp' | 'variance' | 'varianceSamp' | 'percentile' | 'median' | 'p95' | 'p99' | 'lag' | 'lead' | 'rank' | 'denseRank' | 'rowNumber' | 'ntile' | 'firstValue' | 'lastValue' | 'movingAvg' | 'movingSum';
|
|
160
|
+
export type MeasureFormat = 'currency' | 'percent' | 'number' | 'integer';
|
|
161
|
+
export type DimensionFormat = 'currency' | 'percent' | 'number' | 'date' | 'datetime' | 'id' | 'link';
|
|
162
|
+
export type DimensionType = 'string' | 'number' | 'time' | 'boolean';
|
|
163
|
+
export type JoinType = 'left' | 'right' | 'inner' | 'full';
|
|
164
|
+
export type TimeGranularity = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
|