drizzle-cube 0.6.3 → 0.6.5

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.
Files changed (281) hide show
  1. package/dist/adapters/ActivityGridChart.config-Bvi50jl_.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-BwswifOD.js +2 -0
  3. package/dist/adapters/AreaChart.config-Cehf1Kjo.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-DC-gnmli.js +2 -0
  5. package/dist/adapters/BarChart.config-BY53r96T.cjs +1 -0
  6. package/dist/adapters/BarChart.config-DJN5Oqmw.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-9hLT3yMs.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-D9P4PMTf.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-CEVSsy7u.js +2 -0
  10. package/dist/adapters/BubbleChart.config-Cji0z0Tb.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-DPv76FmM.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-tcHTorLu.js +2 -0
  13. package/dist/adapters/DataTable.config-D4txBrlQ.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DrObkanI.js +2 -0
  15. package/dist/adapters/FunnelChart.config-BFYSkibE.js +2 -0
  16. package/dist/adapters/FunnelChart.config-BTSFeha-.cjs +1 -0
  17. package/dist/adapters/GaugeChart.config-BFz6NZfT.js +2 -0
  18. package/dist/adapters/GaugeChart.config-DJKD6oh8.cjs +1 -0
  19. package/dist/adapters/HeatMapChart.config-C3EZl9Sy.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-jUCb5NAE.js +2 -0
  21. package/dist/adapters/KpiDelta.config-DhuealNk.js +2 -0
  22. package/dist/adapters/KpiDelta.config-m6FEIeWo.cjs +1 -0
  23. package/dist/adapters/KpiNumber.config-Cmd7eHmg.cjs +1 -0
  24. package/dist/adapters/KpiNumber.config-KQdKrkK-.js +2 -0
  25. package/dist/adapters/KpiText.config-D_pU4jH3.cjs +1 -0
  26. package/dist/adapters/KpiText.config-V8SvhllA.js +2 -0
  27. package/dist/adapters/LineChart.config-BuWM0TJx.js +2 -0
  28. package/dist/adapters/LineChart.config-CsxJ3f5A.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-CJdjenj7.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-oCWrAuom.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-DBLnhtOk.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-DWg0jzxA.js +2 -0
  33. package/dist/adapters/PieChart.config-D3qI6nbM.cjs +1 -0
  34. package/dist/adapters/PieChart.config-R2rcul2D.js +2 -0
  35. package/dist/adapters/RadarChart.config-BlK8QuDi.js +2 -0
  36. package/dist/adapters/RadarChart.config-fH3ce10I.cjs +1 -0
  37. package/dist/adapters/RadialBarChart.config-CqCnb27I.js +2 -0
  38. package/dist/adapters/RadialBarChart.config-DQQHJOCs.cjs +1 -0
  39. package/dist/adapters/RetentionCombinedChart.config-BFJ8i-kp.js +2 -0
  40. package/dist/adapters/RetentionCombinedChart.config-B_Wd_YjX.cjs +1 -0
  41. package/dist/adapters/RetentionHeatmap.config-BLqu9-Ft.js +2 -0
  42. package/dist/adapters/RetentionHeatmap.config-MvOPw_Dd.cjs +1 -0
  43. package/dist/adapters/SankeyChart.config-C_4u9Xiq.js +2 -0
  44. package/dist/adapters/SankeyChart.config-EH6wsjPr.cjs +1 -0
  45. package/dist/adapters/ScatterChart.config-D-MlQ7mP.js +2 -0
  46. package/dist/adapters/ScatterChart.config-DmwiEBN-.cjs +1 -0
  47. package/dist/adapters/SunburstChart.config-BRr_as_L.js +2 -0
  48. package/dist/adapters/SunburstChart.config-CptDj8e4.cjs +1 -0
  49. package/dist/adapters/TreeMapChart.config-D5wX2xaT.cjs +1 -0
  50. package/dist/adapters/TreeMapChart.config-Dyhwpwq3.js +2 -0
  51. package/dist/adapters/WaterfallChart.config-B_LGJIov.js +2 -0
  52. package/dist/adapters/WaterfallChart.config-Q4Fv196W.cjs +1 -0
  53. package/dist/adapters/compiler-D0v5KJhv.cjs +166 -0
  54. package/dist/adapters/{compiler-LKTN9PTt.js → compiler-ZruQ85ff.js} +247 -238
  55. package/dist/adapters/core/index.cjs +1 -1
  56. package/dist/adapters/core/index.js +1 -1
  57. package/dist/adapters/{core-F1pCQPde.cjs → core-CVqTwOR3.cjs} +1 -1
  58. package/dist/adapters/{core-Bbchr0ui.js → core-DoSUiMmv.js} +60 -60
  59. package/dist/adapters/express/index.cjs +2 -2
  60. package/dist/adapters/express/index.js +80 -75
  61. package/dist/adapters/fastify/index.cjs +2 -2
  62. package/dist/adapters/fastify/index.js +63 -58
  63. package/dist/adapters/{handler-DRZb2ip6.cjs → handler-DyIyrFFp.cjs} +3 -3
  64. package/dist/adapters/{handler-u8FyzPBT.js → handler-j74EJDdo.js} +28 -28
  65. package/dist/adapters/hono/index.cjs +2 -2
  66. package/dist/adapters/hono/index.js +57 -52
  67. package/dist/adapters/mcp-tools.cjs +1 -1
  68. package/dist/adapters/mcp-tools.js +2 -2
  69. package/dist/adapters/mcp-transport-BuU5CrKL.cjs +40 -0
  70. package/dist/adapters/mcp-transport-l8DhKzR5.js +601 -0
  71. package/dist/adapters/mcp-transport.d.ts +21 -3
  72. package/dist/adapters/nextjs/index.cjs +1 -1
  73. package/dist/adapters/nextjs/index.d.ts +10 -0
  74. package/dist/adapters/nextjs/index.js +114 -105
  75. package/dist/{server/openai-CmMzrs1Y.js → adapters/openai-BCSKRcbD.js} +10 -10
  76. package/dist/{server/openai-DhzGY9R4.js → adapters/openai-BjR3ohaS.js} +1 -1
  77. package/dist/{server/openai-B4kAJTSD.cjs → adapters/openai-ClVVLjNl.cjs} +2 -2
  78. package/dist/adapters/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
  79. package/dist/adapters/utils-CBR-9AMD.cjs +128 -0
  80. package/dist/adapters/{utils-BPWZsX7k.js → utils-U7gV5wQL.js} +789 -788
  81. package/dist/adapters/utils.cjs +1 -1
  82. package/dist/adapters/utils.d.ts +16 -4
  83. package/dist/adapters/utils.js +1 -1
  84. package/dist/cjs/adapters/mcp-transport.d.ts +21 -3
  85. package/dist/cjs/adapters/nextjs/index.d.ts +10 -0
  86. package/dist/cjs/adapters/utils.d.ts +16 -4
  87. package/dist/cjs/client/components/AnalysisBuilder/utils/filterUtils.d.ts +4 -10
  88. package/dist/cjs/client/components/shared/utils.d.ts +2 -1
  89. package/dist/cjs/client/shared/filters/filterOperations.d.ts +95 -0
  90. package/dist/cjs/client/shared/filters/index.d.ts +10 -0
  91. package/dist/cjs/client/shared/filters/operators.d.ts +23 -0
  92. package/dist/cjs/client/shared/index.d.ts +3 -2
  93. package/dist/cjs/client/shared/types.d.ts +3 -10
  94. package/dist/cjs/client/shared/utils.d.ts +1 -59
  95. package/dist/cjs/client/utils/filterUtils.d.ts +2 -9
  96. package/dist/cjs/server/executors/sqlite-executor.d.ts +8 -2
  97. package/dist/cjs/server/logical-plan/logical-plan-builder.d.ts +0 -5
  98. package/dist/cjs/server/logical-plan/schema-builder.d.ts +19 -0
  99. package/dist/client/charts.js +13 -13
  100. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +3283 -0
  101. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +1 -0
  102. package/dist/client/chunks/{DashboardEditModal-CWurUU2B.js → DashboardEditModal-DFQSxR_C.js} +1157 -4011
  103. package/dist/client/chunks/DashboardEditModal-DFQSxR_C.js.map +1 -0
  104. package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js → RetentionCombinedChart-DY7wKLs5.js} +3 -3
  105. package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js.map → RetentionCombinedChart-DY7wKLs5.js.map} +1 -1
  106. package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js → RetentionHeatmap-iNCG-dLd.js} +2 -2
  107. package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js.map → RetentionHeatmap-iNCG-dLd.js.map} +1 -1
  108. package/dist/client/chunks/{analysis-builder-Uj_Fxv0-.js → analysis-builder-CBZ7lOC-.js} +323 -323
  109. package/dist/client/chunks/{analysis-builder-Uj_Fxv0-.js.map → analysis-builder-CBZ7lOC-.js.map} +1 -1
  110. package/dist/client/chunks/{analysis-builder-shared-AdAYIfj_.js → analysis-builder-shared-8alCn-zw.js} +989 -1064
  111. package/dist/client/chunks/analysis-builder-shared-8alCn-zw.js.map +1 -0
  112. package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js → chart-activity-grid-DDqFVWoa.js} +5 -2
  113. package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js.map → chart-activity-grid-DDqFVWoa.js.map} +1 -1
  114. package/dist/client/chunks/{chart-area-of01_62R.js → chart-area-BHxPNsmc.js} +2 -2
  115. package/dist/client/chunks/{chart-area-of01_62R.js.map → chart-area-BHxPNsmc.js.map} +1 -1
  116. package/dist/client/chunks/{chart-bar-BqelQE_I.js → chart-bar-DAO3PPcE.js} +3 -3
  117. package/dist/client/chunks/{chart-bar-BqelQE_I.js.map → chart-bar-DAO3PPcE.js.map} +1 -1
  118. package/dist/client/chunks/{chart-box-plot-kkBixZ27.js → chart-box-plot-CUpFyQQk.js} +2 -2
  119. package/dist/client/chunks/{chart-box-plot-kkBixZ27.js.map → chart-box-plot-CUpFyQQk.js.map} +1 -1
  120. package/dist/client/chunks/{chart-bubble-B2he1--4.js → chart-bubble-DvP_6_n9.js} +2 -2
  121. package/dist/client/chunks/{chart-bubble-B2he1--4.js.map → chart-bubble-DvP_6_n9.js.map} +1 -1
  122. package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js → chart-candlestick-Dx8ZCMzl.js} +2 -2
  123. package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js.map → chart-candlestick-Dx8ZCMzl.js.map} +1 -1
  124. package/dist/client/chunks/{chart-data-table-D4g5_jfF.js → chart-data-table-BP6DMdom.js} +32 -16
  125. package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +1 -0
  126. package/dist/client/chunks/{chart-funnel-CToKSBaL.js → chart-funnel-xeVGBy-p.js} +2 -2
  127. package/dist/client/chunks/{chart-funnel-CToKSBaL.js.map → chart-funnel-xeVGBy-p.js.map} +1 -1
  128. package/dist/client/chunks/{chart-gauge-DTVezSk7.js → chart-gauge-DXQ4r3cb.js} +3 -3
  129. package/dist/client/chunks/{chart-gauge-DTVezSk7.js.map → chart-gauge-DXQ4r3cb.js.map} +1 -1
  130. package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js → chart-heat-map-Pnk6rhqQ.js} +3 -3
  131. package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js.map → chart-heat-map-Pnk6rhqQ.js.map} +1 -1
  132. package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js → chart-kpi-delta-nXQnRRBr.js} +3 -3
  133. package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js.map → chart-kpi-delta-nXQnRRBr.js.map} +1 -1
  134. package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js → chart-kpi-number-m8UGJfBr.js} +5 -5
  135. package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js.map → chart-kpi-number-m8UGJfBr.js.map} +1 -1
  136. package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js → chart-kpi-text-CurpqmaD.js} +7 -4
  137. package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js.map → chart-kpi-text-CurpqmaD.js.map} +1 -1
  138. package/dist/client/chunks/{chart-line-DKgrQA6c.js → chart-line-sJK-cJc0.js} +3 -3
  139. package/dist/client/chunks/{chart-line-DKgrQA6c.js.map → chart-line-sJK-cJc0.js.map} +1 -1
  140. package/dist/client/chunks/{chart-markdown-CV75S_zL.js → chart-markdown-BVrqqygz.js} +1263 -1192
  141. package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +1 -0
  142. package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js → chart-measure-profile-k9_QDQbB.js} +3 -3
  143. package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js.map → chart-measure-profile-k9_QDQbB.js.map} +1 -1
  144. package/dist/client/chunks/{chart-pie-ByieAX5H.js → chart-pie-BDaaYt7a.js} +3 -3
  145. package/dist/client/chunks/{chart-pie-ByieAX5H.js.map → chart-pie-BDaaYt7a.js.map} +1 -1
  146. package/dist/client/chunks/{chart-radar-CiSwHWp4.js → chart-radar-Bz07PIVe.js} +3 -3
  147. package/dist/client/chunks/{chart-radar-CiSwHWp4.js.map → chart-radar-Bz07PIVe.js.map} +1 -1
  148. package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js → chart-radial-bar-DpyxKQMj.js} +3 -3
  149. package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js.map → chart-radial-bar-DpyxKQMj.js.map} +1 -1
  150. package/dist/client/chunks/{chart-sankey-DjrvKw6K.js → chart-sankey-BAeNbI-p.js} +2 -2
  151. package/dist/client/chunks/{chart-sankey-DjrvKw6K.js.map → chart-sankey-BAeNbI-p.js.map} +1 -1
  152. package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js → chart-scatter-CRhGLCcy.js} +3 -3
  153. package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js.map → chart-scatter-CRhGLCcy.js.map} +1 -1
  154. package/dist/client/chunks/{chart-sunburst-leGpuDj7.js → chart-sunburst-D3wV5OrK.js} +3 -3
  155. package/dist/client/chunks/{chart-sunburst-leGpuDj7.js.map → chart-sunburst-D3wV5OrK.js.map} +1 -1
  156. package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js → chart-tree-map-iI3ewOKY.js} +3 -3
  157. package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js.map → chart-tree-map-iI3ewOKY.js.map} +1 -1
  158. package/dist/client/chunks/{chart-waterfall-DyvQReN5.js → chart-waterfall-BrrYTZfs.js} +3 -3
  159. package/dist/client/chunks/{chart-waterfall-DyvQReN5.js.map → chart-waterfall-BrrYTZfs.js.map} +1 -1
  160. package/dist/client/chunks/{charts-core-DaXSt1Dd.js → charts-core-Cs-UIsQa.js} +2 -2
  161. package/dist/client/chunks/{charts-core-DaXSt1Dd.js.map → charts-core-Cs-UIsQa.js.map} +1 -1
  162. package/dist/client/chunks/charts-loader-DAJbAD7a.js +84 -0
  163. package/dist/client/chunks/{charts-loader-B0DOQMFH.js.map → charts-loader-DAJbAD7a.js.map} +1 -1
  164. package/dist/client/chunks/core-D7vPfUIe.js.map +1 -1
  165. package/dist/client/chunks/{dist-zPWyTBdU.js → dist-BwQr11Fz.js} +251 -252
  166. package/dist/client/chunks/{dist-zPWyTBdU.js.map → dist-BwQr11Fz.js.map} +1 -1
  167. package/dist/client/chunks/{exceljs.min-CIqBqwTW.js → exceljs.min-Dey-qIFL.js} +16 -16
  168. package/dist/client/chunks/{exceljs.min-CIqBqwTW.js.map → exceljs.min-Dey-qIFL.js.map} +1 -1
  169. package/dist/client/chunks/javascript-DFnKaHmQ.js.map +1 -1
  170. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  171. package/dist/client/chunks/{schema-visualization-DJPTktM6.js → schema-visualization-BGT_cNon.js} +12 -12
  172. package/dist/client/chunks/{schema-visualization-DJPTktM6.js.map → schema-visualization-BGT_cNon.js.map} +1 -1
  173. package/dist/client/chunks/sql-CmVzGP4w.js.map +1 -1
  174. package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js +30 -0
  175. package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js.map +1 -0
  176. package/dist/client/chunks/{useDirtyStateTracking-BY_IIG1n.js → useDebounce-7suCFq9v.js} +250 -653
  177. package/dist/client/chunks/useDebounce-7suCFq9v.js.map +1 -0
  178. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +66 -0
  179. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +1 -0
  180. package/dist/client/chunks/{useExplainAI-PjMBmj2p.js → useExplainAI-CEf04DPE.js} +14 -14
  181. package/dist/client/chunks/{useExplainAI-PjMBmj2p.js.map → useExplainAI-CEf04DPE.js.map} +1 -1
  182. package/dist/client/chunks/useNotebookLayout-Ck3Z3uzg.js.map +1 -1
  183. package/dist/client/chunks/utils-DjLiJKS_.js +104 -0
  184. package/dist/client/chunks/utils-DjLiJKS_.js.map +1 -0
  185. package/dist/client/chunks/{vendor-D4jADu8t.js → vendor-DFAQ4Ucl.js} +5 -3
  186. package/dist/client/chunks/{vendor-D4jADu8t.js.map → vendor-DFAQ4Ucl.js.map} +1 -1
  187. package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +4 -10
  188. package/dist/client/components/shared/utils.d.ts +2 -1
  189. package/dist/client/components.js +4 -3
  190. package/dist/client/hooks.js +5 -4
  191. package/dist/client/icons.js +1 -1
  192. package/dist/client/index.js +34 -30
  193. package/dist/client/index.js.map +1 -1
  194. package/dist/client/providers.js +1 -1
  195. package/dist/client/schema.js +1 -1
  196. package/dist/client/shared/filters/filterOperations.d.ts +95 -0
  197. package/dist/client/shared/filters/index.d.ts +10 -0
  198. package/dist/client/shared/filters/operators.d.ts +23 -0
  199. package/dist/client/shared/index.d.ts +3 -2
  200. package/dist/client/shared/types.d.ts +3 -10
  201. package/dist/client/shared/utils.d.ts +1 -59
  202. package/dist/client/styles.css +1 -1
  203. package/dist/client/utils/filterUtils.d.ts +2 -9
  204. package/dist/client/utils.js +32 -6
  205. package/dist/client/utils.js.map +1 -0
  206. package/dist/client-bundle-stats.html +1 -1
  207. package/dist/mcp-app/mcp-app.html +145 -50
  208. package/dist/server/executors/sqlite-executor.d.ts +8 -2
  209. package/dist/server/index.cjs +34 -34
  210. package/dist/server/index.js +1557 -1547
  211. package/dist/server/logical-plan/logical-plan-builder.d.ts +0 -5
  212. package/dist/server/logical-plan/schema-builder.d.ts +19 -0
  213. package/dist/{adapters/openai-CmMzrs1Y.js → server/openai-BCSKRcbD.js} +10 -10
  214. package/dist/{adapters/openai-DhzGY9R4.js → server/openai-BjR3ohaS.js} +1 -1
  215. package/dist/{adapters/openai-B4kAJTSD.cjs → server/openai-ClVVLjNl.cjs} +2 -2
  216. package/dist/server/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
  217. package/package.json +11 -7
  218. package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +0 -1
  219. package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +0 -2
  220. package/dist/adapters/AreaChart.config-1B8iQnfn.js +0 -2
  221. package/dist/adapters/AreaChart.config-hnncyQL4.cjs +0 -1
  222. package/dist/adapters/BarChart.config-C-QCf1rL.cjs +0 -1
  223. package/dist/adapters/BarChart.config-CFelK1qP.js +0 -2
  224. package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +0 -2
  225. package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +0 -1
  226. package/dist/adapters/BubbleChart.config-B_M4hzzV.js +0 -2
  227. package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +0 -1
  228. package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +0 -1
  229. package/dist/adapters/CandlestickChart.config-fuhyFvob.js +0 -2
  230. package/dist/adapters/DataTable.config-q2gqBi6t.cjs +0 -1
  231. package/dist/adapters/DataTable.config-wIQnHX5R.js +0 -2
  232. package/dist/adapters/FunnelChart.config-Dz710ssx.js +0 -2
  233. package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +0 -1
  234. package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +0 -1
  235. package/dist/adapters/GaugeChart.config-CgwniXkd.js +0 -2
  236. package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +0 -1
  237. package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +0 -2
  238. package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +0 -1
  239. package/dist/adapters/KpiDelta.config-C_dYM64q.js +0 -2
  240. package/dist/adapters/KpiNumber.config-CXg6toZG.js +0 -2
  241. package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +0 -1
  242. package/dist/adapters/KpiText.config-BY-SJvAF.js +0 -2
  243. package/dist/adapters/KpiText.config-GSIxy0CE.cjs +0 -1
  244. package/dist/adapters/LineChart.config-CJtF8SOu.js +0 -2
  245. package/dist/adapters/LineChart.config-d0y60gw9.cjs +0 -1
  246. package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +0 -1
  247. package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +0 -2
  248. package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +0 -1
  249. package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +0 -2
  250. package/dist/adapters/PieChart.config-CDxfXCIt.cjs +0 -1
  251. package/dist/adapters/PieChart.config-CuZxQc5m.js +0 -2
  252. package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +0 -1
  253. package/dist/adapters/RadarChart.config-KrxwaaGu.js +0 -2
  254. package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +0 -2
  255. package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +0 -1
  256. package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +0 -1
  257. package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +0 -2
  258. package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +0 -2
  259. package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +0 -1
  260. package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +0 -1
  261. package/dist/adapters/SankeyChart.config-kzAnW0C7.js +0 -2
  262. package/dist/adapters/ScatterChart.config-4Okvn27v.js +0 -2
  263. package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +0 -1
  264. package/dist/adapters/SunburstChart.config-BsUQkIM_.js +0 -2
  265. package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +0 -1
  266. package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +0 -2
  267. package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +0 -1
  268. package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +0 -1
  269. package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +0 -2
  270. package/dist/adapters/compiler-ChGO4ZLU.cjs +0 -166
  271. package/dist/adapters/mcp-transport-Bw_zqky2.js +0 -591
  272. package/dist/adapters/mcp-transport-CNIPoe1i.cjs +0 -40
  273. package/dist/adapters/utils-_whV4fXL.cjs +0 -128
  274. package/dist/client/chunks/DashboardEditModal-CWurUU2B.js.map +0 -1
  275. package/dist/client/chunks/analysis-builder-shared-AdAYIfj_.js.map +0 -1
  276. package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +0 -1
  277. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +0 -1
  278. package/dist/client/chunks/charts-loader-B0DOQMFH.js +0 -84
  279. package/dist/client/chunks/useDirtyStateTracking-BY_IIG1n.js.map +0 -1
  280. package/dist/client/chunks/utils-Cq-j5E5I.js +0 -155
  281. package/dist/client/chunks/utils-Cq-j5E5I.js.map +0 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../core-F1pCQPde.cjs");exports.createCubeHttpHandler=e.t,exports.resolveSecurityContext=e.n,exports.withLocaleFromHeaders=e.r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../core-CVqTwOR3.cjs");exports.createCubeHttpHandler=e.t,exports.resolveSecurityContext=e.n,exports.withLocaleFromHeaders=e.r;
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../core-Bbchr0ui.js";
1
+ import { n as e, r as t, t as n } from "../core-DoSUiMmv.js";
2
2
  export { n as createCubeHttpHandler, e as resolveSecurityContext, t as withLocaleFromHeaders };
