@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,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
+ import type { PlainObject } from '@finos/legend-shared';
17
+ import { CubeDirectDatabaseType, type CubeExploredTable } from '../../../CubeConnectionExplorer.js';
18
+ import { CubeEngineError, type CubeEngineErrorKind, type NodeId } from '../../../CubeEngine.js';
19
+ /** What one exploration asks for; names are as the database stores them */
20
+ export type V1_CubeExplorationScope =
21
+ /** The schema names, to test a connection */
22
+ {
23
+ kind: 'schemas';
24
+ }
25
+ /** A schema's tables and their columns, for the picker */
26
+ | {
27
+ kind: 'tables';
28
+ schema: string;
29
+ }
30
+ /** Some tables in full, to build the model a query runs on */
31
+ | {
32
+ kind: 'columns';
33
+ tables: readonly V1_CubeExploredTablePath[];
34
+ };
35
+ /** A table's schema and table names, as the database stores them */
36
+ export type V1_CubeExploredTablePath = readonly [schema: string, table: string];
37
+ /** Where the engine puts the Database it builds */
38
+ export interface V1_CubeExploredDatabasePath {
39
+ package: string;
40
+ name: string;
41
+ }
42
+ /** A name as the database stores it: the engine quotes some names, and Cube all of them */
43
+ export declare const V1_unquoteCubeName: (name: string) => string;
44
+ /** A name as a Database stores it; Pure can't quote a name holding a quote */
45
+ export declare const V1_quoteCubeName: (name: string) => string;
46
+ /** The request that reads part of a connection's database */
47
+ export declare const V1_buildCubeSchemaExplorationInput: (connection: PlainObject, databaseType: CubeDirectDatabaseType, database: V1_CubeExploredDatabasePath, scope: V1_CubeExplorationScope) => PlainObject;
48
+ /** The schema names a connection's database holds, for the picker */
49
+ export declare const V1_readExploredSchemaNames: (response: unknown) => readonly string[];
50
+ /** A schema's tables, for the picker; views are offered as tables */
51
+ export declare const V1_readExploredTables: (response: unknown, schema: string) => readonly CubeExploredTable[];
52
+ /**
53
+ * The Database a query runs on, holding exactly the tables asked for that the
54
+ * database has, and the tables it doesn't have: an answer without a table
55
+ * never stands for an empty one
56
+ */
57
+ export declare const V1_buildExploredDatabase: (response: unknown, tables: readonly V1_CubeExploredTablePath[]) => {
58
+ database: PlainObject;
59
+ tables: readonly CubeExploredTable[];
60
+ missing: readonly V1_CubeExploredTablePath[];
61
+ };
62
+ /**
63
+ * The error of a failed exploration: the engine's message, led by what it
64
+ * means when the message alone says little. A network failure stays one
65
+ */
66
+ export declare const V1_toCubeExplorationError: (error: unknown, kind: CubeEngineErrorKind, nodeId?: NodeId) => CubeEngineError;
67
+ //# sourceMappingURL=V1_CubeSchemaExploration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_CubeSchemaExploration.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EAExB,KAAK,MAAM,EACZ,MAAM,wBAAwB,CAAC;AAehC,2EAA2E;AAC3E,MAAM,MAAM,uBAAuB;AACjC,6CAA6C;AAC3C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,0DAA0D;GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC,8DAA8D;GAC5D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAErE,oEAAoE;AACpE,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEhF,mDAAmD;AACnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAGxC,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAAqB,CAAC;AAsCtE,6DAA6D;AAC7D,eAAO,MAAM,kCAAkC,GAC7C,YAAY,WAAW,EACvB,cAAc,sBAAsB,EACpC,UAAU,2BAA2B,EACrC,OAAO,uBAAuB,KAC7B,WAqCF,CAAC;AA2CF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,GACrC,UAAU,OAAO,KAChB,SAAS,MAAM,EAG8C,CAAC;AAEjE,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,GAChC,UAAU,OAAO,EACjB,QAAQ,MAAM,KACb,SAAS,iBAAiB,EAO5B,CAAC;AAwBF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,OAAO,EACjB,QAAQ,SAAS,wBAAwB,EAAE,KAC1C;IACD,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAmC9C,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,OAAO,EACd,MAAM,mBAAmB,EACzB,SAAS,MAAM,KACd,eAgBF,CAAC"}
@@ -0,0 +1,238 @@
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 { CubeDirectDatabaseType, } from '../../../CubeConnectionExplorer.js';
17
+ import { CubeEngineError, CubeTableFlag, } from '../../../CubeEngine.js';
18
+ import { V1_toCubeEngineError } from './V1_CubeEngineErrors.js';
19
+ const ANY = '%';
20
+ /** Table functions are never read; this pattern only fills the request */
21
+ const FUNCTION_PATTERN = '_%';
22
+ const OTHER_TYPE = 'Other';
23
+ const CHAR_TYPE = 'Char';
24
+ /** Schemas of the database itself, matched in any case */
25
+ const SYSTEM_SCHEMAS = ['information_schema', 'pg_catalog'];
26
+ const asObject = (value) => value && typeof value === 'object' && !Array.isArray(value)
27
+ ? value
28
+ : {};
29
+ const asList = (value) => Array.isArray(value) ? value : [];
30
+ const asString = (value) => typeof value === 'string' ? value : '';
31
+ /** A name as the database stores it: the engine quotes some names, and Cube all of them */
32
+ export const V1_unquoteCubeName = (name) => name.length >= 2 && name.startsWith('"') && name.endsWith('"')
33
+ ? name.slice(1, -1)
34
+ : name;
35
+ /** A name as a Database stores it; Pure can't quote a name holding a quote */
36
+ export const V1_quoteCubeName = (name) => `"${name}"`;
37
+ /**
38
+ * A name as the database stores it, from the engine's answer: the engine
39
+ * quotes only a name holding a space or a colon (SchemaExportation's
40
+ * escapeString), so other quotes are the name's own
41
+ */
42
+ const readEngineName = (name) => name.length >= 2 &&
43
+ name.startsWith('"') &&
44
+ name.endsWith('"') &&
45
+ /[ :]/u.test(name.slice(1, -1))
46
+ ? name.slice(1, -1)
47
+ : name;
48
+ /**
49
+ * A name Cube can use: Pure can't write one holding a double quote, and the
50
+ * engine reads a backslash in a name as its pattern escape
51
+ */
52
+ const isWritable = (name) => !name.includes('"') && !name.includes('\\');
53
+ const isSystemSchema = (name) => SYSTEM_SCHEMAS.includes(name.toLowerCase());
54
+ /**
55
+ * The pattern that finds a name. H2 upper-cases a pattern, so a name that
56
+ * isn't all upper case is found through '%' and picked out by Cube; DuckDB
57
+ * matches the name as it is (local evidence `sources-v2/db-direct/`)
58
+ */
59
+ const patternFor = (databaseType, name) => databaseType === CubeDirectDatabaseType.H2 && name !== name.toUpperCase()
60
+ ? ANY
61
+ : name;
62
+ /** The request that reads part of a connection's database */
63
+ export const V1_buildCubeSchemaExplorationInput = (connection, databaseType, database, scope) => {
64
+ const pattern = (schema, table) => ({
65
+ schemaPattern: schema,
66
+ tablePattern: table,
67
+ functionPattern: FUNCTION_PATTERN,
68
+ });
69
+ const config = scope.kind === 'schemas'
70
+ ? {
71
+ enrichTables: false,
72
+ enrichColumns: false,
73
+ enrichPrimaryKeys: false,
74
+ patterns: [pattern(ANY, ANY)],
75
+ }
76
+ : scope.kind === 'tables'
77
+ ? {
78
+ enrichTables: true,
79
+ enrichColumns: true,
80
+ enrichPrimaryKeys: false,
81
+ patterns: [pattern(patternFor(databaseType, scope.schema), ANY)],
82
+ }
83
+ : {
84
+ enrichTables: true,
85
+ enrichColumns: true,
86
+ enrichPrimaryKeys: true,
87
+ patterns: scope.tables.map(([schema, table]) => pattern(patternFor(databaseType, schema), patternFor(databaseType, table))),
88
+ };
89
+ return {
90
+ connection,
91
+ targetDatabase: { package: database.package, name: database.name },
92
+ config: { ...config, enrichTableFunctions: false },
93
+ };
94
+ };
95
+ /** The schemas of the one Database the engine returns */
96
+ const schemasOf = (response) => asList(asObject(asList(asObject(response).elements)[0]).schemas).map(asObject);
97
+ /** The tables of a schema, by name as the database stores them */
98
+ const tablesOf = (schema) => new Map(asList(schema.tables)
99
+ .map(asObject)
100
+ .map((table) => [readEngineName(asString(table.name)), table]));
101
+ /** A schema of the answer, by name as the database stores it */
102
+ const findSchema = (response, name) => schemasOf(response).find((schema) => readEngineName(asString(schema.name)) === name);
103
+ const isHidden = (column) => asString(asObject(column.type)._type) === OTHER_TYPE ||
104
+ !isWritable(readEngineName(asString(column.name)));
105
+ const describeTable = (name, table) => {
106
+ const columns = asList(table.columns).map(asObject);
107
+ const kept = columns.filter((column) => !isHidden(column));
108
+ return {
109
+ name,
110
+ storedName: V1_quoteCubeName(name),
111
+ columnCount: kept.length,
112
+ hiddenColumnCount: columns.length - kept.length,
113
+ // the engine types a CHAR(n) column with a length of 1
114
+ flags: kept.some((column) => asString(asObject(column.type)._type) === CHAR_TYPE)
115
+ ? [CubeTableFlag.LENGTH_UNKNOWN]
116
+ : [],
117
+ };
118
+ };
119
+ /** The schema names a connection's database holds, for the picker */
120
+ export const V1_readExploredSchemaNames = (response) => schemasOf(response)
121
+ .map((schema) => readEngineName(asString(schema.name)))
122
+ .filter((name) => isWritable(name) && !isSystemSchema(name));
123
+ /** A schema's tables, for the picker; views are offered as tables */
124
+ export const V1_readExploredTables = (response, schema) => {
125
+ const found = findSchema(response, schema);
126
+ return found
127
+ ? Array.from(tablesOf(found).entries())
128
+ .filter(([name]) => isWritable(name))
129
+ .map(([name, table]) => describeTable(name, table))
130
+ : [];
131
+ };
132
+ /** A table of the Database Cube builds: every name quoted, usable columns only */
133
+ const buildTable = (name, table) => {
134
+ const columns = asList(table.columns)
135
+ .map(asObject)
136
+ .filter((column) => !isHidden(column));
137
+ const columnNames = new Set(columns.map((column) => readEngineName(asString(column.name))));
138
+ return {
139
+ ...table,
140
+ name: V1_quoteCubeName(name),
141
+ columns: columns.map((column) => ({
142
+ ...column,
143
+ name: V1_quoteCubeName(readEngineName(asString(column.name))),
144
+ })),
145
+ primaryKey: asList(table.primaryKey)
146
+ .map((key) => readEngineName(asString(key)))
147
+ .filter((key) => columnNames.has(key))
148
+ .map(V1_quoteCubeName),
149
+ };
150
+ };
151
+ /**
152
+ * The Database a query runs on, holding exactly the tables asked for that the
153
+ * database has, and the tables it doesn't have: an answer without a table
154
+ * never stands for an empty one
155
+ */
156
+ export const V1_buildExploredDatabase = (response, tables) => {
157
+ const element = asObject(asList(asObject(response).elements)[0]);
158
+ const schemas = new Map();
159
+ const explored = [];
160
+ const missing = [];
161
+ tables.forEach(([schemaName, tableName]) => {
162
+ const schema = findSchema(response, schemaName);
163
+ const table = schema ? tablesOf(schema).get(tableName) : undefined;
164
+ if (!table || !isWritable(schemaName) || !isWritable(tableName)) {
165
+ missing.push([schemaName, tableName]);
166
+ return;
167
+ }
168
+ const built = schemas.get(schemaName) ?? [];
169
+ if (!built.some((existing) => existing.name === V1_quoteCubeName(tableName))) {
170
+ built.push(buildTable(tableName, table));
171
+ explored.push(describeTable(tableName, table));
172
+ }
173
+ schemas.set(schemaName, built);
174
+ });
175
+ return {
176
+ database: {
177
+ ...element,
178
+ schemas: Array.from(schemas.entries()).map(([name, builtTables]) => ({
179
+ name: V1_quoteCubeName(name),
180
+ tables: builtTables,
181
+ views: [],
182
+ tabularFunctions: [],
183
+ })),
184
+ },
185
+ tables: explored,
186
+ missing,
187
+ };
188
+ };
189
+ /**
190
+ * What a failed exploration's engine message means, for the errors whose
191
+ * message alone says little (a bare `NullPointerException: `, a Java class
192
+ * name): matched on the message's first line
193
+ */
194
+ const EXPLORATION_FAILURES = [
195
+ [
196
+ /InvalidTypeIdException/u,
197
+ "The engine doesn't know this kind of connection or authentication",
198
+ ],
199
+ [
200
+ /UnrecognizedPropertyException/u,
201
+ "The engine doesn't recognize a property of the connection",
202
+ ],
203
+ [
204
+ /NullPointerException/u,
205
+ "The engine couldn't open the connection: its authentication may be missing or unresolved",
206
+ ],
207
+ [
208
+ /ConnectException|Connection refused/u,
209
+ "The engine couldn't reach the database",
210
+ ],
211
+ [
212
+ /Maximum number of tables/u,
213
+ 'The database has too many tables to read at once',
214
+ ],
215
+ [
216
+ /must not end with escape character|LIKE ESCAPE/u,
217
+ "A schema or table name ends with a backslash, which Cube can't read",
218
+ ],
219
+ [
220
+ /SQLException|SQL statement|Parser Error/u,
221
+ "The database refused a statement: check the connection's setup SQL",
222
+ ],
223
+ ];
224
+ /**
225
+ * The error of a failed exploration: the engine's message, led by what it
226
+ * means when the message alone says little. A network failure stays one
227
+ */
228
+ export const V1_toCubeExplorationError = (error, kind, nodeId) => {
229
+ const engineError = V1_toCubeEngineError(error, nodeId, kind);
230
+ if (engineError.kind !== kind) {
231
+ return engineError;
232
+ }
233
+ const meaning = EXPLORATION_FAILURES.find(([pattern]) => pattern.test(engineError.firstLine))?.[1];
234
+ return meaning
235
+ ? new CubeEngineError(kind, `${meaning}\n${engineError.detail}`, engineError.nodeId, engineError.role)
236
+ : engineError;
237
+ };
238
+ //# sourceMappingURL=V1_CubeSchemaExploration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_CubeSchemaExploration.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
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 { V1_EngineServerClient } from '@finos/legend-graph';
17
+ import type { TracerService } from '@finos/legend-shared';
18
+ import type { CubeConnectionDescription, CubeConnectionDraft, CubeConnectionExplorer, CubeDirectConnection, CubeExploredTable } from '../../../CubeConnectionExplorer.js';
19
+ import type { V1_CubeEngineConfig } from './V1_LegendCubeEngine.js';
20
+ /**
21
+ * The Legend implementation of the connection explorer (PLAN §6.8): the
22
+ * engine's schema exploration, with its own client. Connections are checked
23
+ * first, so one Cube can't use never reaches the engine
24
+ */
25
+ export declare class V1_LegendCubeConnectionExplorer implements CubeConnectionExplorer {
26
+ readonly client: V1_EngineServerClient;
27
+ constructor(config: V1_CubeEngineConfig, tracerService: TracerService);
28
+ buildConnection(draft: CubeConnectionDraft): CubeDirectConnection;
29
+ describeConnection(connection: CubeDirectConnection): CubeConnectionDescription;
30
+ listSchemas(connection: CubeDirectConnection): Promise<readonly string[]>;
31
+ listTables(connection: CubeDirectConnection, schema: string): Promise<readonly CubeExploredTable[]>;
32
+ private explore;
33
+ }
34
+ //# sourceMappingURL=V1_LegendCubeConnectionExplorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_LegendCubeConnectionExplorer.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAEpB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAc5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKpE;;;;GAIG;AACH,qBAAa,+BAAgC,YAAW,sBAAsB;IAC5E,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;gBAE3B,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa;IAKrE,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAIjE,kBAAkB,CAChB,UAAU,EAAE,oBAAoB,GAC/B,yBAAyB;IAUtB,WAAW,CACf,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAMvB,UAAU,CACd,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;YAO1B,OAAO;CAwBtB"}
@@ -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
+ import { V1_EngineServerClient } from '@finos/legend-graph';
17
+ import { CubeEngineError, CubeEngineErrorKind } from '../../../CubeEngine.js';
18
+ import { V1_buildCubeDirectConnection, V1_checkCubeDirectConnection, V1_summarizeCubeDirectConnection, } from './V1_CubeDirectConnection.js';
19
+ import { V1_buildCubeSchemaExplorationInput, V1_readExploredSchemaNames, V1_readExploredTables, V1_toCubeExplorationError, } from './V1_CubeSchemaExploration.js';
20
+ /** Where the engine puts the Database it reads for the picker: never saved */
21
+ const EXPLORED_DATABASE = { package: 'cube::explored', name: 'Database' };
22
+ /**
23
+ * The Legend implementation of the connection explorer (PLAN §6.8): the
24
+ * engine's schema exploration, with its own client. Connections are checked
25
+ * first, so one Cube can't use never reaches the engine
26
+ */
27
+ export class V1_LegendCubeConnectionExplorer {
28
+ client;
29
+ constructor(config, tracerService) {
30
+ this.client = new V1_EngineServerClient(config);
31
+ this.client.setTracerService(tracerService);
32
+ }
33
+ buildConnection(draft) {
34
+ return V1_buildCubeDirectConnection(draft);
35
+ }
36
+ describeConnection(connection) {
37
+ const problems = V1_checkCubeDirectConnection(connection);
38
+ return problems.length
39
+ ? { supported: false, problems }
40
+ : {
41
+ supported: true,
42
+ summary: V1_summarizeCubeDirectConnection(connection),
43
+ };
44
+ }
45
+ async listSchemas(connection) {
46
+ return V1_readExploredSchemaNames(await this.explore(connection, { kind: 'schemas' }));
47
+ }
48
+ async listTables(connection, schema) {
49
+ return V1_readExploredTables(await this.explore(connection, { kind: 'tables', schema }), schema);
50
+ }
51
+ async explore(connection, scope) {
52
+ const problems = V1_checkCubeDirectConnection(connection);
53
+ if (problems.length) {
54
+ throw new CubeEngineError(CubeEngineErrorKind.COMPILE, problems.join('\n'));
55
+ }
56
+ try {
57
+ return await this.client.buildDatabase(V1_buildCubeSchemaExplorationInput(connection, connection.databaseType, EXPLORED_DATABASE, scope));
58
+ }
59
+ catch (error) {
60
+ throw V1_toCubeExplorationError(error, CubeEngineErrorKind.COMPILE);
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=V1_LegendCubeConnectionExplorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_LegendCubeConnectionExplorer.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAU5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAGvC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,OAAO,+BAA+B;IACjC,MAAM,CAAwB;IAEvC,YAAY,MAA2B,EAAE,aAA4B;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,KAA0B;QACxC,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAChB,UAAgC;QAEhC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,MAAM;YACpB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;YAChC,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,gCAAgC,CAAC,UAAU,CAAC;aACtD,CAAC;IACR,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAgC;QAEhC,OAAO,0BAA0B,CAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAgC,EAChC,MAAc;QAEd,OAAO,qBAAqB,CAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAC1D,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,UAAgC,EAChC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,OAAO,EAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CACpC,kCAAkC,CAChC,UAAU,EACV,UAAU,CAAC,YAAsC,EACjD,iBAAiB,EACjB,KAAK,CACN,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,104 @@
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 { Schema } from '@finos/legend-cube';
17
+ import { type DepotServerClient } from '@finos/legend-server-depot';
18
+ import type { LakehouseContractServerClient } from '@finos/legend-server-lakehouse';
19
+ import { type MarketplaceServerClient } from '@finos/legend-server-marketplace';
20
+ import { type CubeDataProductProject, CubeDataProductEnvironmentType } from '../../../CubeDataProduct.js';
21
+ import { CubeAccessPointGroupAccess, type CubeAccessPointLocation, type CubeDataProductCatalog, type CubeMarketplaceLinkTarget, CubeDataProductCandidate, type CubeDataProductDescription } from '../../../CubeDataProductCatalog.js';
22
+ import { CubeEngineError, type NodeId } from '../../../CubeEngine.js';
23
+ import { type V1_CubeEnterpriseStereotype } from './V1_CubeDataProductArtifact.js';
24
+ export declare const V1_CUBE_DATA_PRODUCT_LIST_ERROR: {
25
+ readonly UNREADABLE_PAGE: "The lakehouse's answer isn't a page of data products";
26
+ readonly NO_CURSOR: "The lakehouse said more data products follow, but not where the next page starts";
27
+ readonly REPEATED_CURSOR: "The lakehouse sent the same page of data products twice";
28
+ readonly TOO_MANY_PAGES: "The lakehouse's data product list runs past 50 pages";
29
+ };
30
+ export declare const V1_CUBE_DATA_PRODUCT_SEARCH_ERROR: {
31
+ readonly UNREADABLE_PAGE: "The marketplace's answer isn't a page of search results";
32
+ };
33
+ /** What a host can add to the catalog: each part turns on what it serves */
34
+ export interface V1_CubeDataProductCatalogOptions {
35
+ /** The marketplace's search API; with it, searches run there */
36
+ readonly marketplaceServerClient?: MarketplaceServerClient | undefined;
37
+ /** Builds a product's marketplace page, as the host's marketplace names it */
38
+ readonly marketplaceLink?: ((target: CubeMarketplaceLinkTarget) => string | undefined) | undefined;
39
+ /** The viewer, whose contracts give their access to each group */
40
+ readonly getCurrentUser?: (() => string) | undefined;
41
+ /** The stereotype the host's marketplace marks groups open to everyone with */
42
+ readonly enterpriseStereotype?: V1_CubeEnterpriseStereotype | undefined;
43
+ }
44
+ export declare class V1_LegendCubeDataProductCatalog implements CubeDataProductCatalog {
45
+ readonly environmentTypes: CubeDataProductEnvironmentType[];
46
+ private readonly contractServerClient;
47
+ private readonly depotServerClient;
48
+ private readonly getAccessToken;
49
+ private readonly options;
50
+ /** Each class's list, read once per page visit */
51
+ private readonly lists;
52
+ /** Each product's description, by its project, version and path */
53
+ private readonly descriptions;
54
+ /** The search answers whose page leaves out matches */
55
+ private readonly cutShortAnswers;
56
+ constructor(contractServerClient: LakehouseContractServerClient, depotServerClient: DepotServerClient, getAccessToken: () => string | undefined, options?: V1_CubeDataProductCatalogOptions);
57
+ get searchesOnServer(): boolean;
58
+ get searchLimit(): number | undefined;
59
+ isCutShort(answer: readonly CubeDataProductCandidate[]): boolean;
60
+ /**
61
+ * The class's lite rows, page by page along the lakehouse's cursor. Stops
62
+ * with an error on a page that isn't one, on a missing or repeated cursor,
63
+ * or past the page cap, and between pages once the search is dropped.
64
+ */
65
+ private readLiteRows;
66
+ /**
67
+ * The class's list, read once per page visit. A list whose search is
68
+ * dropped while it pages is forgotten at once, so the next search reads it
69
+ * again rather than waiting on the stopped one.
70
+ */
71
+ private listOf;
72
+ /** The class's list, along its pages; a stopped one fails with why it was stopped */
73
+ private readList;
74
+ /**
75
+ * The products the marketplace matches, in its order: the first page of a
76
+ * full text search in the class. A failed search fails; it never falls
77
+ * back to the lakehouse's list
78
+ */
79
+ private searchMarketplace;
80
+ search(search: {
81
+ text: string;
82
+ environmentType: CubeDataProductEnvironmentType;
83
+ }, signal?: AbortSignal): Promise<readonly CubeDataProductCandidate[]>;
84
+ /** The product's deployed artifact: the generation file at its path */
85
+ private readArtifact;
86
+ /** The product's definition at the deployed version */
87
+ private readDefinition;
88
+ describe(candidate: CubeDataProductCandidate): Promise<CubeDataProductDescription>;
89
+ resolveSchemas(project: CubeDataProductProject, sources: ReadonlyMap<NodeId, CubeAccessPointLocation>, options?: {
90
+ readonly fresh?: boolean | undefined;
91
+ }): Promise<Map<NodeId, Schema | CubeEngineError>>;
92
+ /** The product's page in the host's marketplace, as the host builds it; none without one */
93
+ getMarketplaceLink(target: CubeMarketplaceLinkTarget): string | undefined;
94
+ /**
95
+ * The viewer's access to each of the product's groups, as the marketplace
96
+ * shows it, from the viewer's contracts, read afresh each time: a group
97
+ * marked open to everyone needs none; otherwise the contract for that
98
+ * group of this deployment furthest along approval. A group with no
99
+ * contract has no access only when the host marks open groups, since it
100
+ * might be one otherwise
101
+ */
102
+ getAccess(candidate: CubeDataProductCandidate, signal?: AbortSignal): Promise<ReadonlyMap<string, CubeAccessPointGroupAccess>>;
103
+ }
104
+ //# sourceMappingURL=V1_LegendCubeDataProductCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_LegendCubeDataProductCatalog.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts"],"names":[],"mappings":"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"}