@finos/legend-cube-builder 0.0.3 → 0.0.4

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 (691) hide show
  1. package/README.md +52 -19
  2. package/docs/adding-an-operation.md +102 -13
  3. package/docs/hosting.md +82 -4
  4. package/docs/testing.md +114 -9
  5. package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
  6. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
  7. package/lib/__lib__/LegendCubeCommand.js +5 -0
  8. package/lib/__lib__/LegendCubeCommand.js.map +1 -1
  9. package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
  10. package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
  11. package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
  12. package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
  13. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
  14. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
  15. package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
  16. package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
  17. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
  18. package/lib/__lib__/LegendCubeHelpText.js +12 -2
  19. package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
  20. package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
  21. package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
  22. package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
  23. package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
  24. package/lib/__lib__/LegendCubeLabels.d.ts +76 -3
  25. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  26. package/lib/__lib__/LegendCubeLabels.js +102 -4
  27. package/lib/__lib__/LegendCubeLabels.js.map +1 -1
  28. package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
  29. package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
  30. package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
  31. package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
  32. package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
  33. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
  34. package/lib/__lib__/LegendCubeTesting.js +1 -0
  35. package/lib/__lib__/LegendCubeTesting.js.map +1 -1
  36. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
  37. package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
  38. package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
  39. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
  40. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
  41. package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
  42. package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
  43. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
  44. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
  45. package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
  46. package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
  47. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +12 -0
  48. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  49. package/lib/__test-utils__/CubeEngineTestSupport.js +21 -0
  50. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
  51. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
  52. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
  53. package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
  54. package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
  55. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +25 -0
  56. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -1
  57. package/lib/__test-utils__/CubeOperationsTestUtils.js +56 -10
  58. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -1
  59. package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
  60. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
  61. package/lib/__test-utils__/CubePageTestUtils.js +25 -1
  62. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
  63. package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
  64. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
  65. package/lib/__test-utils__/CubeTestApplication.js +9 -1
  66. package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
  67. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
  68. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
  69. package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
  70. package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
  71. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
  72. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
  73. package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
  74. package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
  75. package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
  76. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
  77. package/lib/__test-utils__/FakeCubeEngine.js +14 -1
  78. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
  79. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
  80. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
  81. package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
  82. package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
  83. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
  84. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
  85. package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
  86. package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
  87. package/lib/components/CubeAddItems.d.ts +35 -0
  88. package/lib/components/CubeAddItems.d.ts.map +1 -0
  89. package/lib/components/CubeAddItems.js +82 -0
  90. package/lib/components/CubeAddItems.js.map +1 -0
  91. package/lib/components/CubeEditor.d.ts +5 -1
  92. package/lib/components/CubeEditor.d.ts.map +1 -1
  93. package/lib/components/CubeEditor.js +33 -13
  94. package/lib/components/CubeEditor.js.map +1 -1
  95. package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
  96. package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
  97. package/lib/components/CubeEntrySourceBanner.js +32 -0
  98. package/lib/components/CubeEntrySourceBanner.js.map +1 -0
  99. package/lib/components/CubeNodeIcon.d.ts.map +1 -1
  100. package/lib/components/CubeNodeIcon.js +8 -1
  101. package/lib/components/CubeNodeIcon.js.map +1 -1
  102. package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
  103. package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
  104. package/lib/components/CubeSchemaColumnsTable.js +6 -0
  105. package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
  106. package/lib/components/canvas/CubeCanvas.d.ts +4 -3
  107. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
  108. package/lib/components/canvas/CubeCanvas.js +31 -12
  109. package/lib/components/canvas/CubeCanvas.js.map +1 -1
  110. package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
  111. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
  112. package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
  113. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
  114. package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
  115. package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
  116. package/lib/components/canvas/CubeCanvasDnd.js +14 -9
  117. package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
  118. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  119. package/lib/components/canvas/CubeCanvasElements.js +6 -3
  120. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  121. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  122. package/lib/components/canvas/CubeCanvasNode.js +30 -20
  123. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  124. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  125. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  126. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  127. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  128. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  129. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  130. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  131. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  132. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  133. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  134. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  135. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  136. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  137. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  138. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  139. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  140. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  141. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  142. package/lib/components/editors/CubeConcatEditor.js +147 -0
  143. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  144. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  145. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  146. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  147. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  148. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  149. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  150. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  151. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  152. package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
  153. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  154. package/lib/components/editors/CubeExtendEditor.js +86 -0
  155. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  156. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  157. package/lib/components/editors/CubeFilterEditor.js +3 -3
  158. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  159. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  160. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  161. package/lib/components/editors/CubeGroupEditor.js +70 -0
  162. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  163. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  164. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  165. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  166. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  167. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  168. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  169. package/lib/components/editors/CubeJoinEditor.js +7 -37
  170. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  171. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  172. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  173. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  174. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  175. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  176. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  177. package/lib/components/editors/CubeNodeEditorPanel.js +51 -13
  178. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  179. package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
  180. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  181. package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
  182. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  183. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  184. package/lib/components/editors/CubeNodeEditorRegistry.js +15 -1
  185. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  186. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  187. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  188. package/lib/components/editors/CubePartitionEditor.js +93 -0
  189. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  190. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -1
  191. package/lib/components/editors/CubeRenameEditor.js +6 -4
  192. package/lib/components/editors/CubeRenameEditor.js.map +1 -1
  193. package/lib/components/editors/CubeRestrictEditor.js +1 -1
  194. package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
  195. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -1
  196. package/lib/components/editors/CubeSortEditor.js +10 -37
  197. package/lib/components/editors/CubeSortEditor.js.map +1 -1
  198. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  199. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  200. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  201. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  202. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  203. package/lib/components/editors/CubeSourceEditor.js +18 -5
  204. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  205. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  206. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  207. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  208. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  209. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  210. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  211. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  212. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  213. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  214. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  215. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  216. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  217. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  218. package/lib/components/grid/CubeGridRegion.js +19 -8
  219. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  220. package/lib/components/grid/CubeGridValues.d.ts +16 -0
  221. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  222. package/lib/components/grid/CubeGridValues.js +44 -0
  223. package/lib/components/grid/CubeGridValues.js.map +1 -1
  224. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  225. package/lib/components/grid/CubeResultGrid.js +14 -2
  226. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  227. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  228. package/lib/components/palette/CubePalette.js +23 -12
  229. package/lib/components/palette/CubePalette.js.map +1 -1
  230. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  231. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  232. package/lib/components/source-picker/CubeDataProductTab.js +102 -0
  233. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  234. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  235. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  236. package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
  237. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  238. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  239. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  240. package/lib/components/source-picker/CubeIngestTab.js +66 -0
  241. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  242. package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
  243. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  244. package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
  245. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  246. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  247. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  248. package/lib/components/source-picker/CubePickerStep.js +23 -0
  249. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  250. package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
  251. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  252. package/lib/components/source-picker/CubeProjectTab.js +50 -0
  253. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  254. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  255. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  256. package/lib/components/source-picker/CubeSourcePicker.js +20 -58
  257. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  258. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
  259. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  260. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  261. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  262. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  263. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  264. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  265. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  266. package/lib/graph-manager/CubeDataProduct.js +102 -0
  267. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  268. package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
  269. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  270. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  271. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  272. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  273. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  274. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  275. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  276. package/lib/graph-manager/CubeEngine.d.ts +37 -2
  277. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  278. package/lib/graph-manager/CubeEngine.js +4 -1
  279. package/lib/graph-manager/CubeEngine.js.map +1 -1
  280. package/lib/graph-manager/CubeIngest.d.ts +50 -0
  281. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  282. package/lib/graph-manager/CubeIngest.js +88 -0
  283. package/lib/graph-manager/CubeIngest.js.map +1 -0
  284. package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
  285. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  286. package/lib/graph-manager/CubeIngestCatalog.js +80 -0
  287. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  288. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  289. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  290. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  291. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  292. package/lib/graph-manager/CubeProject.d.ts +41 -0
  293. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  294. package/lib/graph-manager/CubeProject.js +84 -0
  295. package/lib/graph-manager/CubeProject.js.map +1 -0
  296. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  297. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  298. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  299. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  300. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
  301. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  302. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
  303. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  304. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  305. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  306. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  307. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  308. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
  309. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  310. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
  311. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  312. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  313. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  314. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  315. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  316. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  317. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  318. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  319. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  320. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  321. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  322. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  323. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  324. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  325. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  326. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  327. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  328. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  329. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
  330. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  331. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
  332. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  333. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
  334. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  335. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  336. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  337. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  338. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  339. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  340. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
  341. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  342. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  343. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  344. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  345. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  346. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
  347. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  348. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
  349. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  350. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  351. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  352. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  353. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  354. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
  355. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  356. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
  357. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  358. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  359. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  360. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  361. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  362. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  363. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  364. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
  365. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  366. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  367. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  368. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  369. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  370. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  371. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  372. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  373. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  374. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  375. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  376. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  377. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  378. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  379. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  380. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +27 -1
  381. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  382. package/lib/index.css +2 -2
  383. package/lib/index.css.map +1 -1
  384. package/lib/index.d.ts +11 -1
  385. package/lib/index.d.ts.map +1 -1
  386. package/lib/index.js +10 -1
  387. package/lib/index.js.map +1 -1
  388. package/lib/stores/CubeAddPlacement.d.ts +32 -0
  389. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  390. package/lib/stores/CubeAddPlacement.js +40 -0
  391. package/lib/stores/CubeAddPlacement.js.map +1 -0
  392. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  393. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  394. package/lib/stores/CubeDataProductRecheck.js +54 -0
  395. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  396. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  397. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  398. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  399. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  400. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  401. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  402. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  403. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  404. package/lib/stores/CubeEditorState.d.ts +100 -16
  405. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  406. package/lib/stores/CubeEditorState.js +347 -47
  407. package/lib/stores/CubeEditorState.js.map +1 -1
  408. package/lib/stores/CubeEntrySource.d.ts +78 -0
  409. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  410. package/lib/stores/CubeEntrySource.js +200 -0
  411. package/lib/stores/CubeEntrySource.js.map +1 -0
  412. package/lib/stores/CubeExamples.d.ts +43 -0
  413. package/lib/stores/CubeExamples.d.ts.map +1 -0
  414. package/lib/stores/CubeExamples.js +296 -0
  415. package/lib/stores/CubeExamples.js.map +1 -0
  416. package/lib/stores/CubeExamplesState.d.ts +45 -0
  417. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  418. package/lib/stores/CubeExamplesState.js +81 -0
  419. package/lib/stores/CubeExamplesState.js.map +1 -0
  420. package/lib/stores/CubeExecutionState.d.ts +6 -2
  421. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  422. package/lib/stores/CubeExecutionState.js +15 -5
  423. package/lib/stores/CubeExecutionState.js.map +1 -1
  424. package/lib/stores/CubeExtendTyping.d.ts +72 -0
  425. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  426. package/lib/stores/CubeExtendTyping.js +176 -0
  427. package/lib/stores/CubeExtendTyping.js.map +1 -0
  428. package/lib/stores/CubeGridQuickActions.d.ts +14 -6
  429. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
  430. package/lib/stores/CubeGridQuickActions.js +53 -15
  431. package/lib/stores/CubeGridQuickActions.js.map +1 -1
  432. package/lib/stores/CubeHost.d.ts +32 -1
  433. package/lib/stores/CubeHost.d.ts.map +1 -1
  434. package/lib/stores/CubeHost.js +21 -1
  435. package/lib/stores/CubeHost.js.map +1 -1
  436. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  437. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  438. package/lib/stores/CubeIngestRecheck.js +53 -0
  439. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  440. package/lib/stores/CubeNodeEditorState.d.ts +101 -5
  441. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  442. package/lib/stores/CubeNodeEditorState.js +221 -10
  443. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  444. package/lib/stores/CubeShowPureState.d.ts +5 -2
  445. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  446. package/lib/stores/CubeShowPureState.js +7 -4
  447. package/lib/stores/CubeShowPureState.js.map +1 -1
  448. package/lib/stores/CubeSourcePickerState.d.ts +54 -65
  449. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  450. package/lib/stores/CubeSourcePickerState.js +155 -276
  451. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  452. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  453. package/lib/stores/CubeSpecTransferState.js +2 -2
  454. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  455. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  456. package/lib/stores/LocalModelCatalog.js +17 -3
  457. package/lib/stores/LocalModelCatalog.js.map +1 -1
  458. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  459. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  460. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  461. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  462. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  463. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  464. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  465. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  466. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  467. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  468. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  469. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  470. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  471. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  472. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  473. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  474. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  475. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  476. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  477. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  478. package/lib/stores/editors/CubeJoinDraft.d.ts +9 -10
  479. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  480. package/lib/stores/editors/CubeJoinDraft.js +92 -21
  481. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  482. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  483. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  484. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  485. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  486. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  487. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  488. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  489. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  490. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  491. package/lib/stores/editors/CubeNodeDraftRegistry.js +20 -1
  492. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  493. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  494. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  495. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  496. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  497. package/lib/stores/editors/CubeSortDraft.d.ts +2 -10
  498. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -1
  499. package/lib/stores/editors/CubeSortDraft.js +9 -35
  500. package/lib/stores/editors/CubeSortDraft.js.map +1 -1
  501. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  502. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  503. package/lib/stores/editors/CubeSortRows.js +50 -0
  504. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  505. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  506. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  507. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  508. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  509. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  510. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  511. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  512. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  513. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  514. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  515. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  516. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  517. package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
  518. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  519. package/lib/stores/fixtures/CubeTradesModel.js +197 -0
  520. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  521. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  522. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  523. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  524. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  525. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
  526. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  527. package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
  528. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  529. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
  530. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  531. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
  532. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  533. package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
  534. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  535. package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
  536. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  537. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
  538. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  539. package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
  540. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  541. package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
  542. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  543. package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
  544. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  545. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
  546. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  547. package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
  548. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  549. package/package.json +10 -6
  550. package/src/__lib__/LegendCubeCommand.ts +5 -0
  551. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  552. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  553. package/src/__lib__/LegendCubeHelpText.ts +25 -1
  554. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  555. package/src/__lib__/LegendCubeLabels.ts +162 -4
  556. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  557. package/src/__lib__/LegendCubeTesting.ts +1 -0
  558. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  559. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  560. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  561. package/src/__test-utils__/CubeEngineTestSupport.ts +38 -0
  562. package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
  563. package/src/__test-utils__/CubeOperationsTestUtils.ts +93 -18
  564. package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
  565. package/src/__test-utils__/CubeTestApplication.ts +21 -2
  566. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  567. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  568. package/src/__test-utils__/FakeCubeEngine.ts +25 -1
  569. package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
  570. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  571. package/src/components/CubeAddItems.tsx +179 -0
  572. package/src/components/CubeEditor.tsx +73 -44
  573. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  574. package/src/components/CubeNodeIcon.tsx +13 -0
  575. package/src/components/CubeSchemaColumnsTable.tsx +49 -0
  576. package/src/components/canvas/CubeCanvas.tsx +49 -14
  577. package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
  578. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  579. package/src/components/canvas/CubeCanvasElements.ts +8 -2
  580. package/src/components/canvas/CubeCanvasNode.tsx +61 -43
  581. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  582. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  583. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  584. package/src/components/editors/CubeColumnChecklist.tsx +130 -0
  585. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  586. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  587. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  588. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  589. package/src/components/editors/CubeFilterEditor.tsx +7 -0
  590. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  591. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  592. package/src/components/editors/CubeJoinEditor.tsx +12 -132
  593. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  594. package/src/components/editors/CubeNodeEditorPanel.tsx +91 -28
  595. package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
  596. package/src/components/editors/CubeNodeEditorRegistry.ts +21 -0
  597. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  598. package/src/components/editors/CubeRenameEditor.tsx +10 -5
  599. package/src/components/editors/CubeRestrictEditor.tsx +1 -1
  600. package/src/components/editors/CubeSortEditor.tsx +20 -142
  601. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  602. package/src/components/editors/CubeSourceEditor.tsx +42 -30
  603. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  604. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  605. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  606. package/src/components/grid/CubeGridRegion.tsx +48 -10
  607. package/src/components/grid/CubeGridValues.ts +55 -0
  608. package/src/components/grid/CubeResultGrid.tsx +24 -8
  609. package/src/components/palette/CubePalette.tsx +33 -15
  610. package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
  611. package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
  612. package/src/components/source-picker/CubeIngestTab.tsx +232 -0
  613. package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
  614. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  615. package/src/components/source-picker/CubeProjectTab.tsx +114 -0
  616. package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
  617. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
  618. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  619. package/src/graph-manager/CubeDataProduct.ts +150 -0
  620. package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
  621. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  622. package/src/graph-manager/CubeEngine.ts +43 -1
  623. package/src/graph-manager/CubeIngest.ts +144 -0
  624. package/src/graph-manager/CubeIngestCatalog.ts +169 -0
  625. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  626. package/src/graph-manager/CubeProject.ts +117 -0
  627. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  628. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
  629. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  630. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
  631. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  632. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  633. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  634. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  635. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
  636. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
  637. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  638. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
  639. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  640. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
  641. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  642. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
  643. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  644. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
  645. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  646. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  647. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  648. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +42 -1
  649. package/src/index.ts +20 -0
  650. package/src/stores/CubeAddPlacement.ts +67 -0
  651. package/src/stores/CubeDataProductRecheck.ts +93 -0
  652. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  653. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  654. package/src/stores/CubeEditorState.ts +511 -63
  655. package/src/stores/CubeEntrySource.ts +278 -0
  656. package/src/stores/CubeExamples.ts +457 -0
  657. package/src/stores/CubeExamplesState.ts +108 -0
  658. package/src/stores/CubeExecutionState.ts +24 -5
  659. package/src/stores/CubeExtendTyping.ts +291 -0
  660. package/src/stores/CubeGridQuickActions.ts +69 -14
  661. package/src/stores/CubeHost.ts +71 -1
  662. package/src/stores/CubeIngestRecheck.ts +92 -0
  663. package/src/stores/CubeNodeEditorState.ts +278 -9
  664. package/src/stores/CubeShowPureState.ts +7 -4
  665. package/src/stores/CubeSourcePickerState.ts +160 -330
  666. package/src/stores/CubeSpecTransferState.ts +2 -2
  667. package/src/stores/LocalModelCatalog.ts +22 -3
  668. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  669. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  670. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  671. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  672. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  673. package/src/stores/editors/CubeJoinDraft.ts +130 -41
  674. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  675. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  676. package/src/stores/editors/CubeNodeDraftRegistry.ts +25 -0
  677. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  678. package/src/stores/editors/CubeSortDraft.ts +17 -54
  679. package/src/stores/editors/CubeSortRows.ts +84 -0
  680. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  681. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  682. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  683. package/src/stores/fixtures/CubeTradesModel.ts +241 -0
  684. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  685. package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
  686. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
  687. package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
  688. package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
  689. package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
  690. package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
  691. package/tsconfig.json +89 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeDifferenceDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeDifferenceDraft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
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
+ import { type CubeType, Extend, type ExtendColumn, type ExtendTyping, type JsonObject, type QueryNode, type Schema } from '@finos/legend-cube';
17
+ import type { GeneratorFn } from '@finos/legend-shared';
18
+ import { type CubeSourceLocation } from '../../graph-manager/CubeEngine.js';
19
+ import type { CubeEditorState } from '../CubeEditorState.js';
20
+ import { CubeNodeDraft } from './CubeNodeDraft.js';
21
+ /** What the engine made of a row's code the last time it was validated */
22
+ export interface CubeExtendCheckedCode {
23
+ readonly code: string;
24
+ readonly lambda: JsonObject;
25
+ readonly located: JsonObject;
26
+ }
27
+ /** A row's problem from the last Validate: the engine's message, where it is in the code, and a hint */
28
+ export interface CubeExtendRowProblem {
29
+ readonly message: string;
30
+ readonly location?: CubeSourceLocation | undefined;
31
+ readonly hint?: string | undefined;
32
+ }
33
+ /** One new column in the editor */
34
+ export interface CubeExtendRow {
35
+ /** Identifies the row in the editor, and its code to the engine */
36
+ readonly key: number;
37
+ readonly name: string;
38
+ readonly code: string;
39
+ readonly checked?: CubeExtendCheckedCode | undefined;
40
+ readonly problem?: CubeExtendRowProblem | undefined;
41
+ /** The type the engine gave, while the row is as it was typed */
42
+ readonly type?: CubeType | undefined;
43
+ }
44
+ /** What a new column's code starts as (PLAN §11.7 Q2) */
45
+ export declare const NEW_EXPRESSION_CODE = "x | ";
46
+ /**
47
+ * The Extend editor's draft (PLAN §11.7): a row per new column, its name and
48
+ * its code, `x | …`. Validate (F10) has the engine check each changed code,
49
+ * type the columns as a chain after the input, located so an error points
50
+ * into the code, and plan the query for the cube's database. Apply waits
51
+ * until every row's code is the one validated; the node then holds the
52
+ * engine's lambdas and their typing, so it needn't be typed again.
53
+ */
54
+ export declare class CubeExtendDraft extends CubeNodeDraft<Extend> {
55
+ readonly editorState: CubeEditorState;
56
+ rows: readonly CubeExtendRow[];
57
+ /** The typing the last Validate gave, for the rows as they were then */
58
+ typing: ExtendTyping | undefined;
59
+ validating: boolean;
60
+ /** Anything was changed; until then, `build()` gives the original back */
61
+ private touched;
62
+ /** The database type the last plan was for, named in its problem */
63
+ private planDatabaseType;
64
+ constructor(original: Extend, editorState: CubeEditorState);
65
+ /** The input's schema, when the input is valid */
66
+ get inputSchema(): Schema | undefined;
67
+ /** A row named `col_<n>`, the first such name no column has, in any case */
68
+ private newRow;
69
+ /** The columns the rows build: a row's lambda only while its code is the one validated */
70
+ get columns(): ExtendColumn[];
71
+ /** Every row's code is the one the engine last checked */
72
+ get isValidated(): boolean;
73
+ /** Why Apply waits: a validation running, or a code not validated yet */
74
+ get applyDisabledReason(): string | undefined;
75
+ private change;
76
+ addRow(): void;
77
+ removeRow(key: number): void;
78
+ /** Moves a row up (-1) or down (+1); a later column may use it, so its typing waits */
79
+ moveRow(key: number, offset: number): void;
80
+ setName(key: number, name: string): void;
81
+ /** A code edit drops the row's problem and type, until the next Validate */
82
+ setCode(key: number, code: string): void;
83
+ build(): Extend;
84
+ /**
85
+ * Goes on from an Extend that differs from the original only in its
86
+ * typing, e.g. typed in the background after an Apply, keeping the rows;
87
+ * rows not validated in this draft take the new types
88
+ */
89
+ follow(node: QueryNode): boolean;
90
+ /**
91
+ * Checks every row with the engine (F10): parses each code changed since
92
+ * the last Validate, then, when every code parses and the input is valid,
93
+ * types the columns after the input, located in their codes, and plans the
94
+ * query up to this node for the cube's database; a plan that fails is
95
+ * planned again column by column to find the first that fails. Each
96
+ * problem goes on its row.
97
+ */
98
+ validate(): GeneratorFn<void>;
99
+ /** Cube's problems, each on its row; whether there was one */
100
+ private putCubeProblems;
101
+ /** The problem on its row, or on every row when the engine named none */
102
+ private putProblem;
103
+ /**
104
+ * Plans the query up to the typed candidate, as a run would; when it
105
+ * fails with several columns, the first k columns for every k, to name
106
+ * the column the database can't run
107
+ */
108
+ private planFrom;
109
+ }
110
+ //# sourceMappingURL=CubeExtendDraft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeExtendDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeExtendDraft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
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
+ import { Extend, foldColumnName, getExtendSignature, QueryEmitter, UNTYPED, } from '@finos/legend-cube';
17
+ import { action, computed, flow, flowResult, makeObservable, observable, } from 'mobx';
18
+ import { EXTEND_APPLY_DISABLED_REASON, EXTEND_TO_ONE_HINT, getExtendPlanProblem, } from '../../__lib__/LegendCubeLabels.js';
19
+ import { CubeEngineError, CubeEngineErrorKind, } from '../../graph-manager/CubeEngine.js';
20
+ import { buildCubeExtendTypingLambdas, getCubeExtendUpstream, readCubeExtendTyping, withoutEngineContext, } from '../CubeExtendTyping.js';
21
+ import { CubeNodeDraft } from './CubeNodeDraft.js';
22
+ /** What a new column's code starts as (PLAN §11.7 Q2) */
23
+ export const NEW_EXPRESSION_CODE = 'x | ';
24
+ let nextRowKey = 1;
25
+ /** An engine message about a column that can be empty in arithmetic, which `->toOne()` fixes */
26
+ const NEEDS_TO_ONE = /must have a multiplicity \[1\]|Can't find a match for function '[^']*\[0\.\.1\]/u;
27
+ const problemOf = (error) => ({
28
+ message: withoutEngineContext(error.firstLine),
29
+ location: error.location,
30
+ hint: NEEDS_TO_ONE.test(error.detail) ? EXTEND_TO_ONE_HINT : undefined,
31
+ });
32
+ /**
33
+ * The Extend editor's draft (PLAN §11.7): a row per new column, its name and
34
+ * its code, `x | …`. Validate (F10) has the engine check each changed code,
35
+ * type the columns as a chain after the input, located so an error points
36
+ * into the code, and plan the query for the cube's database. Apply waits
37
+ * until every row's code is the one validated; the node then holds the
38
+ * engine's lambdas and their typing, so it needn't be typed again.
39
+ */
40
+ export class CubeExtendDraft extends CubeNodeDraft {
41
+ editorState;
42
+ rows;
43
+ /** The typing the last Validate gave, for the rows as they were then */
44
+ typing;
45
+ validating = false;
46
+ /** Anything was changed; until then, `build()` gives the original back */
47
+ touched = false;
48
+ /** The database type the last plan was for, named in its problem */
49
+ planDatabaseType;
50
+ constructor(original, editorState) {
51
+ super(original);
52
+ makeObservable(this, {
53
+ original: observable.ref,
54
+ rows: observable.ref,
55
+ typing: observable.ref,
56
+ validating: observable,
57
+ touched: observable,
58
+ columns: computed,
59
+ isValidated: computed,
60
+ applyDisabledReason: computed,
61
+ addRow: action,
62
+ removeRow: action,
63
+ moveRow: action,
64
+ setName: action,
65
+ setCode: action,
66
+ validate: flow,
67
+ follow: action,
68
+ });
69
+ this.editorState = editorState;
70
+ const types = original.typing.kind === 'typed' ? original.typing.types : [];
71
+ this.rows = original.columns.map(({ name, code, lambda }, index) => ({
72
+ key: nextRowKey++,
73
+ name,
74
+ code,
75
+ checked: lambda ? { code, lambda, located: lambda } : undefined,
76
+ type: types[index],
77
+ }));
78
+ if (!this.rows.length) {
79
+ this.rows = [this.newRow()];
80
+ }
81
+ }
82
+ /** The input's schema, when the input is valid */
83
+ get inputSchema() {
84
+ const { query } = this.editorState.document;
85
+ const [inputId] = query.getInputIds(this.original.id);
86
+ return inputId === undefined
87
+ ? undefined
88
+ : this.editorState.analysis.schemas.get(inputId);
89
+ }
90
+ /** A row named `col_<n>`, the first such name no column has, in any case */
91
+ newRow() {
92
+ const taken = new Set([
93
+ ...(this.inputSchema?.names() ?? []),
94
+ ...(this.rows ?? []).map(({ name }) => name),
95
+ ].map(foldColumnName));
96
+ let index = 1;
97
+ while (taken.has(foldColumnName(`col_${index}`))) {
98
+ index += 1;
99
+ }
100
+ return {
101
+ key: nextRowKey++,
102
+ name: `col_${index}`,
103
+ code: NEW_EXPRESSION_CODE,
104
+ };
105
+ }
106
+ /** The columns the rows build: a row's lambda only while its code is the one validated */
107
+ get columns() {
108
+ return this.rows.map(({ name, code, checked }) => ({
109
+ name,
110
+ code,
111
+ lambda: checked?.code === code ? checked.lambda : undefined,
112
+ }));
113
+ }
114
+ /** Every row's code is the one the engine last checked */
115
+ get isValidated() {
116
+ return this.rows.every(({ code, checked }) => checked?.code === code);
117
+ }
118
+ /** Why Apply waits: a validation running, or a code not validated yet */
119
+ get applyDisabledReason() {
120
+ return this.validating
121
+ ? EXTEND_APPLY_DISABLED_REASON.VALIDATING
122
+ : this.isValidated
123
+ ? undefined
124
+ : EXTEND_APPLY_DISABLED_REASON.NOT_VALIDATED;
125
+ }
126
+ change(rows) {
127
+ this.rows = rows;
128
+ this.touched = true;
129
+ }
130
+ addRow() {
131
+ this.change([...this.rows, this.newRow()]);
132
+ }
133
+ removeRow(key) {
134
+ this.change(this.rows.filter((row) => row.key !== key));
135
+ }
136
+ /** Moves a row up (-1) or down (+1); a later column may use it, so its typing waits */
137
+ moveRow(key, offset) {
138
+ const index = this.rows.findIndex((row) => row.key === key);
139
+ const target = index + offset;
140
+ if (index < 0 || target < 0 || target >= this.rows.length) {
141
+ return;
142
+ }
143
+ const rows = [...this.rows];
144
+ const [moved] = rows.splice(index, 1);
145
+ rows.splice(target, 0, moved);
146
+ this.change(rows);
147
+ }
148
+ setName(key, name) {
149
+ this.change(this.rows.map((row) => row.key === key ? { ...row, name, problem: undefined } : row));
150
+ }
151
+ /** A code edit drops the row's problem and type, until the next Validate */
152
+ setCode(key, code) {
153
+ this.change(this.rows.map((row) => row.key === key && row.code !== code
154
+ ? { key: row.key, name: row.name, code, checked: row.checked }
155
+ : row));
156
+ }
157
+ build() {
158
+ if (!this.touched) {
159
+ return this.original;
160
+ }
161
+ return this.original
162
+ .withColumns(this.columns)
163
+ .withTyping(this.typing ?? this.original.typing);
164
+ }
165
+ /**
166
+ * Goes on from an Extend that differs from the original only in its
167
+ * typing, e.g. typed in the background after an Apply, keeping the rows;
168
+ * rows not validated in this draft take the new types
169
+ */
170
+ follow(node) {
171
+ const { original } = this;
172
+ if (!(node instanceof Extend) ||
173
+ node.id !== original.id ||
174
+ JSON.stringify([node.columns, node.rest]) !==
175
+ JSON.stringify([original.columns, original.rest])) {
176
+ return false;
177
+ }
178
+ this.original = node;
179
+ if (this.typing === undefined) {
180
+ const types = node.typing.kind === 'typed' ? node.typing.types : [];
181
+ this.rows = this.rows.map((row, index) => {
182
+ const column = node.columns[index];
183
+ return column?.name === row.name && column.code === row.code
184
+ ? { ...row, type: types[index] }
185
+ : row;
186
+ });
187
+ }
188
+ return true;
189
+ }
190
+ /**
191
+ * Checks every row with the engine (F10): parses each code changed since
192
+ * the last Validate, then, when every code parses and the input is valid,
193
+ * types the columns after the input, located in their codes, and plans the
194
+ * query up to this node for the cube's database; a plan that fails is
195
+ * planned again column by column to find the first that fails. Each
196
+ * problem goes on its row.
197
+ */
198
+ *validate() {
199
+ const { editorState } = this;
200
+ const { context } = editorState.document;
201
+ if (this.validating || !context) {
202
+ return;
203
+ }
204
+ this.validating = true;
205
+ try {
206
+ const nodeId = this.original.id;
207
+ const sourceIdOf = (row) => `${nodeId}:${row.key}`;
208
+ // 1. parse the changed codes
209
+ const parsed = (yield Promise.all(this.rows.map(async (row) => row.checked?.code === row.code
210
+ ? row.checked
211
+ : editorState.host.engine
212
+ .parseExpression(row.code, sourceIdOf(row))
213
+ .then((expression) => ({
214
+ code: row.code,
215
+ ...expression,
216
+ }), (error) => error instanceof CubeEngineError
217
+ ? error
218
+ : new CubeEngineError(CubeEngineErrorKind.NETWORK, error instanceof Error
219
+ ? error.message
220
+ : String(error))))));
221
+ const rows = this.rows.map((row, index) => {
222
+ const result = parsed[index];
223
+ return result instanceof CubeEngineError
224
+ ? {
225
+ key: row.key,
226
+ name: row.name,
227
+ code: row.code,
228
+ problem: problemOf(result),
229
+ }
230
+ : { key: row.key, name: row.name, code: row.code, checked: result };
231
+ });
232
+ this.rows = rows;
233
+ this.touched = true;
234
+ const input = this.inputSchema;
235
+ if (!input || rows.some((row) => row.checked === undefined)) {
236
+ return;
237
+ }
238
+ // 2. Cube's own checks of each column, which need no engine: a name
239
+ // the input has, in another case, would otherwise type
240
+ const candidate = this.original.withColumns(this.columns);
241
+ if (this.putCubeProblems(candidate.getColumnProblems(input))) {
242
+ this.typing = UNTYPED;
243
+ return;
244
+ }
245
+ // 3. type the columns, located in their codes
246
+ const query = editorState.document.query.replace(candidate);
247
+ const located = rows.map((row) => ({
248
+ name: row.name,
249
+ lambda: row.checked.located,
250
+ }));
251
+ const answers = (yield editorState.host.engine.typeLambdas(context.model, buildCubeExtendTypingLambdas(query, candidate, located, editorState.registry, true)));
252
+ const { typing, error } = readCubeExtendTyping(answers, candidate, input, located, getCubeExtendUpstream(new QueryEmitter(query, editorState.registry), candidate.id, context.model));
253
+ this.typing = typing;
254
+ if (typing.kind !== 'typed') {
255
+ this.putProblem(typing.kind === 'failed' ? typing.column : undefined, error);
256
+ return;
257
+ }
258
+ this.rows = this.rows.map((row, index) => ({
259
+ ...row,
260
+ type: typing.types[index],
261
+ }));
262
+ // a type Cube can't hold, such as an enumeration's own `Any`
263
+ if (this.putCubeProblems(candidate.getTypeProblems(typing.types))) {
264
+ return;
265
+ }
266
+ // 4. plan the query up to this node, for the cube's database
267
+ const failure = (yield this.planFrom(query.replace(candidate.withTyping(typing)), candidate, typing, input));
268
+ if (failure) {
269
+ this.putProblem(failure.column, failure.error, true);
270
+ }
271
+ }
272
+ finally {
273
+ this.validating = false;
274
+ }
275
+ }
276
+ /** Cube's problems, each on its row; whether there was one */
277
+ putCubeProblems(problems) {
278
+ this.rows = this.rows.map((row, index) => {
279
+ const message = problems[index];
280
+ return message === undefined ? row : { ...row, problem: { message } };
281
+ });
282
+ return problems.some((problem) => problem !== undefined);
283
+ }
284
+ /** The problem on its row, or on every row when the engine named none */
285
+ putProblem(column, error, planned = false) {
286
+ if (!error) {
287
+ return;
288
+ }
289
+ const problem = problemOf(error);
290
+ const shown = planned
291
+ ? {
292
+ message: getExtendPlanProblem(this.planDatabaseType, error.firstLine),
293
+ }
294
+ : problem;
295
+ this.rows = this.rows.map((row, index) => column === undefined || index === column
296
+ ? { ...row, problem: shown }
297
+ : row);
298
+ }
299
+ /**
300
+ * Plans the query up to the typed candidate, as a run would; when it
301
+ * fails with several columns, the first k columns for every k, to name
302
+ * the column the database can't run
303
+ */
304
+ async planFrom(query, candidate, typing, input) {
305
+ const { editorState } = this;
306
+ const { context } = editorState.document;
307
+ const runtime = context?.runtime;
308
+ // a cube with no runtime yet can't be planned
309
+ if (!context || runtime === undefined) {
310
+ return undefined;
311
+ }
312
+ await flowResult(editorState.loadModelOutline(context.model));
313
+ this.planDatabaseType = editorState.getRunDatabaseType(query, candidate.id, context.model, runtime);
314
+ const plan = async (count) => {
315
+ const columns = candidate.columns.slice(0, count);
316
+ const prefix = candidate.withColumns(columns).withTyping({
317
+ kind: 'typed',
318
+ signature: getExtendSignature(input, columns),
319
+ types: typing.types.slice(0, count),
320
+ });
321
+ const replaced = query.replace(prefix);
322
+ let lambda;
323
+ try {
324
+ lambda = new QueryEmitter(
325
+ // run up to this node, as Execute would with it selected
326
+ replaced.selected === prefix.id
327
+ ? replaced
328
+ : replaced.select(prefix.id), editorState.registry).emitExecutionLambda({
329
+ rowLimit: 1,
330
+ runtime,
331
+ databaseType: this.planDatabaseType,
332
+ });
333
+ }
334
+ catch (error) {
335
+ // the query up to here can't run, e.g. a node above is invalid
336
+ return new CubeEngineError(CubeEngineErrorKind.COMPILE, error instanceof Error ? error.message : String(error), candidate.id);
337
+ }
338
+ return editorState.host.engine.planLambda(context.model, lambda).then(() => undefined, (error) => error instanceof CubeEngineError
339
+ ? error
340
+ : new CubeEngineError(CubeEngineErrorKind.NETWORK, error instanceof Error ? error.message : String(error)));
341
+ };
342
+ const error = await plan(candidate.columns.length);
343
+ if (!error) {
344
+ return undefined;
345
+ }
346
+ if (candidate.columns.length < 2 ||
347
+ error.kind === CubeEngineErrorKind.NETWORK) {
348
+ return { column: candidate.columns.length < 2 ? 0 : undefined, error };
349
+ }
350
+ for (let count = 1; count < candidate.columns.length; count += 1) {
351
+ const failed = await plan(count);
352
+ if (failed) {
353
+ return { column: count - 1, error: failed };
354
+ }
355
+ }
356
+ return { column: candidate.columns.length - 1, error };
357
+ }
358
+ }
359
+ //# sourceMappingURL=CubeExtendDraft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeExtendDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeExtendDraft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
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
+ import { type ColumnAggregation, type Group, type Schema } from '@finos/legend-cube';
17
+ import { type CubeAggregationRow } from './CubeAggregationRows.js';
18
+ import { CubeNodeDraft } from './CubeNodeDraft.js';
19
+ /** One aggregation row of the Group editor (`CubeAggregationRow`) */
20
+ export type CubeGroupRow = CubeAggregationRow;
21
+ /**
22
+ * Whether a row builds an aggregation of a Group: it has a column, or it is
23
+ * Count rows, or it holds a function this version doesn't know with no column
24
+ * (a newer client's, or a window function such as Rank), kept as saved (Q4).
25
+ * A blank row, or a column function whose column isn't picked yet, is left
26
+ * out.
27
+ */
28
+ export declare const isBuiltGroupRow: (row: CubeGroupRow) => boolean;
29
+ /**
30
+ * The Group editor's draft (spec §17.6: a multi-select of keys, then rows of
31
+ * column, function and output name; PLAN §11.5). Picks of keys are stored in
32
+ * the input's order, but a saved order is kept until the picks change (Q2).
33
+ * A row's name follows its column and function until typed (Q3). Picking a
34
+ * column first sets Count; switching to Count rows clears the column, which
35
+ * it can't hold, and back to a column function leaves one to pick. Which
36
+ * rows build is `isBuiltGroupRow`.
37
+ */
38
+ export declare class CubeGroupDraft extends CubeNodeDraft<Group> {
39
+ columns: readonly string[];
40
+ rows: readonly CubeGroupRow[];
41
+ /** Anything was changed; until then, `build()` gives the original back */
42
+ private touched;
43
+ constructor(original: Group);
44
+ /** The aggregations the rows build, in order (`isBuiltGroupRow`) */
45
+ get aggregations(): ColumnAggregation[];
46
+ /** Ticks or unticks a key; the keys then follow the input's order (Q2) */
47
+ toggleColumn(name: string, schema: Schema): void;
48
+ /** Unticks every key: one group of all the rows */
49
+ clearColumns(): void;
50
+ addRow(): void;
51
+ removeRow(key: number): void;
52
+ private update;
53
+ /** Picks the row's column; with no function yet, Count */
54
+ setColumn(key: number, column: string): void;
55
+ /** Picks the row's function: Count rows takes no column, the others one */
56
+ setFunction(key: number, fn: string): void;
57
+ /** Types the row's name, kept exactly; the auto-name itself follows again */
58
+ setName(key: number, name: string): void;
59
+ build(): Group;
60
+ }
61
+ //# sourceMappingURL=CubeGroupDraft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeGroupDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeGroupDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EACV,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAIL,KAAK,kBAAkB,EAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qEAAqE;AACrE,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,YAAY,KAAG,OACD,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC;IACtD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,KAAK;IAkB3B,oEAAoE;IACpE,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAEtC;IAED,0EAA0E;IAC1E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKhD,mDAAmD;IACnD,YAAY,IAAI,IAAI;IAKpB,MAAM,IAAI,IAAI;IAKd,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,MAAM;IAQd,0DAA0D;IAC1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5C,2EAA2E;IAC3E,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1C,6EAA6E;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,KAAK,IAAI,KAAK;CAQf"}