drizzle-cube 0.10.1 → 0.11.1
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/dist/adapters/ActivityGridChart.config-XMtoteb6.js +2 -0
- package/dist/adapters/ActivityGridChart.config-h1AXPvn0.cjs +1 -0
- package/dist/adapters/AreaChart.config-DYf9wufo.cjs +1 -0
- package/dist/adapters/AreaChart.config-We6b53aT.js +2 -0
- package/dist/adapters/BarChart.config-4SX44IYv.cjs +1 -0
- package/dist/adapters/BarChart.config-CwBnyptL.js +2 -0
- package/dist/adapters/BoxPlotChart.config-BzNe-FlW.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-mfAHqmcp.js +2 -0
- package/dist/adapters/BubbleChart.config-CBT5jMdc.cjs +1 -0
- package/dist/adapters/BubbleChart.config-DxG_Umal.js +2 -0
- package/dist/adapters/CandlestickChart.config-Cqw3XP1h.js +2 -0
- package/dist/adapters/CandlestickChart.config-DPSSlzUD.cjs +1 -0
- package/dist/adapters/DataTable.config-DS1bvaDu.js +2 -0
- package/dist/adapters/DataTable.config-D_NsMeyz.cjs +1 -0
- package/dist/adapters/DotStripChart.config-BApWn6QV.cjs +1 -0
- package/dist/adapters/DotStripChart.config-Bdk5-YfB.js +2 -0
- package/dist/adapters/FunnelChart.config-BT5up_Bg.cjs +1 -0
- package/dist/adapters/FunnelChart.config-ISZiz9fn.js +2 -0
- package/dist/adapters/GaugeChart.config-Biaq1cKc.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BjGfB84t.js +2 -0
- package/dist/adapters/HeatMapChart.config-Bmca8KiH.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-uWvR0B-N.js +2 -0
- package/dist/adapters/KpiDelta.config-CJeDdj_1.js +2 -0
- package/dist/adapters/KpiDelta.config-CKr9pAxL.cjs +1 -0
- package/dist/adapters/KpiNumber.config-6YLEF2fy.cjs +1 -0
- package/dist/adapters/KpiNumber.config-C00M46GA.js +2 -0
- package/dist/adapters/KpiText.config-C8Av_D2W.cjs +1 -0
- package/dist/adapters/KpiText.config-bKTHob0C.js +2 -0
- package/dist/adapters/LineChart.config-DH68HT_B.js +2 -0
- package/dist/adapters/LineChart.config-DPq7GvL9.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CaaJPO3c.js +2 -0
- package/dist/adapters/MarkdownChart.config-ca_UyhWJ.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-C1Il0IqL.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-DMOnkmb6.js +2 -0
- package/dist/adapters/PieChart.config-Bg-8cxWK.js +2 -0
- package/dist/adapters/PieChart.config-joJcF--K.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-B2sltKsI.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-BlCedy1v.js +2 -0
- package/dist/adapters/RadarChart.config-DD1pX6FZ.js +2 -0
- package/dist/adapters/RadarChart.config-DVCCLSVw.cjs +1 -0
- package/dist/adapters/RadialBarChart.config--VIE2jMM.js +2 -0
- package/dist/adapters/RadialBarChart.config-BZwyWhTg.cjs +1 -0
- package/dist/adapters/RecordsTable.config-CTBQc-2r.js +2 -0
- package/dist/adapters/RecordsTable.config-DPdO0DL5.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-PGVxnkRL.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-mX5PMh82.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-Co-JMzBm.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-Cub3-ksy.cjs +1 -0
- package/dist/adapters/SankeyChart.config-BkIyUcAE.cjs +1 -0
- package/dist/adapters/SankeyChart.config-DGTnRmYg.js +2 -0
- package/dist/adapters/ScatterChart.config-CdZrBorg.js +2 -0
- package/dist/adapters/ScatterChart.config-CwN9niUL.cjs +1 -0
- package/dist/adapters/SunburstChart.config-D0ZkRSJv.cjs +1 -0
- package/dist/adapters/SunburstChart.config-RF3uu5Sa.js +2 -0
- package/dist/adapters/TreeMapChart.config-B2Yn_V7p.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-diJtcs4D.js +2 -0
- package/dist/adapters/WaterfallChart.config-B10PxftT.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BImlkLmR.js +2 -0
- package/dist/adapters/chartConfigHelpers-BhME7ow_.cjs +1 -0
- package/dist/adapters/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
- package/dist/adapters/{compiler-Dw5tYox7.cjs → compiler-B-yljK02.cjs} +6 -6
- package/dist/adapters/{compiler-C8fOs43d.js → compiler-BhityGUO.js} +197 -186
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BP6GiYzO.cjs → core-CQOrzBNh.cjs} +1 -1
- package/dist/adapters/{core-z6vXJ8nF.js → core-xZE0miIu.js} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/{handler-CI3Rt-Zt.js → handler-ByeQ0-1r.js} +237 -234
- package/dist/adapters/handler-DSNmfv1R.cjs +16 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-CNp0VqS_.cjs +1 -0
- package/dist/adapters/mcp-app-html-CvWoYMO3.js +5 -0
- package/dist/adapters/mcp-app-html.cjs +1 -1
- package/dist/adapters/mcp-app-html.js +1 -1
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +3 -3
- package/dist/adapters/{mcp-transport-DpS_e0gL.js → mcp-transport-Cy6n4uj1.js} +1 -1
- package/dist/adapters/{mcp-transport-Bc7-KSG_.cjs → mcp-transport-DnLP5FPL.cjs} +1 -1
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-7064EJ1j.cjs → openai-BQl0yJCS.cjs} +1 -1
- package/dist/adapters/{openai-CnUBYFyY.js → openai-C4HrjyJj.js} +1 -1
- package/dist/adapters/{openai-DpGdZL3m.js → openai-D3Nt6Bj7.js} +1 -1
- package/dist/adapters/{openai-B0mByiYQ.cjs → openai-z1ai-G4Q.cjs} +1 -1
- package/dist/adapters/{utils-CN_bxSiq.js → utils-BaxFceDq.js} +6 -1
- package/dist/adapters/{utils-CvC1czqb.cjs → utils-a2p2B6x8.cjs} +2 -2
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/charts/chartConfigHelpers.d.ts +5 -0
- package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +4 -0
- package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
- package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
- package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
- package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
- package/dist/cjs/client/hooks/useAnalysisQuery.d.ts +6 -1
- package/dist/cjs/client/index.d.ts +2 -0
- package/dist/cjs/client/types.d.ts +5 -0
- package/dist/cjs/client/utils/gapFilling.d.ts +52 -0
- package/dist/cjs/client/utils/index.d.ts +1 -0
- package/dist/cjs/server/ai/query-schema.d.ts +1 -1
- package/dist/cjs/server/execution/result-post-processor.d.ts +4 -2
- package/dist/cjs/server/executor.d.ts +2 -0
- package/dist/cjs/server/gap-filler.d.ts +8 -43
- package/dist/cjs/server/types/core.d.ts +2 -0
- package/dist/cjs/server/types/cube.d.ts +12 -0
- package/dist/cjs/server/types/metadata.d.ts +5 -0
- package/dist/cjs/server/types/query.d.ts +2 -1
- package/dist/client/charts/chartConfigHelpers.d.ts +5 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-5ZSP--FQ.js → DashboardEditModal-DifODH4h.js} +2360 -2548
- package/dist/client/chunks/DashboardEditModal-DifODH4h.js.map +1 -0
- package/dist/client/chunks/{DotStripChart-DTukhwG-.js → DotStripChart-B9IVCFPO.js} +3 -3
- package/dist/client/chunks/{DotStripChart-DTukhwG-.js.map → DotStripChart-B9IVCFPO.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js → ProportionBarChart-DieF9AzP.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js.map → ProportionBarChart-DieF9AzP.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-BC5l67Dc.js → RecordsTable-Mo3ai5_M.js} +4 -4
- package/dist/client/chunks/{RecordsTable-BC5l67Dc.js.map → RecordsTable-Mo3ai5_M.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js → RetentionCombinedChart-Bie4ADyA.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js.map → RetentionCombinedChart-Bie4ADyA.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js → RetentionHeatmap-qstIAx5B.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js.map → RetentionHeatmap-qstIAx5B.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-Db4umQtd.js → analysis-builder-D78aDJoL.js} +41 -41
- package/dist/client/chunks/analysis-builder-D78aDJoL.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-BEvvX6ln.js → analysis-builder-shared-CsIs4-Xf.js} +538 -523
- package/dist/client/chunks/analysis-builder-shared-CsIs4-Xf.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-Bbc58UJD.js → chart-activity-grid-Ly_-2B-f.js} +7 -2
- package/dist/client/chunks/chart-activity-grid-Ly_-2B-f.js.map +1 -0
- package/dist/client/chunks/{chart-area-9uCXIvMN.js → chart-area-D3l-71Wy.js} +2 -2
- package/dist/client/chunks/{chart-area-9uCXIvMN.js.map → chart-area-D3l-71Wy.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-C5a1T9Ce.js → chart-bar-BaTyQOqs.js} +3 -3
- package/dist/client/chunks/{chart-bar-C5a1T9Ce.js.map → chart-bar-BaTyQOqs.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js → chart-box-plot-Cem6PHjz.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js.map → chart-box-plot-Cem6PHjz.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-dt5ESb7m.js → chart-bubble-DFlfqCDG.js} +2 -2
- package/dist/client/chunks/{chart-bubble-dt5ESb7m.js.map → chart-bubble-DFlfqCDG.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js → chart-candlestick-BkAFBXtZ.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js.map → chart-candlestick-BkAFBXtZ.js.map} +1 -1
- package/dist/client/chunks/{chart-config-area-DsrZCIwF.js → chart-config-area-BnsRQ-MY.js} +35 -14
- package/dist/client/chunks/chart-config-area-BnsRQ-MY.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-BixSs43E.js → chart-config-bar-G2HJJBVV.js} +8 -7
- package/dist/client/chunks/chart-config-bar-G2HJJBVV.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js → chart-config-kpi-delta-BIAq1Ftg.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js.map → chart-config-kpi-delta-BIAq1Ftg.js.map} +1 -1
- package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js → chart-config-kpi-number-Dgc4gIYu.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js.map → chart-config-kpi-number-Dgc4gIYu.js.map} +1 -1
- package/dist/client/chunks/{chart-config-line-CBF9Px9b.js → chart-config-line-DLkRs1Zr.js} +9 -8
- package/dist/client/chunks/chart-config-line-DLkRs1Zr.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js → chart-config-pie-XrHim0C8.js} +2 -2
- package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js.map → chart-config-pie-XrHim0C8.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js → chart-config-radar-xNS6Juqc.js} +2 -2
- package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js.map → chart-config-radar-xNS6Juqc.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js → chart-config-radial-bar-ChUChsEe.js} +2 -2
- package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js.map → chart-config-radial-bar-ChUChsEe.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js → chart-config-tree-map-CnrJ7OC1.js} +2 -2
- package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js.map → chart-config-tree-map-CnrJ7OC1.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-zSjYEy0r.js → chart-data-table-Cxd0cdAl.js} +36 -36
- package/dist/client/chunks/{chart-data-table-zSjYEy0r.js.map → chart-data-table-Cxd0cdAl.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-CuOSCsbt.js → chart-funnel-71Kn4eeF.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CuOSCsbt.js.map → chart-funnel-71Kn4eeF.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DxKeqCCD.js → chart-gauge-BddS_9oS.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DxKeqCCD.js.map → chart-gauge-BddS_9oS.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js → chart-heat-map-BQIsrn8m.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js.map → chart-heat-map-BQIsrn8m.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js → chart-kpi-delta-DndbqdZT.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js.map → chart-kpi-delta-DndbqdZT.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js → chart-kpi-number-DAbfoHMt.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js.map → chart-kpi-number-DAbfoHMt.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js → chart-kpi-text-D8oQgpxL.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js.map → chart-kpi-text-D8oQgpxL.js.map} +1 -1
- package/dist/client/chunks/{chart-line-CjW9Yo03.js → chart-line-BNqjUowg.js} +3 -3
- package/dist/client/chunks/{chart-line-CjW9Yo03.js.map → chart-line-BNqjUowg.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-Cgs62had.js → chart-markdown-DtgpU3xd.js} +2 -2
- package/dist/client/chunks/{chart-markdown-Cgs62had.js.map → chart-markdown-DtgpU3xd.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js → chart-measure-profile-D5nZMWlI.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js.map → chart-measure-profile-D5nZMWlI.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BTb5nKd7.js → chart-pie-D8r9HCZ4.js} +3 -3
- package/dist/client/chunks/{chart-pie-BTb5nKd7.js.map → chart-pie-D8r9HCZ4.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-8384sPlX.js → chart-radar-R4PuCIWp.js} +3 -3
- package/dist/client/chunks/{chart-radar-8384sPlX.js.map → chart-radar-R4PuCIWp.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js → chart-radial-bar-hmrSFa6O.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js.map → chart-radial-bar-hmrSFa6O.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js → chart-sankey-CFXPybny.js} +2 -2
- package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js.map → chart-sankey-CFXPybny.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-Bdj95OeV.js → chart-scatter-CH82md0L.js} +3 -3
- package/dist/client/chunks/{chart-scatter-Bdj95OeV.js.map → chart-scatter-CH82md0L.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-CuG8520_.js → chart-sunburst-CTj95eEC.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-CuG8520_.js.map → chart-sunburst-CTj95eEC.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CtJADX87.js → chart-tree-map-CmysE4bF.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-CtJADX87.js.map → chart-tree-map-CmysE4bF.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-D430fO48.js → chart-waterfall-Bv1mPvlB.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-D430fO48.js.map → chart-waterfall-Bv1mPvlB.js.map} +1 -1
- package/dist/client/chunks/{charts-core-BSmlKmf0.js → charts-core-BdEQgbqN.js} +2 -2
- package/dist/client/chunks/{charts-core-BSmlKmf0.js.map → charts-core-BdEQgbqN.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DoLQqFXg.js +87 -0
- package/dist/client/chunks/{charts-loader-Bz9yHkW1.js.map → charts-loader-DoLQqFXg.js.map} +1 -1
- package/dist/client/chunks/gapFilling-DKBRHcQL.js +391 -0
- package/dist/client/chunks/gapFilling-DKBRHcQL.js.map +1 -0
- package/dist/client/chunks/{nl-NL-BrqrWoAj.js → nl-NL-DVZXf8U7.js} +6 -1
- package/dist/client/chunks/nl-NL-DVZXf8U7.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-D2NvjQny.js → schema-visualization-MlRrcJQH.js} +3 -3
- package/dist/client/chunks/{schema-visualization-D2NvjQny.js.map → schema-visualization-MlRrcJQH.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-DL_AnCWZ.js → useDirtyStateTracking-DUyYwuN_.js} +318 -293
- package/dist/client/chunks/useDirtyStateTracking-DUyYwuN_.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-CdPWtj7E.js → useExplainAI-BtoS3tb5.js} +4 -4
- package/dist/client/chunks/{useExplainAI-CdPWtj7E.js.map → useExplainAI-BtoS3tb5.js.map} +1 -1
- package/dist/client/chunks/utils-CToHkuhU.js.map +1 -1
- package/dist/client/chunks/{vendor-Bpaolt6h.js → vendor-BfBpNmMa.js} +2 -2
- package/dist/client/chunks/{vendor-Bpaolt6h.js.map → vendor-BfBpNmMa.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +4 -0
- package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
- package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
- package/dist/client/components.js +2 -2
- package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
- package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
- package/dist/client/hooks/useAnalysisQuery.d.ts +6 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +193 -192
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/types.d.ts +5 -0
- package/dist/client/utils/gapFilling.d.ts +52 -0
- package/dist/client/utils/index.d.ts +1 -0
- package/dist/client/utils.js +9 -8
- package/dist/client/utils.js.map +1 -1
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +101 -101
- package/dist/server/ai/query-schema.d.ts +1 -1
- package/dist/server/chartConfigHelpers-BhME7ow_.cjs +1 -0
- package/dist/server/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
- package/dist/server/execution/result-post-processor.d.ts +4 -2
- package/dist/server/executor.d.ts +2 -0
- package/dist/server/gap-filler.d.ts +8 -43
- package/dist/server/index.cjs +34 -34
- package/dist/server/index.js +2049 -2030
- package/dist/server/types/core.d.ts +2 -0
- package/dist/server/types/cube.d.ts +12 -0
- package/dist/server/types/metadata.d.ts +5 -0
- package/dist/server/types/query.d.ts +2 -1
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-BpGv0FYq.js +0 -2
- package/dist/adapters/ActivityGridChart.config-DWs9dRl7.cjs +0 -1
- package/dist/adapters/AreaChart.config-Cn8nAQqj.cjs +0 -1
- package/dist/adapters/AreaChart.config-NDMkAi9w.js +0 -2
- package/dist/adapters/BarChart.config-CuGCupRX.cjs +0 -1
- package/dist/adapters/BarChart.config-D4Ct_ZuS.js +0 -2
- package/dist/adapters/BoxPlotChart.config-BEHZDgrz.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DnC3xk7q.cjs +0 -1
- package/dist/adapters/BubbleChart.config-D0ouKOKS.cjs +0 -1
- package/dist/adapters/BubbleChart.config-Du8aEfdQ.js +0 -2
- package/dist/adapters/CandlestickChart.config-B0B6dKYG.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-DBilZaFc.js +0 -2
- package/dist/adapters/DataTable.config-BXalzUPO.cjs +0 -1
- package/dist/adapters/DataTable.config-CF8BzQHu.js +0 -2
- package/dist/adapters/DotStripChart.config-0ggseDij.cjs +0 -1
- package/dist/adapters/DotStripChart.config-CfHh0XSW.js +0 -2
- package/dist/adapters/FunnelChart.config-AcSpen_Q.js +0 -2
- package/dist/adapters/FunnelChart.config-D6k89qDc.cjs +0 -1
- package/dist/adapters/GaugeChart.config-B5BcrEvW.cjs +0 -1
- package/dist/adapters/GaugeChart.config-BChbha74.js +0 -2
- package/dist/adapters/HeatMapChart.config-BgkP8kiW.js +0 -2
- package/dist/adapters/HeatMapChart.config-Crq7vBwj.cjs +0 -1
- package/dist/adapters/KpiDelta.config-Cqu1WOkV.js +0 -2
- package/dist/adapters/KpiDelta.config-edWLG1bM.cjs +0 -1
- package/dist/adapters/KpiNumber.config-BLkE67us.cjs +0 -1
- package/dist/adapters/KpiNumber.config-DNsH72Rs.js +0 -2
- package/dist/adapters/KpiText.config-CAnLZYht.cjs +0 -1
- package/dist/adapters/KpiText.config-CQGd10Hj.js +0 -2
- package/dist/adapters/LineChart.config-C7l_xff-.js +0 -2
- package/dist/adapters/LineChart.config-DOxwtnfG.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BV5j1oJl.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-CBkJAEpW.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-CyyFz-x_.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-VIvr7lq6.js +0 -2
- package/dist/adapters/PieChart.config-BP8OlSJ4.js +0 -2
- package/dist/adapters/PieChart.config-BaMxIlBa.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-CtZaP8Xn.js +0 -2
- package/dist/adapters/ProportionBarChart.config-DAyEQ8Pn.cjs +0 -1
- package/dist/adapters/RadarChart.config-CG07QZUT.cjs +0 -1
- package/dist/adapters/RadarChart.config-DJJuD-Tb.js +0 -2
- package/dist/adapters/RadialBarChart.config-BNgzWkot.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-DVM_jg9B.js +0 -2
- package/dist/adapters/RecordsTable.config-BEQmKQ-S.cjs +0 -1
- package/dist/adapters/RecordsTable.config-d4s8HV9m.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-DJ4N-ffd.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-DV1h3rW2.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CIJDenRg.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-P3VVn3QJ.js +0 -2
- package/dist/adapters/SankeyChart.config-CQ89DYf7.cjs +0 -1
- package/dist/adapters/SankeyChart.config-CfMmdmXJ.js +0 -2
- package/dist/adapters/ScatterChart.config-C4zrFpF-.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DaJ3LVWH.js +0 -2
- package/dist/adapters/SunburstChart.config-1ZRhfGr0.cjs +0 -1
- package/dist/adapters/SunburstChart.config-DHgrSIkQ.js +0 -2
- package/dist/adapters/TreeMapChart.config-Cy3sAsJP.js +0 -2
- package/dist/adapters/TreeMapChart.config-D365WWEK.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-DYEf1vQT.js +0 -2
- package/dist/adapters/WaterfallChart.config-s8pICbm8.cjs +0 -1
- package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +0 -1
- package/dist/adapters/handler-B78akmC_.cjs +0 -16
- package/dist/adapters/mcp-app-html-C1fEW5oE.js +0 -5
- package/dist/adapters/mcp-app-html-CGk4ubE0.cjs +0 -1
- package/dist/client/chunks/DashboardEditModal-5ZSP--FQ.js.map +0 -1
- package/dist/client/chunks/analysis-builder-Db4umQtd.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-BEvvX6ln.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-Bbc58UJD.js.map +0 -1
- package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-BixSs43E.js.map +0 -1
- package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +0 -1
- package/dist/client/chunks/charts-loader-Bz9yHkW1.js +0 -87
- package/dist/client/chunks/nl-NL-BrqrWoAj.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-DL_AnCWZ.js.map +0 -1
- package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, R as _, S as v, T as y, U as ee, V as te, W as ne, X as b, Y as x, Z as S, at as C, ct as w, dt as re, et as ie, ft as ae, gt as oe, ht as se, it as T, j as ce, k as le, lt as ue, mt as E, nt as de, ot as fe, pt as pe, q as me, rt as he, st as D, tt as ge, ut as _e, w as O, x as ve, z as k } from "./utils-
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, R as _, S as v, T as y, U as ee, V as te, W as ne, X as b, Y as x, Z as S, at as C, ct as w, dt as re, et as ie, ft as ae, gt as oe, ht as se, it as T, j as ce, k as le, lt as ue, mt as E, nt as de, ot as fe, pt as pe, q as me, rt as he, st as D, tt as ge, ut as _e, w as O, x as ve, z as k } from "./utils-BaxFceDq.js";
|
|
2
2
|
//#region node_modules/drizzle-orm/sql/expressions/select.js
|
|
3
3
|
function ye(e) {
|
|
4
4
|
return E`${e} asc`;
|
|
@@ -2981,13 +2981,14 @@ function Kt(e, t) {
|
|
|
2981
2981
|
title: a.title || i,
|
|
2982
2982
|
shortTitle: a.title || i,
|
|
2983
2983
|
type: a.type,
|
|
2984
|
-
granularity: r.granularity
|
|
2984
|
+
granularity: r.granularity,
|
|
2985
|
+
...a.fillMissingDates !== void 0 && { fillMissingDates: a.fillMissingDates }
|
|
2985
2986
|
});
|
|
2986
2987
|
}
|
|
2987
2988
|
return n;
|
|
2988
2989
|
}
|
|
2989
2990
|
//#endregion
|
|
2990
|
-
//#region src/
|
|
2991
|
+
//#region src/shared/gap-filler.ts
|
|
2991
2992
|
var qt = 1e4;
|
|
2992
2993
|
function Jt(e, t, n) {
|
|
2993
2994
|
let r = [], i = Yt(new Date(e), n), a = Yt(new Date(t), n);
|
|
@@ -3096,9 +3097,9 @@ function tn(e, t, n) {
|
|
|
3096
3097
|
}
|
|
3097
3098
|
function K(e) {
|
|
3098
3099
|
if (!e) return null;
|
|
3099
|
-
if (
|
|
3100
|
+
if (typeof e != "string") {
|
|
3100
3101
|
if (e.length < 2) return null;
|
|
3101
|
-
let t = new Date(e[0]), n = new Date(e[1]);
|
|
3102
|
+
let t = new Date(String(e[0])), n = new Date(String(e[1]));
|
|
3102
3103
|
return isNaN(t.getTime()) || isNaN(n.getTime()) ? null : [t, n];
|
|
3103
3104
|
}
|
|
3104
3105
|
let t = me(e);
|
|
@@ -3106,28 +3107,28 @@ function K(e) {
|
|
|
3106
3107
|
let n = new Date(e);
|
|
3107
3108
|
return isNaN(n.getTime()) ? null : [n, n];
|
|
3108
3109
|
}
|
|
3109
|
-
function nn(e, t, n) {
|
|
3110
|
+
function nn(e, t, n, r) {
|
|
3110
3111
|
if (!t.timeDimensions || t.timeDimensions.length === 0) return e;
|
|
3111
|
-
let
|
|
3112
|
-
let n =
|
|
3113
|
-
return n &&
|
|
3112
|
+
let i = t.timeDimensions.filter((e) => {
|
|
3113
|
+
let n = !!e.granularity, i = e.dateRange || q(e.dimension, t.filters);
|
|
3114
|
+
return n && !!i && r(e);
|
|
3114
3115
|
});
|
|
3115
|
-
if (
|
|
3116
|
-
let
|
|
3117
|
-
for (let e of
|
|
3116
|
+
if (i.length === 0) return e;
|
|
3117
|
+
let a = t.fillMissingDatesValue === void 0 ? 0 : t.fillMissingDatesValue, o = new Set(t.timeDimensions.map((e) => e.dimension)), s = (t.dimensions || []).filter((e) => !o.has(e)), c = e;
|
|
3118
|
+
for (let e of i) {
|
|
3118
3119
|
let r = K(e.dateRange) || rn(e.dimension, t.filters);
|
|
3119
3120
|
if (!r) continue;
|
|
3120
|
-
let
|
|
3121
|
+
let i = {
|
|
3121
3122
|
timeDimensionKey: e.dimension,
|
|
3122
3123
|
granularity: e.granularity,
|
|
3123
3124
|
dateRange: r,
|
|
3124
|
-
fillValue:
|
|
3125
|
+
fillValue: a,
|
|
3125
3126
|
measures: n,
|
|
3126
|
-
dimensions:
|
|
3127
|
+
dimensions: s
|
|
3127
3128
|
};
|
|
3128
|
-
|
|
3129
|
+
c = $t(c, i);
|
|
3129
3130
|
}
|
|
3130
|
-
return
|
|
3131
|
+
return c;
|
|
3131
3132
|
}
|
|
3132
3133
|
function q(e, t) {
|
|
3133
3134
|
if (!t) return null;
|
|
@@ -3160,9 +3161,18 @@ function rn(e, t) {
|
|
|
3160
3161
|
return r.length >= 2 ? K(r) : null;
|
|
3161
3162
|
}
|
|
3162
3163
|
//#endregion
|
|
3164
|
+
//#region src/server/gap-filler.ts
|
|
3165
|
+
function an(e, t) {
|
|
3166
|
+
let [n, r] = t.split(".");
|
|
3167
|
+
return e?.get(n)?.dimensions?.[r]?.fillMissingDates;
|
|
3168
|
+
}
|
|
3169
|
+
function on(e, t, n, r = !1) {
|
|
3170
|
+
return t.ungrouped ? e : nn(e, t, t.measures || [], (e) => e.fillMissingDates ?? an(n, e.dimension) ?? r);
|
|
3171
|
+
}
|
|
3172
|
+
//#endregion
|
|
3163
3173
|
//#region src/server/execution/result-post-processor.ts
|
|
3164
|
-
function
|
|
3165
|
-
return
|
|
3174
|
+
function sn(e, t, n, r, i = !1) {
|
|
3175
|
+
return on(Array.isArray(e) ? e.map((e) => {
|
|
3166
3176
|
let r = { ...e };
|
|
3167
3177
|
if (t.timeDimensions) {
|
|
3168
3178
|
for (let e of t.timeDimensions) if (e.dimension in r) {
|
|
@@ -3175,11 +3185,11 @@ function an(e, t, n) {
|
|
|
3175
3185
|
}
|
|
3176
3186
|
}
|
|
3177
3187
|
return r;
|
|
3178
|
-
}) : [e], t,
|
|
3188
|
+
}) : [e], t, r, i);
|
|
3179
3189
|
}
|
|
3180
3190
|
//#endregion
|
|
3181
3191
|
//#region src/server/execution/filter-cache-preloader.ts
|
|
3182
|
-
var
|
|
3192
|
+
var cn = class {
|
|
3183
3193
|
queryBuilder;
|
|
3184
3194
|
constructor(e) {
|
|
3185
3195
|
this.queryBuilder = e;
|
|
@@ -3213,7 +3223,7 @@ var on = class {
|
|
|
3213
3223
|
let o = C(a.sql, r), s = this.queryBuilder.buildDateRangeCondition(o, e.dateRange);
|
|
3214
3224
|
s && t.set(i, s);
|
|
3215
3225
|
}
|
|
3216
|
-
},
|
|
3226
|
+
}, ln = class {
|
|
3217
3227
|
builders;
|
|
3218
3228
|
constructor(e) {
|
|
3219
3229
|
this.builders = e;
|
|
@@ -3249,32 +3259,32 @@ var on = class {
|
|
|
3249
3259
|
};
|
|
3250
3260
|
//#endregion
|
|
3251
3261
|
//#region src/server/cache-utils.ts
|
|
3252
|
-
function
|
|
3253
|
-
let i = n.keyPrefix ?? "drizzle-cube:", a =
|
|
3262
|
+
function un(e, t, n = {}, r) {
|
|
3263
|
+
let i = n.keyPrefix ?? "drizzle-cube:", a = dn(e), o = `${i}query:${gn(JSON.stringify(a))}`;
|
|
3254
3264
|
if (n.includeSecurityContext !== !1) {
|
|
3255
|
-
let e =
|
|
3265
|
+
let e = gn(n.securityContextSerializer ? n.securityContextSerializer(t) : JSON.stringify(Y(t)));
|
|
3256
3266
|
o += `:ctx:${e}`;
|
|
3257
3267
|
}
|
|
3258
3268
|
return r && (o += `:cubes:${r}`), o;
|
|
3259
3269
|
}
|
|
3260
|
-
function
|
|
3270
|
+
function dn(e) {
|
|
3261
3271
|
return {
|
|
3262
3272
|
measures: e.measures ? [...e.measures].sort() : void 0,
|
|
3263
3273
|
dimensions: e.dimensions ? [...e.dimensions].sort() : void 0,
|
|
3264
3274
|
filters: e.filters ? J(e.filters) : void 0,
|
|
3265
|
-
timeDimensions: e.timeDimensions ?
|
|
3275
|
+
timeDimensions: e.timeDimensions ? hn(e.timeDimensions) : void 0,
|
|
3266
3276
|
limit: e.limit,
|
|
3267
3277
|
offset: e.offset,
|
|
3268
3278
|
order: e.order ? Y(e.order) : void 0,
|
|
3269
3279
|
fillMissingDatesValue: e.fillMissingDatesValue,
|
|
3270
3280
|
ungrouped: e.ungrouped,
|
|
3271
3281
|
total: e.total,
|
|
3272
|
-
funnel: e.funnel ?
|
|
3273
|
-
flow: e.flow ?
|
|
3274
|
-
retention: e.retention ?
|
|
3282
|
+
funnel: e.funnel ? fn(e.funnel) : void 0,
|
|
3283
|
+
flow: e.flow ? pn(e.flow) : void 0,
|
|
3284
|
+
retention: e.retention ? mn(e.retention) : void 0
|
|
3275
3285
|
};
|
|
3276
3286
|
}
|
|
3277
|
-
function
|
|
3287
|
+
function fn(e) {
|
|
3278
3288
|
return {
|
|
3279
3289
|
bindingKey: e.bindingKey,
|
|
3280
3290
|
timeDimension: e.timeDimension,
|
|
@@ -3290,7 +3300,7 @@ function un(e) {
|
|
|
3290
3300
|
globalTimeWindow: e.globalTimeWindow
|
|
3291
3301
|
};
|
|
3292
3302
|
}
|
|
3293
|
-
function
|
|
3303
|
+
function pn(e) {
|
|
3294
3304
|
return {
|
|
3295
3305
|
bindingKey: e.bindingKey,
|
|
3296
3306
|
timeDimension: e.timeDimension,
|
|
@@ -3306,7 +3316,7 @@ function dn(e) {
|
|
|
3306
3316
|
joinStrategy: e.joinStrategy
|
|
3307
3317
|
};
|
|
3308
3318
|
}
|
|
3309
|
-
function
|
|
3319
|
+
function mn(e) {
|
|
3310
3320
|
return {
|
|
3311
3321
|
timeDimension: e.timeDimension,
|
|
3312
3322
|
bindingKey: e.bindingKey,
|
|
@@ -3330,7 +3340,7 @@ function J(e) {
|
|
|
3330
3340
|
};
|
|
3331
3341
|
}).sort((e, t) => JSON.stringify(e).localeCompare(JSON.stringify(t)));
|
|
3332
3342
|
}
|
|
3333
|
-
function
|
|
3343
|
+
function hn(e) {
|
|
3334
3344
|
return [...e].map((e) => ({
|
|
3335
3345
|
dimension: e.dimension,
|
|
3336
3346
|
granularity: e.granularity,
|
|
@@ -3345,7 +3355,7 @@ function pn(e) {
|
|
|
3345
3355
|
function Y(e) {
|
|
3346
3356
|
return typeof e != "object" || !e ? e : Array.isArray(e) ? e.map(Y) : Object.keys(e).sort().reduce((t, n) => (t[n] = Y(e[n]), t), {});
|
|
3347
3357
|
}
|
|
3348
|
-
function
|
|
3358
|
+
function gn(e) {
|
|
3349
3359
|
let t = 2166136261, n = 2246822519, r = 3266489917, i = 668265263, a = 16777619;
|
|
3350
3360
|
for (let o = 0; o < e.length; o++) {
|
|
3351
3361
|
let s = e.charCodeAt(o);
|
|
@@ -3355,13 +3365,13 @@ function mn(e) {
|
|
|
3355
3365
|
}
|
|
3356
3366
|
//#endregion
|
|
3357
3367
|
//#region src/server/execution/query-result-cache.ts
|
|
3358
|
-
var
|
|
3368
|
+
var _n = class {
|
|
3359
3369
|
cacheConfig;
|
|
3360
3370
|
constructor(e) {
|
|
3361
3371
|
this.cacheConfig = e;
|
|
3362
3372
|
}
|
|
3363
3373
|
generateKey(e, t, n) {
|
|
3364
|
-
if (this.cacheConfig?.enabled !== !1 && this.cacheConfig?.provider) return
|
|
3374
|
+
if (this.cacheConfig?.enabled !== !1 && this.cacheConfig?.provider) return un(e, t, this.cacheConfig, n);
|
|
3365
3375
|
}
|
|
3366
3376
|
async lookup(e, t) {
|
|
3367
3377
|
if (e && this.cacheConfig?.provider) {
|
|
@@ -3415,7 +3425,7 @@ var hn = class {
|
|
|
3415
3425
|
this.cacheConfig.onError?.(e, "set");
|
|
3416
3426
|
}
|
|
3417
3427
|
}
|
|
3418
|
-
},
|
|
3428
|
+
}, vn = class {
|
|
3419
3429
|
dateTimeBuilder;
|
|
3420
3430
|
constructor(e) {
|
|
3421
3431
|
this.dateTimeBuilder = new z(e);
|
|
@@ -3546,7 +3556,7 @@ var hn = class {
|
|
|
3546
3556
|
return typeof i == "string" && typeof a == "string" ? new Date(i).getTime() - new Date(a).getTime() : 0;
|
|
3547
3557
|
});
|
|
3548
3558
|
}
|
|
3549
|
-
},
|
|
3559
|
+
}, yn = class {
|
|
3550
3560
|
databaseAdapter;
|
|
3551
3561
|
filterBuilder;
|
|
3552
3562
|
dateTimeBuilder;
|
|
@@ -3844,7 +3854,7 @@ var hn = class {
|
|
|
3844
3854
|
let o = i.db.select(a).from(e);
|
|
3845
3855
|
return i.db.$with("funnel_metrics").as(o);
|
|
3846
3856
|
}
|
|
3847
|
-
},
|
|
3857
|
+
}, bn = class {
|
|
3848
3858
|
filterBuilder;
|
|
3849
3859
|
dateTimeBuilder;
|
|
3850
3860
|
databaseAdapter;
|
|
@@ -4242,27 +4252,27 @@ var hn = class {
|
|
|
4242
4252
|
};
|
|
4243
4253
|
//#endregion
|
|
4244
4254
|
//#region src/server/types/retention.ts
|
|
4245
|
-
function
|
|
4255
|
+
function xn(e) {
|
|
4246
4256
|
return Array.isArray(e);
|
|
4247
4257
|
}
|
|
4248
|
-
function
|
|
4258
|
+
function Sn(e) {
|
|
4249
4259
|
return typeof e == "object" && !!e && "cube" in e;
|
|
4250
4260
|
}
|
|
4251
|
-
function
|
|
4252
|
-
if (
|
|
4261
|
+
function Cn(e) {
|
|
4262
|
+
if (Sn(e)) return e.cube;
|
|
4253
4263
|
let t = e.indexOf(".");
|
|
4254
4264
|
if (t === -1) throw Error(`Invalid time dimension format: ${e}. Expected 'CubeName.dimensionName'`);
|
|
4255
4265
|
return e.substring(0, t);
|
|
4256
4266
|
}
|
|
4257
|
-
function
|
|
4258
|
-
if (
|
|
4267
|
+
function wn(e) {
|
|
4268
|
+
if (Sn(e)) return e.dimension;
|
|
4259
4269
|
let t = e.indexOf(".");
|
|
4260
4270
|
if (t === -1) throw Error(`Invalid time dimension format: ${e}. Expected 'CubeName.dimensionName'`);
|
|
4261
4271
|
return e.substring(t + 1);
|
|
4262
4272
|
}
|
|
4263
4273
|
//#endregion
|
|
4264
4274
|
//#region src/server/builders/retention-query-builder.ts
|
|
4265
|
-
var
|
|
4275
|
+
var Tn = {
|
|
4266
4276
|
noMapping: ({ cubeName: e }) => x("server.validation.retention.noBindingKeyMapping", { cubeName: e }),
|
|
4267
4277
|
cubeNotFound: ({ cubeName: e }) => x("server.validation.retention.bindingKeyCubeNotFound", { cubeName: e }),
|
|
4268
4278
|
keyDimNotFound: ({ bindingKey: e, cubeName: t }) => x("server.validation.retention.bindingKeyDimNotFound", {
|
|
@@ -4273,7 +4283,7 @@ var Cn = {
|
|
|
4273
4283
|
dimName: e,
|
|
4274
4284
|
cubeName: t
|
|
4275
4285
|
})
|
|
4276
|
-
},
|
|
4286
|
+
}, En = class {
|
|
4277
4287
|
databaseAdapter;
|
|
4278
4288
|
filterBuilder;
|
|
4279
4289
|
dateTimeBuilder;
|
|
@@ -4292,14 +4302,14 @@ var Cn = {
|
|
|
4292
4302
|
}
|
|
4293
4303
|
validateTimeDimension(e, t, n) {
|
|
4294
4304
|
try {
|
|
4295
|
-
let r =
|
|
4305
|
+
let r = Cn(e.timeDimension), i = wn(e.timeDimension), a = t.get(r);
|
|
4296
4306
|
a ? a.dimensions?.[i] || n.push(x("server.validation.retention.timeDimNotFound", { dimName: i })) : n.push(x("server.validation.retention.cubeNotFound", { cubeName: r }));
|
|
4297
4307
|
} catch {
|
|
4298
4308
|
n.push(x("server.validation.retention.invalidTimeDimFormat", { timeDimension: e.timeDimension }));
|
|
4299
4309
|
}
|
|
4300
4310
|
}
|
|
4301
4311
|
validateBindingKey(e, t, n) {
|
|
4302
|
-
if (
|
|
4312
|
+
if (xn(e.bindingKey)) {
|
|
4303
4313
|
for (let r of e.bindingKey) {
|
|
4304
4314
|
let e = t.get(r.cube);
|
|
4305
4315
|
if (!e) {
|
|
@@ -4394,11 +4404,11 @@ var Cn = {
|
|
|
4394
4404
|
});
|
|
4395
4405
|
}
|
|
4396
4406
|
resolveConfig(e, t, n) {
|
|
4397
|
-
let r =
|
|
4407
|
+
let r = Cn(e.timeDimension), i = wn(e.timeDimension), a = t.get(r);
|
|
4398
4408
|
if (!a) throw Error(x("server.validation.retention.cubeNotFound", { cubeName: r }));
|
|
4399
4409
|
let o = a.dimensions?.[i];
|
|
4400
4410
|
if (!o) throw Error(x("server.validation.retention.timeDimNotFound", { dimName: i }));
|
|
4401
|
-
let s = C(o.sql, n), c = At(e.bindingKey, a, n,
|
|
4411
|
+
let s = C(o.sql, n), c = At(e.bindingKey, a, n, Tn, t), l = this.buildFilterConditions(e.cohortFilters, a, t, n), u = this.buildFilterConditions(e.activityFilters, a, t, n), d = [];
|
|
4402
4412
|
if (e.breakdownDimensions && e.breakdownDimensions.length > 0) for (let r of e.breakdownDimensions) {
|
|
4403
4413
|
let [e, i] = r.split("."), a = t.get(e);
|
|
4404
4414
|
if (a && a.dimensions?.[i]) {
|
|
@@ -4557,7 +4567,7 @@ function Z(e, t) {
|
|
|
4557
4567
|
};
|
|
4558
4568
|
}) : [];
|
|
4559
4569
|
}
|
|
4560
|
-
function
|
|
4570
|
+
function Dn(e, t) {
|
|
4561
4571
|
return e.dimensions ? e.dimensions.map((e) => {
|
|
4562
4572
|
let [n, r] = e.split("."), i = t.get(n);
|
|
4563
4573
|
if (!i) throw Error(x("server.errors.cubeNotFoundForDimension", {
|
|
@@ -4571,7 +4581,7 @@ function Tn(e, t) {
|
|
|
4571
4581
|
};
|
|
4572
4582
|
}) : [];
|
|
4573
4583
|
}
|
|
4574
|
-
function
|
|
4584
|
+
function On(e, t) {
|
|
4575
4585
|
return e.timeDimensions ? e.timeDimensions.map((e) => {
|
|
4576
4586
|
let [n, r] = e.dimension.split("."), i = t.get(n);
|
|
4577
4587
|
if (!i) throw Error(x("server.errors.cubeNotFoundForTimeDimension", {
|
|
@@ -4589,14 +4599,14 @@ function En(e, t) {
|
|
|
4589
4599
|
};
|
|
4590
4600
|
}) : [];
|
|
4591
4601
|
}
|
|
4592
|
-
function
|
|
4602
|
+
function kn(e, t) {
|
|
4593
4603
|
return {
|
|
4594
4604
|
measures: Z(e, t),
|
|
4595
|
-
dimensions:
|
|
4596
|
-
timeDimensions:
|
|
4605
|
+
dimensions: Dn(e, t),
|
|
4606
|
+
timeDimensions: On(e, t)
|
|
4597
4607
|
};
|
|
4598
4608
|
}
|
|
4599
|
-
function
|
|
4609
|
+
function An(e, t) {
|
|
4600
4610
|
return {
|
|
4601
4611
|
measures: e.measures.map((e) => {
|
|
4602
4612
|
let [n, r] = e.split(".");
|
|
@@ -4615,7 +4625,7 @@ function On(e, t) {
|
|
|
4615
4625
|
}
|
|
4616
4626
|
//#endregion
|
|
4617
4627
|
//#region src/server/logical-plan/logical-plan-builder.ts
|
|
4618
|
-
var
|
|
4628
|
+
var jn = class {
|
|
4619
4629
|
queryPlanner;
|
|
4620
4630
|
constructor(e) {
|
|
4621
4631
|
this.queryPlanner = e;
|
|
@@ -4736,7 +4746,7 @@ var kn = class {
|
|
|
4736
4746
|
let t = X(e.cube);
|
|
4737
4747
|
return {
|
|
4738
4748
|
type: "ctePreAggregate",
|
|
4739
|
-
schema:
|
|
4749
|
+
schema: An(e, r),
|
|
4740
4750
|
cube: t,
|
|
4741
4751
|
alias: e.alias,
|
|
4742
4752
|
cteAlias: e.cteAlias,
|
|
@@ -4751,7 +4761,7 @@ var kn = class {
|
|
|
4751
4761
|
});
|
|
4752
4762
|
return {
|
|
4753
4763
|
type: "simpleSource",
|
|
4754
|
-
schema:
|
|
4764
|
+
schema: kn(i, r),
|
|
4755
4765
|
primaryCube: a,
|
|
4756
4766
|
joins: o,
|
|
4757
4767
|
ctes: s
|
|
@@ -4779,7 +4789,7 @@ var kn = class {
|
|
|
4779
4789
|
if (r.has(a) || !t.get(a)) return null;
|
|
4780
4790
|
let o = Array.from(r);
|
|
4781
4791
|
if (!o.every((e) => this.hasDirectJoinToSharedDimension(t.get(e), a, t))) return null;
|
|
4782
|
-
let s =
|
|
4792
|
+
let s = Dn(e, t), c = On(e, t), l = {
|
|
4783
4793
|
measures: Z(e, t),
|
|
4784
4794
|
dimensions: s,
|
|
4785
4795
|
timeDimensions: c
|
|
@@ -4941,7 +4951,7 @@ var kn = class {
|
|
|
4941
4951
|
return Array.from(t.values());
|
|
4942
4952
|
}
|
|
4943
4953
|
buildQueryNode(e, t, n, r) {
|
|
4944
|
-
let i =
|
|
4954
|
+
let i = kn(t, n), { measures: a, dimensions: o, timeDimensions: s } = i, c = this.buildOrderByRefs(t);
|
|
4945
4955
|
return {
|
|
4946
4956
|
type: "query",
|
|
4947
4957
|
schema: i,
|
|
@@ -4977,7 +4987,7 @@ var kn = class {
|
|
|
4977
4987
|
direction: t
|
|
4978
4988
|
})) : [];
|
|
4979
4989
|
}
|
|
4980
|
-
},
|
|
4990
|
+
}, Mn = class {
|
|
4981
4991
|
name = "identity";
|
|
4982
4992
|
optimise(e) {
|
|
4983
4993
|
return e;
|
|
@@ -4985,11 +4995,11 @@ var kn = class {
|
|
|
4985
4995
|
};
|
|
4986
4996
|
//#endregion
|
|
4987
4997
|
//#region src/server/physical-plan/processors/cte-processor.ts
|
|
4988
|
-
function
|
|
4989
|
-
let i =
|
|
4998
|
+
function Nn(e, t, n, r) {
|
|
4999
|
+
let i = Pn(e, n, r), a = [], o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
|
|
4990
5000
|
if (e.preAggregationCTEs && e.preAggregationCTEs.length > 0) for (let c of e.preAggregationCTEs) {
|
|
4991
5001
|
let l = r.cteBuilder.buildPreAggregationCTE(c, t, n, e, i);
|
|
4992
|
-
l && (a.push(l), o.set(c.cube.name, c.cteAlias),
|
|
5002
|
+
l && (a.push(l), o.set(c.cube.name, c.cteAlias), Fn(c, s));
|
|
4993
5003
|
}
|
|
4994
5004
|
return {
|
|
4995
5005
|
preBuiltFilterMap: i,
|
|
@@ -4998,7 +5008,7 @@ function jn(e, t, n, r) {
|
|
|
4998
5008
|
downstreamCubeMap: s
|
|
4999
5009
|
};
|
|
5000
5010
|
}
|
|
5001
|
-
function
|
|
5011
|
+
function Pn(e, t, n) {
|
|
5002
5012
|
let r = /* @__PURE__ */ new Map();
|
|
5003
5013
|
if (!e.preAggregationCTEs || e.preAggregationCTEs.length === 0) return r;
|
|
5004
5014
|
for (let i of e.preAggregationCTEs) if (i.propagatingFilters && i.propagatingFilters.length !== 0) for (let e of i.propagatingFilters) {
|
|
@@ -5012,7 +5022,7 @@ function Mn(e, t, n) {
|
|
|
5012
5022
|
}
|
|
5013
5023
|
return r;
|
|
5014
5024
|
}
|
|
5015
|
-
function
|
|
5025
|
+
function Fn(e, t) {
|
|
5016
5026
|
if (e.downstreamJoinKeys) for (let n of e.downstreamJoinKeys) t.set(n.targetCubeName, {
|
|
5017
5027
|
cteAlias: e.cteAlias,
|
|
5018
5028
|
joinKeys: n.joinKeys
|
|
@@ -5020,7 +5030,7 @@ function Nn(e, t) {
|
|
|
5020
5030
|
}
|
|
5021
5031
|
//#endregion
|
|
5022
5032
|
//#region src/server/physical-plan/processors/window-processor.ts
|
|
5023
|
-
function
|
|
5033
|
+
function In(e, t, n, r, i, a) {
|
|
5024
5034
|
if (n.measures) for (let o of n.measures) {
|
|
5025
5035
|
let [s, c] = o.split("."), l = i.get(s);
|
|
5026
5036
|
if (!l?.measures?.[c]) continue;
|
|
@@ -5036,11 +5046,11 @@ function Pn(e, t, n, r, i, a) {
|
|
|
5036
5046
|
_ = E`sum(${e})`;
|
|
5037
5047
|
} else _ = a.queryBuilder.buildMeasureExpression(h, r, m);
|
|
5038
5048
|
e[d] || (e[d] = E`${_}`.as(d));
|
|
5039
|
-
let v =
|
|
5049
|
+
let v = Ln(u, _, n, r, l, t, a);
|
|
5040
5050
|
v && (e[o] = E`${v}`.as(o));
|
|
5041
5051
|
}
|
|
5042
5052
|
}
|
|
5043
|
-
function
|
|
5053
|
+
function Ln(e, t, n, r, i, a, o) {
|
|
5044
5054
|
let s = e.windowConfig || {}, c = (e, t) => {
|
|
5045
5055
|
if (!a.preAggregationCTEs) return null;
|
|
5046
5056
|
let n = a.preAggregationCTEs.find((t) => t.cube?.name === e);
|
|
@@ -5110,23 +5120,23 @@ function Fn(e, t, n, r, i, a, o) {
|
|
|
5110
5120
|
}
|
|
5111
5121
|
//#endregion
|
|
5112
5122
|
//#region src/server/physical-plan/processors/selection-processor.ts
|
|
5113
|
-
function
|
|
5123
|
+
function Rn(e, t, n, r, i) {
|
|
5114
5124
|
let a = { ...i.queryBuilder.buildSelections(e.joinCubes.length > 0 ? r : e.primaryCube, t, n) };
|
|
5115
|
-
if (e.preAggregationCTEs) for (let o of e.preAggregationCTEs)
|
|
5116
|
-
return
|
|
5125
|
+
if (e.preAggregationCTEs) for (let o of e.preAggregationCTEs) zn(a, o, t, n, r, i), Vn(a, o, r);
|
|
5126
|
+
return In(a, e, t, n, r, i), a;
|
|
5117
5127
|
}
|
|
5118
|
-
function
|
|
5128
|
+
function zn(e, t, n, r, i, a) {
|
|
5119
5129
|
let o = t.cube.name;
|
|
5120
5130
|
for (let s of t.measures) {
|
|
5121
5131
|
if (!e[s]) continue;
|
|
5122
5132
|
let [, c] = s.split("."), l = i.get(o);
|
|
5123
5133
|
if (!l?.measures?.[c]) continue;
|
|
5124
5134
|
let u = l.measures[c], d = E`${E.identifier(t.cteAlias)}.${E.identifier(c)}`, f;
|
|
5125
|
-
f = u.type === "calculated" && u.calculatedSql ? a.queryBuilder.buildCTECalculatedMeasure(u, l, t, i, r) :
|
|
5135
|
+
f = u.type === "calculated" && u.calculatedSql ? a.queryBuilder.buildCTECalculatedMeasure(u, l, t, i, r) : Bn(u, d, t, n, i, a), e[s] = E`${f}`.as(s);
|
|
5126
5136
|
}
|
|
5127
5137
|
}
|
|
5128
|
-
function
|
|
5129
|
-
let o = n.cteReason === "fanOutPrevention", s =
|
|
5138
|
+
function Bn(e, t, n, r, i, a) {
|
|
5139
|
+
let o = n.cteReason === "fanOutPrevention", s = Hn(n, r, i), c = o || s;
|
|
5130
5140
|
switch (e.type) {
|
|
5131
5141
|
case "count":
|
|
5132
5142
|
case "countDistinct":
|
|
@@ -5138,7 +5148,7 @@ function Rn(e, t, n, r, i, a) {
|
|
|
5138
5148
|
default: return c ? j(t) : A(t);
|
|
5139
5149
|
}
|
|
5140
5150
|
}
|
|
5141
|
-
function
|
|
5151
|
+
function Vn(e, t, n) {
|
|
5142
5152
|
let r = t.cube.name;
|
|
5143
5153
|
for (let i in e) {
|
|
5144
5154
|
let [a, o] = i.split(".");
|
|
@@ -5153,10 +5163,10 @@ function zn(e, t, n) {
|
|
|
5153
5163
|
(u || l && s?.dimensions?.[o]) && (e[i] = E`${E.identifier(t.cteAlias)}.${E.identifier(o)}`.as(i));
|
|
5154
5164
|
}
|
|
5155
5165
|
}
|
|
5156
|
-
function
|
|
5157
|
-
return e.cteReason !== "hasMany" || e.downstreamJoinKeys && e.downstreamJoinKeys.length > 0 || e.intermediateJoins && e.intermediateJoins.length > 0 || !(t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0) || t.dimensions?.some((t) => t.startsWith(`${e.cube.name}.`)) || t.timeDimensions?.some((t) => t.dimension.startsWith(`${e.cube.name}.`)) ? !1 : e.joinKeys.length > 0 && e.joinKeys.every((e) => !!e.sourceColumnObj &&
|
|
5166
|
+
function Hn(e, t, n) {
|
|
5167
|
+
return e.cteReason !== "hasMany" || e.downstreamJoinKeys && e.downstreamJoinKeys.length > 0 || e.intermediateJoins && e.intermediateJoins.length > 0 || !(t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0) || t.dimensions?.some((t) => t.startsWith(`${e.cube.name}.`)) || t.timeDimensions?.some((t) => t.dimension.startsWith(`${e.cube.name}.`)) ? !1 : e.joinKeys.length > 0 && e.joinKeys.every((e) => !!e.sourceColumnObj && Un(e.sourceColumnObj, t, n));
|
|
5158
5168
|
}
|
|
5159
|
-
function
|
|
5169
|
+
function Un(e, t, n) {
|
|
5160
5170
|
if (t.dimensions) for (let r of t.dimensions) {
|
|
5161
5171
|
let [t, i] = r.split(".");
|
|
5162
5172
|
if (n.get(t)?.dimensions?.[i]?.sql === e) return !0;
|
|
@@ -5178,20 +5188,20 @@ function Q(e, t, n, r) {
|
|
|
5178
5188
|
default: return e.leftJoin(n, r);
|
|
5179
5189
|
}
|
|
5180
5190
|
}
|
|
5181
|
-
function
|
|
5191
|
+
function Wn(e) {
|
|
5182
5192
|
let t = /* @__PURE__ */ new Map();
|
|
5183
5193
|
if (t.set(e.primaryCube.name, e.primaryCube), e.joinCubes) for (let n of e.joinCubes) t.set(n.cube.name, n.cube);
|
|
5184
5194
|
return t;
|
|
5185
5195
|
}
|
|
5186
5196
|
//#endregion
|
|
5187
5197
|
//#region src/server/physical-plan/processors/joins-processor.ts
|
|
5188
|
-
function
|
|
5189
|
-
let o = [], s =
|
|
5190
|
-
s =
|
|
5191
|
-
let c = /* @__PURE__ */ new Set(), l =
|
|
5198
|
+
function Gn(e, t, n, r, i, a) {
|
|
5199
|
+
let o = [], s = Kn(t, n, r, i);
|
|
5200
|
+
s = qn(s, n.joins);
|
|
5201
|
+
let c = /* @__PURE__ */ new Set(), l = Jn(e);
|
|
5192
5202
|
if (e.joinCubes && e.joinCubes.length > 0) for (let n of e.joinCubes) {
|
|
5193
5203
|
let r = n.cube.name;
|
|
5194
|
-
(!l.has(r) || i.cteAliasMap.has(r)) && (s =
|
|
5204
|
+
(!l.has(r) || i.cteAliasMap.has(r)) && (s = Yn(s, n, e, i, t, o), s = Qn(s, n, e, i, t, a, c));
|
|
5195
5205
|
}
|
|
5196
5206
|
return {
|
|
5197
5207
|
drizzleQuery: s,
|
|
@@ -5200,26 +5210,26 @@ function Un(e, t, n, r, i, a) {
|
|
|
5200
5210
|
absorbedIntermediateCubes: l
|
|
5201
5211
|
};
|
|
5202
5212
|
}
|
|
5203
|
-
function
|
|
5213
|
+
function Kn(e, t, n, r) {
|
|
5204
5214
|
return r.ctes.length > 0 ? e.db.with(...r.ctes).select(n).from(t.from) : e.db.select(n).from(t.from);
|
|
5205
5215
|
}
|
|
5206
|
-
function
|
|
5216
|
+
function qn(e, t) {
|
|
5207
5217
|
if (!t) return e;
|
|
5208
5218
|
let n = e;
|
|
5209
5219
|
for (let e of t) n = Q(n, e.type ?? "left", e.table, e.on);
|
|
5210
5220
|
return n;
|
|
5211
5221
|
}
|
|
5212
|
-
function
|
|
5222
|
+
function Jn(e) {
|
|
5213
5223
|
let t = /* @__PURE__ */ new Set();
|
|
5214
5224
|
if (e.preAggregationCTEs) {
|
|
5215
5225
|
for (let n of e.preAggregationCTEs) if (n.intermediateJoins && n.intermediateJoins.length > 0) for (let e of n.intermediateJoins) t.add(e.cube.name);
|
|
5216
5226
|
}
|
|
5217
5227
|
return t;
|
|
5218
5228
|
}
|
|
5219
|
-
function
|
|
5229
|
+
function Yn(e, t, n, r, i, a) {
|
|
5220
5230
|
let o = t.junctionTable;
|
|
5221
5231
|
if (!o) return e;
|
|
5222
|
-
let s =
|
|
5232
|
+
let s = Xn(o, t, n, r), c = [];
|
|
5223
5233
|
if (o.securitySql) {
|
|
5224
5234
|
let e = o.securitySql(i.securityContext);
|
|
5225
5235
|
Array.isArray(e) ? c.push(...e) : c.push(e);
|
|
@@ -5231,7 +5241,7 @@ function qn(e, t, n, r, i, a) {
|
|
|
5231
5241
|
return e;
|
|
5232
5242
|
}
|
|
5233
5243
|
}
|
|
5234
|
-
function
|
|
5244
|
+
function Xn(e, t, n, r) {
|
|
5235
5245
|
let i = e.joinCondition, a = e.sourceCubeName ? r.cteAliasMap.get(e.sourceCubeName) : void 0;
|
|
5236
5246
|
if (!a) return i;
|
|
5237
5247
|
let o = (n.preAggregationCTEs?.find((t) => t.cube.name === e.sourceCubeName))?.downstreamJoinKeys?.find((e) => e.targetCubeName === t.cube.name);
|
|
@@ -5245,7 +5255,7 @@ function Jn(e, t, n, r) {
|
|
|
5245
5255
|
}
|
|
5246
5256
|
return i;
|
|
5247
5257
|
}
|
|
5248
|
-
function
|
|
5258
|
+
function Zn(e, t, n, r, i, a) {
|
|
5249
5259
|
if (t) return {
|
|
5250
5260
|
joinTarget: E`${E.identifier(t)}`,
|
|
5251
5261
|
joinCondition: a.cteBuilder.buildCTEJoinCondition(e, t, r),
|
|
@@ -5268,26 +5278,26 @@ function Yn(e, t, n, r, i, a) {
|
|
|
5268
5278
|
joinCubeBase: s
|
|
5269
5279
|
};
|
|
5270
5280
|
}
|
|
5271
|
-
function
|
|
5272
|
-
let { joinTarget: s, joinCondition: c, securityCondition: l, joinCubeBase: u } =
|
|
5281
|
+
function Qn(e, t, n, r, i, a, o) {
|
|
5282
|
+
let { joinTarget: s, joinCondition: c, securityCondition: l, joinCubeBase: u } = Zn(t, r.cteAliasMap.get(t.cube.name), r, n, i, a), d = t.joinType || "left", f = d !== "inner" && l ? D(c, l) : c;
|
|
5273
5283
|
try {
|
|
5274
5284
|
let n;
|
|
5275
|
-
return d === "inner" ? n = e.innerJoin(s, c) : (n = Q(e, d, s, f), l && o.add(t.cube.name)),
|
|
5285
|
+
return d === "inner" ? n = e.innerJoin(s, c) : (n = Q(e, d, s, f), l && o.add(t.cube.name)), qn(n, u?.joins);
|
|
5276
5286
|
} catch {
|
|
5277
5287
|
return e;
|
|
5278
5288
|
}
|
|
5279
5289
|
}
|
|
5280
5290
|
//#endregion
|
|
5281
5291
|
//#region src/server/physical-plan/processors/predicates-processor.ts
|
|
5282
|
-
function
|
|
5283
|
-
let c =
|
|
5292
|
+
function $n(e, t, n, r, i, a, o, s) {
|
|
5293
|
+
let c = er(e, t, n, r, i, a, o, s), l = o.drizzleQuery;
|
|
5284
5294
|
if (c.length > 0) {
|
|
5285
5295
|
let e = c.length === 1 ? c[0] : D(...c);
|
|
5286
5296
|
l = l.where(e);
|
|
5287
5297
|
}
|
|
5288
|
-
return
|
|
5298
|
+
return tr(l, e, t, n, r, s);
|
|
5289
5299
|
}
|
|
5290
|
-
function
|
|
5300
|
+
function er(e, t, n, r, i, a, o, s) {
|
|
5291
5301
|
let c = [...o.allWhereConditions];
|
|
5292
5302
|
if (i.where && c.push(i.where), e.joinCubes && e.joinCubes.length > 0) for (let t of e.joinCubes) {
|
|
5293
5303
|
let e = t.cube.name;
|
|
@@ -5298,7 +5308,7 @@ function Qn(e, t, n, r, i, a, o, s) {
|
|
|
5298
5308
|
let l = s.queryBuilder.buildWhereConditions(e.joinCubes.length > 0 ? r : e.primaryCube, t, n, e, a.preBuiltFilterMap);
|
|
5299
5309
|
return l.length > 0 && c.push(...l), c;
|
|
5300
5310
|
}
|
|
5301
|
-
function
|
|
5311
|
+
function tr(e, t, n, r, i, a) {
|
|
5302
5312
|
let o = t.joinCubes.length > 0 ? i : t.primaryCube, s = e, c = a.queryBuilder.buildGroupByFields(o, n, r, t);
|
|
5303
5313
|
if (c.length > 0 && (s = s.groupBy(...c)), !n.ungrouped) {
|
|
5304
5314
|
let e = a.queryBuilder.buildHavingConditions(o, n, r, t);
|
|
@@ -5312,17 +5322,17 @@ function $n(e, t, n, r, i, a) {
|
|
|
5312
5322
|
}
|
|
5313
5323
|
//#endregion
|
|
5314
5324
|
//#region src/server/physical-plan/processors/keys-dedup-processor.ts
|
|
5315
|
-
function
|
|
5325
|
+
function nr(e, t, n, r) {
|
|
5316
5326
|
let i = e.keysDeduplication;
|
|
5317
5327
|
if (!i?.multipliedCubeName || !t.measures?.length) return null;
|
|
5318
|
-
let a = e.joinCubes.length > 0 ?
|
|
5319
|
-
if (!o || !
|
|
5320
|
-
let s = i.primaryKeyDimensions.length > 0 ? i.primaryKeyDimensions :
|
|
5328
|
+
let a = e.joinCubes.length > 0 ? Wn(e) : /* @__PURE__ */ new Map([[e.primaryCube.name, e.primaryCube]]), o = a.get(i.multipliedCubeName);
|
|
5329
|
+
if (!o || !dr(t, o, i.multipliedCubeName)) return null;
|
|
5330
|
+
let s = i.primaryKeyDimensions.length > 0 ? i.primaryKeyDimensions : pr(o);
|
|
5321
5331
|
if (s.length === 0) return null;
|
|
5322
|
-
let c = `${i.multipliedCubeName.toLowerCase()}_keys`, l = `${i.multipliedCubeName.toLowerCase()}_pk_agg`, u = i.regularMeasures ?? [], d =
|
|
5332
|
+
let c = `${i.multipliedCubeName.toLowerCase()}_keys`, l = `${i.multipliedCubeName.toLowerCase()}_pk_agg`, u = i.regularMeasures ?? [], d = rr(t, n, r, a, o, s, u);
|
|
5323
5333
|
if (!d) return null;
|
|
5324
|
-
let f =
|
|
5325
|
-
return p ?
|
|
5334
|
+
let f = ir(e, t, n, r, a, c, d.keysSelections, d.keyGroupBy), p = sr(t, n, r, o, s, d.multipliedMeasures, l);
|
|
5335
|
+
return p ? ur(t, n, r, a, o, {
|
|
5326
5336
|
keysAlias: c,
|
|
5327
5337
|
aggAlias: l,
|
|
5328
5338
|
keysCte: f,
|
|
@@ -5333,7 +5343,7 @@ function er(e, t, n, r) {
|
|
|
5333
5343
|
regularMeasureNames: u
|
|
5334
5344
|
}) : null;
|
|
5335
5345
|
}
|
|
5336
|
-
function
|
|
5346
|
+
function rr(e, t, n, r, i, a, o) {
|
|
5337
5347
|
let s = {}, c = [];
|
|
5338
5348
|
if (e.dimensions) for (let n of e.dimensions) {
|
|
5339
5349
|
let [e, i] = n.split("."), a = r.get(e), o = a?.dimensions?.[i];
|
|
@@ -5371,35 +5381,35 @@ function tr(e, t, n, r, i, a, o) {
|
|
|
5371
5381
|
multipliedMeasures: d
|
|
5372
5382
|
};
|
|
5373
5383
|
}
|
|
5374
|
-
function
|
|
5384
|
+
function ir(e, t, n, r, i, a, o, s) {
|
|
5375
5385
|
let c = e.primaryCube.sql(n), l = [];
|
|
5376
5386
|
c.where && l.push(c.where);
|
|
5377
5387
|
let u = n.db.select(o).from(c.from);
|
|
5378
5388
|
if (c.joins) for (let e of c.joins) u = Q(u, e.type ?? "left", e.table, e.on);
|
|
5379
|
-
for (let t of e.joinCubes) u =
|
|
5380
|
-
return l.push(...r.queryBuilder.buildWhereConditions(i, t, n)), u =
|
|
5389
|
+
for (let t of e.joinCubes) u = ar(u, t, n, l);
|
|
5390
|
+
return l.push(...r.queryBuilder.buildWhereConditions(i, t, n)), u = lr(u, l), s.length > 0 && (u = u.groupBy(...s)), n.db.$with(a).as(u);
|
|
5381
5391
|
}
|
|
5382
|
-
function
|
|
5392
|
+
function ar(e, t, n, r) {
|
|
5383
5393
|
let i = e;
|
|
5384
|
-
t.junctionTable && (i = Q(i, t.junctionTable.joinType ?? "left", t.junctionTable.table, t.junctionTable.joinCondition),
|
|
5394
|
+
t.junctionTable && (i = Q(i, t.junctionTable.joinType ?? "left", t.junctionTable.table, t.junctionTable.joinCondition), or(t.junctionTable.securitySql, n, r));
|
|
5385
5395
|
let a = t.cube.sql(n);
|
|
5386
5396
|
if (i = Q(i, t.joinType ?? "left", a.from, t.joinCondition), a.joins) for (let e of a.joins) i = Q(i, e.type ?? "left", e.table, e.on);
|
|
5387
5397
|
return a.where && r.push(a.where), i;
|
|
5388
5398
|
}
|
|
5389
|
-
function
|
|
5399
|
+
function or(e, t, n) {
|
|
5390
5400
|
if (!e) return;
|
|
5391
5401
|
let r = e(t.securityContext);
|
|
5392
5402
|
Array.isArray(r) ? n.push(...r) : n.push(r);
|
|
5393
5403
|
}
|
|
5394
|
-
function
|
|
5395
|
-
let s = r.sql(t), c =
|
|
5404
|
+
function sr(e, t, n, r, i, a, o) {
|
|
5405
|
+
let s = r.sql(t), c = cr(t, n, r, i, a);
|
|
5396
5406
|
if (!c) return null;
|
|
5397
5407
|
let l = t.db.select(c.aggSelections).from(s.from);
|
|
5398
5408
|
if (s.joins) for (let e of s.joins) l = Q(l, e.type ?? "left", e.table, e.on);
|
|
5399
5409
|
let u = [];
|
|
5400
|
-
return s.where && u.push(s.where), u.push(...n.queryBuilder.buildWhereConditions(r, e, t)), l =
|
|
5410
|
+
return s.where && u.push(s.where), u.push(...n.queryBuilder.buildWhereConditions(r, e, t)), l = lr(l, u), c.aggGroupBy.length > 0 && (l = l.groupBy(...c.aggGroupBy)), t.db.$with(o).as(l);
|
|
5401
5411
|
}
|
|
5402
|
-
function
|
|
5412
|
+
function cr(e, t, n, r, i) {
|
|
5403
5413
|
let a = {}, o = [];
|
|
5404
5414
|
for (let t of r) {
|
|
5405
5415
|
let r = n.dimensions?.[t];
|
|
@@ -5437,20 +5447,20 @@ function or(e, t, n, r, i) {
|
|
|
5437
5447
|
aggGroupBy: o
|
|
5438
5448
|
};
|
|
5439
5449
|
}
|
|
5440
|
-
function
|
|
5450
|
+
function lr(e, t) {
|
|
5441
5451
|
return t.length === 0 ? e : e.where(t.length === 1 ? t[0] : D(...t));
|
|
5442
5452
|
}
|
|
5443
|
-
function
|
|
5453
|
+
function ur(e, t, n, r, i, a) {
|
|
5444
5454
|
let { keysAlias: o, aggAlias: s, keysCte: c, aggCte: l, pkDimensions: u, pkAliases: d, multipliedMeasures: f, regularMeasureNames: p } = a, m = {};
|
|
5445
5455
|
for (let t of e.dimensions ?? []) m[t] = E`${E.identifier(o)}.${E.identifier(t)}`.as(t);
|
|
5446
5456
|
for (let t of e.timeDimensions ?? []) m[t.dimension] = E`${E.identifier(o)}.${E.identifier(t.dimension)}`.as(t.dimension);
|
|
5447
5457
|
for (let e of f) {
|
|
5448
5458
|
let [, t] = e.split("."), n = i.measures?.[t];
|
|
5449
|
-
m[e] =
|
|
5459
|
+
m[e] = mr(n?.type ?? "sum", s, t, e);
|
|
5450
5460
|
}
|
|
5451
5461
|
for (let e of p) {
|
|
5452
5462
|
let [t, n] = e.split("."), i = r.get(t)?.measures?.[n], a = `__reg__${e.replace(".", "__")}`;
|
|
5453
|
-
m[e] =
|
|
5463
|
+
m[e] = mr(i?.type ?? "sum", o, a, e);
|
|
5454
5464
|
}
|
|
5455
5465
|
let h = t.db.with(c, l).select(m).from(E`${E.identifier(o)}`), g = d.map((e, t) => w(E`${E.identifier(o)}.${E.identifier(e)}`, E`${E.identifier(s)}.${E.identifier(u[t])}`)), _ = g.length === 1 ? g[0] : D(...g);
|
|
5456
5466
|
h = h.leftJoin(E`${E.identifier(s)}`, _);
|
|
@@ -5459,7 +5469,7 @@ function cr(e, t, n, r, i, a) {
|
|
|
5459
5469
|
let y = n.queryBuilder.buildOrderBy(e, Object.keys(m));
|
|
5460
5470
|
return y.length > 0 && (h = h.orderBy(...y)), n.queryBuilder.applyLimitAndOffset(h, e);
|
|
5461
5471
|
}
|
|
5462
|
-
function
|
|
5472
|
+
function dr(e, t, n) {
|
|
5463
5473
|
if (!e.measures?.length) return !1;
|
|
5464
5474
|
for (let r of e.measures) {
|
|
5465
5475
|
let [e, i] = r.split(".");
|
|
@@ -5474,9 +5484,9 @@ function lr(e, t, n) {
|
|
|
5474
5484
|
"avg"
|
|
5475
5485
|
].includes(a.type)) return !1;
|
|
5476
5486
|
}
|
|
5477
|
-
return !
|
|
5487
|
+
return !fr(e, t, n);
|
|
5478
5488
|
}
|
|
5479
|
-
function
|
|
5489
|
+
function fr(e, t, n) {
|
|
5480
5490
|
let r = (e) => {
|
|
5481
5491
|
if (!e) return !1;
|
|
5482
5492
|
for (let i of e) {
|
|
@@ -5497,10 +5507,10 @@ function ur(e, t, n) {
|
|
|
5497
5507
|
};
|
|
5498
5508
|
return r(e.filters);
|
|
5499
5509
|
}
|
|
5500
|
-
function
|
|
5510
|
+
function pr(e) {
|
|
5501
5511
|
return Object.entries(e.dimensions ?? {}).filter(([, e]) => !!e.primaryKey).map(([e]) => e);
|
|
5502
5512
|
}
|
|
5503
|
-
function
|
|
5513
|
+
function mr(e, t, n, r) {
|
|
5504
5514
|
switch (e) {
|
|
5505
5515
|
case "min": {
|
|
5506
5516
|
let e = E`${E.identifier(t)}.${E.identifier(n)}`;
|
|
@@ -5522,19 +5532,19 @@ function fr(e, t, n, r) {
|
|
|
5522
5532
|
}
|
|
5523
5533
|
//#endregion
|
|
5524
5534
|
//#region src/server/physical-plan/processors/multi-fact-processor.ts
|
|
5525
|
-
function
|
|
5535
|
+
function hr(e, t, n, r, i) {
|
|
5526
5536
|
let a = e.multiFactMerge;
|
|
5527
5537
|
if (!a || a.groups.length < 2) return null;
|
|
5528
|
-
let o = [...t.dimensions ?? [], ...(t.timeDimensions ?? []).map((e) => e.dimension)], s = Array.from(new Set(o)), c = s.length > 0, l =
|
|
5538
|
+
let o = [...t.dimensions ?? [], ...(t.timeDimensions ?? []).map((e) => e.dimension)], s = Array.from(new Set(o)), c = s.length > 0, l = Sr(r), u = c && a.mergeStrategy === "fullJoin" && !l, d = a.groups.map((e) => {
|
|
5529
5539
|
let t = i(e.queryPlan, e.query, n);
|
|
5530
5540
|
return n.db.$with(e.alias).as(t);
|
|
5531
5541
|
});
|
|
5532
|
-
return u ?
|
|
5542
|
+
return u ? yr(t, n, r, a, d, s) : vr(t, n, r, a, d, s, xr(a.mergeStrategy, c, l));
|
|
5533
5543
|
}
|
|
5534
|
-
function
|
|
5544
|
+
function gr(e, t, n) {
|
|
5535
5545
|
let r = {};
|
|
5536
5546
|
for (let e of t) {
|
|
5537
|
-
let t =
|
|
5547
|
+
let t = Cr(n, e);
|
|
5538
5548
|
r[e] = E`${t}`.as(e);
|
|
5539
5549
|
}
|
|
5540
5550
|
for (let t of e.groups) for (let e of t.measures) {
|
|
@@ -5543,23 +5553,23 @@ function mr(e, t, n) {
|
|
|
5543
5553
|
}
|
|
5544
5554
|
return r;
|
|
5545
5555
|
}
|
|
5546
|
-
function
|
|
5556
|
+
function _r(e, t, n) {
|
|
5547
5557
|
if (t.length === 0) return E`1 = 1`;
|
|
5548
5558
|
let r = t.map((t) => w(n.get(t), E`${E.identifier(e)}.${E.identifier(t)}`));
|
|
5549
5559
|
return r.length === 1 ? r[0] : D(...r);
|
|
5550
5560
|
}
|
|
5551
|
-
function
|
|
5552
|
-
let s = r.groups[0].alias, c =
|
|
5561
|
+
function vr(e, t, n, r, i, a, o) {
|
|
5562
|
+
let s = r.groups[0].alias, c = gr(r, a, r.groups.map((e) => e.alias)), l = t.db.with(...i).select(c).from(E`${E.identifier(s)}`), u = /* @__PURE__ */ new Map();
|
|
5553
5563
|
for (let e of a) u.set(e, E`${E.identifier(s)}.${E.identifier(e)}`);
|
|
5554
5564
|
for (let e = 1; e < r.groups.length; e++) {
|
|
5555
|
-
let t = r.groups[e].alias, n =
|
|
5565
|
+
let t = r.groups[e].alias, n = _r(t, a, u);
|
|
5556
5566
|
if (l = Q(l, o, E`${E.identifier(t)}`, n), a.length > 0 && o === "full") for (let e of a) u.set(e, E`coalesce(${u.get(e)}, ${E`${E.identifier(t)}.${E.identifier(e)}`})`);
|
|
5557
5567
|
}
|
|
5558
5568
|
let d = n.queryBuilder.buildOrderBy(e, Object.keys(c));
|
|
5559
5569
|
return d.length > 0 && (l = l.orderBy(...d)), n.queryBuilder.applyLimitAndOffset(l, e);
|
|
5560
5570
|
}
|
|
5561
|
-
function
|
|
5562
|
-
let o = "mf_all_keys", s = r.groups.map((e) => E`select ${
|
|
5571
|
+
function yr(e, t, n, r, i, a) {
|
|
5572
|
+
let o = "mf_all_keys", s = r.groups.map((e) => E`select ${br(e.alias, a)} from ${E.identifier(e.alias)}`), c = E`${E.join(s, E` union `)}`, l = t.db.$with(o).as(c), u = {};
|
|
5563
5573
|
for (let e of a) u[e] = E`${E.identifier(o)}.${E.identifier(e)}`.as(e);
|
|
5564
5574
|
for (let e of r.groups) for (let t of e.measures) {
|
|
5565
5575
|
let n = E`${E.identifier(e.alias)}.${E.identifier(t)}`;
|
|
@@ -5573,18 +5583,18 @@ function _r(e, t, n, r, i, a) {
|
|
|
5573
5583
|
let f = n.queryBuilder.buildOrderBy(e, Object.keys(u));
|
|
5574
5584
|
return f.length > 0 && (d = d.orderBy(...f)), n.queryBuilder.applyLimitAndOffset(d, e);
|
|
5575
5585
|
}
|
|
5576
|
-
function
|
|
5586
|
+
function br(e, t) {
|
|
5577
5587
|
let n = t.map((t) => E`${E.identifier(e)}.${E.identifier(t)} as ${E.identifier(t)}`);
|
|
5578
5588
|
return E.join(n, E`, `);
|
|
5579
5589
|
}
|
|
5580
|
-
function
|
|
5590
|
+
function xr(e, t, n) {
|
|
5581
5591
|
return !t || e === "innerJoin" ? "inner" : e === "leftJoin" ? "left" : n ? "full" : "left";
|
|
5582
5592
|
}
|
|
5583
|
-
function
|
|
5593
|
+
function Sr(e) {
|
|
5584
5594
|
let t = e.databaseAdapter.getEngineType();
|
|
5585
5595
|
return t === "postgres" || t === "duckdb";
|
|
5586
5596
|
}
|
|
5587
|
-
function
|
|
5597
|
+
function Cr(e, t) {
|
|
5588
5598
|
if (e.length === 1) return E`${E.identifier(e[0])}.${E.identifier(t)}`;
|
|
5589
5599
|
let n = e.map((e) => E`${E.identifier(e)}.${E.identifier(t)}`), r = n[0];
|
|
5590
5600
|
for (let e = 1; e < n.length; e++) r = E`coalesce(${r}, ${n[e]})`;
|
|
@@ -5592,7 +5602,7 @@ function xr(e, t) {
|
|
|
5592
5602
|
}
|
|
5593
5603
|
//#endregion
|
|
5594
5604
|
//#region src/server/physical-plan/drizzle-plan-builder.ts
|
|
5595
|
-
var
|
|
5605
|
+
var wr = class {
|
|
5596
5606
|
queryBuilder;
|
|
5597
5607
|
cteBuilder;
|
|
5598
5608
|
databaseAdapter;
|
|
@@ -5753,12 +5763,12 @@ var Sr = class {
|
|
|
5753
5763
|
queryBuilder: this.queryBuilder,
|
|
5754
5764
|
cteBuilder: this.cteBuilder,
|
|
5755
5765
|
databaseAdapter: this.databaseAdapter
|
|
5756
|
-
}, i =
|
|
5766
|
+
}, i = hr(e, t, n, r, (e, t, n) => this.build(e, t, n));
|
|
5757
5767
|
if (i) return i;
|
|
5758
|
-
let a =
|
|
5768
|
+
let a = nr(e, t, n, r);
|
|
5759
5769
|
if (a) return a;
|
|
5760
|
-
let o =
|
|
5761
|
-
return
|
|
5770
|
+
let o = Nn(e, t, n, r), s = e.primaryCube.sql(n), c = e.joinCubes.length > 0 ? Wn(e) : /* @__PURE__ */ new Map([[e.primaryCube.name, e.primaryCube]]);
|
|
5771
|
+
return $n(e, t, n, c, s, o, Gn(e, n, s, Rn(e, t, n, c, r), o, r), r);
|
|
5762
5772
|
}
|
|
5763
5773
|
};
|
|
5764
5774
|
//#endregion
|
|
@@ -5769,7 +5779,7 @@ function $(e, t) {
|
|
|
5769
5779
|
console.log(`\n[DC_DEBUG] ${e}`), console.log(n), r.length > 0 && console.log("params:", r), console.log();
|
|
5770
5780
|
} catch {}
|
|
5771
5781
|
}
|
|
5772
|
-
var
|
|
5782
|
+
var Tr = class {
|
|
5773
5783
|
dbExecutor;
|
|
5774
5784
|
queryBuilder;
|
|
5775
5785
|
drizzlePlanBuilder;
|
|
@@ -5788,12 +5798,12 @@ var Cr = class {
|
|
|
5788
5798
|
if (this.dbExecutor = e, this.databaseAdapter = e.databaseAdapter, !this.databaseAdapter) throw Error(x("server.errors.dbAdapterRequired"));
|
|
5789
5799
|
this.queryBuilder = new Rt(this.databaseAdapter);
|
|
5790
5800
|
let i = new le(), a = new Bt(this.queryBuilder);
|
|
5791
|
-
this.drizzlePlanBuilder = new
|
|
5801
|
+
this.drizzlePlanBuilder = new wr(this.queryBuilder, a, this.databaseAdapter), this.comparisonQueryBuilder = new vn(this.databaseAdapter), this.funnelQueryBuilder = new yn(this.databaseAdapter), this.flowQueryBuilder = new bn(this.databaseAdapter), this.retentionQueryBuilder = new En(this.databaseAdapter), this.logicalPlanBuilder = new jn(i), this.planOptimiser = r ?? new Mn(), this.rlsSetup = n, this.modeRouter = new ln({
|
|
5792
5802
|
comparison: this.comparisonQueryBuilder,
|
|
5793
5803
|
funnel: this.funnelQueryBuilder,
|
|
5794
5804
|
flow: this.flowQueryBuilder,
|
|
5795
5805
|
retention: this.retentionQueryBuilder
|
|
5796
|
-
}), this.resultCache = new
|
|
5806
|
+
}), this.resultCache = new _n(t), this.filterCachePreloader = new cn(this.queryBuilder);
|
|
5797
5807
|
}
|
|
5798
5808
|
async withRLSContext(e, t) {
|
|
5799
5809
|
if (!this.rlsSetup) return t();
|
|
@@ -5842,7 +5852,7 @@ var Cr = class {
|
|
|
5842
5852
|
}
|
|
5843
5853
|
async executeComparisonQuery(e, t, n) {
|
|
5844
5854
|
let { timeDimension: r, periods: i, granularity: a, periodQueries: o } = this.buildComparisonExecutionPlan(t), s = o.map(async (t, r) => ({
|
|
5845
|
-
result: await this.executeStandardQuery(e, t, n),
|
|
5855
|
+
result: await this.executeStandardQuery(e, t, n, void 0, !0),
|
|
5846
5856
|
period: i[r]
|
|
5847
5857
|
})), c = await Promise.all(s), l = this.comparisonQueryBuilder.mergeComparisonResults(c, r, a);
|
|
5848
5858
|
return l.data = this.comparisonQueryBuilder.sortComparisonResults(l.data, r.dimension), l;
|
|
@@ -5924,21 +5934,21 @@ var Cr = class {
|
|
|
5924
5934
|
annotation: c
|
|
5925
5935
|
};
|
|
5926
5936
|
}
|
|
5927
|
-
async executeStandardQuery(e, t, n, r) {
|
|
5937
|
+
async executeStandardQuery(e, t, n, r, i = !1) {
|
|
5928
5938
|
t = O(t);
|
|
5929
|
-
let
|
|
5930
|
-
this.filterCachePreloader.preload(t,
|
|
5931
|
-
let { optimisedPlan:
|
|
5932
|
-
this.validateSecurityContext(
|
|
5933
|
-
let
|
|
5934
|
-
$("query",
|
|
5935
|
-
let
|
|
5936
|
-
data:
|
|
5937
|
-
annotation: Vt(
|
|
5938
|
-
warnings:
|
|
5939
|
-
total: t.total ? await this.executeTotalCount(
|
|
5939
|
+
let a = new S(), o = this.createQueryContext(n, a, t);
|
|
5940
|
+
this.filterCachePreloader.preload(t, a, e, o);
|
|
5941
|
+
let { optimisedPlan: s } = this.buildRegularQueryArtifacts(e, t, o), c = this.drizzlePlanBuilder.derivePhysicalPlanContext(s), l = this.drizzlePlanBuilder.toSemanticQuery(s);
|
|
5942
|
+
this.validateSecurityContext(c, o);
|
|
5943
|
+
let u = this.drizzlePlanBuilder.build(c, l, o);
|
|
5944
|
+
$("query", u);
|
|
5945
|
+
let d = this.queryBuilder.collectNumericFields(e, t), f = {
|
|
5946
|
+
data: sn(await this.dbExecutor.execute(u, d), t, this.databaseAdapter, e, i),
|
|
5947
|
+
annotation: Vt(c, t),
|
|
5948
|
+
warnings: s.warnings?.length ? s.warnings : void 0,
|
|
5949
|
+
total: t.total ? await this.executeTotalCount(c, l, o) : void 0
|
|
5940
5950
|
};
|
|
5941
|
-
return await this.resultCache.store(r,
|
|
5951
|
+
return await this.resultCache.store(r, f), f;
|
|
5942
5952
|
}
|
|
5943
5953
|
async executeTotalCount(e, t, n) {
|
|
5944
5954
|
let r = this.drizzlePlanBuilder.build(e, {
|
|
@@ -6075,7 +6085,7 @@ var Cr = class {
|
|
|
6075
6085
|
let r = this.buildComparisonExecutionPlan(t).periodQueries[0];
|
|
6076
6086
|
return this.generateUnifiedSQL(e, r, n);
|
|
6077
6087
|
}
|
|
6078
|
-
},
|
|
6088
|
+
}, Er = [
|
|
6079
6089
|
"year",
|
|
6080
6090
|
"quarter",
|
|
6081
6091
|
"month",
|
|
@@ -6083,21 +6093,21 @@ var Cr = class {
|
|
|
6083
6093
|
"day",
|
|
6084
6094
|
"hour"
|
|
6085
6095
|
];
|
|
6086
|
-
function
|
|
6096
|
+
function Dr(e, t) {
|
|
6087
6097
|
return t.includes(".") ? t : `${e}.${t}`;
|
|
6088
6098
|
}
|
|
6089
|
-
function
|
|
6099
|
+
function Or(e, t) {
|
|
6090
6100
|
if (!t.includes(".")) return t;
|
|
6091
6101
|
let n = `${e}.`;
|
|
6092
6102
|
return t.startsWith(n) ? t.slice(n.length) : null;
|
|
6093
6103
|
}
|
|
6094
|
-
function
|
|
6104
|
+
function kr(e) {
|
|
6095
6105
|
let t = Object.keys(e.measures), n = [];
|
|
6096
6106
|
for (let r = 0; r < t.length; r++) {
|
|
6097
6107
|
let i = t[r], a = e.measures[i];
|
|
6098
6108
|
if (a.shown === !1) continue;
|
|
6099
6109
|
let o;
|
|
6100
|
-
a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) =>
|
|
6110
|
+
a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) => Dr(e.name, t))), n.push({
|
|
6101
6111
|
name: `${e.name}.${i}`,
|
|
6102
6112
|
title: a.title || i,
|
|
6103
6113
|
shortTitle: a.title || i,
|
|
@@ -6110,12 +6120,12 @@ function Dr(e) {
|
|
|
6110
6120
|
}
|
|
6111
6121
|
return n;
|
|
6112
6122
|
}
|
|
6113
|
-
function
|
|
6123
|
+
function Ar(e) {
|
|
6114
6124
|
let t = Object.keys(e.dimensions), n = [];
|
|
6115
6125
|
for (let r = 0; r < t.length; r++) {
|
|
6116
6126
|
let i = t[r], a = e.dimensions[i];
|
|
6117
6127
|
if (a.shown === !1) continue;
|
|
6118
|
-
let o = a.type === "time" ? a.granularities ||
|
|
6128
|
+
let o = a.type === "time" ? a.granularities || Er : void 0;
|
|
6119
6129
|
n.push({
|
|
6120
6130
|
name: `${e.name}.${i}`,
|
|
6121
6131
|
title: a.title || i,
|
|
@@ -6124,12 +6134,13 @@ function Or(e) {
|
|
|
6124
6134
|
format: void 0,
|
|
6125
6135
|
description: a.description,
|
|
6126
6136
|
synonyms: a.synonyms,
|
|
6127
|
-
granularities: o
|
|
6137
|
+
granularities: o,
|
|
6138
|
+
...a.type === "time" && a.fillMissingDates !== void 0 && { fillMissingDates: a.fillMissingDates }
|
|
6128
6139
|
});
|
|
6129
6140
|
}
|
|
6130
6141
|
return n;
|
|
6131
6142
|
}
|
|
6132
|
-
function
|
|
6143
|
+
function jr(e, t, n) {
|
|
6133
6144
|
let r = [];
|
|
6134
6145
|
if (!e.joins) return r;
|
|
6135
6146
|
for (let [, i] of Object.entries(e.joins)) {
|
|
@@ -6145,14 +6156,14 @@ function kr(e, t, n) {
|
|
|
6145
6156
|
}
|
|
6146
6157
|
return r;
|
|
6147
6158
|
}
|
|
6148
|
-
function
|
|
6159
|
+
function Mr(e) {
|
|
6149
6160
|
let t = [];
|
|
6150
6161
|
if (!e.hierarchies) return t;
|
|
6151
6162
|
for (let [, n] of Object.entries(e.hierarchies)) {
|
|
6152
6163
|
let r = n.levels.filter((t) => {
|
|
6153
|
-
let n =
|
|
6164
|
+
let n = Or(e.name, t);
|
|
6154
6165
|
return n === null || e.dimensions[n]?.shown !== !1;
|
|
6155
|
-
}).map((t) =>
|
|
6166
|
+
}).map((t) => Dr(e.name, t));
|
|
6156
6167
|
r.length !== 0 && t.push({
|
|
6157
6168
|
name: n.name,
|
|
6158
6169
|
title: n.title || n.name,
|
|
@@ -6163,12 +6174,12 @@ function Ar(e) {
|
|
|
6163
6174
|
return t;
|
|
6164
6175
|
}
|
|
6165
6176
|
Object.freeze({});
|
|
6166
|
-
function
|
|
6177
|
+
function Nr(e) {
|
|
6167
6178
|
if (typeof process > "u") return;
|
|
6168
6179
|
let t = process.env?.DC_DEBUG;
|
|
6169
6180
|
(t === "true" || t === "cubesets") && console.log(`[DC_DEBUG] ${e}`);
|
|
6170
6181
|
}
|
|
6171
|
-
var
|
|
6182
|
+
var Pr = class {
|
|
6172
6183
|
baseCubes = /* @__PURE__ */ new Map();
|
|
6173
6184
|
cubeSets = /* @__PURE__ */ new Map();
|
|
6174
6185
|
metadataCache = /* @__PURE__ */ new Map();
|
|
@@ -6203,7 +6214,7 @@ var Mr = class {
|
|
|
6203
6214
|
return Tt(this.db, this.schema, this.engineType);
|
|
6204
6215
|
}
|
|
6205
6216
|
createQueryExecutor(e = !1) {
|
|
6206
|
-
return new
|
|
6217
|
+
return new Tr(this.createDbExecutor(), e ? this.cacheConfig : void 0, this.rlsSetup, this.planOptimiser);
|
|
6207
6218
|
}
|
|
6208
6219
|
formatSqlResult(e) {
|
|
6209
6220
|
let t = this.getEngineType() ?? "postgres";
|
|
@@ -6239,7 +6250,7 @@ var Mr = class {
|
|
|
6239
6250
|
generation: i,
|
|
6240
6251
|
durationMs: o
|
|
6241
6252
|
};
|
|
6242
|
-
|
|
6253
|
+
Nr(`registered cube set '${e}': ${r.size} cube(s), ${s} dimension(s), generation ${i}, ${o}ms`), this.onCubeSetRegistered?.(c);
|
|
6243
6254
|
}
|
|
6244
6255
|
unregisterCubeSet(e) {
|
|
6245
6256
|
let t = this.cubeSets.delete(e);
|
|
@@ -6394,7 +6405,7 @@ var Mr = class {
|
|
|
6394
6405
|
return "unknown_column";
|
|
6395
6406
|
}
|
|
6396
6407
|
generateCubeMetadata(e, t) {
|
|
6397
|
-
let n =
|
|
6408
|
+
let n = kr(e), r = Ar(e), i = jr(e, t, (e) => this.getColumnName(e)), a = Mr(e);
|
|
6398
6409
|
return {
|
|
6399
6410
|
name: e.name,
|
|
6400
6411
|
title: e.title || e.name,
|
|
@@ -6464,4 +6475,4 @@ var Mr = class {
|
|
|
6464
6475
|
}
|
|
6465
6476
|
};
|
|
6466
6477
|
//#endregion
|
|
6467
|
-
export {
|
|
6478
|
+
export { Pr as t };
|