drizzle-cube 0.5.4 → 0.5.6
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/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +4 -4
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/{handler-CNn3q29F.cjs → handler-C0nUppAK.cjs} +3 -3
- package/dist/adapters/{handler-_TKfigrZ.js → handler-Odsi9_Rd.js} +125 -1
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/{locale-Dl_3R6hP.cjs → locale-Dv6bl_eU.cjs} +2 -2
- package/dist/adapters/{locale-BQQrZYhz.js → locale-Dy3LcTwN.js} +4 -2
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +8 -3
- package/dist/adapters/mcp-transport-BCtjU0lC.cjs +40 -0
- package/dist/adapters/mcp-transport-DW_Uks-O.js +579 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +4 -4
- package/dist/adapters/{utils-DG8ti3FT.js → utils-Bd5mzZfk.js} +44 -18
- package/dist/adapters/utils-DklqMBHn.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +6 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/client/charts/chartConfigs.d.ts +34 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BBcB0E2g.js → DashboardEditModal-BiJwVv0b.js} +11 -11
- package/dist/client/chunks/DashboardEditModal-BiJwVv0b.js.map +1 -0
- package/dist/client/chunks/{FieldSearchModal-CisOov-_.js → FieldSearchModal-DdcbCwAi.js} +21 -5
- package/dist/client/chunks/{FieldSearchModal-CisOov-_.js.map → FieldSearchModal-DdcbCwAi.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js → RetentionCombinedChart-CivIny9P.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js.map → RetentionCombinedChart-CivIny9P.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js → RetentionHeatmap-BHCgwZmB.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js.map → RetentionHeatmap-BHCgwZmB.js.map} +1 -1
- package/dist/client/chunks/{af-ZA-xDmO5F0s.js → af-ZA-BdL6DOWy.js} +10 -3
- package/dist/client/chunks/af-ZA-BdL6DOWy.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-0o1W-k3K.js → analysis-builder-MoGvbMRe.js} +245 -255
- package/dist/client/chunks/analysis-builder-MoGvbMRe.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-Cz4KAlIC.js → analysis-builder-shared-DmyRh2O3.js} +391 -459
- package/dist/client/chunks/analysis-builder-shared-DmyRh2O3.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-VFFm85hC.js → chart-activity-grid-Bdb8U_NC.js} +14 -7
- package/dist/client/chunks/chart-activity-grid-Bdb8U_NC.js.map +1 -0
- package/dist/client/chunks/{chart-area-CwwIHTmK.js → chart-area-BZEnT-tf.js} +39 -38
- package/dist/client/chunks/chart-area-BZEnT-tf.js.map +1 -0
- package/dist/client/chunks/{chart-bar-Bmny922L.js → chart-bar-CTmdv_v0.js} +53 -52
- package/dist/client/chunks/chart-bar-CTmdv_v0.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js → chart-box-plot-CYObdFtp.js} +3 -3
- package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js.map → chart-box-plot-CYObdFtp.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-DJOq4IpT.js → chart-bubble-CjFprySz.js} +3 -3
- package/dist/client/chunks/{chart-bubble-DJOq4IpT.js.map → chart-bubble-CjFprySz.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js → chart-candlestick-D2HoM3B5.js} +3 -3
- package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js.map → chart-candlestick-D2HoM3B5.js.map} +1 -1
- package/dist/client/chunks/{chart-config-activity-grid-C-EkgYoa.js → chart-config-activity-grid-Bom99j9m.js} +9 -2
- package/dist/client/chunks/chart-config-activity-grid-Bom99j9m.js.map +1 -0
- package/dist/client/chunks/{chart-config-area-CMZpbIah.js → chart-config-area-DtYTKZxS.js} +10 -2
- package/dist/client/chunks/chart-config-area-DtYTKZxS.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-B8_V4YLg.js → chart-config-bar-7v5JVY2y.js} +10 -2
- package/dist/client/chunks/chart-config-bar-7v5JVY2y.js.map +1 -0
- package/dist/client/chunks/{chart-config-box-plot-Dwj7sEbU.js → chart-config-box-plot-BHGv-wqu.js} +9 -2
- package/dist/client/chunks/chart-config-box-plot-BHGv-wqu.js.map +1 -0
- package/dist/client/chunks/{chart-config-bubble-B0w0ZVp4.js → chart-config-bubble-BkHm-mfu.js} +9 -2
- package/dist/client/chunks/chart-config-bubble-BkHm-mfu.js.map +1 -0
- package/dist/client/chunks/{chart-config-candlestick-Bvo3zeIn.js → chart-config-candlestick-D1aaHvTe.js} +9 -2
- package/dist/client/chunks/chart-config-candlestick-D1aaHvTe.js.map +1 -0
- package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js → chart-config-data-table-B_Hw8w2J.js} +2 -2
- package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js.map → chart-config-data-table-B_Hw8w2J.js.map} +1 -1
- package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js → chart-config-funnel-DL8PSGuL.js} +2 -2
- package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js.map → chart-config-funnel-DL8PSGuL.js.map} +1 -1
- package/dist/client/chunks/{chart-config-gauge-C5ZiyZy7.js → chart-config-gauge-BVLxuA3f.js} +6 -2
- package/dist/client/chunks/chart-config-gauge-BVLxuA3f.js.map +1 -0
- package/dist/client/chunks/{chart-config-heat-map-Cv8qNnVP.js → chart-config-heat-map-CjudGdui.js} +9 -2
- package/dist/client/chunks/chart-config-heat-map-CjudGdui.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-BraHQc2E.js → chart-config-kpi-delta-Bf47hGqD.js} +9 -2
- package/dist/client/chunks/chart-config-kpi-delta-Bf47hGqD.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-CeCkx7mC.js → chart-config-kpi-number-QTQRNgOi.js} +6 -2
- package/dist/client/chunks/chart-config-kpi-number-QTQRNgOi.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-CImM3SvH.js → chart-config-kpi-text-BRze2eyh.js} +6 -2
- package/dist/client/chunks/chart-config-kpi-text-BRze2eyh.js.map +1 -0
- package/dist/client/chunks/{chart-config-line-BVKapAQK.js → chart-config-line-BFeCqmKH.js} +10 -2
- package/dist/client/chunks/chart-config-line-BFeCqmKH.js.map +1 -0
- package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js → chart-config-markdown-EWYckwXv.js} +2 -2
- package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js.map → chart-config-markdown-EWYckwXv.js.map} +1 -1
- package/dist/client/chunks/{chart-config-measure-profile-KTVV1gO3.js → chart-config-measure-profile-B9nIhqKR.js} +6 -2
- package/dist/client/chunks/chart-config-measure-profile-B9nIhqKR.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-BZxVl25X.js → chart-config-pie-6LHtEyMM.js} +9 -2
- package/dist/client/chunks/chart-config-pie-6LHtEyMM.js.map +1 -0
- package/dist/client/chunks/{chart-config-radar-B7FByX3t.js → chart-config-radar-BuLS6Inn.js} +9 -2
- package/dist/client/chunks/chart-config-radar-BuLS6Inn.js.map +1 -0
- package/dist/client/chunks/{chart-config-radial-bar-UfW_3yyX.js → chart-config-radial-bar-BP0eMohx.js} +9 -2
- package/dist/client/chunks/chart-config-radial-bar-BP0eMohx.js.map +1 -0
- package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js → chart-config-sankey-CT8oGIGP.js} +2 -2
- package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js.map → chart-config-sankey-CT8oGIGP.js.map} +1 -1
- package/dist/client/chunks/{chart-config-scatter-BVVJuOnt.js → chart-config-scatter-DOSpN07Z.js} +9 -2
- package/dist/client/chunks/chart-config-scatter-DOSpN07Z.js.map +1 -0
- package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js → chart-config-sunburst-BSUX_YoB.js} +2 -2
- package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js.map → chart-config-sunburst-BSUX_YoB.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-IHp97OyV.js → chart-config-tree-map-D8GuAgVB.js} +9 -2
- package/dist/client/chunks/chart-config-tree-map-D8GuAgVB.js.map +1 -0
- package/dist/client/chunks/{chart-config-waterfall-BdqG1V-x.js → chart-config-waterfall-BDi7BoJP.js} +9 -2
- package/dist/client/chunks/chart-config-waterfall-BDi7BoJP.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-zZtwLf55.js → chart-data-table-DT4uBZaq.js} +92 -90
- package/dist/client/chunks/{chart-data-table-zZtwLf55.js.map → chart-data-table-DT4uBZaq.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-COTJy8BP.js → chart-funnel-B9crR3b3.js} +3 -3
- package/dist/client/chunks/{chart-funnel-COTJy8BP.js.map → chart-funnel-B9crR3b3.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-C8lIneI0.js → chart-gauge-DAMFsicz.js} +3 -3
- package/dist/client/chunks/{chart-gauge-C8lIneI0.js.map → chart-gauge-DAMFsicz.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js → chart-heat-map-BxgM_X1G.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js.map → chart-heat-map-BxgM_X1G.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js → chart-kpi-delta-DJKL02Ut.js} +75 -73
- package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js.map → chart-kpi-delta-DJKL02Ut.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js → chart-kpi-number-CuNEYbRx.js} +66 -65
- package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js.map → chart-kpi-number-CuNEYbRx.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-D0plngLV.js → chart-kpi-text-u8FJaZDQ.js} +27 -26
- package/dist/client/chunks/{chart-kpi-text-D0plngLV.js.map → chart-kpi-text-u8FJaZDQ.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DKvW32U-.js → chart-line-BZhzOjRl.js} +119 -118
- package/dist/client/chunks/chart-line-BZhzOjRl.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-CJU2hUq3.js → chart-markdown-DEtjn8gx.js} +70 -69
- package/dist/client/chunks/chart-markdown-DEtjn8gx.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js → chart-measure-profile-BnpIOS4Q.js} +4 -4
- package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js.map → chart-measure-profile-BnpIOS4Q.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-CzYnncO-.js → chart-pie-CsdzxmSK.js} +4 -4
- package/dist/client/chunks/{chart-pie-CzYnncO-.js.map → chart-pie-CsdzxmSK.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-8iAt3QZl.js → chart-radar-C_9RwMKw.js} +4 -4
- package/dist/client/chunks/{chart-radar-8iAt3QZl.js.map → chart-radar-C_9RwMKw.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js → chart-radial-bar-CewRelyQ.js} +4 -4
- package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js.map → chart-radial-bar-CewRelyQ.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-C-wLBUmb.js → chart-sankey-ItraHWH1.js} +3 -3
- package/dist/client/chunks/{chart-sankey-C-wLBUmb.js.map → chart-sankey-ItraHWH1.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-NMjD1lbW.js → chart-scatter-k2IJbO2Y.js} +4 -4
- package/dist/client/chunks/{chart-scatter-NMjD1lbW.js.map → chart-scatter-k2IJbO2Y.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js → chart-sunburst-NsFRuqi9.js} +4 -4
- package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js.map → chart-sunburst-NsFRuqi9.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CetaLMt8.js → chart-tree-map-Cj_ewpwJ.js} +4 -4
- package/dist/client/chunks/{chart-tree-map-CetaLMt8.js.map → chart-tree-map-Cj_ewpwJ.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js → chart-waterfall-C-MTFcOz.js} +4 -4
- package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js.map → chart-waterfall-C-MTFcOz.js.map} +1 -1
- package/dist/client/chunks/{charts-core-B5UXUg6_.js → charts-core-vZA3zPKb.js} +2 -2
- package/dist/client/chunks/{charts-core-B5UXUg6_.js.map → charts-core-vZA3zPKb.js.map} +1 -1
- package/dist/client/chunks/{core-Dk6z6kC0.js → core-Su6tIYhp.js} +5 -3
- package/dist/client/chunks/{core-Dk6z6kC0.js.map → core-Su6tIYhp.js.map} +1 -1
- package/dist/client/chunks/{dist-eZurnOde.js → dist-BTq3NoG3.js} +38 -32
- package/dist/client/chunks/dist-BTq3NoG3.js.map +1 -0
- package/dist/client/chunks/{en-US-5xPTdCXg.js → en-US-D-1JPTPv.js} +1 -1
- package/dist/client/chunks/{en-US-5xPTdCXg.js.map → en-US-D-1JPTPv.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-DaJsLlWM.js → exceljs.min-Dc1cBQ5l.js} +71 -45
- package/dist/client/chunks/{exceljs.min-DaJsLlWM.js.map → exceljs.min-Dc1cBQ5l.js.map} +1 -1
- package/dist/client/chunks/{javascript-DFvvCuoP.js → javascript-YXkoOgWa.js} +1 -1
- package/dist/client/chunks/{javascript-DFvvCuoP.js.map → javascript-YXkoOgWa.js.map} +1 -1
- package/dist/client/chunks/{json-BBm9TlrA.js → json-O7MKB_4V.js} +1 -1
- package/dist/client/chunks/{json-BBm9TlrA.js.map → json-O7MKB_4V.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-DDf0OdfW.js → nl-NL-BErZMygi.js} +10 -3
- package/dist/client/chunks/nl-NL-BErZMygi.js.map +1 -0
- package/dist/client/chunks/{rolldown-runtime-CCl2IeXn.js → rolldown-runtime-CKnJJeip.js} +1 -1
- package/dist/client/chunks/{schema-visualization-cnB2xZxn.js → schema-visualization-BY9L2nBQ.js} +294 -290
- package/dist/client/chunks/{schema-visualization-cnB2xZxn.js.map → schema-visualization-BY9L2nBQ.js.map} +1 -1
- package/dist/client/chunks/{sql-k0GA6oZ_.js → sql-r2a-9CCK.js} +1 -1
- package/dist/client/chunks/{sql-k0GA6oZ_.js.map → sql-r2a-9CCK.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js → syntaxHighlighting-5zHcjn27.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js.map → syntaxHighlighting-5zHcjn27.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-BOBSvhHy.js → useDebounce-DGfYXtkm.js} +4 -4
- package/dist/client/chunks/{useDebounce-BOBSvhHy.js.map → useDebounce-DGfYXtkm.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js → useExplainAI-CD0KuKwY.js} +4 -4
- package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js.map → useExplainAI-CD0KuKwY.js.map} +1 -1
- package/dist/client/chunks/{utils-BIuqPQuJ.js → utils-D2SCtAkZ.js} +2 -2
- package/dist/client/chunks/{utils-BIuqPQuJ.js.map → utils-D2SCtAkZ.js.map} +1 -1
- package/dist/client/chunks/{vendor-BxLCTfvm.js → vendor-CfR5hJGc.js} +3 -3
- package/dist/client/chunks/{vendor-BxLCTfvm.js.map → vendor-CfR5hJGc.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +2 -2
- package/dist/client/components.js +3 -3
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +15 -15
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/chartDefaults.d.ts +5 -10
- package/dist/client/types.d.ts +1 -0
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +48 -48
- package/dist/server/index.cjs +7 -7
- package/dist/server/index.js +159 -16
- package/package.json +2 -2
- package/dist/adapters/mcp-transport-CkyawtUT.cjs +0 -40
- package/dist/adapters/mcp-transport-DSbd6M_u.js +0 -586
- package/dist/adapters/utils-DrWvXf0G.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-BBcB0E2g.js.map +0 -1
- package/dist/client/chunks/KpiDelta-D09hA_UJ.js +0 -2
- package/dist/client/chunks/KpiNumber-B7F9F9fC.js +0 -2
- package/dist/client/chunks/KpiText-C3ZXOF8b.js +0 -2
- package/dist/client/chunks/SchemaVisualization-DP4k1fPp.js +0 -2
- package/dist/client/chunks/SchemaVisualizationLazy-Brqv_PY9.js +0 -2
- package/dist/client/chunks/af-ZA-xDmO5F0s.js.map +0 -1
- package/dist/client/chunks/analysis-builder-0o1W-k3K.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-Cz4KAlIC.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-VFFm85hC.js.map +0 -1
- package/dist/client/chunks/chart-area-CwwIHTmK.js.map +0 -1
- package/dist/client/chunks/chart-bar-Bmny922L.js.map +0 -1
- package/dist/client/chunks/chart-config-activity-grid-C-EkgYoa.js.map +0 -1
- package/dist/client/chunks/chart-config-area-CMZpbIah.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-B8_V4YLg.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-Dwj7sEbU.js.map +0 -1
- package/dist/client/chunks/chart-config-bubble-B0w0ZVp4.js.map +0 -1
- package/dist/client/chunks/chart-config-candlestick-Bvo3zeIn.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-C5ZiyZy7.js.map +0 -1
- package/dist/client/chunks/chart-config-heat-map-Cv8qNnVP.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-BraHQc2E.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-CeCkx7mC.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-CImM3SvH.js.map +0 -1
- package/dist/client/chunks/chart-config-line-BVKapAQK.js.map +0 -1
- package/dist/client/chunks/chart-config-measure-profile-KTVV1gO3.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-BZxVl25X.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-B7FByX3t.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-UfW_3yyX.js.map +0 -1
- package/dist/client/chunks/chart-config-scatter-BVVJuOnt.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-IHp97OyV.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-BdqG1V-x.js.map +0 -1
- package/dist/client/chunks/chart-line-DKvW32U-.js.map +0 -1
- package/dist/client/chunks/chart-markdown-CJU2hUq3.js.map +0 -1
- package/dist/client/chunks/dist-eZurnOde.js.map +0 -1
- package/dist/client/chunks/nl-NL-DDf0OdfW.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, d as r, g as i, p as a, v as o, y as s } from "./utils-
|
|
1
|
+
import { C as e, S as t, _ as n, d as r, g as i, p as a, v as o, y as s } from "./utils-Bd5mzZfk.js";
|
|
2
2
|
//#region src/server/agent/system-prompt.ts
|
|
3
3
|
function c(e) {
|
|
4
4
|
if (e.length === 0) return "No cubes are currently available.";
|
|
@@ -243,6 +243,13 @@ var d = {
|
|
|
243
243
|
description: "chart.bar.description",
|
|
244
244
|
useCase: "chart.bar.useCase",
|
|
245
245
|
clickableElements: { bar: !0 },
|
|
246
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
247
|
+
available: !1,
|
|
248
|
+
reason: "chart.availability.requiresMeasure"
|
|
249
|
+
} : t < 1 ? {
|
|
250
|
+
available: !1,
|
|
251
|
+
reason: "chart.availability.requiresDimension"
|
|
252
|
+
} : { available: !0 },
|
|
246
253
|
dropZones: [
|
|
247
254
|
{
|
|
248
255
|
key: "xAxis",
|
|
@@ -274,6 +281,7 @@ var d = {
|
|
|
274
281
|
"showLegend",
|
|
275
282
|
"showGrid",
|
|
276
283
|
"showTooltip",
|
|
284
|
+
"showAllXLabels",
|
|
277
285
|
"hideHeader"
|
|
278
286
|
],
|
|
279
287
|
displayOptionsConfig: [
|
|
@@ -324,6 +332,13 @@ var d = {
|
|
|
324
332
|
description: "chart.line.description",
|
|
325
333
|
useCase: "chart.line.useCase",
|
|
326
334
|
clickableElements: { point: !0 },
|
|
335
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
336
|
+
available: !1,
|
|
337
|
+
reason: "chart.availability.requiresMeasure"
|
|
338
|
+
} : t < 1 ? {
|
|
339
|
+
available: !1,
|
|
340
|
+
reason: "chart.availability.requiresDimension"
|
|
341
|
+
} : { available: !0 },
|
|
327
342
|
dropZones: [
|
|
328
343
|
{
|
|
329
344
|
key: "xAxis",
|
|
@@ -355,6 +370,7 @@ var d = {
|
|
|
355
370
|
"showLegend",
|
|
356
371
|
"showGrid",
|
|
357
372
|
"showTooltip",
|
|
373
|
+
"showAllXLabels",
|
|
358
374
|
"hideHeader"
|
|
359
375
|
],
|
|
360
376
|
displayOptionsConfig: [
|
|
@@ -421,6 +437,13 @@ var d = {
|
|
|
421
437
|
label: "chart.area.label",
|
|
422
438
|
description: "chart.area.description",
|
|
423
439
|
useCase: "chart.area.useCase",
|
|
440
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
441
|
+
available: !1,
|
|
442
|
+
reason: "chart.availability.requiresMeasure"
|
|
443
|
+
} : t < 1 ? {
|
|
444
|
+
available: !1,
|
|
445
|
+
reason: "chart.availability.requiresDimension"
|
|
446
|
+
} : { available: !0 },
|
|
424
447
|
dropZones: [
|
|
425
448
|
{
|
|
426
449
|
key: "xAxis",
|
|
@@ -452,6 +475,7 @@ var d = {
|
|
|
452
475
|
"showLegend",
|
|
453
476
|
"showGrid",
|
|
454
477
|
"showTooltip",
|
|
478
|
+
"showAllXLabels",
|
|
455
479
|
"hideHeader"
|
|
456
480
|
],
|
|
457
481
|
displayOptionsConfig: [
|
|
@@ -509,6 +533,13 @@ var d = {
|
|
|
509
533
|
description: "chart.pie.description",
|
|
510
534
|
useCase: "chart.pie.useCase",
|
|
511
535
|
clickableElements: { slice: !0 },
|
|
536
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
537
|
+
available: !1,
|
|
538
|
+
reason: "chart.availability.requiresMeasure"
|
|
539
|
+
} : t < 1 ? {
|
|
540
|
+
available: !1,
|
|
541
|
+
reason: "chart.availability.requiresDimension"
|
|
542
|
+
} : { available: !0 },
|
|
512
543
|
dropZones: [{
|
|
513
544
|
key: "xAxis",
|
|
514
545
|
label: "chart.configText.categories",
|
|
@@ -570,6 +601,13 @@ var d = {
|
|
|
570
601
|
label: "chart.scatter.label",
|
|
571
602
|
description: "chart.scatter.description",
|
|
572
603
|
useCase: "chart.scatter.useCase",
|
|
604
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
605
|
+
available: !1,
|
|
606
|
+
reason: "chart.availability.requiresMeasure"
|
|
607
|
+
} : e < 2 && t < 1 ? {
|
|
608
|
+
available: !1,
|
|
609
|
+
reason: "chart.availability.scatter"
|
|
610
|
+
} : { available: !0 },
|
|
573
611
|
dropZones: [
|
|
574
612
|
{
|
|
575
613
|
key: "xAxis",
|
|
@@ -625,6 +663,13 @@ var d = {
|
|
|
625
663
|
label: "chart.bubble.label",
|
|
626
664
|
description: "chart.bubble.description",
|
|
627
665
|
useCase: "chart.bubble.useCase",
|
|
666
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 2 ? {
|
|
667
|
+
available: !1,
|
|
668
|
+
reason: "chart.availability.requiresTwoMeasures"
|
|
669
|
+
} : t < 1 ? {
|
|
670
|
+
available: !1,
|
|
671
|
+
reason: "chart.availability.bubble"
|
|
672
|
+
} : { available: !0 },
|
|
628
673
|
dropZones: [
|
|
629
674
|
{
|
|
630
675
|
key: "xAxis",
|
|
@@ -701,6 +746,13 @@ var d = {
|
|
|
701
746
|
label: "chart.radar.label",
|
|
702
747
|
description: "chart.radar.description",
|
|
703
748
|
useCase: "chart.radar.useCase",
|
|
749
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
750
|
+
available: !1,
|
|
751
|
+
reason: "chart.availability.requiresMeasure"
|
|
752
|
+
} : t < 1 ? {
|
|
753
|
+
available: !1,
|
|
754
|
+
reason: "chart.availability.requiresDimension"
|
|
755
|
+
} : { available: !0 },
|
|
704
756
|
dropZones: [
|
|
705
757
|
{
|
|
706
758
|
key: "xAxis",
|
|
@@ -744,6 +796,13 @@ var d = {
|
|
|
744
796
|
label: "chart.radialBar.label",
|
|
745
797
|
description: "chart.radialBar.description",
|
|
746
798
|
useCase: "chart.radialBar.useCase",
|
|
799
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
800
|
+
available: !1,
|
|
801
|
+
reason: "chart.availability.requiresMeasure"
|
|
802
|
+
} : t < 1 ? {
|
|
803
|
+
available: !1,
|
|
804
|
+
reason: "chart.availability.requiresDimension"
|
|
805
|
+
} : { available: !0 },
|
|
747
806
|
dropZones: [{
|
|
748
807
|
key: "xAxis",
|
|
749
808
|
label: "chart.configText.categories",
|
|
@@ -776,6 +835,13 @@ var d = {
|
|
|
776
835
|
label: "chart.treemap.label",
|
|
777
836
|
description: "chart.treemap.description",
|
|
778
837
|
useCase: "chart.treemap.useCase",
|
|
838
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
839
|
+
available: !1,
|
|
840
|
+
reason: "chart.availability.requiresMeasure"
|
|
841
|
+
} : t < 1 ? {
|
|
842
|
+
available: !1,
|
|
843
|
+
reason: "chart.availability.requiresDimension"
|
|
844
|
+
} : { available: !0 },
|
|
779
845
|
dropZones: [
|
|
780
846
|
{
|
|
781
847
|
key: "xAxis",
|
|
@@ -845,6 +911,13 @@ var d = {
|
|
|
845
911
|
label: "chart.activityGrid.label",
|
|
846
912
|
description: "chart.activityGrid.description",
|
|
847
913
|
useCase: "chart.activityGrid.useCase",
|
|
914
|
+
isAvailable: ({ measureCount: e, timeDimensionCount: t }) => e < 1 ? {
|
|
915
|
+
available: !1,
|
|
916
|
+
reason: "chart.availability.requiresMeasure"
|
|
917
|
+
} : t < 1 ? {
|
|
918
|
+
available: !1,
|
|
919
|
+
reason: "chart.availability.requiresTimeDimension"
|
|
920
|
+
} : { available: !0 },
|
|
848
921
|
dropZones: [{
|
|
849
922
|
key: "dateField",
|
|
850
923
|
label: "chart.configText.time_dimension",
|
|
@@ -890,6 +963,10 @@ var d = {
|
|
|
890
963
|
label: "chart.kpiNumber.label",
|
|
891
964
|
description: "chart.kpiNumber.description",
|
|
892
965
|
useCase: "chart.kpiNumber.useCase",
|
|
966
|
+
isAvailable: ({ measureCount: e }) => e < 1 ? {
|
|
967
|
+
available: !1,
|
|
968
|
+
reason: "chart.availability.requiresMeasure"
|
|
969
|
+
} : { available: !0 },
|
|
893
970
|
dropZones: [{
|
|
894
971
|
key: "yAxis",
|
|
895
972
|
label: "chart.configText.value",
|
|
@@ -959,6 +1036,13 @@ var d = {
|
|
|
959
1036
|
label: "chart.kpiDelta.label",
|
|
960
1037
|
description: "chart.kpiDelta.description",
|
|
961
1038
|
useCase: "chart.kpiDelta.useCase",
|
|
1039
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
1040
|
+
available: !1,
|
|
1041
|
+
reason: "chart.availability.requiresMeasure"
|
|
1042
|
+
} : t < 1 ? {
|
|
1043
|
+
available: !1,
|
|
1044
|
+
reason: "chart.availability.requiresDimension"
|
|
1045
|
+
} : { available: !0 },
|
|
962
1046
|
dropZones: [{
|
|
963
1047
|
key: "yAxis",
|
|
964
1048
|
label: "chart.configText.value",
|
|
@@ -1047,6 +1131,10 @@ var d = {
|
|
|
1047
1131
|
label: "chart.kpiText.label",
|
|
1048
1132
|
description: "chart.kpiText.description",
|
|
1049
1133
|
useCase: "chart.kpiText.useCase",
|
|
1134
|
+
isAvailable: ({ measureCount: e }) => e < 1 ? {
|
|
1135
|
+
available: !1,
|
|
1136
|
+
reason: "chart.availability.requiresMeasure"
|
|
1137
|
+
} : { available: !0 },
|
|
1050
1138
|
dropZones: [{
|
|
1051
1139
|
key: "yAxis",
|
|
1052
1140
|
label: "chart.configText.value",
|
|
@@ -1385,6 +1473,13 @@ var d = {
|
|
|
1385
1473
|
label: "chart.heatmap.label",
|
|
1386
1474
|
description: "chart.heatmap.description",
|
|
1387
1475
|
useCase: "chart.heatmap.useCase",
|
|
1476
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
1477
|
+
available: !1,
|
|
1478
|
+
reason: "chart.availability.requiresMeasure"
|
|
1479
|
+
} : t < 2 ? {
|
|
1480
|
+
available: !1,
|
|
1481
|
+
reason: "chart.availability.requiresTwoDimensions"
|
|
1482
|
+
} : { available: !0 },
|
|
1388
1483
|
dropZones: [
|
|
1389
1484
|
{
|
|
1390
1485
|
key: "xAxis",
|
|
@@ -1539,6 +1634,13 @@ var d = {
|
|
|
1539
1634
|
label: "chart.boxPlot.label",
|
|
1540
1635
|
description: "chart.boxPlot.description",
|
|
1541
1636
|
useCase: "chart.boxPlot.useCase",
|
|
1637
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
1638
|
+
available: !1,
|
|
1639
|
+
reason: "chart.availability.requiresMeasure"
|
|
1640
|
+
} : t < 1 ? {
|
|
1641
|
+
available: !1,
|
|
1642
|
+
reason: "chart.availability.requiresDimension"
|
|
1643
|
+
} : { available: !0 },
|
|
1542
1644
|
displayOptions: ["hideHeader"],
|
|
1543
1645
|
dropZones: [{
|
|
1544
1646
|
key: "xAxis",
|
|
@@ -1569,6 +1671,13 @@ var d = {
|
|
|
1569
1671
|
description: "chart.waterfall.description",
|
|
1570
1672
|
useCase: "chart.waterfall.useCase",
|
|
1571
1673
|
clickableElements: { bar: !0 },
|
|
1674
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 1 ? {
|
|
1675
|
+
available: !1,
|
|
1676
|
+
reason: "chart.availability.requiresMeasure"
|
|
1677
|
+
} : t < 1 ? {
|
|
1678
|
+
available: !1,
|
|
1679
|
+
reason: "chart.availability.requiresDimension"
|
|
1680
|
+
} : { available: !0 },
|
|
1572
1681
|
displayOptions: ["showTooltip", "hideHeader"],
|
|
1573
1682
|
dropZones: [{
|
|
1574
1683
|
key: "xAxis",
|
|
@@ -1623,6 +1732,13 @@ var d = {
|
|
|
1623
1732
|
useCase: "chart.candlestick.useCase",
|
|
1624
1733
|
clickableElements: { bar: !0 },
|
|
1625
1734
|
displayOptions: ["hideHeader"],
|
|
1735
|
+
isAvailable: ({ measureCount: e, dimensionCount: t }) => e < 2 ? {
|
|
1736
|
+
available: !1,
|
|
1737
|
+
reason: "chart.availability.requiresTwoMeasures"
|
|
1738
|
+
} : t < 1 ? {
|
|
1739
|
+
available: !1,
|
|
1740
|
+
reason: "chart.availability.requiresDimension"
|
|
1741
|
+
} : { available: !0 },
|
|
1626
1742
|
dropZones: [{
|
|
1627
1743
|
key: "xAxis",
|
|
1628
1744
|
label: "chart.configText.x_axis_time_category",
|
|
@@ -1692,6 +1808,10 @@ var d = {
|
|
|
1692
1808
|
"showTooltip",
|
|
1693
1809
|
"hideHeader"
|
|
1694
1810
|
],
|
|
1811
|
+
isAvailable: ({ measureCount: e }) => e < 2 ? {
|
|
1812
|
+
available: !1,
|
|
1813
|
+
reason: "chart.availability.requiresTwoMeasures"
|
|
1814
|
+
} : { available: !0 },
|
|
1695
1815
|
dropZones: [{
|
|
1696
1816
|
key: "yAxis",
|
|
1697
1817
|
label: "chart.configText.measures_x_axis_order",
|
|
@@ -1765,6 +1885,10 @@ var d = {
|
|
|
1765
1885
|
useCase: "chart.gauge.useCase",
|
|
1766
1886
|
clickableElements: {},
|
|
1767
1887
|
displayOptions: ["hideHeader"],
|
|
1888
|
+
isAvailable: ({ measureCount: e }) => e < 1 ? {
|
|
1889
|
+
available: !1,
|
|
1890
|
+
reason: "chart.availability.requiresMeasure"
|
|
1891
|
+
} : { available: !0 },
|
|
1768
1892
|
dropZones: [{
|
|
1769
1893
|
key: "yAxis",
|
|
1770
1894
|
label: "chart.configText.value_measure",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../utils-DrWvXf0G.cjs`),t=require(`../locale-Dl_3R6hP.cjs`),n=require(`../mcp-transport-CkyawtUT.cjs`);let r=require(`hono`);var i=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?t.credentials?e=>e||null:()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){(t.origin!==`*`||t.credentials)&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),(t.origin!==`*`||t.credentials)&&e.header(`Vary`,`Origin`,{append:!0})}};function a(a){let{cubes:o,drizzle:s,schema:c,extractSecurityContext:l,engineType:u,cors:d,basePath:f=`/cubejs-api/v1`,cache:p,mcp:m={enabled:!0},agent:h}=a;if(!a.semanticLayer&&(!o||o.length===0))throw Error(`Either semanticLayer or a non-empty cubes array must be provided`);let g=new r.Hono,_=async e=>t.r(await l(e),t.n(t=>e.req.header(t)));if(d){let e={...d,allowHeaders:t.t(d.allowHeaders)};g.use(`/*`,i(e))}let v=a.semanticLayer??new t.i({drizzle:s,schema:c,engineType:u,cache:p,rlsSetup:a.rlsSetup});if(!a.semanticLayer&&o&&o.forEach(e=>{v.registerCube(e)}),g.post(`${f}/load`,async t=>{try{let n=await t.req.json(),r=n.query||n,i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await v.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,v))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),g.get(`${f}/load`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r;try{r=JSON.parse(n)}catch{return t.json({error:`Invalid JSON in query parameter`},400)}let i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await v.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,v))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),g.post(`${f}/batch`,async t=>{try{let{queries:n}=await t.req.json();if(!n||!Array.isArray(n))return t.json({error:`Request body must contain a "queries" array`},400);if(n.length===0)return t.json({error:`Queries array cannot be empty`},400);let r=await e.u(n,await _(t),v,{skipCache:t.req.header(`x-cache-control`)===`no-cache`});return t.json(r)}catch(e){return console.error(`Batch execution error:`,e),t.json({error:e instanceof Error?e.message:`Batch execution failed`},500)}}),g.get(`${f}/meta`,t=>{try{let n=v.getMetadata();return t.json(e.a(n))}catch(e){return console.error(`Metadata error:`,e),t.json({error:e instanceof Error?e.message:`Failed to fetch metadata`},500)}}),g.post(`${f}/sql`,async t=>{try{let n=await t.req.json(),r=await _(t),i=v.validateQuery(n);if(!i.isValid)return t.json({error:`Query validation failed: ${i.errors.join(`, `)}`},400);let a=n.measures?.[0]||n.dimensions?.[0];if(!a)return t.json({error:`No measures or dimensions specified`},400);let o=a.split(`.`)[0],s=await v.generateSQL(o,n,r);return t.json(e.o(n,s))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),g.get(`${f}/sql`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r=JSON.parse(n),i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=r.measures?.[0]||r.dimensions?.[0];if(!o)return t.json({error:`No measures or dimensions specified`},400);let s=o.split(`.`)[0],c=await v.generateSQL(s,r,i);return t.json(e.o(r,c))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),g.post(`${f}/dry-run`,async t=>{try{let n=await t.req.json(),r=await e.f(n.query||n,await _(t),v);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),g.get(`${f}/dry-run`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`,valid:!1},400);let r=await e.f(JSON.parse(n),await _(t),v);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),g.post(`${f}/explain`,async e=>{try{let t=await e.req.json(),n=t.query||t,r=t.options||{},i=await _(e),a=v.validateQuery(n);if(!a.isValid)return e.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=await v.explainQuery(n,i,r);return e.json(o)}catch(t){return console.error(`Explain error:`,t),e.json({error:t instanceof Error?t.message:`Explain query failed`},500)}}),h&&g.post(`${f}/agent/chat`,async e=>{try{let{handleAgentChat:t}=await Promise.resolve().then(()=>require(`../handler-CNn3q29F.cjs`)),{message:n,sessionId:r,history:i}=await e.req.json();if(!n||typeof n!=`string`)return e.json({error:`message is required and must be a string`},400);let a=(h.apiKey||``).trim();if(h.allowClientApiKey){let t=e.req.header(`x-agent-api-key`);t&&(a=t.trim())}if(!a)return e.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},401);let o=h.allowClientApiKey?e.req.header(`x-agent-provider`):void 0,s=h.allowClientApiKey?e.req.header(`x-agent-model`):void 0,c=h.allowClientApiKey?e.req.header(`x-agent-provider-endpoint`):void 0,l=await _(e),u=h.buildSystemContext?.(l),d=new TextEncoder,f=new ReadableStream({async start(e){try{let f=t({message:n,sessionId:r,history:i,semanticLayer:v,securityContext:l,agentConfig:h,apiKey:a,systemContext:u,providerOverride:o,modelOverride:s,baseURLOverride:c});for await(let t of f){let n=`data: ${JSON.stringify(t)}\n\n`;e.enqueue(d.encode(n))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(d.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}});return new Response(f,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}catch(t){return console.error(`Agent chat error:`,t),e.json({error:t instanceof Error?t.message:`Agent chat failed`},500)}}),m.enabled!==!1){let e=n.o(v,m.resources),t=n.y(m.prompts),r=n.v(m.instructions),i=m.basePath??`/mcp`;g.post(`${i}`,async i=>{if(m.resourceMetadataUrl&&!n.u(i.req.header(`authorization`)))return i.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),i.json({error:`Bearer token required`},401);let a=n.S(i.req.header(`origin`),m.allowedOrigins?{allowedOrigins:m.allowedOrigins}:{});if(!a.valid)return i.json(n.i(null,-32600,a.reason),403);let o=i.req.header(`accept`);if(!n.x(o))return i.json(n.i(null,-32600,`Accept header must include both application/json and text/event-stream`),400);let s=n.h(i.req.header());if(!s.ok)return i.json({error:`Unsupported MCP protocol version`,supported:s.supported},426);let c=n.g(await i.req.json().catch(()=>null));if(!c)return i.json(n.i(null,-32600,`Invalid JSON-RPC 2.0 request`),400);let l=n.C(o),u=c.method===`initialize`;try{let a=await n.l(c.method,c.params,{semanticLayer:v,extractSecurityContext:(e,t)=>_(e),rawRequest:i,rawResponse:null,negotiatedProtocol:s.negotiated,resources:e,prompts:t,instructions:r,appEnabled:!!m.app,appConfig:typeof m.app==`object`?m.app:void 0,serverName:m.serverName});if(n.m(c))return i.body(null,202);let o=n.a(c.id??null,a),d=u&&a&&typeof a==`object`&&`sessionId`in a?a.sessionId:void 0,f={};if(d&&(f[n.r]=d),l){let e=new TextEncoder,t=n._(),r=new ReadableStream({start(r){r.enqueue(e.encode(`id: ${t}\n\n`)),r.enqueue(e.encode(n.b(o,t))),r.close()}});return new Response(r,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...f}})}return i.json(o,200,f)}catch(e){if(n.m(c))return console.error(`MCP notification processing error:`,e),i.body(null,202);console.error(`MCP RPC error:`,e);let t=e?.code??-32603,r=e?.data,a=e.message||`MCP request failed`,o=n.i(c.id??null,t,a,r);if(l){let e=new TextEncoder,t=n._(),r=new ReadableStream({start(r){r.enqueue(e.encode(`id: ${t}\n\n`)),r.enqueue(e.encode(n.b(o,t))),r.close()}});return new Response(r,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}return i.json(o,200)}}),g.delete(`${i}`,e=>m.resourceMetadataUrl&&!n.u(e.req.header(`authorization`))?(e.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),e.json({error:`Bearer token required`},401)):e.json({error:`Session termination not supported`},405)),g.get(`${i}`,e=>{if(m.resourceMetadataUrl&&!n.u(e.req.header(`authorization`)))return e.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),e.json({error:`Bearer token required`},401);let t=new TextEncoder,r=n._(),i,a=new ReadableStream({start(e){e.enqueue(t.encode(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3))),i=setInterval(()=>{e.enqueue(t.encode(`: keep-alive
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../utils-DklqMBHn.cjs`),t=require(`../locale-Dv6bl_eU.cjs`),n=require(`../mcp-transport-BCtjU0lC.cjs`);let r=require(`hono`);var i=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?t.credentials?e=>e||null:()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){(t.origin!==`*`||t.credentials)&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),(t.origin!==`*`||t.credentials)&&e.header(`Vary`,`Origin`,{append:!0})}};function a(a){let{cubes:o,drizzle:s,schema:c,extractSecurityContext:l,engineType:u,cors:d,basePath:f=`/cubejs-api/v1`,cache:p,mcp:m={enabled:!0},agent:h}=a;if(!a.semanticLayer&&(!o||o.length===0))throw Error(`Either semanticLayer or a non-empty cubes array must be provided`);let g=new r.Hono,_=async e=>t.r(await l(e),t.n(t=>e.req.header(t)));if(d){let e={...d,allowHeaders:t.t(d.allowHeaders)};g.use(`/*`,i(e))}let v=a.semanticLayer??new t.i({drizzle:s,schema:c,engineType:u,cache:p,rlsSetup:a.rlsSetup});if(!a.semanticLayer&&o&&o.forEach(e=>{v.registerCube(e)}),g.post(`${f}/load`,async t=>{try{let n=await t.req.json(),r=n.query||n,i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await v.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,v))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),g.get(`${f}/load`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r;try{r=JSON.parse(n)}catch{return t.json({error:`Invalid JSON in query parameter`},400)}let i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await v.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,v))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),g.post(`${f}/batch`,async t=>{try{let{queries:n}=await t.req.json();if(!n||!Array.isArray(n))return t.json({error:`Request body must contain a "queries" array`},400);if(n.length===0)return t.json({error:`Queries array cannot be empty`},400);let r=await e.u(n,await _(t),v,{skipCache:t.req.header(`x-cache-control`)===`no-cache`});return t.json(r)}catch(e){return console.error(`Batch execution error:`,e),t.json({error:e instanceof Error?e.message:`Batch execution failed`},500)}}),g.get(`${f}/meta`,t=>{try{let n=v.getMetadata();return t.json(e.a(n))}catch(e){return console.error(`Metadata error:`,e),t.json({error:e instanceof Error?e.message:`Failed to fetch metadata`},500)}}),g.post(`${f}/sql`,async t=>{try{let n=await t.req.json(),r=await _(t),i=v.validateQuery(n);if(!i.isValid)return t.json({error:`Query validation failed: ${i.errors.join(`, `)}`},400);let a=n.measures?.[0]||n.dimensions?.[0];if(!a)return t.json({error:`No measures or dimensions specified`},400);let o=a.split(`.`)[0],s=await v.generateSQL(o,n,r);return t.json(e.o(n,s))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),g.get(`${f}/sql`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r=JSON.parse(n),i=await _(t),a=v.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=r.measures?.[0]||r.dimensions?.[0];if(!o)return t.json({error:`No measures or dimensions specified`},400);let s=o.split(`.`)[0],c=await v.generateSQL(s,r,i);return t.json(e.o(r,c))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),g.post(`${f}/dry-run`,async t=>{try{let n=await t.req.json(),r=await e.f(n.query||n,await _(t),v);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),g.get(`${f}/dry-run`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`,valid:!1},400);let r=await e.f(JSON.parse(n),await _(t),v);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),g.post(`${f}/explain`,async e=>{try{let t=await e.req.json(),n=t.query||t,r=t.options||{},i=await _(e),a=v.validateQuery(n);if(!a.isValid)return e.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=await v.explainQuery(n,i,r);return e.json(o)}catch(t){return console.error(`Explain error:`,t),e.json({error:t instanceof Error?t.message:`Explain query failed`},500)}}),h&&g.post(`${f}/agent/chat`,async e=>{try{let{handleAgentChat:t}=await Promise.resolve().then(()=>require(`../handler-C0nUppAK.cjs`)),{message:n,sessionId:r,history:i}=await e.req.json();if(!n||typeof n!=`string`)return e.json({error:`message is required and must be a string`},400);let a=(h.apiKey||``).trim();if(h.allowClientApiKey){let t=e.req.header(`x-agent-api-key`);t&&(a=t.trim())}if(!a)return e.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},401);let o=h.allowClientApiKey?e.req.header(`x-agent-provider`):void 0,s=h.allowClientApiKey?e.req.header(`x-agent-model`):void 0,c=h.allowClientApiKey?e.req.header(`x-agent-provider-endpoint`):void 0,l=await _(e),u=h.buildSystemContext?.(l),d=new TextEncoder,f=new ReadableStream({async start(e){try{let f=t({message:n,sessionId:r,history:i,semanticLayer:v,securityContext:l,agentConfig:h,apiKey:a,systemContext:u,providerOverride:o,modelOverride:s,baseURLOverride:c});for await(let t of f){let n=`data: ${JSON.stringify(t)}\n\n`;e.enqueue(d.encode(n))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(d.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}});return new Response(f,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}catch(t){return console.error(`Agent chat error:`,t),e.json({error:t instanceof Error?t.message:`Agent chat failed`},500)}}),m.enabled!==!1){let e=n.o(v,m.resources),t=n.y(m.prompts),r=n.v(m.instructions),i=m.basePath??`/mcp`;g.post(`${i}`,async i=>{if(m.resourceMetadataUrl&&!n.u(i.req.header(`authorization`)))return i.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),i.json({error:`Bearer token required`},401);let a=n.S(i.req.header(`origin`),m.allowedOrigins?{allowedOrigins:m.allowedOrigins}:{});if(!a.valid)return i.json(n.i(null,-32600,a.reason),403);let o=i.req.header(`accept`);if(!n.x(o))return i.json(n.i(null,-32600,`Accept header must include both application/json and text/event-stream`),400);let s=n.h(i.req.header());if(!s.ok)return i.json({error:`Unsupported MCP protocol version`,supported:s.supported},426);let c=n.g(await i.req.json().catch(()=>null));if(!c)return i.json(n.i(null,-32600,`Invalid JSON-RPC 2.0 request`),400);let l=n.C(o),u=c.method===`initialize`;try{let a=await n.l(c.method,c.params,{semanticLayer:v,extractSecurityContext:(e,t)=>_(e),rawRequest:i,rawResponse:null,negotiatedProtocol:s.negotiated,resources:e,prompts:t,instructions:r,appEnabled:!!m.app,appConfig:typeof m.app==`object`?m.app:void 0,serverName:m.serverName});if(n.m(c))return i.body(null,202);let o=n.a(c.id??null,a),d=u&&a&&typeof a==`object`&&`sessionId`in a?a.sessionId:void 0,f={};if(d&&(f[n.r]=d),l){let e=new TextEncoder,t=n._(),r=new ReadableStream({start(r){r.enqueue(e.encode(`id: ${t}\n\n`)),r.enqueue(e.encode(n.b(o,t))),r.close()}});return new Response(r,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...f}})}return i.json(o,200,f)}catch(e){if(n.m(c))return console.error(`MCP notification processing error:`,e),i.body(null,202);console.error(`MCP RPC error:`,e);let t=e?.code??-32603,r=e?.data,a=e.message||`MCP request failed`,o=n.i(c.id??null,t,a,r);if(l){let e=new TextEncoder,t=n._(),r=new ReadableStream({start(r){r.enqueue(e.encode(`id: ${t}\n\n`)),r.enqueue(e.encode(n.b(o,t))),r.close()}});return new Response(r,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}return i.json(o,200)}}),g.delete(`${i}`,e=>m.resourceMetadataUrl&&!n.u(e.req.header(`authorization`))?(e.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),e.json({error:`Bearer token required`},401)):e.json({error:`Session termination not supported`},405)),g.get(`${i}`,e=>{if(m.resourceMetadataUrl&&!n.u(e.req.header(`authorization`)))return e.header(`WWW-Authenticate`,n.c(m.resourceMetadataUrl)),e.json({error:`Bearer token required`},401);let t=new TextEncoder,r=n._(),i,a=new ReadableStream({start(e){e.enqueue(t.encode(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3))),i=setInterval(()=>{e.enqueue(t.encode(`: keep-alive
|
|
2
2
|
|
|
3
3
|
`))},15e3)},cancel(){clearInterval(i)}});return new Response(a,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})})}return g}function o(e,t){let n=a(t);return e.route(`/`,n),e}function s(e){return o(new r.Hono,e)}exports.createCubeApp=s,exports.createCubeRoutes=a,exports.mountCubeRoutes=o;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as e, f as t, o as n, r, u as i } from "../utils-
|
|
2
|
-
import { i as a, n as o, r as s, t as c } from "../locale-
|
|
3
|
-
import { C as l, S as u, _ as d, a as f, b as p, c as m, g as h, h as g, i as _, l as v, m as y, o as b, r as x, u as S, v as C, x as w, y as T } from "../mcp-transport-
|
|
1
|
+
import { a as e, f as t, o as n, r, u as i } from "../utils-Bd5mzZfk.js";
|
|
2
|
+
import { i as a, n as o, r as s, t as c } from "../locale-Dy3LcTwN.js";
|
|
3
|
+
import { C as l, S as u, _ as d, a as f, b as p, c as m, g as h, h as g, i as _, l as v, m as y, o as b, r as x, u as S, v as C, x as w, y as T } from "../mcp-transport-DW_Uks-O.js";
|
|
4
4
|
import { Hono as E } from "hono";
|
|
5
5
|
//#region node_modules/hono/dist/middleware/cors/index.js
|
|
6
6
|
var D = (e) => {
|
|
@@ -166,7 +166,7 @@ function O(O) {
|
|
|
166
166
|
}
|
|
167
167
|
}), R && z.post(`${F}/agent/chat`, async (e) => {
|
|
168
168
|
try {
|
|
169
|
-
let { handleAgentChat: t } = await import("../handler-
|
|
169
|
+
let { handleAgentChat: t } = await import("../handler-Odsi9_Rd.js"), { message: n, sessionId: r, history: i } = await e.req.json();
|
|
170
170
|
if (!n || typeof n != "string") return e.json({ error: "message is required and must be a string" }, 400);
|
|
171
171
|
let a = (R.apiKey || "").trim();
|
|
172
172
|
if (R.allowClientApiKey) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./utils-DrWvXf0G.cjs`);var t=Symbol.for(`drizzle:entityKind`);function n(e,n){if(!e||typeof e!=`object`)return!1;if(e instanceof n)return!0;if(!Object.prototype.hasOwnProperty.call(n,t))throw Error(`Class "${n.name??`<unknown>`}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let r=Object.getPrototypeOf(e).constructor;if(r)for(;r;){if(t in r&&r[t]===n[t])return!0;r=Object.getPrototypeOf(r)}return!1}var r=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[t]=`Column`;name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!==`byDefault`}},i=Symbol.for(`drizzle:Name`),a=Symbol.for(`drizzle:isPgEnum`);function o(e){return!!e&&typeof e==`function`&&a in e&&e[a]===!0}var s=class{static[t]=`Subquery`;constructor(e,t,n,r=!1,i=[]){this._={brand:`Subquery`,sql:e,selectedFields:t,alias:n,isWith:r,usedTables:i}}},c={startActiveSpan(e,t){return t()}},l=Symbol.for(`drizzle:ViewBaseConfig`),u=Symbol.for(`drizzle:Schema`),d=Symbol.for(`drizzle:Columns`),f=Symbol.for(`drizzle:ExtraConfigColumns`),p=Symbol.for(`drizzle:OriginalName`),m=Symbol.for(`drizzle:BaseName`),h=Symbol.for(`drizzle:IsAlias`),g=Symbol.for(`drizzle:ExtraConfigBuilder`),_=Symbol.for(`drizzle:IsDrizzleTable`),v=class{static[t]=`Table`;static Symbol={Name:i,Schema:u,OriginalName:p,Columns:d,ExtraConfigColumns:f,BaseName:m,IsAlias:h,ExtraConfigBuilder:g};[i];[p];[u];[d];[f];[m];[h]=!1;[_]=!0;[g]=void 0;constructor(e,t,n){this[i]=this[p]=e,this[u]=t,this[m]=n}};function y(e){return e!=null&&typeof e.getSQL==`function`}function b(e){let t={sql:``,params:[]};for(let n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||=[],t.typings.push(...n.typings));return t}var x=class{static[t]=`StringChunk`;value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new S([this])}},S=class e{constructor(e){this.queryChunks=e;for(let t of e)if(n(t,v)){let e=t[v.Symbol.Schema];this.usedTables.push(e===void 0?t[v.Symbol.Name]:e+`.`+t[v.Symbol.Name])}}static[t]=`SQL`;decoder=T;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return c.startActiveSpan(`drizzle.buildSQL`,t=>{let n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(t,i){let a=Object.assign({},i,{inlineParams:i.inlineParams||this.shouldInlineParams,paramStartIndex:i.paramStartIndex||{value:0}}),{casing:c,escapeName:u,escapeParam:d,prepareTyping:f,inlineParams:p,paramStartIndex:m}=a;return b(t.map(t=>{if(n(t,x))return{sql:t.value.join(``),params:[]};if(n(t,C))return{sql:u(t.value),params:[]};if(t===void 0)return{sql:``,params:[]};if(Array.isArray(t)){let e=[new x(`(`)];for(let[n,r]of t.entries())e.push(r),n<t.length-1&&e.push(new x(`, `));return e.push(new x(`)`)),this.buildQueryFromSourceParams(e,a)}if(n(t,e))return this.buildQueryFromSourceParams(t.queryChunks,{...a,inlineParams:p||t.shouldInlineParams});if(n(t,v)){let e=t[v.Symbol.Schema],n=t[v.Symbol.Name];return{sql:e===void 0||t[h]?u(n):u(e)+`.`+u(n),params:[]}}if(n(t,r)){let e=c.getColumnCasing(t);if(i.invokeSource===`indexes`)return{sql:u(e),params:[]};let n=t.table[v.Symbol.Schema];return{sql:t.table[h]||n===void 0?u(t.table[v.Symbol.Name])+`.`+u(e):u(n)+`.`+u(t.table[v.Symbol.Name])+`.`+u(e),params:[]}}if(n(t,j)){let e=t[l].schema,n=t[l].name;return{sql:e===void 0||t[l].isAlias?u(n):u(e)+`.`+u(n),params:[]}}if(n(t,D)){if(n(t.value,k))return{sql:d(m.value++,t),params:[t],typings:[`none`]};let r=t.value===null?null:t.encoder.mapToDriverValue(t.value);if(n(r,e))return this.buildQueryFromSourceParams([r],a);if(p)return{sql:this.mapInlineParam(r,a),params:[]};let i=[`none`];return f&&(i=[f(t.encoder)]),{sql:d(m.value++,r),params:[r],typings:i}}return n(t,k)?{sql:d(m.value++,t),params:[t],typings:[`none`]}:n(t,e.Aliased)&&t.fieldAlias!==void 0?{sql:u(t.fieldAlias),params:[]}:n(t,s)?t._.isWith?{sql:u(t._.alias),params:[]}:this.buildQueryFromSourceParams([new x(`(`),t._.sql,new x(`) `),new C(t._.alias)],a):o(t)?t.schema?{sql:u(t.schema)+`.`+u(t.enumName),params:[]}:{sql:u(t.enumName),params:[]}:y(t)?t.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([t.getSQL()],a):this.buildQueryFromSourceParams([new x(`(`),t.getSQL(),new x(`)`)],a):p?{sql:this.mapInlineParam(t,a),params:[]}:{sql:d(m.value++,t),params:[t],typings:[`none`]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return`null`;if(typeof e==`number`||typeof e==`boolean`)return e.toString();if(typeof e==`string`)return t(e);if(typeof e==`object`){let n=e.toString();return t(n===`[object Object]`?JSON.stringify(e):n)}throw Error(`Unexpected param value: `+e)}getSQL(){return this}as(t){return t===void 0?this:new e.Aliased(this,t)}mapWith(e){return this.decoder=typeof e==`function`?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},C=class{constructor(e){this.value=e}static[t]=`Name`;brand;getSQL(){return new S([this])}};function w(e){return typeof e==`object`&&!!e&&`mapToDriverValue`in e&&typeof e.mapToDriverValue==`function`}var T={mapFromDriverValue:e=>e},E={mapToDriverValue:e=>e};({...T,...E});var D=class{constructor(e,t=E){this.value=e,this.encoder=t}static[t]=`Param`;brand;getSQL(){return new S([this])}};function O(e,...t){let n=[];(t.length>0||e.length>0&&e[0]!==``)&&n.push(new x(e[0]));for(let[r,i]of t.entries())n.push(i,new x(e[r+1]));return new S(n)}(e=>{function t(){return new S([])}e.empty=t;function n(e){return new S(e)}e.fromList=n;function r(e){return new S([new x(e)])}e.raw=r;function i(e,t){let n=[];for(let[r,i]of e.entries())r>0&&t!==void 0&&n.push(t),n.push(i);return new S(n)}e.join=i;function a(e){return new C(e)}e.identifier=a;function o(e){return new k(e)}e.placeholder=o;function s(e,t){return new D(e,t)}e.param=s})(O||={}),(e=>{class n{constructor(e,t){this.sql=e,this.fieldAlias=t}static[t]=`SQL.Aliased`;isSelectionField=!1;getSQL(){return this.sql}clone(){return new n(this.sql,this.fieldAlias)}}e.Aliased=n})(S||={});var k=class{constructor(e){this.name=e}static[t]=`Placeholder`;getSQL(){return new S([this])}},A=Symbol.for(`drizzle:IsDrizzleView`),j=class{static[t]=`View`;[l];[A]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[l]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new S([this])}};r.prototype.getSQL=function(){return new S([this])},v.prototype.getSQL=function(){return new S([this])},s.prototype.getSQL=function(){return new S([this])};function M(e,t){return w(t)&&!y(e)&&!n(e,D)&&!n(e,k)&&!n(e,r)&&!n(e,v)&&!n(e,j)?new D(e,t):e}var N=(e,t)=>O`${e} = ${M(t,e)}`,P=(e,t)=>O`${e} <> ${M(t,e)}`;function F(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new S(t):new S([new x(`(`),O.join(t,new x(` and `)),new x(`)`)])}function I(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new S(t):new S([new x(`(`),O.join(t,new x(` or `)),new x(`)`)])}var ee=(e,t)=>O`${e} > ${M(t,e)}`,L=(e,t)=>O`${e} >= ${M(t,e)}`,te=(e,t)=>O`${e} < ${M(t,e)}`,R=(e,t)=>O`${e} <= ${M(t,e)}`;function ne(e,t){return Array.isArray(t)?t.length===0?O`false`:O`${e} in ${t.map(t=>M(t,e))}`:O`${e} in ${M(t,e)}`}function re(e,t){return Array.isArray(t)?t.length===0?O`true`:O`${e} not in ${t.map(t=>M(t,e))}`:O`${e} not in ${M(t,e)}`}function ie(e){return O`${e} is null`}function ae(e){return O`${e} is not null`}function oe(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContains requires at least one value`);return O`${e} @> ${O`${M(t,e)}`}`}return O`${e} @> ${M(t,e)}`}function se(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContained requires at least one value`);return O`${e} <@ ${O`${M(t,e)}`}`}return O`${e} <@ ${M(t,e)}`}function ce(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayOverlaps requires at least one value`);return O`${e} && ${O`${M(t,e)}`}`}return O`${e} && ${M(t,e)}`}function le(e){return O`${e} asc`}function ue(e){return O`${e} desc`}function de(e){return O`count(${e||O.raw(`*`)})`.mapWith(Number)}function fe(e){return O`count(distinct ${e})`.mapWith(Number)}function z(e){return O`sum(${e})`.mapWith(String)}function B(e){return O`max(${e})`.mapWith(n(e,r)?e:String)}function V(e){return O`min(${e})`.mapWith(n(e,r)?e:String)}var H=class{preprocessCalculatedTemplate(e){return e}buildPattern(e,t){switch(e){case`contains`:case`notContains`:return`%${t}%`;case`startsWith`:return`${t}%`;case`endsWith`:return`%${t}`;default:return t}}parseISODuration(e){let t={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},n=e.match(/^P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/);if(!n)throw Error(`Invalid ISO 8601 duration format: ${e}`);return t.years=parseInt(n[1]||`0`,10),t.months=parseInt(n[2]||`0`,10),t.days=parseInt(n[3]||`0`,10),t.hours=parseInt(n[4]||`0`,10),t.minutes=parseInt(n[5]||`0`,10),t.seconds=parseFloat(n[6]||`0`),t}durationToSeconds(e){let t=this.parseISODuration(e);return t.years*365*24*60*60+t.months*30*24*60*60+t.days*24*60*60+t.hours*60*60+t.minutes*60+t.seconds}},pe=class extends H{getEngineType(){return`postgres`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];t.years&&n.push(`${t.years} years`),t.months&&n.push(`${t.months} months`),t.days&&n.push(`${t.days} days`),t.hours&&n.push(`${t.hours} hours`),t.minutes&&n.push(`${t.minutes} minutes`),t.seconds&&n.push(`${t.seconds} seconds`);let r=n.join(` `)||`0 seconds`;return O`INTERVAL '${O.raw(r)}'`}buildTimeDifferenceSeconds(e,t){return O`EXTRACT(EPOCH FROM (${e} - ${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(*) FILTER (WHERE ${n})`:O`${O.raw(r)}(${t}) FILTER (WHERE ${n})`}buildDateDiffPeriods(e,t,n){switch(n){case`day`:return O`(${t}::date - ${e}::date)`;case`week`:return O`FLOOR((${t}::date - ${e}::date) / 7)`;case`month`:return O`(EXTRACT(YEAR FROM AGE(${t}::timestamp, ${e}::timestamp)) * 12 + EXTRACT(MONTH FROM AGE(${t}::timestamp, ${e}::timestamp)))::integer`;default:throw Error(`Unsupported date diff unit: ${n}`)}}buildPeriodSeriesSubquery(e){return O`(SELECT generate_series(0, ${e}) as period_number) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('year', ${t}::timestamp)`;case`quarter`:return O`DATE_TRUNC('quarter', ${t}::timestamp)`;case`month`:return O`DATE_TRUNC('month', ${t}::timestamp)`;case`week`:return O`DATE_TRUNC('week', ${t}::timestamp)`;case`day`:return O`DATE_TRUNC('day', ${t}::timestamp)::timestamp`;case`hour`:return O`DATE_TRUNC('hour', ${t}::timestamp)`;case`minute`:return O`DATE_TRUNC('minute', ${t}::timestamp)`;case`second`:return O`DATE_TRUNC('second', ${t}::timestamp)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`${e} ~* ${n}`;case`notRegex`:return O`${e} !~* ${n}`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::timestamp`;case`decimal`:return O`${e}::decimal`;case`integer`:return O`${e}::integer`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!0,supportsPercentileSubqueries:!0,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!0}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){return O`PERCENTILE_CONT(${t/100}) WITHIN GROUP (ORDER BY ${e})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},me=class extends H{getEngineType(){return`mysql`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];return t.years&&n.push(`${t.years} YEAR`),t.months&&n.push(`${t.months} MONTH`),t.days&&n.push(`${t.days} DAY`),t.hours&&n.push(`${t.hours} HOUR`),t.minutes&&n.push(`${t.minutes} MINUTE`),t.seconds&&n.push(`${t.seconds} SECOND`),O`${this.durationToSeconds(e)}`}buildTimeDifferenceSeconds(e,t){return O`TIMESTAMPDIFF(SECOND, ${t}, ${e})`}buildDateAddInterval(e,t){let n=this.parseISODuration(t),r=e;return n.years&&(r=O`DATE_ADD(${r}, INTERVAL ${n.years} YEAR)`),n.months&&(r=O`DATE_ADD(${r}, INTERVAL ${n.months} MONTH)`),n.days&&(r=O`DATE_ADD(${r}, INTERVAL ${n.days} DAY)`),n.hours&&(r=O`DATE_ADD(${r}, INTERVAL ${n.hours} HOUR)`),n.minutes&&(r=O`DATE_ADD(${r}, INTERVAL ${n.minutes} MINUTE)`),n.seconds&&(r=O`DATE_ADD(${r}, INTERVAL ${n.seconds} SECOND)`),r}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){let r=n.toUpperCase();return O`TIMESTAMPDIFF(${O.raw(r)}, ${e}, ${t})`}buildPeriodSeriesSubquery(e){return O`(
|
|
1
|
+
const e=require(`./utils-DklqMBHn.cjs`);var t=Symbol.for(`drizzle:entityKind`);function n(e,n){if(!e||typeof e!=`object`)return!1;if(e instanceof n)return!0;if(!Object.prototype.hasOwnProperty.call(n,t))throw Error(`Class "${n.name??`<unknown>`}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let r=Object.getPrototypeOf(e).constructor;if(r)for(;r;){if(t in r&&r[t]===n[t])return!0;r=Object.getPrototypeOf(r)}return!1}var r=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[t]=`Column`;name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!==`byDefault`}},i=Symbol.for(`drizzle:Name`),a=Symbol.for(`drizzle:isPgEnum`);function o(e){return!!e&&typeof e==`function`&&a in e&&e[a]===!0}var s=class{static[t]=`Subquery`;constructor(e,t,n,r=!1,i=[]){this._={brand:`Subquery`,sql:e,selectedFields:t,alias:n,isWith:r,usedTables:i}}},c={startActiveSpan(e,t){return t()}},l=Symbol.for(`drizzle:ViewBaseConfig`),u=Symbol.for(`drizzle:Schema`),d=Symbol.for(`drizzle:Columns`),f=Symbol.for(`drizzle:ExtraConfigColumns`),p=Symbol.for(`drizzle:OriginalName`),m=Symbol.for(`drizzle:BaseName`),h=Symbol.for(`drizzle:IsAlias`),g=Symbol.for(`drizzle:ExtraConfigBuilder`),_=Symbol.for(`drizzle:IsDrizzleTable`),v=class{static[t]=`Table`;static Symbol={Name:i,Schema:u,OriginalName:p,Columns:d,ExtraConfigColumns:f,BaseName:m,IsAlias:h,ExtraConfigBuilder:g};[i];[p];[u];[d];[f];[m];[h]=!1;[_]=!0;[g]=void 0;constructor(e,t,n){this[i]=this[p]=e,this[u]=t,this[m]=n}};function y(e){return e!=null&&typeof e.getSQL==`function`}function b(e){let t={sql:``,params:[]};for(let n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||=[],t.typings.push(...n.typings));return t}var x=class{static[t]=`StringChunk`;value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new S([this])}},S=class e{constructor(e){this.queryChunks=e;for(let t of e)if(n(t,v)){let e=t[v.Symbol.Schema];this.usedTables.push(e===void 0?t[v.Symbol.Name]:e+`.`+t[v.Symbol.Name])}}static[t]=`SQL`;decoder=T;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return c.startActiveSpan(`drizzle.buildSQL`,t=>{let n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(t,i){let a=Object.assign({},i,{inlineParams:i.inlineParams||this.shouldInlineParams,paramStartIndex:i.paramStartIndex||{value:0}}),{casing:c,escapeName:u,escapeParam:d,prepareTyping:f,inlineParams:p,paramStartIndex:m}=a;return b(t.map(t=>{if(n(t,x))return{sql:t.value.join(``),params:[]};if(n(t,C))return{sql:u(t.value),params:[]};if(t===void 0)return{sql:``,params:[]};if(Array.isArray(t)){let e=[new x(`(`)];for(let[n,r]of t.entries())e.push(r),n<t.length-1&&e.push(new x(`, `));return e.push(new x(`)`)),this.buildQueryFromSourceParams(e,a)}if(n(t,e))return this.buildQueryFromSourceParams(t.queryChunks,{...a,inlineParams:p||t.shouldInlineParams});if(n(t,v)){let e=t[v.Symbol.Schema],n=t[v.Symbol.Name];return{sql:e===void 0||t[h]?u(n):u(e)+`.`+u(n),params:[]}}if(n(t,r)){let e=c.getColumnCasing(t);if(i.invokeSource===`indexes`)return{sql:u(e),params:[]};let n=t.table[v.Symbol.Schema];return{sql:t.table[h]||n===void 0?u(t.table[v.Symbol.Name])+`.`+u(e):u(n)+`.`+u(t.table[v.Symbol.Name])+`.`+u(e),params:[]}}if(n(t,j)){let e=t[l].schema,n=t[l].name;return{sql:e===void 0||t[l].isAlias?u(n):u(e)+`.`+u(n),params:[]}}if(n(t,D)){if(n(t.value,k))return{sql:d(m.value++,t),params:[t],typings:[`none`]};let r=t.value===null?null:t.encoder.mapToDriverValue(t.value);if(n(r,e))return this.buildQueryFromSourceParams([r],a);if(p)return{sql:this.mapInlineParam(r,a),params:[]};let i=[`none`];return f&&(i=[f(t.encoder)]),{sql:d(m.value++,r),params:[r],typings:i}}return n(t,k)?{sql:d(m.value++,t),params:[t],typings:[`none`]}:n(t,e.Aliased)&&t.fieldAlias!==void 0?{sql:u(t.fieldAlias),params:[]}:n(t,s)?t._.isWith?{sql:u(t._.alias),params:[]}:this.buildQueryFromSourceParams([new x(`(`),t._.sql,new x(`) `),new C(t._.alias)],a):o(t)?t.schema?{sql:u(t.schema)+`.`+u(t.enumName),params:[]}:{sql:u(t.enumName),params:[]}:y(t)?t.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([t.getSQL()],a):this.buildQueryFromSourceParams([new x(`(`),t.getSQL(),new x(`)`)],a):p?{sql:this.mapInlineParam(t,a),params:[]}:{sql:d(m.value++,t),params:[t],typings:[`none`]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return`null`;if(typeof e==`number`||typeof e==`boolean`)return e.toString();if(typeof e==`string`)return t(e);if(typeof e==`object`){let n=e.toString();return t(n===`[object Object]`?JSON.stringify(e):n)}throw Error(`Unexpected param value: `+e)}getSQL(){return this}as(t){return t===void 0?this:new e.Aliased(this,t)}mapWith(e){return this.decoder=typeof e==`function`?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},C=class{constructor(e){this.value=e}static[t]=`Name`;brand;getSQL(){return new S([this])}};function w(e){return typeof e==`object`&&!!e&&`mapToDriverValue`in e&&typeof e.mapToDriverValue==`function`}var T={mapFromDriverValue:e=>e},E={mapToDriverValue:e=>e};({...T,...E});var D=class{constructor(e,t=E){this.value=e,this.encoder=t}static[t]=`Param`;brand;getSQL(){return new S([this])}};function O(e,...t){let n=[];(t.length>0||e.length>0&&e[0]!==``)&&n.push(new x(e[0]));for(let[r,i]of t.entries())n.push(i,new x(e[r+1]));return new S(n)}(e=>{function t(){return new S([])}e.empty=t;function n(e){return new S(e)}e.fromList=n;function r(e){return new S([new x(e)])}e.raw=r;function i(e,t){let n=[];for(let[r,i]of e.entries())r>0&&t!==void 0&&n.push(t),n.push(i);return new S(n)}e.join=i;function a(e){return new C(e)}e.identifier=a;function o(e){return new k(e)}e.placeholder=o;function s(e,t){return new D(e,t)}e.param=s})(O||={}),(e=>{class n{constructor(e,t){this.sql=e,this.fieldAlias=t}static[t]=`SQL.Aliased`;isSelectionField=!1;getSQL(){return this.sql}clone(){return new n(this.sql,this.fieldAlias)}}e.Aliased=n})(S||={});var k=class{constructor(e){this.name=e}static[t]=`Placeholder`;getSQL(){return new S([this])}},A=Symbol.for(`drizzle:IsDrizzleView`),j=class{static[t]=`View`;[l];[A]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[l]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new S([this])}};r.prototype.getSQL=function(){return new S([this])},v.prototype.getSQL=function(){return new S([this])},s.prototype.getSQL=function(){return new S([this])};function M(e,t){return w(t)&&!y(e)&&!n(e,D)&&!n(e,k)&&!n(e,r)&&!n(e,v)&&!n(e,j)?new D(e,t):e}var N=(e,t)=>O`${e} = ${M(t,e)}`,P=(e,t)=>O`${e} <> ${M(t,e)}`;function F(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new S(t):new S([new x(`(`),O.join(t,new x(` and `)),new x(`)`)])}function I(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new S(t):new S([new x(`(`),O.join(t,new x(` or `)),new x(`)`)])}var ee=(e,t)=>O`${e} > ${M(t,e)}`,L=(e,t)=>O`${e} >= ${M(t,e)}`,te=(e,t)=>O`${e} < ${M(t,e)}`,R=(e,t)=>O`${e} <= ${M(t,e)}`;function ne(e,t){return Array.isArray(t)?t.length===0?O`false`:O`${e} in ${t.map(t=>M(t,e))}`:O`${e} in ${M(t,e)}`}function re(e,t){return Array.isArray(t)?t.length===0?O`true`:O`${e} not in ${t.map(t=>M(t,e))}`:O`${e} not in ${M(t,e)}`}function ie(e){return O`${e} is null`}function ae(e){return O`${e} is not null`}function oe(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContains requires at least one value`);return O`${e} @> ${O`${M(t,e)}`}`}return O`${e} @> ${M(t,e)}`}function se(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContained requires at least one value`);return O`${e} <@ ${O`${M(t,e)}`}`}return O`${e} <@ ${M(t,e)}`}function ce(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayOverlaps requires at least one value`);return O`${e} && ${O`${M(t,e)}`}`}return O`${e} && ${M(t,e)}`}function le(e){return O`${e} asc`}function ue(e){return O`${e} desc`}function de(e){return O`count(${e||O.raw(`*`)})`.mapWith(Number)}function fe(e){return O`count(distinct ${e})`.mapWith(Number)}function z(e){return O`sum(${e})`.mapWith(String)}function B(e){return O`max(${e})`.mapWith(n(e,r)?e:String)}function V(e){return O`min(${e})`.mapWith(n(e,r)?e:String)}var H=class{preprocessCalculatedTemplate(e){return e}buildPattern(e,t){switch(e){case`contains`:case`notContains`:return`%${t}%`;case`startsWith`:return`${t}%`;case`endsWith`:return`%${t}`;default:return t}}parseISODuration(e){let t={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},n=e.match(/^P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/);if(!n)throw Error(`Invalid ISO 8601 duration format: ${e}`);return t.years=parseInt(n[1]||`0`,10),t.months=parseInt(n[2]||`0`,10),t.days=parseInt(n[3]||`0`,10),t.hours=parseInt(n[4]||`0`,10),t.minutes=parseInt(n[5]||`0`,10),t.seconds=parseFloat(n[6]||`0`),t}durationToSeconds(e){let t=this.parseISODuration(e);return t.years*365*24*60*60+t.months*30*24*60*60+t.days*24*60*60+t.hours*60*60+t.minutes*60+t.seconds}},pe=class extends H{getEngineType(){return`postgres`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];t.years&&n.push(`${t.years} years`),t.months&&n.push(`${t.months} months`),t.days&&n.push(`${t.days} days`),t.hours&&n.push(`${t.hours} hours`),t.minutes&&n.push(`${t.minutes} minutes`),t.seconds&&n.push(`${t.seconds} seconds`);let r=n.join(` `)||`0 seconds`;return O`INTERVAL '${O.raw(r)}'`}buildTimeDifferenceSeconds(e,t){return O`EXTRACT(EPOCH FROM (${e} - ${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(*) FILTER (WHERE ${n})`:O`${O.raw(r)}(${t}) FILTER (WHERE ${n})`}buildDateDiffPeriods(e,t,n){switch(n){case`day`:return O`(${t}::date - ${e}::date)`;case`week`:return O`FLOOR((${t}::date - ${e}::date) / 7)`;case`month`:return O`(EXTRACT(YEAR FROM AGE(${t}::timestamp, ${e}::timestamp)) * 12 + EXTRACT(MONTH FROM AGE(${t}::timestamp, ${e}::timestamp)))::integer`;default:throw Error(`Unsupported date diff unit: ${n}`)}}buildPeriodSeriesSubquery(e){return O`(SELECT generate_series(0, ${e}) as period_number) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('year', ${t}::timestamp)`;case`quarter`:return O`DATE_TRUNC('quarter', ${t}::timestamp)`;case`month`:return O`DATE_TRUNC('month', ${t}::timestamp)`;case`week`:return O`DATE_TRUNC('week', ${t}::timestamp)`;case`day`:return O`DATE_TRUNC('day', ${t}::timestamp)::timestamp`;case`hour`:return O`DATE_TRUNC('hour', ${t}::timestamp)`;case`minute`:return O`DATE_TRUNC('minute', ${t}::timestamp)`;case`second`:return O`DATE_TRUNC('second', ${t}::timestamp)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`${e} ~* ${n}`;case`notRegex`:return O`${e} !~* ${n}`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::timestamp`;case`decimal`:return O`${e}::decimal`;case`integer`:return O`${e}::integer`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!0,supportsPercentileSubqueries:!0,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!0}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){return O`PERCENTILE_CONT(${t/100}) WITHIN GROUP (ORDER BY ${e})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},me=class extends H{getEngineType(){return`mysql`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];return t.years&&n.push(`${t.years} YEAR`),t.months&&n.push(`${t.months} MONTH`),t.days&&n.push(`${t.days} DAY`),t.hours&&n.push(`${t.hours} HOUR`),t.minutes&&n.push(`${t.minutes} MINUTE`),t.seconds&&n.push(`${t.seconds} SECOND`),O`${this.durationToSeconds(e)}`}buildTimeDifferenceSeconds(e,t){return O`TIMESTAMPDIFF(SECOND, ${t}, ${e})`}buildDateAddInterval(e,t){let n=this.parseISODuration(t),r=e;return n.years&&(r=O`DATE_ADD(${r}, INTERVAL ${n.years} YEAR)`),n.months&&(r=O`DATE_ADD(${r}, INTERVAL ${n.months} MONTH)`),n.days&&(r=O`DATE_ADD(${r}, INTERVAL ${n.days} DAY)`),n.hours&&(r=O`DATE_ADD(${r}, INTERVAL ${n.hours} HOUR)`),n.minutes&&(r=O`DATE_ADD(${r}, INTERVAL ${n.minutes} MINUTE)`),n.seconds&&(r=O`DATE_ADD(${r}, INTERVAL ${n.seconds} SECOND)`),r}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){let r=n.toUpperCase();return O`TIMESTAMPDIFF(${O.raw(r)}, ${e}, ${t})`}buildPeriodSeriesSubquery(e){return O`(
|
|
2
2
|
WITH RECURSIVE periods(period_number) AS (
|
|
3
3
|
SELECT 0
|
|
4
4
|
UNION ALL
|
|
@@ -13,7 +13,7 @@ const e=require(`./utils-DrWvXf0G.cjs`);var t=Symbol.for(`drizzle:entityKind`);f
|
|
|
13
13
|
)
|
|
14
14
|
SELECT period_number FROM periods
|
|
15
15
|
) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`datetime(${t}, 'unixepoch', 'start of year')`;case`quarter`:{let e=O`datetime(${t}, 'unixepoch')`;return O`datetime(${e}, 'start of year',
|
|
16
|
-
'+' || (((CAST(strftime('%m', ${e}) AS INTEGER) - 1) / 3) * 3) || ' months')`}case`month`:return O`datetime(${t}, 'unixepoch', 'start of month')`;case`week`:return O`date(datetime(${t}, 'unixepoch'), 'weekday 1', '-6 days')`;case`day`:return O`datetime(${t}, 'unixepoch', 'start of day')`;case`hour`:return O`datetime(strftime('%Y-%m-%d %H:00:00', ${O`datetime(${t}, 'unixepoch')`}))`;case`minute`:return O`datetime(strftime('%Y-%m-%d %H:%M:00', ${O`datetime(${t}, 'unixepoch')`}))`;case`second`:return O`datetime(strftime('%Y-%m-%d %H:%M:%S', ${O`datetime(${t}, 'unixepoch')`}))`;default:return O`datetime(${t}, 'unixepoch')`}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`LOWER(${e}) LIKE ${`%${n.toLowerCase()}%`}`;case`notContains`:return O`LOWER(${e}) NOT LIKE ${`%${n.toLowerCase()}%`}`;case`startsWith`:return O`LOWER(${e}) LIKE ${`${n.toLowerCase()}%`}`;case`endsWith`:return O`LOWER(${e}) LIKE ${`%${n.toLowerCase()}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`LOWER(${e}) LIKE ${n.toLowerCase()}`;case`regex`:return O`${e} GLOB ${n}`;case`notRegex`:return O`${e} NOT GLOB ${n}`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`datetime(${e} / 1000, 'unixepoch')`;case`decimal`:return O`CAST(${e} AS REAL)`;case`integer`:return O`CAST(${e} AS INTEGER)`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`IFNULL(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>e.then&&typeof e.then==`object`&&(e.then.queryChunks||e.then._||e.then.sql)?O`WHEN ${e.when} THEN ${O.raw(`(`)}${e.then}${O.raw(`)`)}`:O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:t&&typeof t==`object`&&(t.queryChunks||t._||t.sql)?O`CASE ${n} ELSE ${O.raw(`(`)}${t}${O.raw(`)`)} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`1`:O`0`}preprocessCalculatedTemplate(e){return e.length>1e3?e:e.replace(/(\{[^}]+\})\s*\/\s*/g,(e,t)=>`${t.replace(/\{([^}]+)\}/,`CAST({$1} AS REAL)`)} / `)}convertFilterValue(e){return typeof e==`boolean`?+!!e:e instanceof Date?e.getTime():Array.isArray(e)?e.map(e=>this.convertFilterValue(e)):e}prepareDateValue(e){if(!(e instanceof Date)){if(typeof e==`number`)return e;if(typeof e==`string`)return new Date(e).getTime();throw Error(`prepareDateValue expects a Date object, got ${typeof e}`)}return e.getTime()}isTimestampInteger(){return!0}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!1,supportsVariance:!1,supportsPercentile:!1,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){return null}buildVariance(e,t=!1){return null}buildPercentile(e,t){return null}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ge=class extends me{getEngineType(){return`singlestore`}},_e=class extends H{getEngineType(){return`duckdb`}supportsLateralJoins(){return!1}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];t.years&&n.push(`${t.years} years`),t.months&&n.push(`${t.months} months`),t.days&&n.push(`${t.days} days`),t.hours&&n.push(`${t.hours} hours`),t.minutes&&n.push(`${t.minutes} minutes`),t.seconds&&n.push(`${t.seconds} seconds`);let r=n.join(` `)||`0 seconds`;return O`INTERVAL '${O.raw(r)}'`}buildTimeDifferenceSeconds(e,t){return O`(EPOCH(${e}) - EPOCH(${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(*) FILTER (WHERE ${n})`:O`${O.raw(r)}(${t}) FILTER (WHERE ${n})`}buildDateDiffPeriods(e,t,n){return O`DATE_DIFF('${O.raw(n)}', ${e}::timestamp, ${t}::timestamp)`}buildPeriodSeriesSubquery(e){return O`(SELECT UNNEST(generate_series(0, ${e})) as period_number) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('year', ${t}::timestamp)`;case`quarter`:return O`DATE_TRUNC('quarter', ${t}::timestamp)`;case`month`:return O`DATE_TRUNC('month', ${t}::timestamp)`;case`week`:return O`DATE_TRUNC('week', ${t}::timestamp)`;case`day`:return O`DATE_TRUNC('day', ${t}::timestamp)::timestamp`;case`hour`:return O`DATE_TRUNC('hour', ${t}::timestamp)`;case`minute`:return O`DATE_TRUNC('minute', ${t}::timestamp)`;case`second`:return O`DATE_TRUNC('second', ${t}::timestamp)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`regexp_matches(${e}, ${n})`;case`notRegex`:return O`NOT regexp_matches(${e}, ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::timestamp`;case`decimal`:return O`${e}::decimal`;case`integer`:return O`${e}::integer`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){return O`QUANTILE_CONT(${e}, ${t/100})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ve=class extends H{getEngineType(){return`databend`}supportsLateralJoins(){return!1}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];if(t.years&&n.push(`${t.years} YEAR`),t.months&&n.push(`${t.months} MONTH`),t.days&&n.push(`${t.days} DAY`),t.hours&&n.push(`${t.hours} HOUR`),t.minutes&&n.push(`${t.minutes} MINUTE`),t.seconds&&n.push(`${t.seconds} SECOND`),n.length===0)return O`INTERVAL 0 SECOND`;if(n.length===1)return O`INTERVAL ${O.raw(n[0])}`;let r=n.map(e=>`INTERVAL ${e}`);return O`(${O.raw(r.join(` + `))})`}buildTimeDifferenceSeconds(e,t){return O`EXTRACT(EPOCH FROM TIMESTAMP_DIFF(${e}, ${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`${O.raw(r)}(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){return O`DATE_DIFF('${O.raw(n)}', ${e}::TIMESTAMP, ${t}::TIMESTAMP)`}buildPeriodSeriesSubquery(e){return O`(SELECT number as period_number FROM numbers(${e+1})) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC(YEAR, ${t}::TIMESTAMP)`;case`quarter`:return O`DATE_TRUNC(QUARTER, ${t}::TIMESTAMP)`;case`month`:return O`DATE_TRUNC(MONTH, ${t}::TIMESTAMP)`;case`week`:return O`DATE_TRUNC(WEEK, ${t}::TIMESTAMP)`;case`day`:return O`DATE_TRUNC(DAY, ${t}::TIMESTAMP)::TIMESTAMP`;case`hour`:return O`DATE_TRUNC(HOUR, ${t}::TIMESTAMP)`;case`minute`:return O`DATE_TRUNC(MINUTE, ${t}::TIMESTAMP)`;case`second`:return O`DATE_TRUNC(SECOND, ${t}::TIMESTAMP)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`LOWER(${e}) LIKE LOWER(${`%${n}%`})`;case`notContains`:return O`LOWER(${e}) NOT LIKE LOWER(${`%${n}%`})`;case`startsWith`:return O`LOWER(${e}) LIKE LOWER(${`${n}%`})`;case`endsWith`:return O`LOWER(${e}) LIKE LOWER(${`%${n}`})`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`LOWER(${e}) LIKE LOWER(${n})`;case`regex`:return O`${e} REGEXP ${n}`;case`notRegex`:return O`NOT (${e} REGEXP ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::TIMESTAMP`;case`decimal`:return O`${e}::DECIMAL`;case`integer`:return O`${e}::INTEGER`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!1,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!1,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`COVAR_SAMP`:`COVAR_POP`;return O`COALESCE(${O.raw(n)}(${e}, ${e}), 0)`}buildPercentile(e,t){throw Error(`Percentile functions are not yet supported for Databend`)}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ye=class extends H{getEngineType(){return`snowflake`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){return O`${this.durationToSeconds(e)}`}buildTimeDifferenceSeconds(e,t){return O`DATEDIFF('SECOND', ${t}, ${e})`}buildDateAddInterval(e,t){let n=this.parseISODuration(t),r=e;return n.years&&(r=O`DATEADD('YEAR', ${n.years}, ${r})`),n.months&&(r=O`DATEADD('MONTH', ${n.months}, ${r})`),n.days&&(r=O`DATEADD('DAY', ${n.days}, ${r})`),n.hours&&(r=O`DATEADD('HOUR', ${n.hours}, ${r})`),n.minutes&&(r=O`DATEADD('MINUTE', ${n.minutes}, ${r})`),n.seconds&&(r=O`DATEADD('SECOND', ${n.seconds}, ${r})`),r}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`${O.raw(r)}(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){let r=n.toUpperCase();return O`DATEDIFF('${O.raw(r)}', ${e}::TIMESTAMP, ${t}::TIMESTAMP)`}buildPeriodSeriesSubquery(e){return O`(SELECT ROW_NUMBER() OVER (ORDER BY 1) - 1 AS period_number FROM TABLE(GENERATOR(ROWCOUNT => ${e+1}))) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('YEAR', ${t}::TIMESTAMP)`;case`quarter`:return O`DATE_TRUNC('QUARTER', ${t}::TIMESTAMP)`;case`month`:return O`DATE_TRUNC('MONTH', ${t}::TIMESTAMP)`;case`week`:return O`DATE_TRUNC('WEEK', ${t}::TIMESTAMP)`;case`day`:return O`DATE_TRUNC('DAY', ${t}::TIMESTAMP)::TIMESTAMP`;case`hour`:return O`DATE_TRUNC('HOUR', ${t}::TIMESTAMP)`;case`minute`:return O`DATE_TRUNC('MINUTE', ${t}::TIMESTAMP)`;case`second`:return O`DATE_TRUNC('SECOND', ${t}::TIMESTAMP)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`REGEXP_LIKE(${e}, ${n})`;case`notRegex`:return O`NOT REGEXP_LIKE(${e}, ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::TIMESTAMP`;case`decimal`:return O`${e}::DECIMAL`;case`integer`:return O`${e}::INTEGER`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!0,supportsPercentileSubqueries:!0,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){let n=(t/100).toString();return O`PERCENTILE_CONT(${O.raw(n)}) WITHIN GROUP (ORDER BY ${e})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}};function be(e){switch(e){case`postgres`:return new pe;case`mysql`:return new me;case`sqlite`:return new he;case`singlestore`:return new ge;case`duckdb`:return new _e;case`databend`:return new ve;case`snowflake`:return new ye;default:throw Error(`Unsupported database engine: ${e}`)}}var U=class{databaseAdapter;constructor(e,t,n){this.db=e,this.schema=t,this.databaseAdapter=be(n||this.getEngineType())}};function xe(e,t){let n=[],r=[],i=!1,a,o,s,c=[];for(let t of e){let e=t.match(/Planning Time:\s*([\d.]+)\s*ms/i);if(e){a=parseFloat(e[1]);continue}let l=t.match(/Execution Time:\s*([\d.]+)\s*ms/i);if(l){o=parseFloat(l[1]);continue}let u=Se(t);if(u){u.type.includes(`Seq Scan`)&&(i=!0),u.index&&r.push(u.index),n.length===0&&u.estimatedCost!==void 0&&(s=u.estimatedCost);let e=t.search(/\S/);for(;c.length>0&&c[c.length-1].indent>=e;)c.pop();if(c.length===0)n.push(u);else{let e=c[c.length-1].op;e.children||=[],e.children.push(u)}c.push({indent:e,op:u})}}return{operations:n,summary:{database:`postgres`,planningTime:a,executionTime:o,totalCost:s,hasSequentialScans:i,usedIndexes:[...new Set(r)]},raw:e.join(`
|
|
16
|
+
'+' || (((CAST(strftime('%m', ${e}) AS INTEGER) - 1) / 3) * 3) || ' months')`}case`month`:return O`datetime(${t}, 'unixepoch', 'start of month')`;case`week`:return O`date(datetime(${t}, 'unixepoch'), 'weekday 1', '-6 days')`;case`day`:return O`datetime(${t}, 'unixepoch', 'start of day')`;case`hour`:return O`datetime(strftime('%Y-%m-%d %H:00:00', ${O`datetime(${t}, 'unixepoch')`}))`;case`minute`:return O`datetime(strftime('%Y-%m-%d %H:%M:00', ${O`datetime(${t}, 'unixepoch')`}))`;case`second`:return O`datetime(strftime('%Y-%m-%d %H:%M:%S', ${O`datetime(${t}, 'unixepoch')`}))`;default:return O`datetime(${t}, 'unixepoch')`}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`LOWER(${e}) LIKE ${`%${n.toLowerCase()}%`}`;case`notContains`:return O`LOWER(${e}) NOT LIKE ${`%${n.toLowerCase()}%`}`;case`startsWith`:return O`LOWER(${e}) LIKE ${`${n.toLowerCase()}%`}`;case`endsWith`:return O`LOWER(${e}) LIKE ${`%${n.toLowerCase()}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`LOWER(${e}) LIKE ${n.toLowerCase()}`;case`regex`:return O`${e} GLOB ${n}`;case`notRegex`:return O`${e} NOT GLOB ${n}`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`datetime(${e} / 1000, 'unixepoch')`;case`decimal`:return O`CAST(${e} AS REAL)`;case`integer`:return O`CAST(${e} AS INTEGER)`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`IFNULL(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>e.then&&typeof e.then==`object`&&(e.then.queryChunks||e.then._||e.then.sql)?O`WHEN ${e.when} THEN ${O.raw(`(`)}${e.then}${O.raw(`)`)}`:O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:t&&typeof t==`object`&&(t.queryChunks||t._||t.sql)?O`CASE ${n} ELSE ${O.raw(`(`)}${t}${O.raw(`)`)} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`1`:O`0`}preprocessCalculatedTemplate(e){return e.length>1e3?e:e.replace(/(\{[^}]+\})\s*\/\s*/g,(e,t)=>`${t.replace(/\{([^}]+)\}/,`CAST({$1} AS REAL)`)} / `)}convertFilterValue(e){return typeof e==`boolean`?+!!e:e instanceof Date?e.getTime():Array.isArray(e)?e.map(e=>this.convertFilterValue(e)):e}prepareDateValue(e){if(!(e instanceof Date)){if(typeof e==`number`)return e;if(typeof e==`string`)return new Date(e).getTime();throw Error(`prepareDateValue expects a Date object, got ${typeof e}`)}return e.getTime()}isTimestampInteger(){return!0}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!1,supportsVariance:!1,supportsPercentile:!1,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){return null}buildVariance(e,t=!1){return null}buildPercentile(e,t){return null}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ge=class extends me{getEngineType(){return`singlestore`}},_e=class extends H{getEngineType(){return`duckdb`}supportsLateralJoins(){return!1}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];t.years&&n.push(`${t.years} years`),t.months&&n.push(`${t.months} months`),t.days&&n.push(`${t.days} days`),t.hours&&n.push(`${t.hours} hours`),t.minutes&&n.push(`${t.minutes} minutes`),t.seconds&&n.push(`${t.seconds} seconds`);let r=n.join(` `)||`0 seconds`;return O`INTERVAL '${O.raw(r)}'`}buildTimeDifferenceSeconds(e,t){return O`(EPOCH(${e}) - EPOCH(${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`COUNT(*) FILTER (WHERE ${n})`:O`${O.raw(r)}(${t}) FILTER (WHERE ${n})`}buildDateDiffPeriods(e,t,n){return O`DATE_DIFF('${O.raw(n)}', ${e}::timestamp, ${t}::timestamp)`}buildPeriodSeriesSubquery(e){return O`(SELECT UNNEST(generate_series(0, ${e})) as period_number) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('year', ${t}::timestamp)`;case`quarter`:return O`DATE_TRUNC('quarter', ${t}::timestamp)`;case`month`:return O`DATE_TRUNC('month', ${t}::timestamp)`;case`week`:return O`DATE_TRUNC('week', ${t}::timestamp)`;case`day`:return O`DATE_TRUNC('day', ${t}::timestamp)::timestamp`;case`hour`:return O`DATE_TRUNC('hour', ${t}::timestamp)`;case`minute`:return O`DATE_TRUNC('minute', ${t}::timestamp)`;case`second`:return O`DATE_TRUNC('second', ${t}::timestamp)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`regexp_matches(${e}, ${n})`;case`notRegex`:return O`NOT regexp_matches(${e}, ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::timestamp`;case`decimal`:return O`${e}::decimal`;case`integer`:return O`${e}::integer`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){return O`QUANTILE_CONT(${e}, ${t/100})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ve=class extends H{getEngineType(){return`databend`}supportsLateralJoins(){return!1}buildIntervalFromISO(e){let t=this.parseISODuration(e),n=[];if(t.years&&n.push(`${t.years} YEAR`),t.months&&n.push(`${t.months} MONTH`),t.days&&n.push(`${t.days} DAY`),t.hours&&n.push(`${t.hours} HOUR`),t.minutes&&n.push(`${t.minutes} MINUTE`),t.seconds&&n.push(`${t.seconds} SECOND`),n.length===0)return O`INTERVAL 0 SECOND`;if(n.length===1)return O`INTERVAL ${O.raw(n[0])}`;let r=n.map(e=>`INTERVAL ${e}`);return O`(${O.raw(r.join(` + `))})`}buildTimeDifferenceSeconds(e,t){return O`EXTRACT(EPOCH FROM TIMESTAMP_DIFF(${e}, ${t}))`}buildDateAddInterval(e,t){return O`(${e} + ${this.buildIntervalFromISO(t)})`}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`${O.raw(r)}(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){return O`DATE_DIFF('${O.raw(n)}', ${e}::TIMESTAMP, ${t}::TIMESTAMP)`}buildPeriodSeriesSubquery(e){return O`(SELECT number as period_number FROM numbers(${e+1})) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC(YEAR, ${t}::TIMESTAMP)`;case`quarter`:return O`DATE_TRUNC(QUARTER, ${t}::TIMESTAMP)`;case`month`:return O`DATE_TRUNC(MONTH, ${t}::TIMESTAMP)`;case`week`:return O`DATE_TRUNC(WEEK, ${t}::TIMESTAMP)`;case`day`:return O`DATE_TRUNC(DAY, ${t}::TIMESTAMP)::TIMESTAMP`;case`hour`:return O`DATE_TRUNC(HOUR, ${t}::TIMESTAMP)`;case`minute`:return O`DATE_TRUNC(MINUTE, ${t}::TIMESTAMP)`;case`second`:return O`DATE_TRUNC(SECOND, ${t}::TIMESTAMP)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`LOWER(${e}) LIKE LOWER(${`%${n}%`})`;case`notContains`:return O`LOWER(${e}) NOT LIKE LOWER(${`%${n}%`})`;case`startsWith`:return O`LOWER(${e}) LIKE LOWER(${`${n}%`})`;case`endsWith`:return O`LOWER(${e}) LIKE LOWER(${`%${n}`})`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`LOWER(${e}) LIKE LOWER(${n})`;case`regex`:return O`${e} REGEXP ${n}`;case`notRegex`:return O`NOT (${e} REGEXP ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::TIMESTAMP`;case`decimal`:return O`${e}::DECIMAL`;case`integer`:return O`${e}::INTEGER`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!1,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!1,supportsPercentileSubqueries:!1,supportsDerivedTablesInCTE:!1,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`COVAR_SAMP`:`COVAR_POP`;return O`COALESCE(${O.raw(n)}(${e}, ${e}), 0)`}buildPercentile(e,t){throw Error(`Percentile functions are not yet supported for Databend`)}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}},ye=class extends H{getEngineType(){return`snowflake`}supportsLateralJoins(){return!0}buildIntervalFromISO(e){return O`${this.durationToSeconds(e)}`}buildTimeDifferenceSeconds(e,t){return O`DATEDIFF('SECOND', ${t}, ${e})`}buildDateAddInterval(e,t){let n=this.parseISODuration(t),r=e;return n.years&&(r=O`DATEADD('YEAR', ${n.years}, ${r})`),n.months&&(r=O`DATEADD('MONTH', ${n.months}, ${r})`),n.days&&(r=O`DATEADD('DAY', ${n.days}, ${r})`),n.hours&&(r=O`DATEADD('HOUR', ${n.hours}, ${r})`),n.minutes&&(r=O`DATEADD('MINUTE', ${n.minutes}, ${r})`),n.seconds&&(r=O`DATEADD('SECOND', ${n.seconds}, ${r})`),r}buildConditionalAggregation(e,t,n){let r=e.toUpperCase();return e===`count`&&!t?O`${O.raw(r)}(CASE WHEN ${n} THEN 1 END)`:O`${O.raw(r)}(CASE WHEN ${n} THEN ${t} END)`}buildDateDiffPeriods(e,t,n){let r=n.toUpperCase();return O`DATEDIFF('${O.raw(r)}', ${e}::TIMESTAMP, ${t}::TIMESTAMP)`}buildPeriodSeriesSubquery(e){return O`(SELECT ROW_NUMBER() OVER (ORDER BY 1) - 1 AS period_number FROM TABLE(GENERATOR(ROWCOUNT => ${e+1}))) p`}buildTimeDimension(e,t){switch(e){case`year`:return O`DATE_TRUNC('YEAR', ${t}::TIMESTAMP)`;case`quarter`:return O`DATE_TRUNC('QUARTER', ${t}::TIMESTAMP)`;case`month`:return O`DATE_TRUNC('MONTH', ${t}::TIMESTAMP)`;case`week`:return O`DATE_TRUNC('WEEK', ${t}::TIMESTAMP)`;case`day`:return O`DATE_TRUNC('DAY', ${t}::TIMESTAMP)::TIMESTAMP`;case`hour`:return O`DATE_TRUNC('HOUR', ${t}::TIMESTAMP)`;case`minute`:return O`DATE_TRUNC('MINUTE', ${t}::TIMESTAMP)`;case`second`:return O`DATE_TRUNC('SECOND', ${t}::TIMESTAMP)`;default:return t}}buildStringCondition(e,t,n){switch(t){case`contains`:return O`${e} ILIKE ${`%${n}%`}`;case`notContains`:return O`${e} NOT ILIKE ${`%${n}%`}`;case`startsWith`:return O`${e} ILIKE ${`${n}%`}`;case`endsWith`:return O`${e} ILIKE ${`%${n}`}`;case`like`:return O`${e} LIKE ${n}`;case`notLike`:return O`${e} NOT LIKE ${n}`;case`ilike`:return O`${e} ILIKE ${n}`;case`regex`:return O`REGEXP_LIKE(${e}, ${n})`;case`notRegex`:return O`NOT REGEXP_LIKE(${e}, ${n})`;default:throw Error(`Unsupported string operator: ${t}`)}}castToType(e,t){switch(t){case`timestamp`:return O`${e}::TIMESTAMP`;case`decimal`:return O`${e}::DECIMAL`;case`integer`:return O`${e}::INTEGER`;default:throw Error(`Unsupported cast type: ${t}`)}}buildAvg(e){return O`COALESCE(AVG(${e}), 0)`}buildCaseWhen(e,t){let n=e.map(e=>O`WHEN ${e.when} THEN ${e.then}`).reduce((e,t)=>O`${e} ${t}`);return t===void 0?O`CASE ${n} END`:O`CASE ${n} ELSE ${t} END`}buildBooleanLiteral(e){return e?O`TRUE`:O`FALSE`}convertFilterValue(e){return e}prepareDateValue(e){return e}isTimestampInteger(){return!1}convertTimeDimensionResult(e){return e}getCapabilities(){return{supportsStddev:!0,supportsVariance:!0,supportsPercentile:!0,supportsWindowFunctions:!0,supportsFrameClause:!0,supportsLateralJoins:!0,supportsPercentileSubqueries:!0,supportsDerivedTablesInCTE:!0,supportsLateralSubqueriesInCTE:!1}}buildStddev(e,t=!1){let n=t?`STDDEV_SAMP`:`STDDEV_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildVariance(e,t=!1){let n=t?`VAR_SAMP`:`VAR_POP`;return O`COALESCE(${O.raw(n)}(${e}), 0)`}buildPercentile(e,t){let n=(t/100).toString();return O`PERCENTILE_CONT(${O.raw(n)}) WITHIN GROUP (ORDER BY ${e})`}buildWindowFunction(e,t,n,r,i){let a=n&&n.length>0?O`PARTITION BY ${O.join(n,O`, `)}`:O``,o=r&&r.length>0?O`ORDER BY ${O.join(r.map(e=>e.direction===`desc`?O`${e.field} DESC`:O`${e.field} ASC`),O`, `)}`:O``,s=O``;if(i?.frame){let{type:e,start:t,end:n}=i.frame,r=e.toUpperCase(),a=t===`unbounded`?`UNBOUNDED PRECEDING`:typeof t==`number`?`${t} PRECEDING`:`CURRENT ROW`,o=n===`unbounded`?`UNBOUNDED FOLLOWING`:n===`current`?`CURRENT ROW`:typeof n==`number`?`${n} FOLLOWING`:`CURRENT ROW`;s=O`${O.raw(r)} BETWEEN ${O.raw(a)} AND ${O.raw(o)}`}let c=[];n&&n.length>0&&c.push(a),r&&r.length>0&&c.push(o),i?.frame&&c.push(s);let l=O`OVER (${c.length>0?O.join(c,O` `):O``})`;switch(e){case`lag`:return O`LAG(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`lead`:return O`LEAD(${t}, ${i?.offset??1}${i?.defaultValue===void 0?O``:O`, ${i.defaultValue}`}) ${l}`;case`rank`:return O`RANK() ${l}`;case`denseRank`:return O`DENSE_RANK() ${l}`;case`rowNumber`:return O`ROW_NUMBER() ${l}`;case`ntile`:return O`NTILE(${i?.nTile??4}) ${l}`;case`firstValue`:return O`FIRST_VALUE(${t}) ${l}`;case`lastValue`:return O`LAST_VALUE(${t}) ${l}`;case`movingAvg`:return O`AVG(${t}) ${l}`;case`movingSum`:return O`SUM(${t}) ${l}`;default:throw Error(`Unsupported window function: ${e}`)}}};function be(e){switch(e){case`postgres`:return new pe;case`mysql`:return new me;case`sqlite`:return new he;case`singlestore`:return new ge;case`duckdb`:return new _e;case`databend`:return new ve;case`snowflake`:return new ye;default:throw Error(`Unsupported database engine: ${e}`)}}var U=class{databaseAdapter;constructor(e,t,n){this.db=e,this.schema=t;let r=n||this.getEngineType();this.databaseAdapter=be(r)}};function xe(e,t){let n=[],r=[],i=!1,a,o,s,c=[];for(let t of e){let e=t.match(/Planning Time:\s*([\d.]+)\s*ms/i);if(e){a=parseFloat(e[1]);continue}let l=t.match(/Execution Time:\s*([\d.]+)\s*ms/i);if(l){o=parseFloat(l[1]);continue}let u=Se(t);if(u){u.type.includes(`Seq Scan`)&&(i=!0),u.index&&r.push(u.index),n.length===0&&u.estimatedCost!==void 0&&(s=u.estimatedCost);let e=t.search(/\S/);for(;c.length>0&&c[c.length-1].indent>=e;)c.pop();if(c.length===0)n.push(u);else{let e=c[c.length-1].op;e.children||=[],e.children.push(u)}c.push({indent:e,op:u})}}return{operations:n,summary:{database:`postgres`,planningTime:a,executionTime:o,totalCost:s,hasSequentialScans:i,usedIndexes:[...new Set(r)]},raw:e.join(`
|
|
17
17
|
`),sql:t}}function Se(e){let t=e.replace(/^[\s->]+/,``).trim();if(!t)return null;let n=t.match(/^([A-Za-z][A-Za-z0-9 ]+?)(?:\s+using\s+(\S+))?(?:\s+on\s+(\S+))?(?:\s+\w+)?(?:\s+\(cost=([\d.]+)\.\.([\d.]+)\s+rows=(\d+)(?:\s+width=\d+)?\))?(?:\s+\(actual time=([\d.]+)\.\.([\d.]+)\s+rows=(\d+)\s+loops=(\d+)\))?/i);if(!n)return t.match(/^Filter:\s*(.+)$/i)||t.match(/^(Hash Cond|Join Filter|Index Cond):\s*(.+)$/i),null;let r=n[1].trim(),i=n[2]||void 0,a=n[3]||void 0,o=n[5]?parseFloat(n[5]):void 0,s=n[6]?parseInt(n[6],10):void 0,c=n[9]?parseInt(n[9],10):void 0,l={type:r,table:a,index:i,estimatedRows:s,estimatedCost:o};c!==void 0&&(l.actualRows=c);let u=e.match(/Filter:\s*(.+?)(?:\)|$)/i);return u&&(l.filter=u[1].trim()),l}function Ce(e){return Array.isArray(e)?e:e&&typeof e==`object`&&`rows`in e&&Array.isArray(e.rows)?e.rows:[]}var we=class extends U{async execute(e,t){if(e&&typeof e==`object`&&typeof e.execute==`function`){let n=await e.execute();return Array.isArray(n)?n.map(e=>this.convertNumericFields(e,t)):n}if(!this.db.execute)throw Error(`PostgreSQL database instance must have an execute method`);let n=await this.db.execute(e),r=Ce(n);return r.length>0?r.map(e=>this.convertNumericFields(e,t)):n}convertNumericFields(e,t){if(!e||typeof e!=`object`)return e;let n={};for(let[r,i]of Object.entries(e))t&&t.includes(r)?n[r]=this.coerceToNumber(i):n[r]=i;return n}coerceToNumber(e){if(e==null||typeof e==`number`)return e;if(typeof e==`bigint`)return Number(e);if(e&&typeof e==`object`){if(typeof e.toString==`function`){let t=e.toString();if(/^-?\d+(\.\d+)?$/.test(t))return t.includes(`.`)?parseFloat(t):parseInt(t,10)}if(e.constructor?.name===`Numeric`||e.constructor?.name===`Decimal`||`digits`in e||`sign`in e){let t=e.toString();return parseFloat(t)}return e}if(typeof e==`string`){if(/^-?\d+(\.\d+)?$/.test(e))return e.includes(`.`)?parseFloat(e):parseInt(e,10);if(!isNaN(parseFloat(e))&&isFinite(parseFloat(e)))return parseFloat(e)}return e}getEngineType(){return`postgres`}async explainQuery(e,t,n){let r=n?.analyze?`EXPLAIN ANALYZE`:`EXPLAIN`;if(!this.db.execute)throw Error(`PostgreSQL database instance must have an execute method`);let i=await this.db.execute(O`${O.raw(r)} ${O.raw(e.replace(/\$(\d+)/g,(e,n)=>{let r=t[parseInt(n,10)-1];return r===null?`NULL`:typeof r==`number`?String(r):typeof r==`boolean`?r?`TRUE`:`FALSE`:r instanceof Date?`'${r.toISOString()}'`:`'${String(r).replace(/'/g,`''`)}'`}))}`),a=[];for(let e of Ce(i))if(e&&typeof e==`object`){let t=e[`QUERY PLAN`]||e[`query plan`]||e.queryplan;typeof t==`string`&&a.push(t)}return xe(a,{sql:e,params:t})}async getTableIndexes(e){if(!e||e.length===0)return[];if(!this.db.execute)throw Error(`PostgreSQL database instance must have an execute method`);try{let t=e.map(e=>`'${e.toLowerCase()}'`).join(`,`),n=Ce(await this.db.execute(O`
|
|
18
18
|
SELECT
|
|
19
19
|
t.relname as table_name,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as e, s as t } from "./utils-
|
|
1
|
+
import { C as e, s as t } from "./utils-Bd5mzZfk.js";
|
|
2
2
|
//#region node_modules/drizzle-orm/entity.js
|
|
3
3
|
var n = Symbol.for("drizzle:entityKind");
|
|
4
4
|
function r(e, t) {
|
|
@@ -1356,7 +1356,9 @@ function we(e) {
|
|
|
1356
1356
|
var B = class {
|
|
1357
1357
|
databaseAdapter;
|
|
1358
1358
|
constructor(e, t, n) {
|
|
1359
|
-
this.db = e, this.schema = t
|
|
1359
|
+
this.db = e, this.schema = t;
|
|
1360
|
+
let r = n || this.getEngineType();
|
|
1361
|
+
this.databaseAdapter = we(r);
|
|
1360
1362
|
}
|
|
1361
1363
|
};
|
|
1362
1364
|
//#endregion
|
|
@@ -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-DklqMBHn.cjs`),t=require(`./mcp-transport-BCtjU0lC.cjs`);function n(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function r(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function i(i){let{semanticLayer:o,getSecurityContext:s,toolPrefix:c=`drizzle_cube_`,tools:l=[`discover`,`validate`,`load`,`chart`],prompts:u=t.d(),resources:d,app:f=!1}=i,p=!!f,m=typeof f==`object`?f:void 0,h=d??t.f(),g=p?[...h,...a(m)]:h,_=t.s({appEnabled:p}),v=new Map(_.map(e=>[e.name,e])),y=l.filter(e=>v.has(e)).map(e=>{let t=v.get(e),n={name:`${c}${e}`,description:t.description,inputSchema:t.inputSchema},r=t._meta;return r&&(n._meta=r),n}),b=y.map(e=>e.name),x=new Set;for(let e of l)x.add(e),x.add(`${c}${e}`);function S(e){return x.has(e)}async function C(t,i,a){let u=t.startsWith(c)?t.slice(c.length):t;if(!l.includes(u))return r(`Unknown tool: ${t}`);try{switch(u){case`discover`:return n(await e.d(o,i||{}));case`validate`:{let t=i||{};if(!t.query)return r(`query is required`);let c;try{c=await s(a)}catch{}return n(await e.h(o,t,c))}case`load`:{let t=i||{};return t.query?n(await e.p(o,await s(a),t)):r(`query is required`)}case`chart`:{let t=i||{};return t.query?n(await e.p(o,await s(a),t)):r(`query is required`)}default:return r(`Unknown tool: ${t}`)}}catch(e){return r(e)}}return{definitions:y,handle:C,handles:S,prompts:u,resources:g,toolNames:b}}function a(e){let n=t.p(e);return n?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:n}]:[]}exports.getCubeTools=i;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as e, h as t, p as n } from "./utils-
|
|
2
|
-
import { d as r, f as i, n as a, p as o, s, t as c } from "./mcp-transport-
|
|
1
|
+
import { d as e, h as t, p as n } from "./utils-Bd5mzZfk.js";
|
|
2
|
+
import { d as r, f as i, n as a, p as o, s, t as c } from "./mcp-transport-DW_Uks-O.js";
|
|
3
3
|
//#region src/adapters/mcp-tools.ts
|
|
4
4
|
function l(e) {
|
|
5
5
|
return {
|
|
@@ -45,7 +45,12 @@ function d(a) {
|
|
|
45
45
|
case "discover": return l(await e(o, i || {}));
|
|
46
46
|
case "validate": {
|
|
47
47
|
let e = i || {};
|
|
48
|
-
|
|
48
|
+
if (!e.query) return u("query is required");
|
|
49
|
+
let n;
|
|
50
|
+
try {
|
|
51
|
+
n = await c(a);
|
|
52
|
+
} catch {}
|
|
53
|
+
return l(await t(o, e, n));
|
|
49
54
|
}
|
|
50
55
|
case "load": {
|
|
51
56
|
let e = i || {};
|