@@ -1 +1 @@
1
- const e=require("./utils-_whV4fXL.cjs"),t=require("./mcp-transport-CNIPoe1i.cjs");var n=`x-dc-locale`;function r(e){if(!e)return;let t=(Array.isArray(e)?e[0]:e).split(`,`)[0]?.trim();if(t&&/^[A-Za-z0-9-]{2,35}$/.test(t))return t}function i(e){return r(e(n))}function a(e,t){let n=e&&typeof e==`object`?e:{},r=typeof n.locale==`string`?n.locale:void 0,i=t??r??`en-GB`;return r===i?n:{...n,locale:i}}function o(e){let t=Array.isArray(e)?[...e]:(e??``).split(`,`).map(e=>e.trim()).filter(Boolean);return t.some(e=>e.toLowerCase()===`x-dc-locale`)||t.push(`X-DC-Locale`),t}function s(e,t){return a(e,i(t))}async function c(e,t){return s(await e(),t)}function l(e){return String(e).replace(/\n|\r/g,``)}function u(t){async function n(n,r,i){let a=t.validateQuery(n);if(!a.isValid)return i.send(400,e.i(`Query validation failed: ${a.errors.join(`, `)}`,400));let o=n.measures?.[0]||n.dimensions?.[0];if(!o)return i.send(400,e.i(`No measures or dimensions specified`,400));let s=o.split(`.`)[0],c=await t.generateSQL(s,n,r);return i.send(200,e.o(n,c))}function r(n){try{return n.send(200,e.a(t.getMetadata()))}catch(t){return console.error(`Metadata error:`,t),n.send(500,e.i(t instanceof Error?t.message:`Failed to fetch metadata`,500))}}async function i(t,r){try{let e=await t.getBody();return await n(e?.query||e,await c(r,e=>t.getHeader(e)),t)}catch(n){return console.error(`SQL generation error:`,l(n)),t.send(500,e.i(n instanceof Error?n.message:`SQL generation failed`,500))}}async function a(t,r){try{let i=t.getQueryParam(`query`);if(!i)return t.send(400,e.i(`Query parameter is required`,400));let a;try{a=JSON.parse(i)}catch{return t.send(400,e.i(`Invalid JSON in query parameter`,400))}let o=await c(r,e=>t.getHeader(e));return await n(a,o,t)}catch(n){return console.error(`SQL generation error:`,l(n)),t.send(500,e.i(n instanceof Error?n.message:`SQL generation failed`,500))}}async function o(n,r){try{let i=await n.getBody(),a=await e.u(i?.query||i,await c(r,e=>n.getHeader(e)),t);return n.send(200,a)}catch(e){return console.error(`Dry-run error:`,e),n.send(400,{error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1})}}async function s(n,r){try{let i=n.getQueryParam(`query`);if(!i)return n.send(400,{error:`Query parameter is required`,valid:!1});let a=await e.u(JSON.parse(i),await c(r,e=>n.getHeader(e)),t);return n.send(200,a)}catch(e){return console.error(`Dry-run error:`,e),n.send(400,{error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1})}}async function u(n,r){try{let i=(await n.getBody())?.queries;if(!i||!Array.isArray(i))return n.send(400,e.i(`Request body must contain a "queries" array`,400));if(i.length===0)return n.send(400,e.i(`Queries array cannot be empty`,400));let a=await e.l(i,await c(r,e=>n.getHeader(e)),t,{skipCache:n.getHeader(`x-cache-control`)===`no-cache`});return n.send(200,a)}catch(t){return console.error(`Batch execution error:`,t),n.send(500,e.i(t instanceof Error?t.message:`Batch execution failed`,500))}}async function d(e,n){try{let r=await e.getBody(),i=r?.query||r,a=r?.options||{},o=await c(n,t=>e.getHeader(t)),s=t.validateQuery(i);if(!s.isValid)return e.send(400,{error:`Query validation failed: ${s.errors.join(`, `)}`});let l=await t.explainQuery(i,o,a);return e.send(200,l)}catch(t){return console.error(`Explain error:`,t),e.send(500,{error:t instanceof Error?t.message:`Explain query failed`})}}return{handleMetaGet:r,handleSqlGet:a,handleSqlPost:i,handleDryRunGet:s,handleDryRunPost:o,handleBatchPost:u,handleExplainPost:d}}function d(e,n){let r=e?.code??-32603,i=e?.data,a=e.message||`MCP request failed`;return t.i(n??null,r,a,i)}function f(e,n){let r=!!n.app,i=typeof n.app==`object`?n.app:void 0,a;function o(){return a||={resources:t.o(e,n.resources),prompts:t.y(n.prompts),instructions:t.v(n.instructions)},a}async function s(a,s){if(n.resourceMetadataUrl&&!t.u(a.getHeader(`authorization`)))return a.setHeader(`WWW-Authenticate`,t.c(n.resourceMetadataUrl)),a.send(401,{error:`Bearer token required`});let u=t.S(a.getHeader(`origin`),n.allowedOrigins?{allowedOrigins:n.allowedOrigins}:{});if(!u.valid)return a.send(403,t.i(null,-32600,u.reason));let f=a.getHeader(`accept`);if(!t.x(f))return a.send(400,t.i(null,-32600,`Accept header must include both application/json and text/event-stream`));let p=t.h({"mcp-protocol-version":a.getHeader(`mcp-protocol-version`)});if(!p.ok)return a.send(426,{error:`Unsupported MCP protocol version`,supported:p.supported});let m=t.g(await a.getBody());if(!m)return a.send(400,t.i(null,-32600,`Invalid JSON-RPC 2.0 request`));let h=t.C(f),g=m.method===`initialize`,{resources:_,prompts:v,instructions:y}=o();try{let o=await t.l(m.method,m.params,{semanticLayer:e,extractSecurityContext:()=>c(s,e=>a.getHeader(e)),rawRequest:void 0,rawResponse:void 0,negotiatedProtocol:p.negotiated,resources:_,prompts:v,instructions:y,appEnabled:r,appConfig:i,serverName:n.serverName});if(t.m(m))return a.sendEmpty(202);let l=g&&o&&typeof o==`object`&&`sessionId`in o?o.sessionId:void 0;l&&a.setHeader(t.r,l);let u=t.a(m.id??null,o);if(h){let e=t._();return a.sendSse(200,`id: ${e}\n\n`+t.b(u,e))}return a.send(200,u)}catch(e){if(t.m(m))return console.error(`MCP notification processing error:`,l(e)),a.sendEmpty(202);console.error(`MCP RPC error:`,l(e));let n=d(e,m.id);if(h){let e=t._();return a.sendSse(200,`id: ${e}\n\n`+t.b(n,e))}return a.send(200,n)}}return{handleMcpPost:s}}function p(t){let{semanticLayer:n,onError:r,mcp:i={}}=t,a=u(n),{handleMcpPost:o}=f(n,i);function s(t,n){return r(t),n.send(500,e.i(t instanceof Error?t.message:`Query execution failed`,500))}async function l(t,r,i){let a=await c(i,e=>r.getHeader(e)),o=n.validateQuery(t);if(!o.isValid)return r.send(400,e.i(`Query validation failed: ${o.errors.join(`, `)}`,400));let s=r.getHeader(`x-cache-control`)===`no-cache`,l=await n.executeMultiCubeQuery(t,a,{skipCache:s});return r.send(200,e.r(t,l,n))}async function d(e,t){try{let n=await e.getBody();return await l(n?.query||n,e,t)}catch(t){return s(t,e)}}async function p(t,n){try{let r=t.getQueryParam(`query`);if(!r)return t.send(400,e.i(`Query parameter is required`,400));let i;try{i=JSON.parse(r)}catch{return t.send(400,e.i(`Invalid JSON in query parameter`,400))}return await l(i,t,n)}catch(e){return s(e,t)}}return{handleLoadGet:p,handleLoadPost:d,handleMcpPost:o,...a}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
1
+ const e=require("./utils-CBR-9AMD.cjs"),t=require("./mcp-transport-BuU5CrKL.cjs");var n=`x-dc-locale`;function r(e){if(!e)return;let t=(Array.isArray(e)?e[0]:e).split(`,`)[0]?.trim();if(t&&/^[A-Za-z0-9-]{2,35}$/.test(t))return t}function i(e){return r(e(n))}function a(e,t){let n=e&&typeof e==`object`?e:{},r=typeof n.locale==`string`?n.locale:void 0,i=t??r??`en-GB`;return r===i?n:{...n,locale:i}}function o(e){let t=Array.isArray(e)?[...e]:(e??``).split(`,`).map(e=>e.trim()).filter(Boolean);return t.some(e=>e.toLowerCase()===`x-dc-locale`)||t.push(`X-DC-Locale`),t}function s(e,t){return a(e,i(t))}async function c(e,t){return s(await e(),t)}function l(e){return String(e).replace(/\n|\r/g,``)}function u(t){async function n(n,r,i){let a=t.validateQuery(n);if(!a.isValid)return i.send(400,e.i(`Query validation failed: ${a.errors.join(`, `)}`,400));let o=n.measures?.[0]||n.dimensions?.[0];if(!o)return i.send(400,e.i(`No measures or dimensions specified`,400));let s=o.split(`.`)[0],c=await t.generateSQL(s,n,r);return i.send(200,e.o(n,c))}function r(n){try{return n.send(200,e.a(t.getMetadata()))}catch(t){return console.error(`Metadata error:`,t),n.send(500,e.i(t instanceof Error?t.message:`Failed to fetch metadata`,500))}}async function i(t,r){try{let e=await t.getBody();return await n(e?.query||e,await c(r,e=>t.getHeader(e)),t)}catch(n){return console.error(`SQL generation error:`,l(n)),t.send(500,e.i(n instanceof Error?n.message:`SQL generation failed`,500))}}async function a(t,r){try{let i=t.getQueryParam(`query`);if(!i)return t.send(400,e.i(`Query parameter is required`,400));let a;try{a=JSON.parse(i)}catch{return t.send(400,e.i(`Invalid JSON in query parameter`,400))}let o=await c(r,e=>t.getHeader(e));return await n(a,o,t)}catch(n){return console.error(`SQL generation error:`,l(n)),t.send(500,e.i(n instanceof Error?n.message:`SQL generation failed`,500))}}async function o(n,r){try{let i=await n.getBody(),a=await e.u(i?.query||i,await c(r,e=>n.getHeader(e)),t);return n.send(200,a)}catch(e){return console.error(`Dry-run error:`,e),n.send(400,{error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1})}}async function s(n,r){try{let i=n.getQueryParam(`query`);if(!i)return n.send(400,{error:`Query parameter is required`,valid:!1});let a=await e.u(JSON.parse(i),await c(r,e=>n.getHeader(e)),t);return n.send(200,a)}catch(e){return console.error(`Dry-run error:`,e),n.send(400,{error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1})}}async function u(n,r){try{let i=(await n.getBody())?.queries;if(!i||!Array.isArray(i))return n.send(400,e.i(`Request body must contain a "queries" array`,400));if(i.length===0)return n.send(400,e.i(`Queries array cannot be empty`,400));let a=await e.l(i,await c(r,e=>n.getHeader(e)),t,{skipCache:n.getHeader(`x-cache-control`)===`no-cache`});return n.send(200,a)}catch(t){return console.error(`Batch execution error:`,t),n.send(500,e.i(t instanceof Error?t.message:`Batch execution failed`,500))}}async function d(e,n){try{let r=await e.getBody(),i=r?.query||r,a=r?.options||{},o=await c(n,t=>e.getHeader(t)),s=t.validateQuery(i);if(!s.isValid)return e.send(400,{error:`Query validation failed: ${s.errors.join(`, `)}`});let l=await t.explainQuery(i,o,a);return e.send(200,l)}catch(t){return console.error(`Explain error:`,t),e.send(500,{error:t instanceof Error?t.message:`Explain query failed`})}}return{handleMetaGet:r,handleSqlGet:a,handleSqlPost:i,handleDryRunGet:s,handleDryRunPost:o,handleBatchPost:u,handleExplainPost:d}}function d(e,n){let r=e?.code??-32603,i=e?.data,a=e.message||`MCP request failed`;return t.i(n??null,r,a,i)}function f(e,n){let r=!!n.app,i=typeof n.app==`object`?n.app:void 0,a;function o(){return a||={resources:t.o(e,n.resources),prompts:t.b(n.prompts),instructions:t.y(n.instructions)},a}async function s(a,s){if(n.resourceMetadataUrl&&!t.u(a.getHeader(`authorization`)))return a.setHeader(`WWW-Authenticate`,t.c(n.resourceMetadataUrl)),a.send(401,{error:`Bearer token required`});let u=t.C(a.getHeader(`origin`),t.g(n));if(!u.valid)return a.send(403,t.i(null,-32600,u.reason));let f=a.getHeader(`accept`);if(!t.S(f))return a.send(400,t.i(null,-32600,`Accept header must include both application/json and text/event-stream`));let p=t.h({"mcp-protocol-version":a.getHeader(`mcp-protocol-version`)});if(!p.ok)return a.send(426,{error:`Unsupported MCP protocol version`,supported:p.supported});let m=t._(await a.getBody());if(!m)return a.send(400,t.i(null,-32600,`Invalid JSON-RPC 2.0 request`));let h=t.w(f),g=m.method===`initialize`,{resources:_,prompts:v,instructions:y}=o();try{let o=await t.l(m.method,m.params,{semanticLayer:e,extractSecurityContext:()=>c(s,e=>a.getHeader(e)),rawRequest:void 0,rawResponse:void 0,negotiatedProtocol:p.negotiated,resources:_,prompts:v,instructions:y,appEnabled:r,appConfig:i,serverName:n.serverName});if(t.m(m))return a.sendEmpty(202);let l=g&&o&&typeof o==`object`&&`sessionId`in o?o.sessionId:void 0;l&&a.setHeader(t.r,l);let u=t.a(m.id??null,o);if(h){let e=t.v();return a.sendSse(200,`id: ${e}\n\n`+t.x(u,e))}return a.send(200,u)}catch(e){if(t.m(m))return console.error(`MCP notification processing error:`,l(e)),a.sendEmpty(202);console.error(`MCP RPC error:`,l(e));let n=d(e,m.id);if(h){let e=t.v();return a.sendSse(200,`id: ${e}\n\n`+t.x(n,e))}return a.send(200,n)}}return{handleMcpPost:s}}function p(t){let{semanticLayer:n,onError:r,mcp:i={}}=t,a=u(n),{handleMcpPost:o}=f(n,i);function s(t,n){return r(t),n.send(500,e.i(t instanceof Error?t.message:`Query execution failed`,500))}async function l(t,r,i){let a=await c(i,e=>r.getHeader(e)),o=n.validateQuery(t);if(!o.isValid)return r.send(400,e.i(`Query validation failed: ${o.errors.join(`, `)}`,400));let s=r.getHeader(`x-cache-control`)===`no-cache`,l=await n.executeMultiCubeQuery(t,a,{skipCache:s});return r.send(200,e.r(t,l,n))}async function d(e,t){try{let n=await e.getBody();return await l(n?.query||n,e,t)}catch(t){return s(t,e)}}async function p(t,n){try{let r=t.getQueryParam(`query`);if(!r)return t.send(400,e.i(`Query parameter is required`,400));let i;try{i=JSON.parse(r)}catch{return t.send(400,e.i(`Invalid JSON in query parameter`,400))}return await l(i,t,n)}catch(e){return s(e,t)}}return{handleLoadGet:p,handleLoadPost:d,handleMcpPost:o,...a}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
@@ -1,40 +1,40 @@
1
- import { a as e, i as t, l as n, o as r, r as i, u as a } from "./utils-BPWZsX7k.js";
2
- import { C as o, S as s, _ as c, a as l, b as u, c as d, g as f, h as p, i as m, l as h, m as g, o as _, r as v, u as y, v as b, x, y as S } from "./mcp-transport-Bw_zqky2.js";
1
+ import { a as e, i as t, l as n, o as r, r as i, u as a } from "./utils-U7gV5wQL.js";
2
+ import { C as o, S as s, _ as c, a as l, b as u, c as d, g as f, h as p, i as m, l as h, m as g, o as _, r as v, u as y, v as b, w as x, x as S, y as C } from "./mcp-transport-l8DhKzR5.js";
3
3
  //#region src/adapters/locale.ts
4
- var C = "x-dc-locale";
5
- function w(e) {
4
+ var w = "x-dc-locale";
5
+ function T(e) {
6
6
  if (!e) return;
7
7
  let t = (Array.isArray(e) ? e[0] : e).split(",")[0]?.trim();
8
8
  if (t && /^[A-Za-z0-9-]{2,35}$/.test(t)) return t;
9
9
  }
10
- function T(e) {
11
- return w(e(C));
10
+ function E(e) {
11
+ return T(e(w));
12
12
  }
13
- function E(e, t) {
13
+ function D(e, t) {
14
14
  let n = e && typeof e == "object" ? e : {}, r = typeof n.locale == "string" ? n.locale : void 0, i = t ?? r ?? "en-GB";
15
15
  return r === i ? n : {
16
16
  ...n,
17
17
  locale: i
18
18
  };
19
19
  }
20
- function D(e) {
20
+ function O(e) {
21
21
  let t = Array.isArray(e) ? [...e] : (e ?? "").split(",").map((e) => e.trim()).filter(Boolean);
22
22
  return t.some((e) => e.toLowerCase() === "x-dc-locale") || t.push("X-DC-Locale"), t;
23
23
  }
24
24
  //#endregion
25
25
  //#region src/adapters/core/security-context.ts
26
- function O(e, t) {
27
- return E(e, T(t));
26
+ function k(e, t) {
27
+ return D(e, E(t));
28
28
  }
29
- async function k(e, t) {
30
- return O(await e(), t);
29
+ async function A(e, t) {
30
+ return k(await e(), t);
31
31
  }
32
- function A(e) {
32
+ function j(e) {
33
33
  return String(e).replace(/\n|\r/g, "");
34
34
  }
35
35
  //#endregion
36
36
  //#region src/adapters/core/rest-handlers.ts
37
- function j(i) {
37
+ function M(i) {
38
38
  async function o(e, n, a) {
39
39
  let o = i.validateQuery(e);
40
40
  if (!o.isValid) return a.send(400, t(`Query validation failed: ${o.errors.join(", ")}`, 400));
@@ -53,9 +53,9 @@ function j(i) {
53
53
  async function c(e, n) {
54
54
  try {
55
55
  let t = await e.getBody();
56
- return await o(t?.query || t, await k(n, (t) => e.getHeader(t)), e);
56
+ return await o(t?.query || t, await A(n, (t) => e.getHeader(t)), e);
57
57
  } catch (n) {
58
- return console.error("SQL generation error:", A(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
58
+ return console.error("SQL generation error:", j(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
59
59
  }
60
60
  }
61
61
  async function l(e, n) {
@@ -68,15 +68,15 @@ function j(i) {
68
68
  } catch {
69
69
  return e.send(400, t("Invalid JSON in query parameter", 400));
70
70
  }
71
- let a = await k(n, (t) => e.getHeader(t));
71
+ let a = await A(n, (t) => e.getHeader(t));
72
72
  return await o(i, a, e);
73
73
  } catch (n) {
74
- return console.error("SQL generation error:", A(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
74
+ return console.error("SQL generation error:", j(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
75
75
  }
76
76
  }
77
77
  async function u(e, t) {
78
78
  try {
79
- let n = await e.getBody(), r = await a(n?.query || n, await k(t, (t) => e.getHeader(t)), i);
79
+ let n = await e.getBody(), r = await a(n?.query || n, await A(t, (t) => e.getHeader(t)), i);
80
80
  return e.send(200, r);
81
81
  } catch (t) {
82
82
  return console.error("Dry-run error:", t), e.send(400, {
@@ -92,7 +92,7 @@ function j(i) {
92
92
  error: "Query parameter is required",
93
93
  valid: !1
94
94
  });
95
- let r = await a(JSON.parse(n), await k(t, (t) => e.getHeader(t)), i);
95
+ let r = await a(JSON.parse(n), await A(t, (t) => e.getHeader(t)), i);
96
96
  return e.send(200, r);
97
97
  } catch (t) {
98
98
  return console.error("Dry-run error:", t), e.send(400, {
@@ -106,7 +106,7 @@ function j(i) {
106
106
  let a = (await e.getBody())?.queries;
107
107
  if (!a || !Array.isArray(a)) return e.send(400, t("Request body must contain a \"queries\" array", 400));
108
108
  if (a.length === 0) return e.send(400, t("Queries array cannot be empty", 400));
109
- let o = await n(a, await k(r, (t) => e.getHeader(t)), i, { skipCache: e.getHeader("x-cache-control") === "no-cache" });
109
+ let o = await n(a, await A(r, (t) => e.getHeader(t)), i, { skipCache: e.getHeader("x-cache-control") === "no-cache" });
110
110
  return e.send(200, o);
111
111
  } catch (n) {
112
112
  return console.error("Batch execution error:", n), e.send(500, t(n instanceof Error ? n.message : "Batch execution failed", 500));
@@ -114,7 +114,7 @@ function j(i) {
114
114
  }
115
115
  async function p(e, t) {
116
116
  try {
117
- let n = await e.getBody(), r = n?.query || n, a = n?.options || {}, o = await k(t, (t) => e.getHeader(t)), s = i.validateQuery(r);
117
+ let n = await e.getBody(), r = n?.query || n, a = n?.options || {}, o = await A(t, (t) => e.getHeader(t)), s = i.validateQuery(r);
118
118
  if (!s.isValid) return e.send(400, { error: `Query validation failed: ${s.errors.join(", ")}` });
119
119
  let c = await i.explainQuery(r, o, a);
120
120
  return e.send(200, c);
@@ -134,78 +134,78 @@ function j(i) {
134
134
  }
135
135
  //#endregion
136
136
  //#region src/adapters/core/mcp-handler.ts
137
- function M(e, t) {
137
+ function N(e, t) {
138
138
  let n = e?.code ?? -32603, r = e?.data, i = e.message || "MCP request failed";
139
139
  return m(t ?? null, n, i, r);
140
140
  }
141
- function N(e, t) {
141
+ function P(e, t) {
142
142
  let n = !!t.app, r = typeof t.app == "object" ? t.app : void 0, i;
143
143
  function a() {
144
144
  return i ||= {
145
145
  resources: _(e, t.resources),
146
- prompts: S(t.prompts),
147
- instructions: b(t.instructions)
146
+ prompts: u(t.prompts),
147
+ instructions: C(t.instructions)
148
148
  }, i;
149
149
  }
150
- async function C(i, _) {
150
+ async function w(i, u) {
151
151
  if (t.resourceMetadataUrl && !y(i.getHeader("authorization"))) return i.setHeader("WWW-Authenticate", d(t.resourceMetadataUrl)), i.send(401, { error: "Bearer token required" });
152
- let b = s(i.getHeader("origin"), t.allowedOrigins ? { allowedOrigins: t.allowedOrigins } : {});
153
- if (!b.valid) return i.send(403, m(null, -32600, b.reason));
154
- let S = i.getHeader("accept");
155
- if (!x(S)) return i.send(400, m(null, -32600, "Accept header must include both application/json and text/event-stream"));
156
- let C = p({ "mcp-protocol-version": i.getHeader("mcp-protocol-version") });
157
- if (!C.ok) return i.send(426, {
152
+ let _ = o(i.getHeader("origin"), f(t));
153
+ if (!_.valid) return i.send(403, m(null, -32600, _.reason));
154
+ let C = i.getHeader("accept");
155
+ if (!s(C)) return i.send(400, m(null, -32600, "Accept header must include both application/json and text/event-stream"));
156
+ let w = p({ "mcp-protocol-version": i.getHeader("mcp-protocol-version") });
157
+ if (!w.ok) return i.send(426, {
158
158
  error: "Unsupported MCP protocol version",
159
- supported: C.supported
159
+ supported: w.supported
160
160
  });
161
- let w = f(await i.getBody());
162
- if (!w) return i.send(400, m(null, -32600, "Invalid JSON-RPC 2.0 request"));
163
- let T = o(S), E = w.method === "initialize", { resources: D, prompts: O, instructions: j } = a();
161
+ let T = c(await i.getBody());
162
+ if (!T) return i.send(400, m(null, -32600, "Invalid JSON-RPC 2.0 request"));
163
+ let E = x(C), D = T.method === "initialize", { resources: O, prompts: k, instructions: M } = a();
164
164
  try {
165
- let a = await h(w.method, w.params, {
165
+ let a = await h(T.method, T.params, {
166
166
  semanticLayer: e,
167
- extractSecurityContext: () => k(_, (e) => i.getHeader(e)),
167
+ extractSecurityContext: () => A(u, (e) => i.getHeader(e)),
168
168
  rawRequest: void 0,
169
169
  rawResponse: void 0,
170
- negotiatedProtocol: C.negotiated,
171
- resources: D,
172
- prompts: O,
173
- instructions: j,
170
+ negotiatedProtocol: w.negotiated,
171
+ resources: O,
172
+ prompts: k,
173
+ instructions: M,
174
174
  appEnabled: n,
175
175
  appConfig: r,
176
176
  serverName: t.serverName
177
177
  });
178
- if (g(w)) return i.sendEmpty(202);
179
- let o = E && a && typeof a == "object" && "sessionId" in a ? a.sessionId : void 0;
178
+ if (g(T)) return i.sendEmpty(202);
179
+ let o = D && a && typeof a == "object" && "sessionId" in a ? a.sessionId : void 0;
180
180
  o && i.setHeader(v, o);
181
- let s = l(w.id ?? null, a);
182
- if (T) {
183
- let e = c();
184
- return i.sendSse(200, `id: ${e}\n\n` + u(s, e));
181
+ let s = l(T.id ?? null, a);
182
+ if (E) {
183
+ let e = b();
184
+ return i.sendSse(200, `id: ${e}\n\n` + S(s, e));
185
185
  }
186
186
  return i.send(200, s);
187
187
  } catch (e) {
188
- if (g(w)) return console.error("MCP notification processing error:", A(e)), i.sendEmpty(202);
189
- console.error("MCP RPC error:", A(e));
190
- let t = M(e, w.id);
191
- if (T) {
192
- let e = c();
193
- return i.sendSse(200, `id: ${e}\n\n` + u(t, e));
188
+ if (g(T)) return console.error("MCP notification processing error:", j(e)), i.sendEmpty(202);
189
+ console.error("MCP RPC error:", j(e));
190
+ let t = N(e, T.id);
191
+ if (E) {
192
+ let e = b();
193
+ return i.sendSse(200, `id: ${e}\n\n` + S(t, e));
194
194
  }
195
195
  return i.send(200, t);
196
196
  }
197
197
  }
198
- return { handleMcpPost: C };
198
+ return { handleMcpPost: w };
199
199
  }
200
200
  //#endregion
201
201
  //#region src/adapters/core/cube-http-handler.ts
202
- function P(e) {
203
- let { semanticLayer: n, onError: r, mcp: a = {} } = e, o = j(n), { handleMcpPost: s } = N(n, a);
202
+ function F(e) {
203
+ let { semanticLayer: n, onError: r, mcp: a = {} } = e, o = M(n), { handleMcpPost: s } = P(n, a);
204
204
  function c(e, n) {
205
205
  return r(e), n.send(500, t(e instanceof Error ? e.message : "Query execution failed", 500));
206
206
  }
207
207
  async function l(e, r, a) {
208
- let o = await k(a, (e) => r.getHeader(e)), s = n.validateQuery(e);
208
+ let o = await A(a, (e) => r.getHeader(e)), s = n.validateQuery(e);
209
209
  if (!s.isValid) return r.send(400, t(`Query validation failed: ${s.errors.join(", ")}`, 400));
210
210
  let c = r.getHeader("x-cache-control") === "no-cache", l = await n.executeMultiCubeQuery(e, o, { skipCache: c });
211
211
  return r.send(200, i(e, l, n));
@@ -241,4 +241,4 @@ function P(e) {
241
241
  };
242
242
  }
243
243
  //#endregion
244
- export { T as a, D as i, k as n, E as o, O as r, P as t };
244
+ export { E as a, O as i, A as n, D as o, k as r, F as t };
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../compiler-ChGO4ZLU.cjs"),n=require("../mcp-transport-CNIPoe1i.cjs"),r=require("../core-F1pCQPde.cjs");let i=require("express");i=e.k(i,1);let a=require("cors");a=e.k(a,1);function o(e,t){return{getHeader:t=>e.get(t),getBody:async()=>e.body,getQueryParam:t=>e.query[t],send:(e,n)=>t.status(e).json(n),setHeader:(e,n)=>{t.setHeader(e,n)},sendEmpty:e=>t.status(e).end(),sendSse:(e,n)=>(t.status(e),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n),t.end())}}function s(s){let{cubes:c,drizzle:l,schema:u,extractSecurityContext:d,engineType:f,cors:p,basePath:m=`/cubejs-api/v1`,jsonLimit:h=`10mb`,cache:g,mcp:_={enabled:!0},agent:v}=s;if(!c||c.length===0)throw Error(`At least one cube must be provided in the cubes array`);let y=(0,i.Router)();if(p){let e={...p,allowedHeaders:r.i(p.allowedHeaders)};y.use((0,a.default)(e))}y.use(i.default.json({limit:h})),y.use(i.default.urlencoded({extended:!0,limit:h}));let b=new t.t({drizzle:l,schema:u,engineType:f,cache:g,rlsSetup:s.rlsSetup});c.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>console.error(`Query execution error:`,e),mcp:_}),S=(e,t)=>()=>d(e,t);if(y.post(`${m}/load`,async(e,t)=>{await x.handleLoadPost(o(e,t),S(e,t))}),y.get(`${m}/load`,async(e,t)=>{await x.handleLoadGet(o(e,t),S(e,t))}),y.post(`${m}/batch`,async(e,t)=>{await x.handleBatchPost(o(e,t),S(e,t))}),y.get(`${m}/meta`,(e,t)=>{x.handleMetaGet(o(e,t))}),y.post(`${m}/sql`,async(e,t)=>{await x.handleSqlPost(o(e,t),S(e,t))}),y.get(`${m}/sql`,async(e,t)=>{await x.handleSqlGet(o(e,t),S(e,t))}),y.post(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunPost(o(e,t),S(e,t))}),y.get(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunGet(o(e,t),S(e,t))}),y.post(`${m}/explain`,async(e,t)=>{await x.handleExplainPost(o(e,t),S(e,t))}),v&&y.post(`${m}/agent/chat`,async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DRZb2ip6.cjs")),{message:i,sessionId:a,history:o}=e.body;if(!i||typeof i!=`string`)return t.status(400).json({error:`message is required and must be a string`});let s=(v.apiKey||``).trim();if(v.allowClientApiKey){let t=e.headers[`x-agent-api-key`];t&&(s=t.trim())}if(!s)return t.status(401).json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let c=v.allowClientApiKey?e.headers[`x-agent-provider`]:void 0,l=v.allowClientApiKey?e.headers[`x-agent-model`]:void 0,u=v.allowClientApiKey?e.headers[`x-agent-provider-endpoint`]:void 0,f=r.r(await d(e,t),t=>e.get(t)),p=v.buildSystemContext?.(f);t.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:i,sessionId:a,history:o,semanticLayer:b,securityContext:f,agentConfig:v,apiKey:s,systemContext:p,providerOverride:c,modelOverride:l,baseURLOverride:u});for await(let n of e)t.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.end()}}catch(e){console.error(`Agent chat error:`,e),t.headersSent||t.status(500).json({error:e instanceof Error?e.message:`Agent chat failed`})}}),_.enabled!==!1){let e=_.basePath??`/mcp`;y.post(`${e}`,async(e,t)=>{await x.handleMcpPost(o(e,t),S(e,t))}),y.get(`${e}`,async(e,t)=>{if(_.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`});let r=n._();t.status(200),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3));let i=setInterval(()=>{t.write(`: keep-alive
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-CBR-9AMD.cjs"),t=require("../compiler-D0v5KJhv.cjs"),n=require("../mcp-transport-BuU5CrKL.cjs"),r=require("../core-CVqTwOR3.cjs");let i=require("express");i=e.k(i,1);let a=require("cors");a=e.k(a,1);function o(e,t){return{getHeader:t=>e.get(t),getBody:async()=>e.body,getQueryParam:t=>e.query[t],send:(e,n)=>t.status(e).json(n),setHeader:(e,n)=>{t.setHeader(e,n)},sendEmpty:e=>t.status(e).end(),sendSse:(e,n)=>(t.status(e),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n),t.end())}}function s(s){let{cubes:c,drizzle:l,schema:u,extractSecurityContext:d,engineType:f,cors:p,basePath:m=`/cubejs-api/v1`,jsonLimit:h=`10mb`,cache:g,mcp:_={enabled:!0},agent:v}=s;if(!c||c.length===0)throw Error(`At least one cube must be provided in the cubes array`);let y=(0,i.Router)();if(p){let e={...p,allowedHeaders:r.i(p.allowedHeaders)};y.use((0,a.default)(e))}y.use(i.default.json({limit:h})),y.use(i.default.urlencoded({extended:!0,limit:h}));let b=new t.t({drizzle:l,schema:u,engineType:f,cache:g,rlsSetup:s.rlsSetup});c.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>console.error(`Query execution error:`,e),mcp:_}),S=(e,t)=>()=>d(e,t);if(y.post(`${m}/load`,async(e,t)=>{await x.handleLoadPost(o(e,t),S(e,t))}),y.get(`${m}/load`,async(e,t)=>{await x.handleLoadGet(o(e,t),S(e,t))}),y.post(`${m}/batch`,async(e,t)=>{await x.handleBatchPost(o(e,t),S(e,t))}),y.get(`${m}/meta`,(e,t)=>{x.handleMetaGet(o(e,t))}),y.post(`${m}/sql`,async(e,t)=>{await x.handleSqlPost(o(e,t),S(e,t))}),y.get(`${m}/sql`,async(e,t)=>{await x.handleSqlGet(o(e,t),S(e,t))}),y.post(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunPost(o(e,t),S(e,t))}),y.get(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunGet(o(e,t),S(e,t))}),y.post(`${m}/explain`,async(e,t)=>{await x.handleExplainPost(o(e,t),S(e,t))}),v&&y.post(`${m}/agent/chat`,async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DyIyrFFp.cjs")),{message:i,sessionId:a,history:o}=e.body;if(!i||typeof i!=`string`)return t.status(400).json({error:`message is required and must be a string`});let s=(v.apiKey||``).trim();if(v.allowClientApiKey){let t=e.headers[`x-agent-api-key`];t&&(s=t.trim())}if(!s)return t.status(401).json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let c=v.allowClientApiKey?e.headers[`x-agent-provider`]:void 0,l=v.allowClientApiKey?e.headers[`x-agent-model`]:void 0,u=v.allowClientApiKey?e.headers[`x-agent-provider-endpoint`]:void 0,f=r.r(await d(e,t),t=>e.get(t)),p=v.buildSystemContext?.(f);t.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:i,sessionId:a,history:o,semanticLayer:b,securityContext:f,agentConfig:v,apiKey:s,systemContext:p,providerOverride:c,modelOverride:l,baseURLOverride:u});for await(let n of e)t.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.end()}}catch(e){console.error(`Agent chat error:`,e),t.headersSent||t.status(500).json({error:e instanceof Error?e.message:`Agent chat failed`})}}),_.enabled!==!1){let e=_.basePath??`/mcp`;y.post(`${e}`,async(e,t)=>{await x.handleMcpPost(o(e,t),S(e,t))}),y.get(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(_));if(!r.valid)return t.status(403).json({error:r.reason});if(_.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`});let i=n.v();t.status(200),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},i,15e3));let a=setInterval(()=>{t.write(`: keep-alive
2
2
 
3
- `)},15e3);e.on(`close`,()=>{clearInterval(i)})}),y.delete(`${e}`,(e,t)=>_.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`})):t.status(405).json({error:`Session termination not supported`}))}return y.use((t,n,r,i)=>{console.error(`Express adapter error:`,t),r.headersSent||r.status(500).json(e.i(t,500))}),y}function c(e,t){let n=s(t);return e.use(`/`,n),e}function l(e){return c((0,i.default)(),e)}exports.createCubeApp=l,exports.createCubeRouter=s,exports.mountCubeRoutes=c;
3
+ `)},15e3);e.on(`close`,()=>{clearInterval(a)})}),y.delete(`${e}`,(e,t)=>{let r=n.C(e.headers.origin,n.g(_));return r.valid?_.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`})):t.status(405).json({error:`Session termination not supported`}):t.status(403).json({error:r.reason})})}return y.use((t,n,r,i)=>{console.error(`Express adapter error:`,t),r.headersSent||r.status(500).json(e.i(t,500))}),y}function c(e,t){let n=s(t);return e.use(`/`,n),e}function l(e){return c((0,i.default)(),e)}exports.createCubeApp=l,exports.createCubeRouter=s,exports.mountCubeRoutes=c;
@@ -1,11 +1,11 @@
1
- import { i as e } from "../utils-BPWZsX7k.js";
2
- import { t } from "../compiler-LKTN9PTt.js";
3
- import { _ as n, b as r, c as i, u as a } from "../mcp-transport-Bw_zqky2.js";
4
- import { i as o, r as s, t as c } from "../core-Bbchr0ui.js";
5
- import l, { Router as u } from "express";
6
- import d from "cors";
1
+ import { i as e } from "../utils-U7gV5wQL.js";
2
+ import { t } from "../compiler-ZruQ85ff.js";
3
+ import { C as n, c as r, g as i, u as a, v as o, x as s } from "../mcp-transport-l8DhKzR5.js";
4
+ import { i as c, r as l, t as u } from "../core-DoSUiMmv.js";
5
+ import d, { Router as f } from "express";
6
+ import p from "cors";
7
7
  //#region src/adapters/express/index.ts
8
- function f(e, t) {
8
+ function m(e, t) {
9
9
  return {
10
10
  getHeader: (t) => e.get(t),
11
11
  getBody: async () => e.body,
@@ -18,65 +18,65 @@ function f(e, t) {
18
18
  sendSse: (e, n) => (t.status(e), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(n), t.end())
19
19
  };
20
20
  }
21
- function p(p) {
22
- let { cubes: m, drizzle: h, schema: g, extractSecurityContext: _, engineType: v, cors: y, basePath: b = "/cubejs-api/v1", jsonLimit: x = "10mb", cache: S, mcp: C = { enabled: !0 }, agent: w } = p;
23
- if (!m || m.length === 0) throw Error("At least one cube must be provided in the cubes array");
24
- let T = u();
25
- if (y) {
21
+ function h(h) {
22
+ let { cubes: g, drizzle: _, schema: v, extractSecurityContext: y, engineType: b, cors: x, basePath: S = "/cubejs-api/v1", jsonLimit: C = "10mb", cache: w, mcp: T = { enabled: !0 }, agent: E } = h;
23
+ if (!g || g.length === 0) throw Error("At least one cube must be provided in the cubes array");
24
+ let D = f();
25
+ if (x) {
26
26
  let e = {
27
- ...y,
28
- allowedHeaders: o(y.allowedHeaders)
27
+ ...x,
28
+ allowedHeaders: c(x.allowedHeaders)
29
29
  };
30
- T.use(d(e));
30
+ D.use(p(e));
31
31
  }
32
- T.use(l.json({ limit: x })), T.use(l.urlencoded({
32
+ D.use(d.json({ limit: C })), D.use(d.urlencoded({
33
33
  extended: !0,
34
- limit: x
34
+ limit: C
35
35
  }));
36
- let E = new t({
37
- drizzle: h,
38
- schema: g,
39
- engineType: v,
40
- cache: S,
41
- rlsSetup: p.rlsSetup
36
+ let O = new t({
37
+ drizzle: _,
38
+ schema: v,
39
+ engineType: b,
40
+ cache: w,
41
+ rlsSetup: h.rlsSetup
42
42
  });
43
- m.forEach((e) => {
44
- E.registerCube(e);
43
+ g.forEach((e) => {
44
+ O.registerCube(e);
45
45
  });
46
- let D = c({
47
- semanticLayer: E,
46
+ let k = u({
47
+ semanticLayer: O,
48
48
  onError: (e) => console.error("Query execution error:", e),
49
- mcp: C
50
- }), O = (e, t) => () => _(e, t);
51
- if (T.post(`${b}/load`, async (e, t) => {
52
- await D.handleLoadPost(f(e, t), O(e, t));
53
- }), T.get(`${b}/load`, async (e, t) => {
54
- await D.handleLoadGet(f(e, t), O(e, t));
55
- }), T.post(`${b}/batch`, async (e, t) => {
56
- await D.handleBatchPost(f(e, t), O(e, t));
57
- }), T.get(`${b}/meta`, (e, t) => {
58
- D.handleMetaGet(f(e, t));
59
- }), T.post(`${b}/sql`, async (e, t) => {
60
- await D.handleSqlPost(f(e, t), O(e, t));
61
- }), T.get(`${b}/sql`, async (e, t) => {
62
- await D.handleSqlGet(f(e, t), O(e, t));
63
- }), T.post(`${b}/dry-run`, async (e, t) => {
64
- await D.handleDryRunPost(f(e, t), O(e, t));
65
- }), T.get(`${b}/dry-run`, async (e, t) => {
66
- await D.handleDryRunGet(f(e, t), O(e, t));
67
- }), T.post(`${b}/explain`, async (e, t) => {
68
- await D.handleExplainPost(f(e, t), O(e, t));
69
- }), w && T.post(`${b}/agent/chat`, async (e, t) => {
49
+ mcp: T
50
+ }), A = (e, t) => () => y(e, t);
51
+ if (D.post(`${S}/load`, async (e, t) => {
52
+ await k.handleLoadPost(m(e, t), A(e, t));
53
+ }), D.get(`${S}/load`, async (e, t) => {
54
+ await k.handleLoadGet(m(e, t), A(e, t));
55
+ }), D.post(`${S}/batch`, async (e, t) => {
56
+ await k.handleBatchPost(m(e, t), A(e, t));
57
+ }), D.get(`${S}/meta`, (e, t) => {
58
+ k.handleMetaGet(m(e, t));
59
+ }), D.post(`${S}/sql`, async (e, t) => {
60
+ await k.handleSqlPost(m(e, t), A(e, t));
61
+ }), D.get(`${S}/sql`, async (e, t) => {
62
+ await k.handleSqlGet(m(e, t), A(e, t));
63
+ }), D.post(`${S}/dry-run`, async (e, t) => {
64
+ await k.handleDryRunPost(m(e, t), A(e, t));
65
+ }), D.get(`${S}/dry-run`, async (e, t) => {
66
+ await k.handleDryRunGet(m(e, t), A(e, t));
67
+ }), D.post(`${S}/explain`, async (e, t) => {
68
+ await k.handleExplainPost(m(e, t), A(e, t));
69
+ }), E && D.post(`${S}/agent/chat`, async (e, t) => {
70
70
  try {
71
- let { handleAgentChat: n } = await import("../handler-u8FyzPBT.js"), { message: r, sessionId: i, history: a } = e.body;
71
+ let { handleAgentChat: n } = await import("../handler-j74EJDdo.js"), { message: r, sessionId: i, history: a } = e.body;
72
72
  if (!r || typeof r != "string") return t.status(400).json({ error: "message is required and must be a string" });
73
- let o = (w.apiKey || "").trim();
74
- if (w.allowClientApiKey) {
73
+ let o = (E.apiKey || "").trim();
74
+ if (E.allowClientApiKey) {
75
75
  let t = e.headers["x-agent-api-key"];
76
76
  t && (o = t.trim());
77
77
  }
78
78
  if (!o) return t.status(401).json({ error: "No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header." });
79
- let c = w.allowClientApiKey ? e.headers["x-agent-provider"] : void 0, l = w.allowClientApiKey ? e.headers["x-agent-model"] : void 0, u = w.allowClientApiKey ? e.headers["x-agent-provider-endpoint"] : void 0, d = s(await _(e, t), (t) => e.get(t)), f = w.buildSystemContext?.(d);
79
+ let s = E.allowClientApiKey ? e.headers["x-agent-provider"] : void 0, c = E.allowClientApiKey ? e.headers["x-agent-model"] : void 0, u = E.allowClientApiKey ? e.headers["x-agent-provider-endpoint"] : void 0, d = l(await y(e, t), (t) => e.get(t)), f = E.buildSystemContext?.(d);
80
80
  t.writeHead(200, {
81
81
  "Content-Type": "text/event-stream",
82
82
  "Cache-Control": "no-cache",
@@ -87,13 +87,13 @@ function p(p) {
87
87
  message: r,
88
88
  sessionId: i,
89
89
  history: a,
90
- semanticLayer: E,
90
+ semanticLayer: O,
91
91
  securityContext: d,
92
- agentConfig: w,
92
+ agentConfig: E,
93
93
  apiKey: o,
94
94
  systemContext: f,
95
- providerOverride: c,
96
- modelOverride: l,
95
+ providerOverride: s,
96
+ modelOverride: c,
97
97
  baseURLOverride: u
98
98
  });
99
99
  for await (let n of e) t.write(`data: ${JSON.stringify(n)}\n\n`);
@@ -109,36 +109,41 @@ function p(p) {
109
109
  } catch (e) {
110
110
  console.error("Agent chat error:", e), t.headersSent || t.status(500).json({ error: e instanceof Error ? e.message : "Agent chat failed" });
111
111
  }
112
- }), C.enabled !== !1) {
113
- let e = C.basePath ?? "/mcp";
114
- T.post(`${e}`, async (e, t) => {
115
- await D.handleMcpPost(f(e, t), O(e, t));
116
- }), T.get(`${e}`, async (e, t) => {
117
- if (C.resourceMetadataUrl && !a(e.headers.authorization)) return t.setHeader("WWW-Authenticate", i(C.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" });
118
- let o = n();
119
- t.status(200), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(r({
112
+ }), T.enabled !== !1) {
113
+ let e = T.basePath ?? "/mcp";
114
+ D.post(`${e}`, async (e, t) => {
115
+ await k.handleMcpPost(m(e, t), A(e, t));
116
+ }), D.get(`${e}`, async (e, t) => {
117
+ let c = n(e.headers.origin, i(T));
118
+ if (!c.valid) return t.status(403).json({ error: c.reason });
119
+ if (T.resourceMetadataUrl && !a(e.headers.authorization)) return t.setHeader("WWW-Authenticate", r(T.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" });
120
+ let l = o();
121
+ t.status(200), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(s({
120
122
  jsonrpc: "2.0",
121
123
  method: "mcp/ready",
122
124
  params: { protocol: "streamable-http" }
123
- }, o, 15e3));
124
- let s = setInterval(() => {
125
+ }, l, 15e3));
126
+ let u = setInterval(() => {
125
127
  t.write(": keep-alive\n\n");
126
128
  }, 15e3);
127
129
  e.on("close", () => {
128
- clearInterval(s);
130
+ clearInterval(u);
129
131
  });
130
- }), T.delete(`${e}`, (e, t) => C.resourceMetadataUrl && !a(e.headers.authorization) ? (t.setHeader("WWW-Authenticate", i(C.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" })) : t.status(405).json({ error: "Session termination not supported" }));
132
+ }), D.delete(`${e}`, (e, t) => {
133
+ let o = n(e.headers.origin, i(T));
134
+ return o.valid ? T.resourceMetadataUrl && !a(e.headers.authorization) ? (t.setHeader("WWW-Authenticate", r(T.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" })) : t.status(405).json({ error: "Session termination not supported" }) : t.status(403).json({ error: o.reason });
135
+ });
131
136
  }
132
- return T.use((t, n, r, i) => {
137
+ return D.use((t, n, r, i) => {
133
138
  console.error("Express adapter error:", t), r.headersSent || r.status(500).json(e(t, 500));
134
- }), T;
139
+ }), D;
135
140
  }
136
- function m(e, t) {
137
- let n = p(t);
141
+ function g(e, t) {
142
+ let n = h(t);
138
143
  return e.use("/", n), e;
139
144
  }
140
- function h(e) {
141
- return m(l(), e);
145
+ function _(e) {
146
+ return g(d(), e);
142
147
  }
143
148
  //#endregion
144
- export { h as createCubeApp, p as createCubeRouter, m as mountCubeRoutes };
149
+ export { _ as createCubeApp, h as createCubeRouter, g as mountCubeRoutes };
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../compiler-ChGO4ZLU.cjs"),n=require("../mcp-transport-CNIPoe1i.cjs"),r=require("../core-F1pCQPde.cjs");function i(e,t){let n=e.headers[t.toLowerCase()];return Array.isArray(n)?n[0]:n}function a(e,t){return{getHeader:t=>i(e,t),getBody:async()=>e.body,getQueryParam:t=>e.query?.[t],send:(e,n)=>t.status(e).send(n),setHeader:(e,n)=>{t.header(e,n)},sendEmpty:e=>t.status(e).send(),sendSse:(e,n)=>(t.header(`Content-Type`,`text/event-stream`),t.header(`Cache-Control`,`no-cache`),t.header(`Connection`,`keep-alive`),t.status(e).send(n))}}var o=function(o,s,c){let{cubes:l,drizzle:u,schema:d,extractSecurityContext:f,engineType:p,cors:m,basePath:h=`/cubejs-api/v1`,bodyLimit:g=10485760,cache:_,mcp:v={enabled:!0},agent:y}=s;if(!l||l.length===0)return c(Error(`At least one cube must be provided in the cubes array`));if(m){let e={...m,allowedHeaders:r.i(m.allowedHeaders)};o.register(import(`@fastify/cors`),e)}o.addHook(`onRequest`,async(e,t)=>{e.method===`POST`&&(e.body=void 0)});let b=new t.t({drizzle:u,schema:d,engineType:p,cache:_,rlsSetup:s.rlsSetup});l.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>o.log.error(e,`Query execution error`),mcp:v}),S=e=>()=>f(e),C={bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},w={schema:{querystring:{type:`object`,properties:{query:{type:`string`}},required:[`query`]}}};if(o.post(`${h}/load`,C,(e,t)=>x.handleLoadPost(a(e,t),S(e))),o.get(`${h}/load`,w,(e,t)=>x.handleLoadGet(a(e,t),S(e))),o.post(`${h}/batch`,{bodyLimit:g,schema:{body:{type:`object`,required:[`queries`],properties:{queries:{type:`array`,items:{type:`object`}}}}}},(e,t)=>x.handleBatchPost(a(e,t),S(e))),o.get(`${h}/meta`,(e,t)=>x.handleMetaGet(a(e,t))),o.post(`${h}/sql`,C,(e,t)=>x.handleSqlPost(a(e,t),S(e))),o.get(`${h}/sql`,w,(e,t)=>x.handleSqlGet(a(e,t),S(e))),o.post(`${h}/dry-run`,C,(e,t)=>x.handleDryRunPost(a(e,t),S(e))),o.get(`${h}/dry-run`,w,(e,t)=>x.handleDryRunGet(a(e,t),S(e))),o.post(`${h}/explain`,C,(e,t)=>x.handleExplainPost(a(e,t),S(e))),y&&o.post(`${h}/agent/chat`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DRZb2ip6.cjs")),{message:a,sessionId:o,history:s}=e.body;if(!a||typeof a!=`string`)return t.status(400).send({error:`message is required and must be a string`});let c=(y.apiKey||``).trim();if(y.allowClientApiKey){let t=i(e,`x-agent-api-key`);t&&(c=t.trim())}if(!c)return t.status(401).send({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let l=y.allowClientApiKey?i(e,`x-agent-provider`):void 0,u=y.allowClientApiKey?i(e,`x-agent-model`):void 0,d=y.allowClientApiKey?i(e,`x-agent-provider-endpoint`):void 0,p=r.r(await f(e),t=>i(e,t)),m=y.buildSystemContext?.(p);t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:a,sessionId:o,history:s,semanticLayer:b,securityContext:p,agentConfig:y,apiKey:c,systemContext:m,providerOverride:l,modelOverride:u,baseURLOverride:d});for await(let n of e)t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.raw.end()}}catch(n){if(e.log.error(n,`Agent chat error`),!t.raw.headersSent)return t.status(500).send({error:n instanceof Error?n.message:`Agent chat failed`})}}),v.enabled!==!1){let e=v.basePath??`/mcp`;o.post(`${e}`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},(e,t)=>x.handleMcpPost(a(e,t),S(e))),o.get(`${e}`,async(e,t)=>{if(v.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`});let r=n._();t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}),t.raw.write(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3));let i=setInterval(()=>{t.raw.write(`: keep-alive
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-CBR-9AMD.cjs"),t=require("../compiler-D0v5KJhv.cjs"),n=require("../mcp-transport-BuU5CrKL.cjs"),r=require("../core-CVqTwOR3.cjs");function i(e,t){let n=e.headers[t.toLowerCase()];return Array.isArray(n)?n[0]:n}function a(e,t){return{getHeader:t=>i(e,t),getBody:async()=>e.body,getQueryParam:t=>e.query?.[t],send:(e,n)=>t.status(e).send(n),setHeader:(e,n)=>{t.header(e,n)},sendEmpty:e=>t.status(e).send(),sendSse:(e,n)=>(t.header(`Content-Type`,`text/event-stream`),t.header(`Cache-Control`,`no-cache`),t.header(`Connection`,`keep-alive`),t.status(e).send(n))}}var o=function(o,s,c){let{cubes:l,drizzle:u,schema:d,extractSecurityContext:f,engineType:p,cors:m,basePath:h=`/cubejs-api/v1`,bodyLimit:g=10485760,cache:_,mcp:v={enabled:!0},agent:y}=s;if(!l||l.length===0)return c(Error(`At least one cube must be provided in the cubes array`));if(m){let e={...m,allowedHeaders:r.i(m.allowedHeaders)};o.register(import(`@fastify/cors`),e)}o.addHook(`onRequest`,async(e,t)=>{e.method===`POST`&&(e.body=void 0)});let b=new t.t({drizzle:u,schema:d,engineType:p,cache:_,rlsSetup:s.rlsSetup});l.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>o.log.error(e,`Query execution error`),mcp:v}),S=e=>()=>f(e),C={bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},w={schema:{querystring:{type:`object`,properties:{query:{type:`string`}},required:[`query`]}}};if(o.post(`${h}/load`,C,(e,t)=>x.handleLoadPost(a(e,t),S(e))),o.get(`${h}/load`,w,(e,t)=>x.handleLoadGet(a(e,t),S(e))),o.post(`${h}/batch`,{bodyLimit:g,schema:{body:{type:`object`,required:[`queries`],properties:{queries:{type:`array`,items:{type:`object`}}}}}},(e,t)=>x.handleBatchPost(a(e,t),S(e))),o.get(`${h}/meta`,(e,t)=>x.handleMetaGet(a(e,t))),o.post(`${h}/sql`,C,(e,t)=>x.handleSqlPost(a(e,t),S(e))),o.get(`${h}/sql`,w,(e,t)=>x.handleSqlGet(a(e,t),S(e))),o.post(`${h}/dry-run`,C,(e,t)=>x.handleDryRunPost(a(e,t),S(e))),o.get(`${h}/dry-run`,w,(e,t)=>x.handleDryRunGet(a(e,t),S(e))),o.post(`${h}/explain`,C,(e,t)=>x.handleExplainPost(a(e,t),S(e))),y&&o.post(`${h}/agent/chat`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DyIyrFFp.cjs")),{message:a,sessionId:o,history:s}=e.body;if(!a||typeof a!=`string`)return t.status(400).send({error:`message is required and must be a string`});let c=(y.apiKey||``).trim();if(y.allowClientApiKey){let t=i(e,`x-agent-api-key`);t&&(c=t.trim())}if(!c)return t.status(401).send({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let l=y.allowClientApiKey?i(e,`x-agent-provider`):void 0,u=y.allowClientApiKey?i(e,`x-agent-model`):void 0,d=y.allowClientApiKey?i(e,`x-agent-provider-endpoint`):void 0,p=r.r(await f(e),t=>i(e,t)),m=y.buildSystemContext?.(p);t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:a,sessionId:o,history:s,semanticLayer:b,securityContext:p,agentConfig:y,apiKey:c,systemContext:m,providerOverride:l,modelOverride:u,baseURLOverride:d});for await(let n of e)t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.raw.end()}}catch(n){if(e.log.error(n,`Agent chat error`),!t.raw.headersSent)return t.status(500).send({error:n instanceof Error?n.message:`Agent chat failed`})}}),v.enabled!==!1){let e=v.basePath??`/mcp`;o.post(`${e}`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},(e,t)=>x.handleMcpPost(a(e,t),S(e))),o.get(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(v));if(!r.valid)return t.status(403).send({error:r.reason});if(v.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`});let i=n.v();t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}),t.raw.write(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},i,15e3));let a=setInterval(()=>{t.raw.write(`: keep-alive
2
2
 
3
- `)},15e3);e.raw.on(`close`,()=>{clearInterval(i)})}),o.delete(`${e}`,async(e,t)=>v.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`})):t.status(405).send({error:`Session termination not supported`}))}o.setErrorHandler(async(t,n,r)=>(n.log.error(t,`Fastify cube adapter error`),r.statusCode<400&&r.status(500),e.i(t instanceof Error?t:String(t),r.statusCode))),c()};async function s(e,t){await e.register(o,t)}function c(e){let t=require("fastify")({logger:!0});return t.register(o,e),t}exports.createCubeApp=c,exports.cubePlugin=o,exports.registerCubeRoutes=s;
3
+ `)},15e3);e.raw.on(`close`,()=>{clearInterval(a)})}),o.delete(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(v));return r.valid?v.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`})):t.status(405).send({error:`Session termination not supported`}):t.status(403).send({error:r.reason})})}o.setErrorHandler(async(t,n,r)=>(n.log.error(t,`Fastify cube adapter error`),r.statusCode<400&&r.status(500),e.i(t instanceof Error?t:String(t),r.statusCode))),c()};async function s(e,t){await e.register(o,t)}function c(e){let t=require("fastify")({logger:!0});return t.register(o,e),t}exports.createCubeApp=c,exports.cubePlugin=o,exports.registerCubeRoutes=s;