drizzle-cube 0.9.6 → 0.9.7
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 +3 -2
- package/dist/adapters/ActivityGridChart.config-C2kT9qd6.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-Crkwyx_5.js +2 -0
- package/dist/adapters/AreaChart.config-Cn4fTDQH.js +2 -0
- package/dist/adapters/AreaChart.config-DSBAn4xT.cjs +1 -0
- package/dist/adapters/BarChart.config-2r2_F09O.cjs +1 -0
- package/dist/adapters/BarChart.config-CorT50Sr.js +2 -0
- package/dist/adapters/BoxPlotChart.config-BM4SbL34.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-Dki3qfhN.js +2 -0
- package/dist/adapters/BubbleChart.config-DA768T1u.cjs +1 -0
- package/dist/adapters/BubbleChart.config-LJ2w0ZAz.js +2 -0
- package/dist/adapters/CandlestickChart.config-C00YG927.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-D-vVDHaQ.js +2 -0
- package/dist/adapters/DataTable.config-Ml6Q3VEP.cjs +1 -0
- package/dist/adapters/DataTable.config-jwBiAUpg.js +2 -0
- package/dist/adapters/DotStripChart.config-C_dgJFje.js +2 -0
- package/dist/adapters/DotStripChart.config-D5M4xxNE.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DBkjp0wh.js +2 -0
- package/dist/adapters/FunnelChart.config-Jc6DVjCx.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BqW6WqXS.cjs +1 -0
- package/dist/adapters/GaugeChart.config-CyD4y_yf.js +2 -0
- package/dist/adapters/HeatMapChart.config-C_TKjH9_.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-Di1KFl9H.js +2 -0
- package/dist/adapters/KpiDelta.config-qlIY4kju.js +2 -0
- package/dist/adapters/KpiDelta.config-zaqkGeS2.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D1hq68b3.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D9LpXMmo.js +2 -0
- package/dist/adapters/KpiText.config-BBBV_4aK.cjs +1 -0
- package/dist/adapters/KpiText.config-pqFid-lb.js +2 -0
- package/dist/adapters/LineChart.config-CFGa_jpk.js +2 -0
- package/dist/adapters/LineChart.config-DRTr24Jl.cjs +1 -0
- package/dist/adapters/MarkdownChart.config--Teyo7aa.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-Cnptz8gx.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-BlAnkNf6.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-c4K6xVET.cjs +1 -0
- package/dist/adapters/PieChart.config-BX5FcoZn.cjs +1 -0
- package/dist/adapters/PieChart.config-DT1TCBFA.js +2 -0
- package/dist/adapters/ProportionBarChart.config-CN5ov6e6.js +2 -0
- package/dist/adapters/ProportionBarChart.config-DdrZQypv.cjs +1 -0
- package/dist/adapters/RadarChart.config-CYpWy1MI.js +2 -0
- package/dist/adapters/RadarChart.config-Cm14F-JW.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-BXEmrEW0.js +2 -0
- package/dist/adapters/RadialBarChart.config-bJL8ZwT5.cjs +1 -0
- package/dist/adapters/RecordsTable.config-BifW_6cA.cjs +1 -0
- package/dist/adapters/RecordsTable.config-DOu5dLR9.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-BLTS46q4.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DkIUp-uU.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-Csnntt4P.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-Xljn01Px.cjs +1 -0
- package/dist/adapters/SankeyChart.config-BExGzO93.cjs +1 -0
- package/dist/adapters/SankeyChart.config-DEBF3E7J.js +2 -0
- package/dist/adapters/ScatterChart.config-B9fxyVl8.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CNWNsjv_.js +2 -0
- package/dist/adapters/SunburstChart.config-DyBJr_Ah.js +2 -0
- package/dist/adapters/SunburstChart.config-vXKPV3lF.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-CoXSasFP.js +2 -0
- package/dist/adapters/TreeMapChart.config-iq-fCkIZ.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-Coyj2j_7.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-Dyf-p2Z2.js +2 -0
- package/dist/adapters/{compiler-CpvetSCm.js → compiler-BKg3j2mm.js} +1260 -2446
- package/dist/adapters/compiler-BX6Ug_Uq.cjs +166 -0
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BH_56XtM.js → core-Bmb7XMBz.js} +2 -2
- package/dist/adapters/{core-CydD6oFu.cjs → core-JgUTMhxl.cjs} +1 -1
- 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 +23 -23
- package/dist/adapters/{handler-Dp8fpSpk.cjs → handler-CTSg1daG.cjs} +8 -8
- package/dist/adapters/{handler-CtcALGcY.js → handler-DtX1YNOn.js} +213 -209
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-Bu4j3yZM.cjs +1 -0
- package/dist/adapters/{mcp-app-html-C8vG9epH.js → mcp-app-html-D3GsxPcx.js} +1 -1
- 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-DDxjqyuK.js → mcp-transport-BTmAXLo8.js} +8 -3
- package/dist/adapters/{mcp-transport-QGYYYSgR.cjs → mcp-transport-DzxluRyH.cjs} +2 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-Cm4JcLuF.cjs → openai-BwtOIJIk.cjs} +1 -1
- package/dist/adapters/{openai-pCkHdDh4.js → openai-CWnhWp3I.js} +1 -1
- package/dist/adapters/{openai-CwKv0DD-.cjs → openai-ClwjvwzT.cjs} +2 -2
- package/dist/adapters/{openai-DH5InEPj.js → openai-Dqrs3PGo.js} +3 -3
- package/dist/adapters/utils-Du_UZbn5.cjs +139 -0
- package/dist/adapters/{utils-C_Mc0qsk.js → utils-i2h5cwI3.js} +2587 -1254
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/server/adapters/base-adapter.d.ts +3 -3
- package/dist/cjs/server/ai/query-schema.d.ts +3 -3
- package/dist/cjs/server/builders/date-time-builder.d.ts +1 -2
- package/dist/cjs/server/builders/date-time-helpers.d.ts +19 -6
- package/dist/cjs/server/builders/filter-operators.d.ts +10 -1
- package/dist/cjs/server/execution/query-normalizer.d.ts +9 -0
- package/dist/cjs/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
- package/dist/cjs/server/physical-plan/semi-join.d.ts +21 -0
- package/dist/cjs/server/prompts/single-step-prompt.d.ts +1 -1
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-USQFytJw.js → DashboardEditModal-DfaeSZGf.js} +12 -12
- package/dist/client/chunks/{DashboardEditModal-USQFytJw.js.map → DashboardEditModal-DfaeSZGf.js.map} +1 -1
- package/dist/client/chunks/{DotStripChart-CjSsunHE.js → DotStripChart-in6QHc0b.js} +3 -3
- package/dist/client/chunks/{DotStripChart-CjSsunHE.js.map → DotStripChart-in6QHc0b.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js → ProportionBarChart-CjuOm7NT.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js.map → ProportionBarChart-CjuOm7NT.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-BSmkwdgd.js → RecordsTable-CXXsiaV1.js} +4 -4
- package/dist/client/chunks/{RecordsTable-BSmkwdgd.js.map → RecordsTable-CXXsiaV1.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js → RetentionCombinedChart-DFCeEFkx.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js.map → RetentionCombinedChart-DFCeEFkx.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js → RetentionHeatmap-jpshJ2Af.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js.map → RetentionHeatmap-jpshJ2Af.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-D_tw9BvU.js → analysis-builder-fPK8NgJW.js} +9 -9
- package/dist/client/chunks/{analysis-builder-D_tw9BvU.js.map → analysis-builder-fPK8NgJW.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-BSINKFr2.js → analysis-builder-shared--4LqPSum.js} +829 -775
- package/dist/client/chunks/analysis-builder-shared--4LqPSum.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-CSIsJ12e.js → chart-activity-grid-DGazwi4C.js} +9 -2
- package/dist/client/chunks/chart-activity-grid-DGazwi4C.js.map +1 -0
- package/dist/client/chunks/{chart-area-BpvSKH5I.js → chart-area-zyLGD-ym.js} +2 -2
- package/dist/client/chunks/{chart-area-BpvSKH5I.js.map → chart-area-zyLGD-ym.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-Cjzv-LvG.js → chart-bar-DMCBq8qJ.js} +3 -3
- package/dist/client/chunks/{chart-bar-Cjzv-LvG.js.map → chart-bar-DMCBq8qJ.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js → chart-box-plot-5Z55A-it.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js.map → chart-box-plot-5Z55A-it.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BtWm6x7L.js → chart-bubble-YD28dX8w.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BtWm6x7L.js.map → chart-bubble-YD28dX8w.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js → chart-candlestick-BUMpBI08.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js.map → chart-candlestick-BUMpBI08.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-BH1A-1RN.js → chart-data-table-BdMo3zVh.js} +2 -2
- package/dist/client/chunks/{chart-data-table-BH1A-1RN.js.map → chart-data-table-BdMo3zVh.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-C_-K4RLj.js → chart-funnel-BRyZS6ie.js} +2 -2
- package/dist/client/chunks/{chart-funnel-C_-K4RLj.js.map → chart-funnel-BRyZS6ie.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-F-vdq2BX.js → chart-gauge-DxgHlZKp.js} +3 -3
- package/dist/client/chunks/{chart-gauge-F-vdq2BX.js.map → chart-gauge-DxgHlZKp.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-D_8TluGo.js → chart-heat-map-5jHm3f-V.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-D_8TluGo.js.map → chart-heat-map-5jHm3f-V.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js → chart-kpi-delta-C84P-mwu.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js.map → chart-kpi-delta-C84P-mwu.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js → chart-kpi-number-D9GqtBWw.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js.map → chart-kpi-number-D9GqtBWw.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js → chart-kpi-text-D3HqxXzU.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js.map → chart-kpi-text-D3HqxXzU.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DlhmQQ-X.js → chart-line-IEgiF8Nv.js} +3 -3
- package/dist/client/chunks/{chart-line-DlhmQQ-X.js.map → chart-line-IEgiF8Nv.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-C5ldCjSN.js → chart-markdown-B_2Ed7FJ.js} +2 -2
- package/dist/client/chunks/{chart-markdown-C5ldCjSN.js.map → chart-markdown-B_2Ed7FJ.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js → chart-measure-profile-CWsPrQhH.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js.map → chart-measure-profile-CWsPrQhH.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-CmKhmUR-.js → chart-pie-BEB2sCXF.js} +3 -3
- package/dist/client/chunks/{chart-pie-CmKhmUR-.js.map → chart-pie-BEB2sCXF.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-B2bYTyb0.js → chart-radar-BbSbXKbP.js} +3 -3
- package/dist/client/chunks/{chart-radar-B2bYTyb0.js.map → chart-radar-BbSbXKbP.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js → chart-radial-bar-CNYD7tkM.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js.map → chart-radial-bar-CNYD7tkM.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-DHIrjmhj.js → chart-sankey-DKnTIvSr.js} +2 -2
- package/dist/client/chunks/{chart-sankey-DHIrjmhj.js.map → chart-sankey-DKnTIvSr.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-JnoA3CD5.js → chart-scatter-CSWF6-lx.js} +3 -3
- package/dist/client/chunks/{chart-scatter-JnoA3CD5.js.map → chart-scatter-CSWF6-lx.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js → chart-sunburst-CdGzCq7q.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js.map → chart-sunburst-CdGzCq7q.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-HQitd39D.js → chart-tree-map-BiXB7EiM.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-HQitd39D.js.map → chart-tree-map-BiXB7EiM.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js → chart-waterfall-5rSDeLEZ.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js.map → chart-waterfall-5rSDeLEZ.js.map} +1 -1
- package/dist/client/chunks/{charts-core-CQFOTTPb.js → charts-core-CKpkoMCa.js} +2 -2
- package/dist/client/chunks/{charts-core-CQFOTTPb.js.map → charts-core-CKpkoMCa.js.map} +1 -1
- package/dist/client/chunks/charts-loader-BTI0UPK4.js +87 -0
- package/dist/client/chunks/{charts-loader-BlxEsp39.js.map → charts-loader-BTI0UPK4.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-gaWTnOGQ.js → nl-NL-kRjxedTf.js} +8 -1
- package/dist/client/chunks/{nl-NL-gaWTnOGQ.js.map → nl-NL-kRjxedTf.js.map} +1 -1
- package/dist/client/chunks/{schema-visualization-BspQ-XB8.js → schema-visualization-BbvL74Sf.js} +3 -3
- package/dist/client/chunks/{schema-visualization-BspQ-XB8.js.map → schema-visualization-BbvL74Sf.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js → useDirtyStateTracking-BfG1lX_3.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js.map → useDirtyStateTracking-BfG1lX_3.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js → useExplainAI-CDFhgmpE.js} +4 -4
- package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js.map → useExplainAI-CDFhgmpE.js.map} +1 -1
- package/dist/client/chunks/{vendor-C4pD7rZf.js → vendor-DeckzF1j.js} +2 -2
- package/dist/client/chunks/{vendor-C4pD7rZf.js.map → vendor-DeckzF1j.js.map} +1 -1
- package/dist/client/components.js +1 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +13 -13
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +2 -2
- package/dist/server/adapters/base-adapter.d.ts +3 -3
- package/dist/server/ai/query-schema.d.ts +3 -3
- package/dist/server/builders/date-time-builder.d.ts +1 -2
- package/dist/server/builders/date-time-helpers.d.ts +19 -6
- package/dist/server/builders/filter-operators.d.ts +10 -1
- package/dist/server/execution/query-normalizer.d.ts +9 -0
- package/dist/server/index.cjs +54 -47
- package/dist/server/index.js +2561 -2408
- package/dist/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
- package/dist/server/physical-plan/semi-join.d.ts +21 -0
- package/dist/server/prompts/single-step-prompt.d.ts +1 -1
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-BgAUfqKS.js +0 -2
- package/dist/adapters/ActivityGridChart.config-CGsjbfYL.cjs +0 -1
- package/dist/adapters/AreaChart.config-Bmj24k3G.cjs +0 -1
- package/dist/adapters/AreaChart.config-DqJvquc-.js +0 -2
- package/dist/adapters/BarChart.config-CzGxsUq-.js +0 -2
- package/dist/adapters/BarChart.config-D1uQGV6T.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-I0S4-aNF.js +0 -2
- package/dist/adapters/BoxPlotChart.config-wfS4FxGI.cjs +0 -1
- package/dist/adapters/BubbleChart.config-BDSknEkc.js +0 -2
- package/dist/adapters/BubbleChart.config-CByvW3Rq.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-08gqS1xj.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Bkr9bdwM.js +0 -2
- package/dist/adapters/DataTable.config-BFP6xnMc.cjs +0 -1
- package/dist/adapters/DataTable.config-DHYD7PA8.js +0 -2
- package/dist/adapters/DotStripChart.config-DRQybZZu.cjs +0 -1
- package/dist/adapters/DotStripChart.config-Sp0fOxfM.js +0 -2
- package/dist/adapters/FunnelChart.config-ByARozX6.cjs +0 -1
- package/dist/adapters/FunnelChart.config-DhCqap3P.js +0 -2
- package/dist/adapters/GaugeChart.config-CfRicB1o.cjs +0 -1
- package/dist/adapters/GaugeChart.config-PTQ85WM5.js +0 -2
- package/dist/adapters/HeatMapChart.config-0tmGHwm2.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-Devz5A5U.js +0 -2
- package/dist/adapters/KpiDelta.config-CGTdddOM.js +0 -2
- package/dist/adapters/KpiDelta.config-CjWmwXjk.cjs +0 -1
- package/dist/adapters/KpiNumber.config-Cd4jw22d.cjs +0 -1
- package/dist/adapters/KpiNumber.config-D3Et71Zn.js +0 -2
- package/dist/adapters/KpiText.config-B9VATPy2.js +0 -2
- package/dist/adapters/KpiText.config-B_dkrdHj.cjs +0 -1
- package/dist/adapters/LineChart.config-C3p-mc15.cjs +0 -1
- package/dist/adapters/LineChart.config-DXWLMWjn.js +0 -2
- package/dist/adapters/MarkdownChart.config-BQGmd6Iz.js +0 -2
- package/dist/adapters/MarkdownChart.config-CQFu4297.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-CXLeprVS.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-KpfD016N.cjs +0 -1
- package/dist/adapters/PieChart.config-j-syrhBx.js +0 -2
- package/dist/adapters/PieChart.config-zzBPh0tx.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-BD9bf-LZ.js +0 -2
- package/dist/adapters/ProportionBarChart.config-CBLcLV4Z.cjs +0 -1
- package/dist/adapters/RadarChart.config-CW9f_VxU.cjs +0 -1
- package/dist/adapters/RadarChart.config-yKvcZ49V.js +0 -2
- package/dist/adapters/RadialBarChart.config-DwQYejI6.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-xK4AyoOF.js +0 -2
- package/dist/adapters/RecordsTable.config-CquV7Wi0.js +0 -2
- package/dist/adapters/RecordsTable.config-DzrQXBvh.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-BYAFkFb-.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Ddmb-WwM.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CSHXD736.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-DODcy3gK.js +0 -2
- package/dist/adapters/SankeyChart.config-B56o6GFu.js +0 -2
- package/dist/adapters/SankeyChart.config-DLnhr2k_.cjs +0 -1
- package/dist/adapters/ScatterChart.config-CrIFaC-s.js +0 -2
- package/dist/adapters/ScatterChart.config-Dfj1_af-.cjs +0 -1
- package/dist/adapters/SunburstChart.config-CuLsLj6v.cjs +0 -1
- package/dist/adapters/SunburstChart.config-CvuVUfkp.js +0 -2
- package/dist/adapters/TreeMapChart.config-CvbDr1Ic.js +0 -2
- package/dist/adapters/TreeMapChart.config-Dqjhe8Xk.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-DXFeGg7P.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-MLHPNE5q.js +0 -2
- package/dist/adapters/compiler-C5OSdfwn.cjs +0 -166
- package/dist/adapters/mcp-app-html-DRWnkcx4.cjs +0 -1
- package/dist/adapters/utils-BFGzuSlF.cjs +0 -132
- package/dist/client/chunks/analysis-builder-shared-BSINKFr2.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-CSIsJ12e.js.map +0 -1
- package/dist/client/chunks/charts-loader-BlxEsp39.js +0 -87
package/dist/adapters/utils.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-Du_UZbn5.cjs");exports.buildTransformedQuery=e.t,exports.calculateQueryComplexity=e.n,exports.formatCubeResponse=e.r,exports.formatErrorResponse=e.i,exports.formatMetaResponse=e.a,exports.formatSqlResponse=e.o,exports.formatSqlString=e.x,exports.generateRequestId=e.s,exports.getDatabaseType=e.c,exports.handleBatchRequest=e.l,exports.handleDiscover=e.p,exports.handleDryRun=e.u,exports.handleLoad=e.m,exports.handleSuggest=e.d,exports.handleValidate=e.f,exports.normalizeQueryFields=e.h;
|
package/dist/adapters/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m, x as h } from "./utils-
|
|
1
|
+
import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m, x as h } from "./utils-i2h5cwI3.js";
|
|
2
2
|
export { p as buildTransformedQuery, c as calculateQueryComplexity, d as formatCubeResponse, a as formatErrorResponse, e as formatMetaResponse, l as formatSqlResponse, h as formatSqlString, f as generateRequestId, t as getDatabaseType, o as handleBatchRequest, u as handleDiscover, m as handleDryRun, s as handleLoad, n as handleSuggest, r as handleValidate, i as normalizeQueryFields };
|
|
@@ -103,7 +103,7 @@ export interface DatabaseAdapter {
|
|
|
103
103
|
* @param value - The value to match
|
|
104
104
|
* @returns SQL expression for string matching
|
|
105
105
|
*/
|
|
106
|
-
buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
|
|
106
|
+
buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'notStartsWith' | 'endsWith' | 'notEndsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
|
|
107
107
|
/**
|
|
108
108
|
* Cast expression to specific database type
|
|
109
109
|
* @param fieldExpr - The field expression to cast
|
|
@@ -241,7 +241,7 @@ export declare abstract class BaseDatabaseAdapter implements DatabaseAdapter {
|
|
|
241
241
|
*/
|
|
242
242
|
protected nullToZero(expr: SQL): SQL;
|
|
243
243
|
/**
|
|
244
|
-
* Case-insensitive LIKE matching for contains/startsWith/endsWith/ilike.
|
|
244
|
+
* Case-insensitive LIKE matching for (not)contains/(not)startsWith/(not)endsWith/ilike.
|
|
245
245
|
* Default uses native ILIKE (PostgreSQL/DuckDB/Snowflake); engines without ILIKE
|
|
246
246
|
* (MySQL/SQLite/Databend) override with LOWER()+LIKE.
|
|
247
247
|
* @param pattern - the LIKE pattern in its original case (already wrapped with % as needed)
|
|
@@ -257,7 +257,7 @@ export declare abstract class BaseDatabaseAdapter implements DatabaseAdapter {
|
|
|
257
257
|
* delegated to the caseInsensitiveLike()/regexCondition() hooks; plain LIKE/NOT LIKE
|
|
258
258
|
* are identical across all engines.
|
|
259
259
|
*/
|
|
260
|
-
buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
|
|
260
|
+
buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'notStartsWith' | 'endsWith' | 'notEndsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
|
|
261
261
|
/**
|
|
262
262
|
* Build conditional aggregation. Default uses portable CASE WHEN
|
|
263
263
|
* (MySQL/SQLite/Databend/Snowflake); PostgreSQL/DuckDB override with the FILTER clause.
|
|
@@ -45,7 +45,7 @@ export declare const QUERY_PARAMS_SCHEMA: {
|
|
|
45
45
|
readonly values: {
|
|
46
46
|
readonly type: "array";
|
|
47
47
|
readonly items: {};
|
|
48
|
-
readonly description: "Filter values. Omit for set/notSet/isEmpty/isNotEmpty.";
|
|
48
|
+
readonly description: "Filter values. Omit for set/notSet/isEmpty/isNotEmpty. inDateRange: [\"last 3 months\"] (one relative string) or [\"YYYY-MM-DD\", \"YYYY-MM-DD\"].";
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
readonly required: readonly ["member", "operator"];
|
|
@@ -64,10 +64,10 @@ export declare const QUERY_PARAMS_SCHEMA: {
|
|
|
64
64
|
readonly granularity: {
|
|
65
65
|
readonly type: "string";
|
|
66
66
|
readonly enum: readonly ["second", "minute", "hour", "day", "week", "month", "quarter", "year"];
|
|
67
|
-
readonly description: "Time bucket size. REQUIRED for time series
|
|
67
|
+
readonly description: "Time bucket size. REQUIRED for time series. Without it the time dimension is a date-range filter only (no time column, no grouping).";
|
|
68
68
|
};
|
|
69
69
|
readonly dateRange: {
|
|
70
|
-
readonly description: "Relative string (\"last 7 days\", \"this month\", \"last quarter\") or absolute tuple [\"YYYY-MM-DD\", \"YYYY-MM-DD\"]";
|
|
70
|
+
readonly description: "Relative string (\"today\", \"last 7 days\", \"this month\", \"last quarter\", \"next week\", \"last N days|weeks|months|quarters|years\"), a single \"YYYY-MM-DD\", or absolute tuple [\"YYYY-MM-DD\", \"YYYY-MM-DD\"]. Unrecognised strings are rejected.";
|
|
71
71
|
};
|
|
72
72
|
readonly fillMissingDates: {
|
|
73
73
|
readonly type: "boolean";
|
|
@@ -18,8 +18,7 @@ export declare class DateTimeBuilder {
|
|
|
18
18
|
private buildArrayDateRangeCondition;
|
|
19
19
|
private buildStringDateRangeCondition;
|
|
20
20
|
/**
|
|
21
|
-
* Parse relative date range expressions like "today", "yesterday", "last 7 days", "this month", etc.
|
|
22
|
-
* Handles all 14 DATE_RANGE_OPTIONS from the client
|
|
21
|
+
* Parse relative date range expressions like "today", "yesterday", "last 7 days", "this month", "next week", etc.
|
|
23
22
|
*/
|
|
24
23
|
parseRelativeDateRange(dateRange: string): {
|
|
25
24
|
start: Date;
|
|
@@ -22,13 +22,26 @@ export declare function isDateOnlyString(value: unknown): value is string;
|
|
|
22
22
|
* unparseable.
|
|
23
23
|
*/
|
|
24
24
|
export declare function normalizeDateValue(databaseAdapter: DatabaseAdapter, value: any): string | number | null;
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Parse relative date range expressions like "today", "yesterday",
|
|
27
|
+
* "last 7 days", "this month", "next week", etc. Delegates to the shared parser
|
|
28
|
+
* so the server, gap filler and client resolve the same strings identically.
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseRelativeDateRangeValue(dateRange: string): {
|
|
26
31
|
start: Date;
|
|
27
32
|
end: Date;
|
|
28
|
-
};
|
|
33
|
+
} | null;
|
|
29
34
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
35
|
+
* Whether a value parses as a single absolute date (string, number or Date) —
|
|
36
|
+
* the same test `normalizeDateValue` applies before building SQL.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isValidDateValue(value: unknown): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether a date-range expression resolves to concrete bounds exactly as
|
|
41
|
+
* `DateTimeBuilder.buildDateRangeCondition` would resolve it:
|
|
42
|
+
* - a relative string ('last 7 days', 'this month', 'next week', ...)
|
|
43
|
+
* - a single absolute date string (that whole day)
|
|
44
|
+
* - a one-element array holding either of the above
|
|
45
|
+
* - a `[start, end]` pair of absolute dates
|
|
32
46
|
*/
|
|
33
|
-
export declare function
|
|
34
|
-
export {};
|
|
47
|
+
export declare function isResolvableDateRange(dateRange: unknown): boolean;
|
|
@@ -16,8 +16,17 @@ export interface FilterOperatorContext {
|
|
|
16
16
|
databaseAdapter: DatabaseAdapter;
|
|
17
17
|
dateTimeBuilder: DateTimeBuilder;
|
|
18
18
|
}
|
|
19
|
+
/** Every operator the SQL layer can build, in declaration order. */
|
|
20
|
+
export declare const SUPPORTED_FILTER_OPERATORS: FilterOperator[];
|
|
21
|
+
/** Type guard: whether `operator` is a filter operator the SQL layer can build. */
|
|
22
|
+
export declare function isSupportedFilterOperator(operator: unknown): operator is FilterOperator;
|
|
23
|
+
/**
|
|
24
|
+
* Operators that test the field itself and take no values (`values` may be
|
|
25
|
+
* omitted or empty).
|
|
26
|
+
*/
|
|
27
|
+
export declare const NO_VALUE_FILTER_OPERATORS: ReadonlySet<FilterOperator>;
|
|
19
28
|
/**
|
|
20
29
|
* Dispatch a single filter operator to its handler. Returns null for any
|
|
21
|
-
* unknown operator (
|
|
30
|
+
* unknown operator (validation rejects those before SQL is built).
|
|
22
31
|
*/
|
|
23
32
|
export declare function applyFilterOperator(operator: FilterOperator, ctx: FilterOperatorContext): SQL | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SemanticQuery, TimeDimension } from '../types/index.js';
|
|
2
|
+
/** Whether a timeDimension only restricts the date range (no granularity, no comparison). */
|
|
3
|
+
export declare function isFilterOnlyTimeDimension(timeDimension: TimeDimension): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Rewrite granularity-less timeDimensions into equivalent `inDateRange`
|
|
6
|
+
* filters, dropping them from the selection. Returns the query unchanged when
|
|
7
|
+
* there is nothing to rewrite.
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeFilterOnlyTimeDimensions(query: SemanticQuery): SemanticQuery;
|
|
@@ -73,6 +73,31 @@ export declare class DrizzleSqlBuilder {
|
|
|
73
73
|
* @param filterType - 'where' for dimension filters, 'having' for measure filters
|
|
74
74
|
*/
|
|
75
75
|
private processFilter;
|
|
76
|
+
/** Whether a cube's rows are directly addressable in this WHERE clause. */
|
|
77
|
+
private isCubeInScope;
|
|
78
|
+
/**
|
|
79
|
+
* An OR group needs semi-join rewriting when it references several cubes and
|
|
80
|
+
* some — but not all — of them are in scope. (All in scope: plain OR. None in
|
|
81
|
+
* scope: the group belongs entirely to another clause, e.g. inside a CTE.)
|
|
82
|
+
*/
|
|
83
|
+
private orNeedsSemiJoins;
|
|
84
|
+
/**
|
|
85
|
+
* Build a logical filter where in-scope leaves are plain conditions and
|
|
86
|
+
* out-of-scope leaves become `inScopeKey IN (SELECT key FROM leafCube WHERE
|
|
87
|
+
* security AND leaf)`. This keeps OR semantics exact across a CTE boundary.
|
|
88
|
+
*/
|
|
89
|
+
private buildFilterWithSemiJoins;
|
|
90
|
+
/** Rewrite one out-of-scope leaf as a semi-join onto an in-scope cube. */
|
|
91
|
+
private buildSemiJoinLeaf;
|
|
92
|
+
/** Every cube visible from here: the in-scope map plus the rest of the plan. */
|
|
93
|
+
private knownCubes;
|
|
94
|
+
/**
|
|
95
|
+
* Find how an out-of-scope cube links to the rows in scope, as a list of
|
|
96
|
+
* semi-join hops ordered outward from an in-scope cube (the last hop's cube is
|
|
97
|
+
* the leaf's cube). A pre-aggregated cube links through its CTE join keys;
|
|
98
|
+
* anything else through the shortest equi-join path (no many-to-many hops).
|
|
99
|
+
*/
|
|
100
|
+
private findSemiJoinPath;
|
|
76
101
|
/** Build a WHERE condition for a dimension filter, honouring CTE skips and the filter cache. */
|
|
77
102
|
private processWhereDimensionFilter;
|
|
78
103
|
/**
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SQL, AnyColumn } from 'drizzle-orm';
|
|
2
|
+
import { BaseQueryDefinition, QueryContext } from '../types/index.js';
|
|
3
|
+
/** One key pair linking the outer query's column to the subquery cube's column. */
|
|
4
|
+
export interface SemiJoinKeyPair {
|
|
5
|
+
/** Column already in scope in the outer query */
|
|
6
|
+
outer: AnyColumn;
|
|
7
|
+
/** Column on the subquery cube's table */
|
|
8
|
+
inner: AnyColumn;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Apply a cube's BaseQueryDefinition.joins (intra-cube table-level joins)
|
|
12
|
+
* to a Drizzle query/subquery built from cubeBase.from, so joined-table columns
|
|
13
|
+
* are in scope for SELECTs and WHEREs.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyBaseJoins(query: any, cubeBase: Pick<BaseQueryDefinition, 'joins'>): any;
|
|
16
|
+
/**
|
|
17
|
+
* Build `outer IN (SELECT inner FROM cube WHERE conditions)` for a single key,
|
|
18
|
+
* or `EXISTS (SELECT 1 FROM cube WHERE inner = outer AND ... AND conditions)`
|
|
19
|
+
* for composite keys (portable across all engines).
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildSemiJoinCondition(context: QueryContext, cubeBase: BaseQueryDefinition, keyPairs: SemiJoinKeyPair[], conditions: SQL[]): SQL;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* - {CUBE_SCHEMA} - JSON-formatted cube schema
|
|
21
21
|
* - {USER_PROMPT} - User's natural language query
|
|
22
22
|
*/
|
|
23
|
-
export declare const SYSTEM_PROMPT_TEMPLATE = "You are a helpful AI assistant for analyzing business data using Cube.js/Drizzle-Cube semantic layer.\n\nGiven the following cube schema and user query, generate a valid JSON response containing a query AND chart configuration.\n\nCUBE SCHEMA:\n{CUBE_SCHEMA}\n\nRESPONSE FORMAT:\nReturn a JSON object with these fields:\n{\n \"query\": { /* Cube.js query object OR funnel query object */ },\n \"chartType\": \"line\"|\"bar\"|\"area\"|\"pie\"|\"scatter\"|\"bubble\"|\"table\"|\"funnel\",\n \"chartConfig\": {\n \"xAxis\": string[], // Dimensions/timeDimensions for X axis\n \"yAxis\": string[], // Measures for Y axis\n \"series\": string[], // Optional: dimension for grouping into multiple series\n \"sizeField\": string, // Bubble chart only: measure for bubble size\n \"colorField\": string // Bubble chart only: dimension/measure for color\n }\n}\n\nQUERY STRUCTURE:\n{\n dimensions?: string[], // dimension names from CUBE SCHEMA\n measures?: string[], // measure names from CUBE SCHEMA\n timeDimensions?: [{\n dimension: string, // time dimension from CUBE SCHEMA\n granularity?: 'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year',\n dateRange?: [string, string] | string // 'last year' 'this year' ['2024-01-01','2024-12-31'] or lowercase relative strings below\n }],\n filters?: [{\n member: string, // dimension/measure from CUBE SCHEMA\n operator: 'equals'|'notEquals'|'contains'|'notContains'|'startsWith'|'endsWith'|'gt'|'gte'|'lt'|'lte'|'
|
|
23
|
+
export declare const SYSTEM_PROMPT_TEMPLATE = "You are a helpful AI assistant for analyzing business data using Cube.js/Drizzle-Cube semantic layer.\n\nGiven the following cube schema and user query, generate a valid JSON response containing a query AND chart configuration.\n\nCUBE SCHEMA:\n{CUBE_SCHEMA}\n\nRESPONSE FORMAT:\nReturn a JSON object with these fields:\n{\n \"query\": { /* Cube.js query object OR funnel query object */ },\n \"chartType\": \"line\"|\"bar\"|\"area\"|\"pie\"|\"scatter\"|\"bubble\"|\"table\"|\"funnel\",\n \"chartConfig\": {\n \"xAxis\": string[], // Dimensions/timeDimensions for X axis\n \"yAxis\": string[], // Measures for Y axis\n \"series\": string[], // Optional: dimension for grouping into multiple series\n \"sizeField\": string, // Bubble chart only: measure for bubble size\n \"colorField\": string // Bubble chart only: dimension/measure for color\n }\n}\n\nQUERY STRUCTURE:\n{\n dimensions?: string[], // dimension names from CUBE SCHEMA\n measures?: string[], // measure names from CUBE SCHEMA\n timeDimensions?: [{\n dimension: string, // time dimension from CUBE SCHEMA\n granularity?: 'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year',\n dateRange?: [string, string] | string // 'last year' 'this year' ['2024-01-01','2024-12-31'] or lowercase relative strings below\n }],\n filters?: [{\n member: string, // dimension/measure from CUBE SCHEMA\n operator: 'equals'|'notEquals'|'contains'|'notContains'|'startsWith'|'notStartsWith'|'endsWith'|'notEndsWith'|'gt'|'gte'|'lt'|'lte'|'in'|'notIn'|'inDateRange'|'beforeDate'|'afterDate'|'set'|'notSet'|'isEmpty'|'isNotEmpty',\n values?: any[] // required unless set/notSet/isEmpty/isNotEmpty; inDateRange: ['last 7 days'] or ['2024-01-01','2024-03-31']\n }],\n order?: {[member: string]: 'asc'|'desc'}, // member from dimensions/measures/timeDimensions\n limit?: number,\n offset?: number\n}\n\nValid dateRange strings (MUST be lower case): 'today'|'yesterday'|'tomorrow'|'last 7 days'|'last 30 days'|'last week'|'last month'|'last quarter'|'last year'|'this week'|'this month'|'this quarter'|'this year'|'next week'|'next month'|'next quarter'|'next year'\nCRITICAL: All dateRange strings must be lowercase. Never capitalize (e.g., use 'last 7 days' NOT 'Last 7 days').\n\nFUNNEL QUERY STRUCTURE (use instead of regular query for funnel analysis):\n{\n \"funnel\": {\n \"bindingKey\": string, // Dimension that links steps (e.g., \"Events.userId\")\n \"timeDimension\": string, // Time dimension for ordering (e.g., \"Events.timestamp\")\n \"steps\": [\n {\n \"name\": string, // Step display name (e.g., \"Sign Up\")\n \"filter\": { // Filter identifying this step event\n \"member\": string, // Dimension to filter on\n \"operator\": \"equals\"|\"notEquals\"|\"contains\",\n \"values\": any[]\n },\n \"timeToConvert\": string // Optional: max time from previous step (ISO 8601: \"P7D\", \"PT24H\")\n }\n ],\n \"includeTimeMetrics\": boolean, // Optional: include avg/median/p90 time-to-convert\n \"globalTimeWindow\": string // Optional: all steps must complete within this time (ISO 8601)\n }\n}\n\nFUNNEL DETECTION:\nIf the user query mentions ANY of these concepts, use FUNNEL query format:\n- \"funnel\", \"conversion\", \"journey\", \"flow\"\n- \"step by step\", \"multi-step\", \"progression\"\n- \"drop off\", \"dropoff\", \"abandon\", \"churn\"\n- \"sign up to purchase\", \"registration to conversion\"\n- \"how many users go from X to Y\"\n\nFUNNEL QUERY RULES:\n1. CRITICAL: Funnel queries can ONLY be used for cubes that have \"eventStream\" metadata in the schema\n2. If no cube has eventStream metadata, DO NOT generate funnel queries - use regular queries instead\n3. Use \"funnel\" chart type when generating funnel queries\n4. bindingKey should match the eventStream.bindingKey from the cube metadata\n5. timeDimension should match the eventStream.timeDimension from the cube metadata\n6. Each step needs a name and filter that identifies that event\n7. Steps are ordered - step 2 must occur after step 1\n8. timeToConvert is optional but useful (e.g., \"P7D\" = 7 days, \"PT24H\" = 24 hours)\n9. ALWAYS include a time filter on STEP 0 using inDateRange operator unless the user specifies a different time period.\n Default to 'last 6 months' for funnel queries to ensure reasonable performance and relevant data.\n Add this as an additional filter in the first step's filter array.\n Example: step 0 filter should include: { \"member\": \"PREvents.timestamp\", \"operator\": \"inDateRange\", \"values\": [\"last 6 months\"] }\n\nCHART TYPE SELECTION:\n- \"line\": For trends over time ONLY (requires timeDimensions, NOT for correlations)\n- \"bar\": For comparing categories or values across groups (NOT for correlations)\n- \"area\": For cumulative trends over time (requires timeDimensions)\n- \"pie\": For showing proportions of a whole (single measure, one dimension, few categories)\n- \"scatter\": ALWAYS use for correlation, relationship, or comparison between TWO numeric values\n- \"bubble\": ALWAYS use for correlation between THREE measures (x, y, size) with category labels\n- \"table\": For detailed data inspection or when chart doesn't make sense\n- \"funnel\": ALWAYS use for sequential step/conversion analysis (requires funnel query format)\n\nCRITICAL CORRELATION DETECTION:\nIf the user query contains ANY of these words, YOU MUST use \"scatter\" or \"bubble\" chart:\n- \"correlation\", \"correlate\", \"correlated\"\n- \"relationship\", \"relate\", \"related\"\n- \"vs\", \"versus\", \"against\"\n- \"compare\", \"comparison\"\n- \"association\", \"associated\"\n- \"link\", \"linked\", \"connection\"\nWhen 2 measures: use \"scatter\"\nWhen 3+ measures: use \"bubble\" (xAxis=measure1, yAxis=measure2, sizeField=measure3)\nNEVER use \"line\" for correlation queries - line charts are ONLY for time-series data.\n\nCHART CONFIGURATION RULES:\n- xAxis: Put the grouping dimension or time dimension here\n- yAxis: Put the measure(s) to visualize here\n- series: Use when you want multiple lines/bars per category (e.g., breakdown by status)\n- For time-series analysis: xAxis = [time dimension name], yAxis = [measures]\n- For categorical analysis: xAxis = [category dimension], yAxis = [measures]\n- For scatter/bubble charts (correlation analysis):\n - Scatter: xAxis = [measure1], yAxis = [measure2], series = [optional grouping dimension]\n - Bubble: xAxis = [measure1], yAxis = [measure2], sizeField = measure3, series = [label dimension]\n\nDIMENSION SELECTION RULES:\n1. ALWAYS prefer .name fields over .id fields (e.g., use \"Employees.name\" NOT \"Employees.id\")\n2. NEVER use fields ending with \"Id\" as dimensions unless specifically requested\n3. When analyzing trends over time, ALWAYS include an appropriate timeDimension with granularity\n4. For \"by\" queries (e.g., \"sales by region\"), use the category as the xAxis dimension\n5. Choose descriptive string dimensions over numeric ID fields\n\nQUERY RULES:\n1. Only use measures, dimensions, and time dimensions that exist in the schema above\n2. Return ONLY valid JSON - no explanations or markdown\n3. Use proper Cube.js query format with measures, dimensions, timeDimensions, filters, etc.\n4. For time-based queries, always specify appropriate granularity (day, week, month, year)\n5. When filtering, use the correct member names and operators (equals, contains, gt, lt, etc.)\n6. At least one measure or dimension is required\n\nUSER QUERY:\n{USER_PROMPT}\n\nReturn the JSON response:";
|
|
24
24
|
/**
|
|
25
25
|
* Build the single-step system prompt with schema and user prompt
|
|
26
26
|
*
|
package/dist/client/charts.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-
|
|
2
|
-
import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-
|
|
3
|
-
import { t as p } from "./chunks/chart-funnel-
|
|
4
|
-
import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-
|
|
5
|
-
import { t as x } from "./chunks/chart-area-
|
|
1
|
+
import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-BdMo3zVh.js";
|
|
2
|
+
import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-DGazwi4C.js";
|
|
3
|
+
import { t as p } from "./chunks/chart-funnel-BRyZS6ie.js";
|
|
4
|
+
import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-BTI0UPK4.js";
|
|
5
|
+
import { t as x } from "./chunks/chart-area-zyLGD-ym.js";
|
|
6
6
|
import { i as S } from "./chunks/utils-CToHkuhU.js";
|
|
7
|
-
import { t as C } from "./chunks/chart-bar-
|
|
8
|
-
import { t as w } from "./chunks/chart-line-
|
|
9
|
-
import { t as T } from "./chunks/chart-pie-
|
|
10
|
-
import { t as E } from "./chunks/chart-scatter-
|
|
11
|
-
import { t as D } from "./chunks/chart-radar-
|
|
12
|
-
import { t as O } from "./chunks/chart-radial-bar-
|
|
13
|
-
import { t as k } from "./chunks/chart-tree-map-
|
|
7
|
+
import { t as C } from "./chunks/chart-bar-DMCBq8qJ.js";
|
|
8
|
+
import { t as w } from "./chunks/chart-line-IEgiF8Nv.js";
|
|
9
|
+
import { t as T } from "./chunks/chart-pie-BEB2sCXF.js";
|
|
10
|
+
import { t as E } from "./chunks/chart-scatter-CSWF6-lx.js";
|
|
11
|
+
import { t as D } from "./chunks/chart-radar-BbSbXKbP.js";
|
|
12
|
+
import { t as O } from "./chunks/chart-radial-bar-CNYD7tkM.js";
|
|
13
|
+
import { t as k } from "./chunks/chart-tree-map-BiXB7EiM.js";
|
|
14
14
|
export { d as CHART_COLORS, u as CHART_MARGINS, s as DataTable, p as FunnelChart, b as LazyChart, f as NEGATIVE_COLOR, l as POSITIVE_COLOR, x as RechartsAreaChart, C as RechartsBarChart, w as RechartsLineChart, T as RechartsPieChart, D as RechartsRadarChart, O as RechartsRadialBarChart, E as RechartsScatterChart, k as RechartsTreeMapChart, i as clearChartConfigCache, S as formatChartData, g as getAvailableChartTypes, c as getChartConfigAsync, e as getChartConfigSync, v as getUnavailableChartTypes, t as isChartConfigLoaded, h as isChartTypeAvailable, m as isValidChartType, o as loadAllChartConfigs, _ as preloadChart, a as preloadChartConfig, r as preloadChartConfigs, y as preloadCharts, n as useChartConfig };
|
package/dist/client/chunks/{DashboardEditModal-USQFytJw.js → DashboardEditModal-DfaeSZGf.js}
RENAMED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { a as e, c as t, n, o as r, r as i, s as a, u as o } from "./vendor-
|
|
1
|
+
import { a as e, c as t, n, o as r, r as i, s as a, u as o } from "./vendor-DeckzF1j.js";
|
|
2
2
|
import { n as s, t as c } from "./providers-DwQCKdGW.js";
|
|
3
|
-
import { A as l, C as u, F as d, I as f, M as p, P as m, _t as h, ct as g, gt as _, j as v, v as y, y as b } from "./chart-data-table-
|
|
4
|
-
import { r as x } from "./chart-sankey-
|
|
3
|
+
import { A as l, C as u, F as d, I as f, M as p, P as m, _t as h, ct as g, gt as _, j as v, v as y, y as b } from "./chart-data-table-BdMo3zVh.js";
|
|
4
|
+
import { r as x } from "./chart-sankey-DKnTIvSr.js";
|
|
5
5
|
import { a as S, l as C, s as w } from "./retention-ChW9jYdy.js";
|
|
6
|
-
import { i as T, t as E } from "./chart-markdown-
|
|
6
|
+
import { i as T, t as E } from "./chart-markdown-B_2Ed7FJ.js";
|
|
7
7
|
import { c as D, f as O, n as k, o as A, p as j, r as M, t as N } from "./dashboardExport-Db3rmUP1.js";
|
|
8
|
-
import { A as P, D as F, E as ee, L as I, S as te, T as L, a as R, d as ne, i as re, l as ie, n as ae, r as oe, s as z, t as se, u as ce, w as le, x as ue } from "./useDirtyStateTracking-
|
|
9
|
-
import { B as de, F as B, R as V } from "./chart-activity-grid-
|
|
10
|
-
import { a as fe, t as pe } from "./charts-loader-
|
|
11
|
-
import { H as me } from "./chart-area-
|
|
12
|
-
import { n as he, t as ge } from "./charts-core-
|
|
13
|
-
import { n as H } from "./chart-gauge-
|
|
8
|
+
import { A as P, D as F, E as ee, L as I, S as te, T as L, a as R, d as ne, i as re, l as ie, n as ae, r as oe, s as z, t as se, u as ce, w as le, x as ue } from "./useDirtyStateTracking-BfG1lX_3.js";
|
|
9
|
+
import { B as de, F as B, R as V } from "./chart-activity-grid-DGazwi4C.js";
|
|
10
|
+
import { a as fe, t as pe } from "./charts-loader-BTI0UPK4.js";
|
|
11
|
+
import { H as me } from "./chart-area-zyLGD-ym.js";
|
|
12
|
+
import { n as he, t as ge } from "./charts-core-CKpkoMCa.js";
|
|
13
|
+
import { n as H } from "./chart-gauge-DxgHlZKp.js";
|
|
14
14
|
import _e, { Component as ve, Fragment as ye, Suspense as be, createContext as xe, forwardRef as Se, lazy as U, memo as W, startTransition as Ce, useCallback as G, useContext as we, useEffect as K, useImperativeHandle as Te, useMemo as q, useRef as J, useState as Y } from "react";
|
|
15
15
|
import { Fragment as X, jsx as Z, jsxs as Q } from "react/jsx-runtime";
|
|
16
16
|
import { createPortal as Ee } from "react-dom";
|
|
@@ -10271,7 +10271,7 @@ var ss = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClic
|
|
|
10271
10271
|
]
|
|
10272
10272
|
})
|
|
10273
10273
|
}) : null;
|
|
10274
|
-
}, cs = U(() => import("./analysis-builder-
|
|
10274
|
+
}, cs = U(() => import("./analysis-builder-fPK8NgJW.js")), ls = Se((e, t) => /* @__PURE__ */ Z(be, {
|
|
10275
10275
|
fallback: /* @__PURE__ */ Z("div", {
|
|
10276
10276
|
className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:py-6",
|
|
10277
10277
|
children: /* @__PURE__ */ Z(me, {})
|
|
@@ -12623,4 +12623,4 @@ function Mc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
|
|
|
12623
12623
|
//#endregion
|
|
12624
12624
|
export { Ut as $, Kr as A, Tn as B, Vi as C, ci as D, Si as E, gn as F, xn as G, Dn as H, fn as I, _n as J, wn as K, An as L, Bn as M, Mn as N, oi as O, jn as P, Jt as Q, Cn as R, $i as S, Bi as T, Sn as U, bn as V, En as W, yn as X, vn as Y, cn as Z, Da as _, Oc as a, ke as at, Ui as b, pc as c, _s as d, Pt as et, ps as f, Zo as g, os as h, kc as i, Pe as it, Vn as j, $r as k, Ts as l, ss as m, jc as n, ze as nt, wc as o, Ae as ot, ls as p, kn as q, Ac as r, je as rt, gc as s, Mc as t, gt as tt, xs as u, ga as v, Hi as w, Wi as x, ha as y, On as z };
|
|
12625
12625
|
|
|
12626
|
-
//# sourceMappingURL=DashboardEditModal-
|
|
12626
|
+
//# sourceMappingURL=DashboardEditModal-DfaeSZGf.js.map
|