@finos/legend-cube-builder 0.0.3 → 0.0.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 (971) hide show
  1. package/README.md +59 -20
  2. package/docs/adding-an-operation.md +112 -13
  3. package/docs/demo/DEMO-FAST-NOTES.md +67 -0
  4. package/docs/demo/README.md +102 -0
  5. package/docs/demo/specs/duckdb-sales-pivot.cube.json +110 -0
  6. package/docs/demo/specs/trades-desks-1-joined.cube.json +123 -0
  7. package/docs/demo/specs/trades-desks-2-grouped.cube.json +140 -0
  8. package/docs/demo/specs/trades-desks-3-ranked.cube.json +158 -0
  9. package/docs/demo/specs/trades-desks-4-extended.cube.json +208 -0
  10. package/docs/demo/specs/trades-desks-5-final.cube.json +248 -0
  11. package/docs/hosting.md +132 -7
  12. package/docs/testing.md +146 -9
  13. package/lib/__lib__/LegendCubeCommand.d.ts +4 -1
  14. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
  15. package/lib/__lib__/LegendCubeCommand.js +12 -0
  16. package/lib/__lib__/LegendCubeCommand.js.map +1 -1
  17. package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
  18. package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
  19. package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
  20. package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
  21. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
  22. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
  23. package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
  24. package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
  25. package/lib/__lib__/LegendCubeFunctionLabels.d.ts +29 -0
  26. package/lib/__lib__/LegendCubeFunctionLabels.d.ts.map +1 -0
  27. package/lib/__lib__/LegendCubeFunctionLabels.js +31 -0
  28. package/lib/__lib__/LegendCubeFunctionLabels.js.map +1 -0
  29. package/lib/__lib__/LegendCubeHelpText.d.ts +5 -1
  30. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
  31. package/lib/__lib__/LegendCubeHelpText.js +25 -3
  32. package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
  33. package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
  34. package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
  35. package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
  36. package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
  37. package/lib/__lib__/LegendCubeLabels.d.ts +171 -6
  38. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  39. package/lib/__lib__/LegendCubeLabels.js +226 -13
  40. package/lib/__lib__/LegendCubeLabels.js.map +1 -1
  41. package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
  42. package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
  43. package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
  44. package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
  45. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts +26 -0
  46. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts.map +1 -0
  47. package/lib/__lib__/LegendCubeProjectSourceLabels.js +26 -0
  48. package/lib/__lib__/LegendCubeProjectSourceLabels.js.map +1 -0
  49. package/lib/__lib__/LegendCubeServiceLabels.d.ts +27 -0
  50. package/lib/__lib__/LegendCubeServiceLabels.d.ts.map +1 -0
  51. package/lib/__lib__/LegendCubeServiceLabels.js +32 -0
  52. package/lib/__lib__/LegendCubeServiceLabels.js.map +1 -0
  53. package/lib/__lib__/LegendCubeTesting.d.ts +8 -0
  54. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
  55. package/lib/__lib__/LegendCubeTesting.js +8 -0
  56. package/lib/__lib__/LegendCubeTesting.js.map +1 -1
  57. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
  58. package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
  59. package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
  60. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
  61. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
  62. package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
  63. package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
  64. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
  65. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
  66. package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
  67. package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
  68. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +13 -1
  69. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  70. package/lib/__test-utils__/CubeEngineTestSupport.js +23 -2
  71. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
  72. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +44 -0
  73. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
  74. package/lib/__test-utils__/CubeExpressionTestUtils.js +100 -0
  75. package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
  76. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts +26 -0
  77. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts.map +1 -0
  78. package/lib/__test-utils__/CubeFunctionTestOutline.js +56 -0
  79. package/lib/__test-utils__/CubeFunctionTestOutline.js.map +1 -0
  80. package/lib/__test-utils__/CubeLambdaCorpus.d.ts +36 -0
  81. package/lib/__test-utils__/CubeLambdaCorpus.d.ts.map +1 -0
  82. package/lib/__test-utils__/CubeLambdaCorpus.js +83 -0
  83. package/lib/__test-utils__/CubeLambdaCorpus.js.map +1 -0
  84. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +25 -0
  85. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -1
  86. package/lib/__test-utils__/CubeOperationsTestUtils.js +56 -10
  87. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -1
  88. package/lib/__test-utils__/CubePageTestUtils.d.ts +18 -0
  89. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
  90. package/lib/__test-utils__/CubePageTestUtils.js +46 -1
  91. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
  92. package/lib/__test-utils__/CubeTestApplication.d.ts +14 -1
  93. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
  94. package/lib/__test-utils__/CubeTestApplication.js +25 -1
  95. package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
  96. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
  97. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
  98. package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
  99. package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
  100. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
  101. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
  102. package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
  103. package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
  104. package/lib/__test-utils__/FakeCubeEngine.d.ts +7 -0
  105. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
  106. package/lib/__test-utils__/FakeCubeEngine.js +31 -1
  107. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
  108. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +41 -0
  109. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
  110. package/lib/__test-utils__/FakeCubeIngestCatalog.js +123 -0
  111. package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
  112. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
  113. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
  114. package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
  115. package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
  116. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts +26 -0
  117. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts.map +1 -0
  118. package/lib/__test-utils__/FakeCubeServiceCatalog.js +40 -0
  119. package/lib/__test-utils__/FakeCubeServiceCatalog.js.map +1 -0
  120. package/lib/components/CubeAddItems.d.ts +35 -0
  121. package/lib/components/CubeAddItems.d.ts.map +1 -0
  122. package/lib/components/CubeAddItems.js +85 -0
  123. package/lib/components/CubeAddItems.js.map +1 -0
  124. package/lib/components/CubeDialogTheme.d.ts +25 -0
  125. package/lib/components/CubeDialogTheme.d.ts.map +1 -0
  126. package/lib/components/CubeDialogTheme.js +25 -0
  127. package/lib/components/CubeDialogTheme.js.map +1 -0
  128. package/lib/components/CubeEditor.d.ts +17 -2
  129. package/lib/components/CubeEditor.d.ts.map +1 -1
  130. package/lib/components/CubeEditor.js +39 -17
  131. package/lib/components/CubeEditor.js.map +1 -1
  132. package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
  133. package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
  134. package/lib/components/CubeEntrySourceBanner.js +32 -0
  135. package/lib/components/CubeEntrySourceBanner.js.map +1 -0
  136. package/lib/components/CubeFileMenu.d.ts +28 -0
  137. package/lib/components/CubeFileMenu.d.ts.map +1 -0
  138. package/lib/components/CubeFileMenu.js +77 -0
  139. package/lib/components/CubeFileMenu.js.map +1 -0
  140. package/lib/components/CubeLambdaImportBanner.d.ts +26 -0
  141. package/lib/components/CubeLambdaImportBanner.d.ts.map +1 -0
  142. package/lib/components/CubeLambdaImportBanner.js +47 -0
  143. package/lib/components/CubeLambdaImportBanner.js.map +1 -0
  144. package/lib/components/CubeNodeIcon.d.ts.map +1 -1
  145. package/lib/components/CubeNodeIcon.js +12 -1
  146. package/lib/components/CubeNodeIcon.js.map +1 -1
  147. package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
  148. package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
  149. package/lib/components/CubeSchemaColumnsTable.js +6 -0
  150. package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
  151. package/lib/components/canvas/CubeCanvas.d.ts +4 -3
  152. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
  153. package/lib/components/canvas/CubeCanvas.js +68 -16
  154. package/lib/components/canvas/CubeCanvas.js.map +1 -1
  155. package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
  156. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
  157. package/lib/components/canvas/CubeCanvasContextMenu.js +20 -9
  158. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
  159. package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
  160. package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
  161. package/lib/components/canvas/CubeCanvasDnd.js +14 -9
  162. package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
  163. package/lib/components/canvas/CubeCanvasElements.d.ts +18 -1
  164. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  165. package/lib/components/canvas/CubeCanvasElements.js +63 -5
  166. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  167. package/lib/components/canvas/CubeCanvasLayout.js +1 -1
  168. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  169. package/lib/components/canvas/CubeCanvasNode.js +35 -21
  170. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  171. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  172. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  173. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  174. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  175. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  176. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  177. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  178. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  179. package/lib/components/dev-settings/CubeDevSettings.d.ts +35 -0
  180. package/lib/components/dev-settings/CubeDevSettings.d.ts.map +1 -0
  181. package/lib/components/dev-settings/CubeDevSettings.js +50 -0
  182. package/lib/components/dev-settings/CubeDevSettings.js.map +1 -0
  183. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  184. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  185. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  186. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  187. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  188. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  189. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  190. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  191. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
  192. package/lib/components/editors/CubeColumnPicker.js +3 -3
  193. package/lib/components/editors/CubeColumnPicker.js.map +1 -1
  194. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  195. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  196. package/lib/components/editors/CubeConcatEditor.js +147 -0
  197. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  198. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  199. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  200. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  201. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  202. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  203. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  204. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  205. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  206. package/lib/components/editors/CubeExpressionFilterEditor.d.ts +25 -0
  207. package/lib/components/editors/CubeExpressionFilterEditor.d.ts.map +1 -0
  208. package/lib/components/editors/CubeExpressionFilterEditor.js +83 -0
  209. package/lib/components/editors/CubeExpressionFilterEditor.js.map +1 -0
  210. package/lib/components/editors/CubeExtendEditor.d.ts +27 -0
  211. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  212. package/lib/components/editors/CubeExtendEditor.js +86 -0
  213. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  214. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  215. package/lib/components/editors/CubeFilterEditor.js +15 -4
  216. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  217. package/lib/components/editors/CubeFunctionSourceEditor.d.ts +25 -0
  218. package/lib/components/editors/CubeFunctionSourceEditor.d.ts.map +1 -0
  219. package/lib/components/editors/CubeFunctionSourceEditor.js +55 -0
  220. package/lib/components/editors/CubeFunctionSourceEditor.js.map +1 -0
  221. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  222. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  223. package/lib/components/editors/CubeGroupEditor.js +70 -0
  224. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  225. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  226. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  227. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  228. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  229. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  230. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  231. package/lib/components/editors/CubeJoinEditor.js +21 -39
  232. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  233. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  234. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  235. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  236. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  237. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  238. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  239. package/lib/components/editors/CubeNodeEditorPanel.js +64 -16
  240. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  241. package/lib/components/editors/CubeNodeEditorPopper.d.ts +44 -0
  242. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  243. package/lib/components/editors/CubeNodeEditorPopper.js +133 -0
  244. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  245. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  246. package/lib/components/editors/CubeNodeEditorRegistry.js +23 -1
  247. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  248. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  249. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  250. package/lib/components/editors/CubePartitionEditor.js +93 -0
  251. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  252. package/lib/components/editors/CubePivotEditor.d.ts +26 -0
  253. package/lib/components/editors/CubePivotEditor.d.ts.map +1 -0
  254. package/lib/components/editors/CubePivotEditor.js +93 -0
  255. package/lib/components/editors/CubePivotEditor.js.map +1 -0
  256. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -1
  257. package/lib/components/editors/CubeRenameEditor.js +6 -4
  258. package/lib/components/editors/CubeRenameEditor.js.map +1 -1
  259. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -1
  260. package/lib/components/editors/CubeRestrictEditor.js +2 -2
  261. package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
  262. package/lib/components/editors/CubeServiceSourceEditor.d.ts +25 -0
  263. package/lib/components/editors/CubeServiceSourceEditor.d.ts.map +1 -0
  264. package/lib/components/editors/CubeServiceSourceEditor.js +41 -0
  265. package/lib/components/editors/CubeServiceSourceEditor.js.map +1 -0
  266. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -1
  267. package/lib/components/editors/CubeSortEditor.js +10 -37
  268. package/lib/components/editors/CubeSortEditor.js.map +1 -1
  269. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  270. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  271. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  272. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  273. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  274. package/lib/components/editors/CubeSourceEditor.js +18 -5
  275. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  276. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  277. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  278. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  279. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  280. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  281. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  282. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  283. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  284. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  285. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  286. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  287. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  288. package/lib/components/grid/CubeColumnFormatDialog.d.ts +28 -0
  289. package/lib/components/grid/CubeColumnFormatDialog.d.ts.map +1 -0
  290. package/lib/components/grid/CubeColumnFormatDialog.js +94 -0
  291. package/lib/components/grid/CubeColumnFormatDialog.js.map +1 -0
  292. package/lib/components/grid/CubeDrilldownBar.d.ts +37 -0
  293. package/lib/components/grid/CubeDrilldownBar.d.ts.map +1 -0
  294. package/lib/components/grid/CubeDrilldownBar.js +77 -0
  295. package/lib/components/grid/CubeDrilldownBar.js.map +1 -0
  296. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  297. package/lib/components/grid/CubeGridRegion.js +56 -31
  298. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  299. package/lib/components/grid/CubeGridValues.d.ts +47 -1
  300. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  301. package/lib/components/grid/CubeGridValues.js +152 -1
  302. package/lib/components/grid/CubeGridValues.js.map +1 -1
  303. package/lib/components/grid/CubeResultGrid.d.ts +68 -5
  304. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  305. package/lib/components/grid/CubeResultGrid.js +316 -31
  306. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  307. package/lib/components/grid/CubeRunStatsPanel.d.ts +28 -0
  308. package/lib/components/grid/CubeRunStatsPanel.d.ts.map +1 -0
  309. package/lib/components/grid/CubeRunStatsPanel.js +61 -0
  310. package/lib/components/grid/CubeRunStatsPanel.js.map +1 -0
  311. package/lib/components/grid/CubeServerSideGrid.d.ts +36 -0
  312. package/lib/components/grid/CubeServerSideGrid.d.ts.map +1 -0
  313. package/lib/components/grid/CubeServerSideGrid.js +114 -0
  314. package/lib/components/grid/CubeServerSideGrid.js.map +1 -0
  315. package/lib/components/grid/CubeSqlDialog.d.ts +24 -0
  316. package/lib/components/grid/CubeSqlDialog.d.ts.map +1 -0
  317. package/lib/components/grid/CubeSqlDialog.js +39 -0
  318. package/lib/components/grid/CubeSqlDialog.js.map +1 -0
  319. package/lib/components/grid/CubeSqlFormat.d.ts +20 -0
  320. package/lib/components/grid/CubeSqlFormat.d.ts.map +1 -0
  321. package/lib/components/grid/CubeSqlFormat.js +32 -0
  322. package/lib/components/grid/CubeSqlFormat.js.map +1 -0
  323. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  324. package/lib/components/palette/CubePalette.js +44 -14
  325. package/lib/components/palette/CubePalette.js.map +1 -1
  326. package/lib/components/show-pure/CubeShowPureDialog.d.ts +4 -1
  327. package/lib/components/show-pure/CubeShowPureDialog.d.ts.map +1 -1
  328. package/lib/components/show-pure/CubeShowPureDialog.js +8 -4
  329. package/lib/components/show-pure/CubeShowPureDialog.js.map +1 -1
  330. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  331. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  332. package/lib/components/source-picker/CubeDataProductTab.js +123 -0
  333. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  334. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  335. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  336. package/lib/components/source-picker/CubeDirectConnectionTab.js +89 -0
  337. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  338. package/lib/components/source-picker/CubeFunctionSteps.d.ts +36 -0
  339. package/lib/components/source-picker/CubeFunctionSteps.d.ts.map +1 -0
  340. package/lib/components/source-picker/CubeFunctionSteps.js +76 -0
  341. package/lib/components/source-picker/CubeFunctionSteps.js.map +1 -0
  342. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  343. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  344. package/lib/components/source-picker/CubeIngestTab.js +89 -0
  345. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  346. package/lib/components/source-picker/CubeInlineModelTab.d.ts +38 -0
  347. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  348. package/lib/components/source-picker/CubeInlineModelTab.js +81 -0
  349. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  350. package/lib/components/source-picker/CubePickerListItem.d.ts +47 -0
  351. package/lib/components/source-picker/CubePickerListItem.d.ts.map +1 -0
  352. package/lib/components/source-picker/CubePickerListItem.js +62 -0
  353. package/lib/components/source-picker/CubePickerListItem.js.map +1 -0
  354. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  355. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  356. package/lib/components/source-picker/CubePickerStep.js +23 -0
  357. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  358. package/lib/components/source-picker/CubeProjectTab.d.ts +28 -0
  359. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  360. package/lib/components/source-picker/CubeProjectTab.js +53 -0
  361. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  362. package/lib/components/source-picker/CubeServiceTab.d.ts +27 -0
  363. package/lib/components/source-picker/CubeServiceTab.d.ts.map +1 -0
  364. package/lib/components/source-picker/CubeServiceTab.js +36 -0
  365. package/lib/components/source-picker/CubeServiceTab.js.map +1 -0
  366. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  367. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  368. package/lib/components/source-picker/CubeSourcePicker.js +33 -58
  369. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  370. package/lib/components/source-picker/CubeTablePreview.d.ts +29 -0
  371. package/lib/components/source-picker/CubeTablePreview.d.ts.map +1 -0
  372. package/lib/components/source-picker/CubeTablePreview.js +10 -0
  373. package/lib/components/source-picker/CubeTablePreview.js.map +1 -0
  374. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts +27 -0
  375. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts.map +1 -0
  376. package/lib/components/spec-transfer/CubeImportPureDialog.js +38 -0
  377. package/lib/components/spec-transfer/CubeImportPureDialog.js.map +1 -0
  378. package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts.map +1 -1
  379. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +9 -3
  380. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  381. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  382. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  383. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  384. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  385. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  386. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  387. package/lib/graph-manager/CubeDataProduct.js +102 -0
  388. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  389. package/lib/graph-manager/CubeDataProductCatalog.d.ts +177 -0
  390. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  391. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  392. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  393. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  394. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  395. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  396. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  397. package/lib/graph-manager/CubeEngine.d.ts +83 -3
  398. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  399. package/lib/graph-manager/CubeEngine.js +4 -1
  400. package/lib/graph-manager/CubeEngine.js.map +1 -1
  401. package/lib/graph-manager/CubeEngineClientSettings.d.ts +43 -0
  402. package/lib/graph-manager/CubeEngineClientSettings.d.ts.map +1 -0
  403. package/lib/graph-manager/CubeEngineClientSettings.js +51 -0
  404. package/lib/graph-manager/CubeEngineClientSettings.js.map +1 -0
  405. package/lib/graph-manager/CubeIngest.d.ts +55 -0
  406. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  407. package/lib/graph-manager/CubeIngest.js +98 -0
  408. package/lib/graph-manager/CubeIngest.js.map +1 -0
  409. package/lib/graph-manager/CubeIngestCatalog.d.ts +142 -0
  410. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  411. package/lib/graph-manager/CubeIngestCatalog.js +86 -0
  412. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  413. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  414. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  415. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  416. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  417. package/lib/graph-manager/CubeLakehouseRuntime.d.ts +29 -0
  418. package/lib/graph-manager/CubeLakehouseRuntime.d.ts.map +1 -0
  419. package/lib/graph-manager/CubeLakehouseRuntime.js +40 -0
  420. package/lib/graph-manager/CubeLakehouseRuntime.js.map +1 -0
  421. package/lib/graph-manager/CubeProject.d.ts +41 -0
  422. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  423. package/lib/graph-manager/CubeProject.js +84 -0
  424. package/lib/graph-manager/CubeProject.js.map +1 -0
  425. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  426. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  427. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  428. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  429. package/lib/graph-manager/CubeService.d.ts +20 -0
  430. package/lib/graph-manager/CubeService.d.ts.map +1 -0
  431. package/lib/graph-manager/CubeService.js +22 -0
  432. package/lib/graph-manager/CubeService.js.map +1 -0
  433. package/lib/graph-manager/CubeServiceCatalog.d.ts +31 -0
  434. package/lib/graph-manager/CubeServiceCatalog.d.ts.map +1 -0
  435. package/lib/graph-manager/CubeServiceCatalog.js +17 -0
  436. package/lib/graph-manager/CubeServiceCatalog.js.map +1 -0
  437. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +111 -2
  438. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  439. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +108 -1
  440. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  441. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  442. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  443. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  444. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  445. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +32 -0
  446. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  447. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +88 -0
  448. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  449. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  450. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  451. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  452. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  453. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  454. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  455. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  456. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  457. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  458. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  459. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  460. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  461. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  462. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  463. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  464. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts +30 -0
  465. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts.map +1 -0
  466. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js +229 -0
  467. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js.map +1 -0
  468. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  469. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  470. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +149 -0
  471. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  472. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +57 -0
  473. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  474. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +120 -0
  475. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  476. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  477. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  478. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  479. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  480. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts +34 -0
  481. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts.map +1 -0
  482. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js +332 -0
  483. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js.map +1 -0
  484. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  485. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +111 -13
  486. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  487. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts +1 -1
  488. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
  489. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +3 -1
  490. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
  491. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  492. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  493. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  494. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  495. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +35 -0
  496. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  497. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +65 -0
  498. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  499. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  500. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  501. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  502. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  503. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +115 -3
  504. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  505. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +654 -21
  506. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  507. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  508. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  509. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  510. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  511. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  512. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  513. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +94 -0
  514. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  515. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts +31 -0
  516. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts.map +1 -0
  517. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js +69 -0
  518. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js.map +1 -0
  519. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  520. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  521. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  522. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  523. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  524. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  525. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  526. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  527. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  528. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  529. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  530. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  531. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  532. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  533. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +33 -3
  534. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  535. package/lib/index.css +2 -2
  536. package/lib/index.css.map +1 -1
  537. package/lib/index.d.ts +22 -3
  538. package/lib/index.d.ts.map +1 -1
  539. package/lib/index.js +19 -1
  540. package/lib/index.js.map +1 -1
  541. package/lib/stores/CubeAddPlacement.d.ts +39 -0
  542. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  543. package/lib/stores/CubeAddPlacement.js +51 -0
  544. package/lib/stores/CubeAddPlacement.js.map +1 -0
  545. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  546. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  547. package/lib/stores/CubeDataProductRecheck.js +54 -0
  548. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  549. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  550. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  551. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  552. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  553. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  554. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  555. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  556. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  557. package/lib/stores/CubeDevSettingsState.d.ts +47 -0
  558. package/lib/stores/CubeDevSettingsState.d.ts.map +1 -0
  559. package/lib/stores/CubeDevSettingsState.js +99 -0
  560. package/lib/stores/CubeDevSettingsState.js.map +1 -0
  561. package/lib/stores/CubeEditorState.d.ts +242 -28
  562. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  563. package/lib/stores/CubeEditorState.js +751 -66
  564. package/lib/stores/CubeEditorState.js.map +1 -1
  565. package/lib/stores/CubeEngineChecks.d.ts +59 -0
  566. package/lib/stores/CubeEngineChecks.d.ts.map +1 -0
  567. package/lib/stores/CubeEngineChecks.js +100 -0
  568. package/lib/stores/CubeEngineChecks.js.map +1 -0
  569. package/lib/stores/CubeEntrySource.d.ts +78 -0
  570. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  571. package/lib/stores/CubeEntrySource.js +200 -0
  572. package/lib/stores/CubeEntrySource.js.map +1 -0
  573. package/lib/stores/CubeExamples.d.ts +43 -0
  574. package/lib/stores/CubeExamples.d.ts.map +1 -0
  575. package/lib/stores/CubeExamples.js +333 -0
  576. package/lib/stores/CubeExamples.js.map +1 -0
  577. package/lib/stores/CubeExamplesState.d.ts +45 -0
  578. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  579. package/lib/stores/CubeExamplesState.js +81 -0
  580. package/lib/stores/CubeExamplesState.js.map +1 -0
  581. package/lib/stores/CubeExecutionState.d.ts +6 -2
  582. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  583. package/lib/stores/CubeExecutionState.js +39 -38
  584. package/lib/stores/CubeExecutionState.js.map +1 -1
  585. package/lib/stores/CubeExportState.d.ts +41 -0
  586. package/lib/stores/CubeExportState.d.ts.map +1 -0
  587. package/lib/stores/CubeExportState.js +134 -0
  588. package/lib/stores/CubeExportState.js.map +1 -0
  589. package/lib/stores/CubeExpressionFilterCheck.d.ts +51 -0
  590. package/lib/stores/CubeExpressionFilterCheck.d.ts.map +1 -0
  591. package/lib/stores/CubeExpressionFilterCheck.js +134 -0
  592. package/lib/stores/CubeExpressionFilterCheck.js.map +1 -0
  593. package/lib/stores/CubeExtendTyping.d.ts +64 -0
  594. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  595. package/lib/stores/CubeExtendTyping.js +149 -0
  596. package/lib/stores/CubeExtendTyping.js.map +1 -0
  597. package/lib/stores/CubeFunctionRecheck.d.ts +30 -0
  598. package/lib/stores/CubeFunctionRecheck.d.ts.map +1 -0
  599. package/lib/stores/CubeFunctionRecheck.js +67 -0
  600. package/lib/stores/CubeFunctionRecheck.js.map +1 -0
  601. package/lib/stores/CubeGridFetcher.d.ts +75 -0
  602. package/lib/stores/CubeGridFetcher.d.ts.map +1 -0
  603. package/lib/stores/CubeGridFetcher.js +197 -0
  604. package/lib/stores/CubeGridFetcher.js.map +1 -0
  605. package/lib/stores/CubeGridQuickActions.d.ts +27 -7
  606. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
  607. package/lib/stores/CubeGridQuickActions.js +79 -21
  608. package/lib/stores/CubeGridQuickActions.js.map +1 -1
  609. package/lib/stores/CubeGridState.d.ts +136 -0
  610. package/lib/stores/CubeGridState.d.ts.map +1 -0
  611. package/lib/stores/CubeGridState.js +317 -0
  612. package/lib/stores/CubeGridState.js.map +1 -0
  613. package/lib/stores/CubeHost.d.ts +74 -1
  614. package/lib/stores/CubeHost.d.ts.map +1 -1
  615. package/lib/stores/CubeHost.js +25 -1
  616. package/lib/stores/CubeHost.js.map +1 -1
  617. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  618. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  619. package/lib/stores/CubeIngestRecheck.js +53 -0
  620. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  621. package/lib/stores/CubeLambdaImportState.d.ts +118 -0
  622. package/lib/stores/CubeLambdaImportState.d.ts.map +1 -0
  623. package/lib/stores/CubeLambdaImportState.js +302 -0
  624. package/lib/stores/CubeLambdaImportState.js.map +1 -0
  625. package/lib/stores/CubeLambdaSources.d.ts +45 -0
  626. package/lib/stores/CubeLambdaSources.d.ts.map +1 -0
  627. package/lib/stores/CubeLambdaSources.js +261 -0
  628. package/lib/stores/CubeLambdaSources.js.map +1 -0
  629. package/lib/stores/CubeNodeEditorState.d.ts +101 -5
  630. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  631. package/lib/stores/CubeNodeEditorState.js +221 -10
  632. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  633. package/lib/stores/CubeQueryRun.d.ts +59 -0
  634. package/lib/stores/CubeQueryRun.d.ts.map +1 -0
  635. package/lib/stores/CubeQueryRun.js +101 -0
  636. package/lib/stores/CubeQueryRun.js.map +1 -0
  637. package/lib/stores/CubeRunStatsState.d.ts +61 -0
  638. package/lib/stores/CubeRunStatsState.d.ts.map +1 -0
  639. package/lib/stores/CubeRunStatsState.js +54 -0
  640. package/lib/stores/CubeRunStatsState.js.map +1 -0
  641. package/lib/stores/CubeRunningStepLambda.d.ts +25 -0
  642. package/lib/stores/CubeRunningStepLambda.d.ts.map +1 -0
  643. package/lib/stores/CubeRunningStepLambda.js +45 -0
  644. package/lib/stores/CubeRunningStepLambda.js.map +1 -0
  645. package/lib/stores/CubeServiceRecheck.d.ts +29 -0
  646. package/lib/stores/CubeServiceRecheck.d.ts.map +1 -0
  647. package/lib/stores/CubeServiceRecheck.js +33 -0
  648. package/lib/stores/CubeServiceRecheck.js.map +1 -0
  649. package/lib/stores/CubeShowPureState.d.ts +18 -2
  650. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  651. package/lib/stores/CubeShowPureState.js +46 -13
  652. package/lib/stores/CubeShowPureState.js.map +1 -1
  653. package/lib/stores/CubeSourcePickerState.d.ts +70 -65
  654. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  655. package/lib/stores/CubeSourcePickerState.js +207 -267
  656. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  657. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  658. package/lib/stores/CubeSpecTransferState.js +2 -2
  659. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  660. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  661. package/lib/stores/LocalModelCatalog.js +19 -3
  662. package/lib/stores/LocalModelCatalog.js.map +1 -1
  663. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  664. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  665. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  666. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  667. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  668. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  669. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  670. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  671. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  672. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  673. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  674. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  675. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts +91 -0
  676. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts.map +1 -0
  677. package/lib/stores/editors/CubeExpressionFilterDraft.js +254 -0
  678. package/lib/stores/editors/CubeExpressionFilterDraft.js.map +1 -0
  679. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  680. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  681. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  682. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  683. package/lib/stores/editors/CubeFunctionDraft.d.ts +34 -0
  684. package/lib/stores/editors/CubeFunctionDraft.d.ts.map +1 -0
  685. package/lib/stores/editors/CubeFunctionDraft.js +69 -0
  686. package/lib/stores/editors/CubeFunctionDraft.js.map +1 -0
  687. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  688. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  689. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  690. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  691. package/lib/stores/editors/CubeJoinDraft.d.ts +9 -10
  692. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  693. package/lib/stores/editors/CubeJoinDraft.js +92 -21
  694. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  695. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  696. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  697. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  698. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  699. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  700. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  701. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  702. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  703. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +4 -2
  704. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  705. package/lib/stores/editors/CubeNodeDraftRegistry.js +39 -3
  706. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  707. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  708. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  709. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  710. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  711. package/lib/stores/editors/CubePivotDraft.d.ts +93 -0
  712. package/lib/stores/editors/CubePivotDraft.d.ts.map +1 -0
  713. package/lib/stores/editors/CubePivotDraft.js +267 -0
  714. package/lib/stores/editors/CubePivotDraft.js.map +1 -0
  715. package/lib/stores/editors/CubeSortDraft.d.ts +2 -10
  716. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -1
  717. package/lib/stores/editors/CubeSortDraft.js +9 -35
  718. package/lib/stores/editors/CubeSortDraft.js.map +1 -1
  719. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  720. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  721. package/lib/stores/editors/CubeSortRows.js +50 -0
  722. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  723. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  724. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  725. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  726. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  727. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts +26 -0
  728. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts.map +1 -0
  729. package/lib/stores/fixtures/CubeSalesDuckDbModel.js +46 -0
  730. package/lib/stores/fixtures/CubeSalesDuckDbModel.js.map +1 -0
  731. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  732. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  733. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  734. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  735. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  736. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  737. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  738. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  739. package/lib/stores/fixtures/CubeTradesModel.d.ts +33 -0
  740. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  741. package/lib/stores/fixtures/CubeTradesModel.js +227 -0
  742. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  743. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  744. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  745. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  746. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  747. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +215 -0
  748. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  749. package/lib/stores/source-picker/CubeDataProductTabState.js +766 -0
  750. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  751. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +163 -0
  752. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  753. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +668 -0
  754. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  755. package/lib/stores/source-picker/CubeIngestTabState.d.ts +127 -0
  756. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  757. package/lib/stores/source-picker/CubeIngestTabState.js +510 -0
  758. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  759. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +203 -0
  760. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  761. package/lib/stores/source-picker/CubeInlineModelTabState.js +734 -0
  762. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  763. package/lib/stores/source-picker/CubeProjectTabState.d.ts +77 -0
  764. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  765. package/lib/stores/source-picker/CubeProjectTabState.js +206 -0
  766. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  767. package/lib/stores/source-picker/CubeServiceTabState.d.ts +74 -0
  768. package/lib/stores/source-picker/CubeServiceTabState.d.ts.map +1 -0
  769. package/lib/stores/source-picker/CubeServiceTabState.js +216 -0
  770. package/lib/stores/source-picker/CubeServiceTabState.js.map +1 -0
  771. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +60 -0
  772. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  773. package/lib/stores/source-picker/CubeSourcePickerTab.js +45 -0
  774. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  775. package/package.json +12 -7
  776. package/src/__lib__/LegendCubeCommand.ts +12 -0
  777. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  778. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  779. package/src/__lib__/LegendCubeFunctionLabels.ts +41 -0
  780. package/src/__lib__/LegendCubeHelpText.ts +48 -2
  781. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  782. package/src/__lib__/LegendCubeLabels.ts +327 -12
  783. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  784. package/src/__lib__/LegendCubeProjectSourceLabels.ts +26 -0
  785. package/src/__lib__/LegendCubeServiceLabels.ts +41 -0
  786. package/src/__lib__/LegendCubeTesting.ts +8 -0
  787. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  788. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  789. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  790. package/src/__test-utils__/CubeEngineTestSupport.ts +40 -1
  791. package/src/__test-utils__/CubeExpressionTestUtils.ts +146 -0
  792. package/src/__test-utils__/CubeFunctionTestOutline.ts +78 -0
  793. package/src/__test-utils__/CubeLambdaCorpus.ts +137 -0
  794. package/src/__test-utils__/CubeOperationsTestUtils.ts +93 -18
  795. package/src/__test-utils__/CubePageTestUtils.tsx +69 -0
  796. package/src/__test-utils__/CubeTestApplication.ts +46 -2
  797. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  798. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  799. package/src/__test-utils__/FakeCubeEngine.ts +52 -1
  800. package/src/__test-utils__/FakeCubeIngestCatalog.ts +198 -0
  801. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  802. package/src/__test-utils__/FakeCubeServiceCatalog.ts +57 -0
  803. package/src/components/CubeAddItems.tsx +186 -0
  804. package/src/components/CubeDialogTheme.ts +25 -0
  805. package/src/components/CubeEditor.tsx +195 -140
  806. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  807. package/src/components/CubeFileMenu.tsx +127 -0
  808. package/src/components/CubeLambdaImportBanner.tsx +97 -0
  809. package/src/components/CubeNodeIcon.tsx +20 -0
  810. package/src/components/CubeSchemaColumnsTable.tsx +54 -0
  811. package/src/components/canvas/CubeCanvas.tsx +94 -20
  812. package/src/components/canvas/CubeCanvasContextMenu.tsx +64 -32
  813. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  814. package/src/components/canvas/CubeCanvasElements.ts +84 -5
  815. package/src/components/canvas/CubeCanvasLayout.ts +1 -1
  816. package/src/components/canvas/CubeCanvasNode.tsx +88 -43
  817. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  818. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  819. package/src/components/dev-settings/CubeDevSettings.tsx +154 -0
  820. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  821. package/src/components/editors/CubeColumnChecklist.tsx +136 -0
  822. package/src/components/editors/CubeColumnPicker.tsx +6 -3
  823. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  824. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  825. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  826. package/src/components/editors/CubeExpressionFilterEditor.tsx +193 -0
  827. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  828. package/src/components/editors/CubeFilterEditor.tsx +20 -1
  829. package/src/components/editors/CubeFunctionSourceEditor.tsx +140 -0
  830. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  831. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  832. package/src/components/editors/CubeJoinEditor.tsx +34 -135
  833. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  834. package/src/components/editors/CubeNodeEditorPanel.tsx +111 -36
  835. package/src/components/editors/CubeNodeEditorPopper.tsx +191 -0
  836. package/src/components/editors/CubeNodeEditorRegistry.ts +33 -0
  837. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  838. package/src/components/editors/CubePivotEditor.tsx +277 -0
  839. package/src/components/editors/CubeRenameEditor.tsx +10 -5
  840. package/src/components/editors/CubeRestrictEditor.tsx +9 -3
  841. package/src/components/editors/CubeServiceSourceEditor.tsx +77 -0
  842. package/src/components/editors/CubeSortEditor.tsx +20 -142
  843. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  844. package/src/components/editors/CubeSourceEditor.tsx +42 -30
  845. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  846. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  847. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  848. package/src/components/grid/CubeColumnFormatDialog.tsx +289 -0
  849. package/src/components/grid/CubeDrilldownBar.tsx +219 -0
  850. package/src/components/grid/CubeGridRegion.tsx +214 -60
  851. package/src/components/grid/CubeGridValues.ts +201 -1
  852. package/src/components/grid/CubeResultGrid.tsx +461 -43
  853. package/src/components/grid/CubeRunStatsPanel.tsx +156 -0
  854. package/src/components/grid/CubeServerSideGrid.tsx +200 -0
  855. package/src/components/grid/CubeSqlDialog.tsx +90 -0
  856. package/src/components/grid/CubeSqlFormat.ts +37 -0
  857. package/src/components/palette/CubePalette.tsx +70 -19
  858. package/src/components/show-pure/CubeShowPureDialog.tsx +19 -5
  859. package/src/components/source-picker/CubeDataProductTab.tsx +486 -0
  860. package/src/components/source-picker/CubeDirectConnectionTab.tsx +352 -0
  861. package/src/components/source-picker/CubeFunctionSteps.tsx +244 -0
  862. package/src/components/source-picker/CubeIngestTab.tsx +312 -0
  863. package/src/components/source-picker/CubeInlineModelTab.tsx +220 -0
  864. package/src/components/source-picker/CubePickerListItem.tsx +118 -0
  865. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  866. package/src/components/source-picker/CubeProjectTab.tsx +117 -0
  867. package/src/components/source-picker/CubeServiceTab.tsx +151 -0
  868. package/src/components/source-picker/CubeSourcePicker.tsx +99 -228
  869. package/src/components/source-picker/CubeTablePreview.tsx +49 -0
  870. package/src/components/spec-transfer/CubeImportPureDialog.tsx +122 -0
  871. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +22 -9
  872. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  873. package/src/graph-manager/CubeDataProduct.ts +150 -0
  874. package/src/graph-manager/CubeDataProductCatalog.ts +256 -0
  875. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  876. package/src/graph-manager/CubeEngine.ts +94 -2
  877. package/src/graph-manager/CubeEngineClientSettings.ts +64 -0
  878. package/src/graph-manager/CubeIngest.ts +159 -0
  879. package/src/graph-manager/CubeIngestCatalog.ts +202 -0
  880. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  881. package/src/graph-manager/CubeLakehouseRuntime.ts +43 -0
  882. package/src/graph-manager/CubeProject.ts +117 -0
  883. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  884. package/src/graph-manager/CubeService.ts +29 -0
  885. package/src/graph-manager/CubeServiceCatalog.ts +35 -0
  886. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +256 -2
  887. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  888. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +107 -0
  889. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  890. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  891. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  892. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  893. package/src/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.ts +312 -0
  894. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +227 -0
  895. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +174 -0
  896. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  897. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.ts +471 -0
  898. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +153 -18
  899. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +3 -1
  900. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  901. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +122 -0
  902. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  903. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +1083 -25
  904. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  905. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +152 -0
  906. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.ts +92 -0
  907. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  908. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  909. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  910. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -2
  911. package/src/index.ts +52 -2
  912. package/src/stores/CubeAddPlacement.ts +87 -0
  913. package/src/stores/CubeDataProductRecheck.ts +93 -0
  914. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  915. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  916. package/src/stores/CubeDevSettingsState.ts +117 -0
  917. package/src/stores/CubeEditorState.ts +1030 -92
  918. package/src/stores/CubeEngineChecks.ts +240 -0
  919. package/src/stores/CubeEntrySource.ts +278 -0
  920. package/src/stores/CubeExamples.ts +526 -0
  921. package/src/stores/CubeExamplesState.ts +110 -0
  922. package/src/stores/CubeExecutionState.ts +50 -62
  923. package/src/stores/CubeExportState.ts +196 -0
  924. package/src/stores/CubeExpressionFilterCheck.ts +218 -0
  925. package/src/stores/CubeExtendTyping.ts +251 -0
  926. package/src/stores/CubeFunctionRecheck.ts +97 -0
  927. package/src/stores/CubeGridFetcher.ts +302 -0
  928. package/src/stores/CubeGridQuickActions.ts +97 -20
  929. package/src/stores/CubeGridState.ts +450 -0
  930. package/src/stores/CubeHost.ts +119 -1
  931. package/src/stores/CubeIngestRecheck.ts +92 -0
  932. package/src/stores/CubeLambdaImportState.ts +434 -0
  933. package/src/stores/CubeLambdaSources.ts +390 -0
  934. package/src/stores/CubeNodeEditorState.ts +278 -9
  935. package/src/stores/CubeQueryRun.ts +169 -0
  936. package/src/stores/CubeRunStatsState.ts +91 -0
  937. package/src/stores/CubeRunningStepLambda.ts +62 -0
  938. package/src/stores/CubeServiceRecheck.ts +53 -0
  939. package/src/stores/CubeShowPureState.ts +57 -15
  940. package/src/stores/CubeSourcePickerState.ts +231 -325
  941. package/src/stores/CubeSpecTransferState.ts +2 -2
  942. package/src/stores/LocalModelCatalog.ts +27 -3
  943. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  944. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  945. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  946. package/src/stores/editors/CubeExpressionFilterDraft.ts +385 -0
  947. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  948. package/src/stores/editors/CubeFunctionDraft.ts +92 -0
  949. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  950. package/src/stores/editors/CubeJoinDraft.ts +130 -41
  951. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  952. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  953. package/src/stores/editors/CubeNodeDraftRegistry.ts +52 -2
  954. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  955. package/src/stores/editors/CubePivotDraft.ts +355 -0
  956. package/src/stores/editors/CubeSortDraft.ts +17 -54
  957. package/src/stores/editors/CubeSortRows.ts +84 -0
  958. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  959. package/src/stores/fixtures/CubeSalesDuckDbModel.ts +54 -0
  960. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  961. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  962. package/src/stores/fixtures/CubeTradesModel.ts +276 -0
  963. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  964. package/src/stores/source-picker/CubeDataProductTabState.ts +966 -0
  965. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +846 -0
  966. package/src/stores/source-picker/CubeIngestTabState.ts +625 -0
  967. package/src/stores/source-picker/CubeInlineModelTabState.ts +928 -0
  968. package/src/stores/source-picker/CubeProjectTabState.ts +250 -0
  969. package/src/stores/source-picker/CubeServiceTabState.ts +288 -0
  970. package/src/stores/source-picker/CubeSourcePickerTab.ts +79 -0
  971. package/tsconfig.json +139 -0
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { Schema } from '@finos/legend-cube';
18
+ import type { PlainObject } from '@finos/legend-shared';
19
+ import {
20
+ type CubeDataProductEnvironmentType,
21
+ type CubeDataProductProject,
22
+ isCubeSnapshotVersion,
23
+ } from './CubeDataProduct.js';
24
+ import type { CubeEngineError, CubeResultValue, NodeId } from './CubeEngine.js';
25
+
26
+ // The deployed data products a cube can read (PLAN §6.8), in Cube's own
27
+ // terms: what the catalog lists, what a product's deployed artifact says of
28
+ // its access points, and the schemas of saved sources. The host's
29
+ // implementation reads the marketplace or the lakehouse's lists, the depot
30
+ // and the artifacts; nothing here names their wire classes
31
+
32
+ /** A deployed data product the catalog lists, at the version it was deployed from */
33
+ export class CubeDataProductCandidate {
34
+ /** The catalog's id for the product, which its links use */
35
+ readonly id: string;
36
+ /** The deployment, as text */
37
+ readonly deploymentId: string;
38
+ /** The path of its DataProduct element */
39
+ readonly dataProductPath: string;
40
+ readonly title: string;
41
+ readonly description: string | undefined;
42
+ readonly groupId: string;
43
+ readonly artifactId: string;
44
+ /** The version it was deployed from, as the catalog gave it, snapshots included */
45
+ readonly versionId: string;
46
+ readonly environmentType: CubeDataProductEnvironmentType;
47
+ /** The producer's environment, for display */
48
+ readonly producerEnvironmentName: string | undefined;
49
+
50
+ constructor(fields: {
51
+ id: string;
52
+ deploymentId: string;
53
+ dataProductPath: string;
54
+ title: string;
55
+ description?: string | undefined;
56
+ groupId: string;
57
+ artifactId: string;
58
+ versionId: string;
59
+ environmentType: CubeDataProductEnvironmentType;
60
+ producerEnvironmentName?: string | undefined;
61
+ }) {
62
+ this.id = fields.id;
63
+ this.deploymentId = fields.deploymentId;
64
+ this.dataProductPath = fields.dataProductPath;
65
+ this.title = fields.title;
66
+ this.description = fields.description;
67
+ this.groupId = fields.groupId;
68
+ this.artifactId = fields.artifactId;
69
+ this.versionId = fields.versionId;
70
+ this.environmentType = fields.environmentType;
71
+ this.producerEnvironmentName = fields.producerEnvironmentName;
72
+ }
73
+
74
+ /** Whether it was deployed from a moving version, whose data may change under a cube */
75
+ get isSnapshot(): boolean {
76
+ return isCubeSnapshotVersion(this.versionId);
77
+ }
78
+ }
79
+
80
+ /** An access point of a deployed product, as its artifact describes it */
81
+ export class CubeAccessPoint {
82
+ readonly id: string;
83
+ readonly title: string | undefined;
84
+ readonly description: string | undefined;
85
+ /** Its columns, as the artifact types them; none when it can't be read */
86
+ readonly schema: Schema | undefined;
87
+ /** Why it can't be picked, e.g. it takes parameters; none when it can */
88
+ readonly disabledReason: string | undefined;
89
+ /** A few rows the artifact holds, by the schema's columns */
90
+ readonly sampleRows: readonly (readonly CubeResultValue[])[];
91
+
92
+ constructor(fields: {
93
+ id: string;
94
+ title?: string | undefined;
95
+ description?: string | undefined;
96
+ schema?: Schema | undefined;
97
+ disabledReason?: string | undefined;
98
+ sampleRows?: readonly (readonly CubeResultValue[])[];
99
+ }) {
100
+ this.id = fields.id;
101
+ this.title = fields.title;
102
+ this.description = fields.description;
103
+ this.schema = fields.schema;
104
+ this.disabledReason = fields.disabledReason;
105
+ this.sampleRows = fields.sampleRows ?? [];
106
+ }
107
+
108
+ get isPickable(): boolean {
109
+ return this.disabledReason === undefined && this.schema !== undefined;
110
+ }
111
+ }
112
+
113
+ export class CubeAccessPointGroup {
114
+ readonly id: string;
115
+ readonly title: string | undefined;
116
+ readonly accessPoints: readonly CubeAccessPoint[];
117
+ /** Open to everyone in the organization, as the host's marketplace marks such groups */
118
+ readonly isEnterprise: boolean;
119
+
120
+ constructor(fields: {
121
+ id: string;
122
+ title?: string | undefined;
123
+ accessPoints: readonly CubeAccessPoint[];
124
+ isEnterprise?: boolean | undefined;
125
+ }) {
126
+ this.id = fields.id;
127
+ this.title = fields.title;
128
+ this.accessPoints = fields.accessPoints;
129
+ this.isEnterprise = fields.isEnterprise ?? false;
130
+ }
131
+ }
132
+
133
+ /**
134
+ * The viewer's access to an access point group, as the marketplace shows
135
+ * it: open to everyone, granted, on its way through approval, refused, or
136
+ * never asked for
137
+ */
138
+ export enum CubeAccessPointGroupAccess {
139
+ ENTERPRISE = 'ENTERPRISE',
140
+ APPROVED = 'APPROVED',
141
+ SUBMITTED_FOR_APPROVALS = 'SUBMITTED_FOR_APPROVALS',
142
+ PENDING_MANAGER_APPROVAL = 'PENDING_MANAGER_APPROVAL',
143
+ PENDING_DATA_OWNER_APPROVAL = 'PENDING_DATA_OWNER_APPROVAL',
144
+ DENIED = 'DENIED',
145
+ NO_ACCESS = 'NO_ACCESS',
146
+ }
147
+
148
+ /** A deployed product's access points, by group */
149
+ export class CubeDataProductDescription {
150
+ readonly candidate: CubeDataProductCandidate;
151
+ readonly groups: readonly CubeAccessPointGroup[];
152
+
153
+ constructor(
154
+ candidate: CubeDataProductCandidate,
155
+ groups: readonly CubeAccessPointGroup[],
156
+ ) {
157
+ this.candidate = candidate;
158
+ this.groups = groups;
159
+ }
160
+ }
161
+
162
+ /** Where a saved source's access point is */
163
+ export interface CubeAccessPointLocation {
164
+ readonly dataProduct: string;
165
+ readonly accessPointGroup: string;
166
+ readonly accessPoint: string;
167
+ }
168
+
169
+ /** What a marketplace link points at */
170
+ export interface CubeMarketplaceLinkTarget {
171
+ readonly dataProductId: string;
172
+ readonly deploymentId: string;
173
+ readonly environmentType: CubeDataProductEnvironmentType;
174
+ readonly accessPointGroup?: string | undefined;
175
+ }
176
+
177
+ /**
178
+ * The deployed data products, for the source dialog and for re-checking
179
+ * saved sources: its own port, beside the `CubeEngine`, so hosts without
180
+ * data products need neither. Calls fail with a `CubeEngineError`: with no
181
+ * node for listing and describing, with the node's id for schemas
182
+ */
183
+ export interface CubeDataProductCatalog {
184
+ /** The deployment classes the host lists, the default first */
185
+ readonly environmentTypes: readonly CubeDataProductEnvironmentType[];
186
+
187
+ /**
188
+ * Whether `search` matches and ranks the text on a server. Otherwise the
189
+ * text is matched on the client, over the class's whole list
190
+ */
191
+ readonly searchesOnServer?: boolean | undefined;
192
+
193
+ /** The most products one server search gives: an answer this long may be cut short */
194
+ readonly searchLimit?: number | undefined;
195
+
196
+ /**
197
+ * Whether an answer `search` gave leaves out matches the server has, as
198
+ * its page says, counting rows the catalog dropped. Without it, an answer
199
+ * as long as `searchLimit` is taken to be cut short
200
+ */
201
+ readonly isCutShort?:
202
+ | ((answer: readonly CubeDataProductCandidate[]) => boolean)
203
+ | undefined;
204
+
205
+ /**
206
+ * The deployed products of a class whose title, id or description holds
207
+ * the text, or, searching on a server, the ones it matches, in its order
208
+ */
209
+ search(
210
+ search: {
211
+ text: string;
212
+ environmentType: CubeDataProductEnvironmentType;
213
+ },
214
+ signal?: AbortSignal,
215
+ ): Promise<readonly CubeDataProductCandidate[]>;
216
+
217
+ /** A product's access points, read from its artifact at the version it was deployed from */
218
+ describe(
219
+ candidate: CubeDataProductCandidate,
220
+ signal?: AbortSignal,
221
+ ): Promise<CubeDataProductDescription>;
222
+
223
+ /**
224
+ * The schema of each saved source, from the artifact at the cube's
225
+ * version: one entry per key, failures included. `fresh` reads the
226
+ * artifact again rather than what this page visit read, e.g. on Refresh
227
+ */
228
+ resolveSchemas(
229
+ project: CubeDataProductProject,
230
+ sources: ReadonlyMap<NodeId, CubeAccessPointLocation>,
231
+ options?: { readonly fresh?: boolean | undefined },
232
+ ): Promise<Map<NodeId, Schema | CubeEngineError>>;
233
+
234
+ /** The product's page in the marketplace, or none when the host has no marketplace */
235
+ getMarketplaceLink(target: CubeMarketplaceLinkTarget): string | undefined;
236
+
237
+ /**
238
+ * The viewer's access to each of the product's access point groups, by
239
+ * group id; a group it can't tell has no entry. Optional: a host without
240
+ * it shows no access
241
+ */
242
+ getAccess?(
243
+ candidate: CubeDataProductCandidate,
244
+ signal?: AbortSignal,
245
+ ): Promise<ReadonlyMap<string, CubeAccessPointGroupAccess>>;
246
+ }
247
+
248
+ /**
249
+ * Where a data product cube's engine reads the project its data products
250
+ * are in, as protocol JSON: by default the project at the version they were
251
+ * deployed from (a pointer); a host's own, e.g. Studio's workspace, whose
252
+ * data products aren't deployed. Fails with a `CubeEngineError`
253
+ */
254
+ export interface CubeDataProductModelSource {
255
+ getProjectModel(project: CubeDataProductProject): Promise<PlainObject>;
256
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { ModelContext } from '@finos/legend-cube';
18
+ import type {
19
+ CubeDirectConnection,
20
+ CubeExploredTable,
21
+ } from './CubeConnectionExplorer.js';
22
+
23
+ // A direct-connection cube (PLAN §6.8) saves its connection once, as its
24
+ // model, and its tables stay ordinary relational sources of one generated
25
+ // Database. The engine's implementation builds that Database, its connection
26
+ // and its runtime for each call, from the tables the call needs; their paths
27
+ // are fixed, so saved tables and the saved runtime always name them
28
+
29
+ /** The kind of a direct-connection cube's model: Cube's own, never an engine model kind */
30
+ export const CUBE_DIRECT_MODEL_TYPE = 'cubeDirectConnection';
31
+
32
+ /** The Database every table of a direct-connection cube belongs to */
33
+ export const CUBE_DIRECT_DATABASE_PATH = 'cube::direct::Database';
34
+ export const CUBE_DIRECT_CONNECTION_PATH = 'cube::direct::Connection';
35
+ /** The runtime a direct-connection cube runs with */
36
+ export const CUBE_DIRECT_RUNTIME_PATH = 'cube::direct::Runtime';
37
+
38
+ /** The model of a direct-connection cube */
39
+ export const createCubeDirectModel = (
40
+ connection: CubeDirectConnection,
41
+ ): ModelContext =>
42
+ // the connection is protocol JSON, so plain JSON
43
+ ({ _type: CUBE_DIRECT_MODEL_TYPE, connection }) as unknown as ModelContext;
44
+
45
+ /** The connection of a direct-connection cube's model; undefined for any other model */
46
+ export const getCubeDirectConnection = (
47
+ model: ModelContext,
48
+ ): CubeDirectConnection | undefined =>
49
+ model._type === CUBE_DIRECT_MODEL_TYPE &&
50
+ model.connection &&
51
+ typeof model.connection === 'object' &&
52
+ !Array.isArray(model.connection)
53
+ ? (model.connection as CubeDirectConnection)
54
+ : undefined;
55
+
56
+ /**
57
+ * The coordinates of a table read from the connection's database, every name
58
+ * quoted as the built Database stores it
59
+ */
60
+ export const getCubeDirectTableCoordinates = (
61
+ schema: string,
62
+ table: CubeExploredTable,
63
+ ): { database: string; schema: string; table: string } => ({
64
+ database: CUBE_DIRECT_DATABASE_PATH,
65
+ schema: `"${schema}"`,
66
+ table: table.storedName,
67
+ });
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { IR, ModelContext, Schema } from '@finos/legend-cube';
17
+ import type { IR, JsonObject, ModelContext, Schema } from '@finos/legend-cube';
18
18
 
19
19
  // The engine port (PLAN §8.7): what Cube asks of an engine, in Cube's own
20
20
  // terms. Only its Legend implementation, under `protocol/pure/v1/`, knows the
@@ -84,10 +84,45 @@ export interface CubeOutlineRuntime {
84
84
  readonly connections?: readonly CubeOutlineConnection[];
85
85
  }
86
86
 
87
- /** What a model offers the source picker: its databases and runtimes, as plain data */
87
+ /** A parameter of a function, as its signature declares it */
88
+ export interface CubeOutlineFunctionParameter {
89
+ readonly name: string;
90
+ /** Its type's path, as written, e.g. `Float` */
91
+ readonly type: string;
92
+ /** Its multiplicity, as written, e.g. `[1]`, `[0..1]` or `[*]` */
93
+ readonly multiplicity: string;
94
+ }
95
+
96
+ /** A column a function declares it returns, e.g. `ID:Integer` */
97
+ export interface CubeOutlineFunctionColumn {
98
+ readonly name: string;
99
+ readonly type: string;
100
+ }
101
+
102
+ /** A function of a model that returns a relation (PLAN §6.5), as plain data */
103
+ export interface CubeOutlineFunction {
104
+ /** The path the lambda calls it by, e.g. `sales::ordersAbove` */
105
+ readonly path: string;
106
+ /** The engine's full name, e.g. `sales::ordersAbove_Float_1__Relation_1_` */
107
+ readonly signature: string;
108
+ readonly parameters: readonly CubeOutlineFunctionParameter[];
109
+ readonly columns: readonly CubeOutlineFunctionColumn[];
110
+ /**
111
+ * The runtime it reads through, as its body's `from()` names it, directly
112
+ * or through a function it calls; none when it leaves the runtime to its
113
+ * caller
114
+ */
115
+ readonly runtime?: string | undefined;
116
+ /** Why it can't be added, e.g. a parameter Cube can't take a value for */
117
+ readonly problem?: string | undefined;
118
+ }
119
+
120
+ /** What a model offers the source picker: its databases, runtimes and functions, as plain data */
88
121
  export interface CubeModelOutline {
89
122
  readonly databases: readonly CubeOutlineDatabase[];
90
123
  readonly runtimes: readonly CubeOutlineRuntime[];
124
+ /** Its functions that return a relation; optional, as an outline from before them has none */
125
+ readonly functions?: readonly CubeOutlineFunction[] | undefined;
91
126
  }
92
127
 
93
128
  export enum CubeEngineErrorKind {
@@ -101,6 +136,30 @@ export enum CubeEngineErrorKind {
101
136
  NETWORK = 'network',
102
137
  }
103
138
 
139
+ /**
140
+ * Where in a text the engine places a problem: the source id the text was
141
+ * parsed under, and its 1-based first and last lines and columns, the last
142
+ * column included (an Extend column's expression, PLAN §11.7)
143
+ */
144
+ export interface CubeSourceLocation {
145
+ readonly sourceId: string;
146
+ readonly startLine: number;
147
+ readonly startColumn: number;
148
+ readonly endLine: number;
149
+ readonly endColumn: number;
150
+ }
151
+
152
+ /**
153
+ * An expression's text as the engine's JSON (PLAN §11.7), its number
154
+ * literals as their digit strings: as a column stores it, with no source
155
+ * information, and as the engine located it in the text, so a later error
156
+ * can point into the text
157
+ */
158
+ export interface CubeParsedExpression {
159
+ readonly lambda: JsonObject;
160
+ readonly located: JsonObject;
161
+ }
162
+
104
163
  /**
105
164
  * An engine failure, placed on the node it concerns: the node a stamp in the
106
165
  * error points to, else the source being typed or the node being run.
@@ -114,12 +173,15 @@ export class CubeEngineError extends Error {
114
173
  readonly firstLine: string;
115
174
  /** The engine's whole message, without its Java trace, shown in the panel */
116
175
  readonly detail: string;
176
+ /** Where in a text the error is, when the text was parsed with its locations */
177
+ readonly location: CubeSourceLocation | undefined;
117
178
 
118
179
  constructor(
119
180
  kind: CubeEngineErrorKind,
120
181
  detail: string,
121
182
  nodeId?: NodeId,
122
183
  role?: string,
184
+ location?: CubeSourceLocation,
123
185
  ) {
124
186
  const firstLine = detail.split('\n', 1)[0]?.trim() ?? '';
125
187
  super(firstLine);
@@ -129,6 +191,7 @@ export class CubeEngineError extends Error {
129
191
  this.firstLine = firstLine;
130
192
  this.nodeId = nodeId;
131
193
  this.role = role;
194
+ this.location = location;
132
195
  }
133
196
  }
134
197
 
@@ -164,6 +227,35 @@ export interface CubeEngine {
164
227
  lambda: IR,
165
228
  options?: { abortController?: AbortController | undefined },
166
229
  ): Promise<CubeResult>;
230
+ /**
231
+ * Runs an execution lambda and gives its rows as CSV text (PLAN §11.10):
232
+ * the engine's own, a header row first, every value as the engine writes
233
+ * it; rejects with a `CubeEngineError`
234
+ */
235
+ exportCsv(
236
+ model: ModelContext,
237
+ lambda: IR,
238
+ options?: { abortController?: AbortController | undefined },
239
+ ): Promise<string>;
167
240
  /** The Pure text of a lambda, for display only: never parsed back */
168
241
  renderPure(lambda: IR): Promise<string>;
242
+ /**
243
+ * A lambda as the engine receives it, pretty-printed, its numbers kept
244
+ * exact (PLAN §11.16): for a viewer to copy while debugging a run
245
+ */
246
+ serializeLambda(lambda: IR): string;
247
+ /**
248
+ * An Extend column's expression as the engine's JSON (PLAN §11.7), located
249
+ * under the source id; rejects with a `CubeEngineError` placed in the text
250
+ */
251
+ parseExpression(
252
+ code: string,
253
+ sourceId: string,
254
+ ): Promise<CubeParsedExpression>;
255
+ /**
256
+ * Plans an execution lambda for its runtime's database, as a run would,
257
+ * without running it: some expressions type, then fail when planned (PLAN
258
+ * §11.7). Rejects with a `CubeEngineError`
259
+ */
260
+ planLambda(model: ModelContext, lambda: IR): Promise<void>;
169
261
  }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /** What Dev Settings changes on an engine client: the engine server client's own setters */
18
+ export interface CubeEngineClientControls {
19
+ setBaseUrl(url: string | undefined): void;
20
+ setCompression(enabled: boolean): void;
21
+ }
22
+
23
+ /**
24
+ * The settings every engine client of Cube shares (PLAN §11.16): the
25
+ * engine's URL and whether requests are compressed. The engine, the
26
+ * connection explorer and the catalogs each have their own client, built
27
+ * from the same configuration; each registers here, so Dev Settings changes
28
+ * them all at once. A change takes effect from the next request.
29
+ */
30
+ export class CubeEngineClientSettings {
31
+ /** The URL the host configured, to go back to */
32
+ readonly defaultBaseUrl: string | undefined;
33
+ baseUrl: string | undefined;
34
+ requestCompression: boolean;
35
+ private readonly clients: CubeEngineClientControls[] = [];
36
+
37
+ constructor(config: {
38
+ readonly baseUrl?: string | undefined;
39
+ readonly enableCompression?: boolean | undefined;
40
+ }) {
41
+ this.defaultBaseUrl = config.baseUrl;
42
+ this.baseUrl = config.baseUrl;
43
+ this.requestCompression = Boolean(config.enableCompression);
44
+ }
45
+
46
+ /** Adds a client built from the same configuration, given the settings changed since */
47
+ register(client: CubeEngineClientControls): void {
48
+ this.clients.push(client);
49
+ if (this.baseUrl !== this.defaultBaseUrl) {
50
+ client.setBaseUrl(this.baseUrl);
51
+ }
52
+ client.setCompression(this.requestCompression);
53
+ }
54
+
55
+ setBaseUrl(url: string | undefined): void {
56
+ this.baseUrl = url;
57
+ this.clients.forEach((client) => client.setBaseUrl(url));
58
+ }
59
+
60
+ setRequestCompression(enabled: boolean): void {
61
+ this.requestCompression = enabled;
62
+ this.clients.forEach((client) => client.setCompression(enabled));
63
+ }
64
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { ModelContext } from '@finos/legend-cube';
18
+ import { CubeDataProductEnvironmentType } from './CubeDataProduct.js';
19
+
20
+ // An ingest cube (PLAN §6.7) saves, as its model, what Data Cube's producer
21
+ // source picks before a definition: the class (production or production
22
+ // parallel), the producer deployment and, once picked, the warehouse. Its
23
+ // sources save each definition's URN, path and data set. The engine's
24
+ // implementation builds, for each call, a model of the definitions the call
25
+ // reads, as the ingest server serves them, and for a run a lakehouse runtime
26
+ // at a fixed path, which the saved runtime names
27
+
28
+ export const CUBE_INGEST_MODEL_TYPE = 'cubeIngest';
29
+
30
+ export const CUBE_INGEST_RUNTIME_PATH = 'cube::ingest::Runtime';
31
+
32
+ /** What an ingest cube runs on, as its model saves it */
33
+ export interface CubeIngestSettings {
34
+ readonly environmentType: CubeDataProductEnvironmentType;
35
+ /** The producer deployment whose definitions the cube reads, as text */
36
+ readonly producerDeploymentId: string;
37
+ /** The warehouse the cube runs on; none until one is picked */
38
+ readonly warehouse?: string | undefined;
39
+ }
40
+
41
+ const ENVIRONMENT_TYPES = Object.values(
42
+ CubeDataProductEnvironmentType,
43
+ ) as string[];
44
+
45
+ const isNonEmptyString = (value: unknown): value is string =>
46
+ typeof value === 'string' && value.length > 0;
47
+
48
+ export const createCubeIngestModel = (
49
+ settings: CubeIngestSettings,
50
+ ): ModelContext =>
51
+ ({
52
+ _type: CUBE_INGEST_MODEL_TYPE,
53
+ environmentType: settings.environmentType,
54
+ producerDeploymentId: settings.producerDeploymentId,
55
+ ...(settings.warehouse !== undefined
56
+ ? { warehouse: settings.warehouse }
57
+ : {}),
58
+ }) as ModelContext;
59
+
60
+ export const isCubeIngestModel = (model: ModelContext): boolean =>
61
+ model._type === CUBE_INGEST_MODEL_TYPE;
62
+
63
+ /** The same model, running on another warehouse */
64
+ export const withCubeIngestWarehouse = (
65
+ model: ModelContext,
66
+ warehouse: string,
67
+ ): ModelContext => ({ ...model, warehouse });
68
+
69
+ /** What's wrong with an ingest model, e.g. one saved by a later Cube: nothing for one Cube can use */
70
+ export const checkCubeIngestModel = (
71
+ model: ModelContext,
72
+ ): readonly string[] => {
73
+ const problems: string[] = [];
74
+ if (!ENVIRONMENT_TYPES.includes(model.environmentType as string)) {
75
+ problems.push(
76
+ `Cube doesn't know the environment type "${String(model.environmentType)}"`,
77
+ );
78
+ }
79
+ if (
80
+ typeof model.producerDeploymentId !== 'string' ||
81
+ !/^\d+$/u.test(model.producerDeploymentId)
82
+ ) {
83
+ problems.push(`The cube's producer deployment must be a deployment id`);
84
+ }
85
+ if (model.warehouse !== undefined && !isNonEmptyString(model.warehouse)) {
86
+ problems.push(`The cube's warehouse must be a name`);
87
+ }
88
+ return problems;
89
+ };
90
+
91
+ /** An ingest model's settings, when Cube can use it */
92
+ export const getCubeIngestSettings = (
93
+ model: ModelContext,
94
+ ): CubeIngestSettings | undefined =>
95
+ isCubeIngestModel(model) && !checkCubeIngestModel(model).length
96
+ ? {
97
+ environmentType:
98
+ model.environmentType as CubeDataProductEnvironmentType,
99
+ producerDeploymentId: model.producerDeploymentId as string,
100
+ warehouse: model.warehouse as string | undefined,
101
+ }
102
+ : undefined;
103
+
104
+ /** The class a URN's environment segment names */
105
+ const URN_ENVIRONMENT_TYPES: Readonly<
106
+ Record<string, CubeDataProductEnvironmentType>
107
+ > = {
108
+ prod: CubeDataProductEnvironmentType.PRODUCTION,
109
+ 'prod-parallel': CubeDataProductEnvironmentType.PRODUCTION_PARALLEL,
110
+ };
111
+
112
+ /** What an SDLC-deployed definition's URN names: its class, its project and its path */
113
+ export interface CubeIngestUrn {
114
+ readonly environmentType: CubeDataProductEnvironmentType;
115
+ readonly groupId: string;
116
+ readonly artifactId: string;
117
+ /** The IngestDefinition element's path */
118
+ readonly definition: string;
119
+ }
120
+
121
+ /** The URN's environment segment of each class */
122
+ const URN_ENVIRONMENTS: Readonly<
123
+ Record<CubeDataProductEnvironmentType, string>
124
+ > = {
125
+ [CubeDataProductEnvironmentType.PRODUCTION]: 'prod',
126
+ [CubeDataProductEnvironmentType.PRODUCTION_PARALLEL]: 'prod-parallel',
127
+ };
128
+
129
+ /**
130
+ * The URN of a definition deployed from SDLC, as `parseCubeIngestUrn` reads
131
+ * it: for a host naming definitions of its own, e.g. Studio's workspace
132
+ */
133
+ export const formatCubeIngestUrn = (urn: CubeIngestUrn): string =>
134
+ `urn:lakehouse:${URN_ENVIRONMENTS[urn.environmentType]}:ingest:definition:alloy-git:${urn.groupId}~${urn.artifactId}~${urn.definition}`;
135
+
136
+ const SDLC_DEPLOYED_URN =
137
+ /^urn:lakehouse:(?<environment>[^:]+):ingest:definition:alloy-git:(?<groupId>[^~]+)~(?<artifactId>[^~]+)~(?<definition>.+)$/u;
138
+
139
+ /**
140
+ * A deployed definition's URN, when it was deployed from SDLC
141
+ * (`urn:lakehouse:<prod|prod-parallel>:ingest:definition:alloy-git:<group>~<artifact>~<path>`);
142
+ * nothing for an ad hoc one (`rest-api:`), another class, or text that isn't one
143
+ */
144
+ export const parseCubeIngestUrn = (urn: string): CubeIngestUrn | undefined => {
145
+ const parts = SDLC_DEPLOYED_URN.exec(urn)?.groups;
146
+ const environment = parts?.environment;
147
+ const environmentType =
148
+ environment && Object.hasOwn(URN_ENVIRONMENT_TYPES, environment)
149
+ ? URN_ENVIRONMENT_TYPES[environment]
150
+ : undefined;
151
+ return parts && environmentType
152
+ ? {
153
+ environmentType,
154
+ groupId: parts.groupId ?? '',
155
+ artifactId: parts.artifactId ?? '',
156
+ definition: parts.definition ?? '',
157
+ }
158
+ : undefined;
159
+ };