@finos/legend-cube-builder 0.0.2 → 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 (761) hide show
  1. package/README.md +93 -1
  2. package/docs/adding-an-operation.md +181 -0
  3. package/docs/hosting.md +157 -0
  4. package/docs/testing.md +188 -0
  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 +21 -3
  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 +95 -3
  25. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  26. package/lib/__lib__/LegendCubeLabels.js +121 -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 +18 -0
  48. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  49. package/lib/__test-utils__/CubeEngineTestSupport.js +51 -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 +67 -0
  56. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
  57. package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
  58. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
  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 +21 -2
  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 +19 -2
  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 +33 -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 +2 -0
  119. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  120. package/lib/components/canvas/CubeCanvasElements.js +8 -4
  121. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  122. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  123. package/lib/components/canvas/CubeCanvasNode.js +30 -17
  124. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  125. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  126. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  127. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  128. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  129. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  130. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  131. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  132. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  133. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  134. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  135. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  136. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  137. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  138. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  139. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  140. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  141. package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
  142. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
  143. package/lib/components/editors/CubeColumnPicker.js +9 -4
  144. package/lib/components/editors/CubeColumnPicker.js.map +1 -1
  145. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  146. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  147. package/lib/components/editors/CubeConcatEditor.js +147 -0
  148. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  149. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  150. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  151. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  152. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  153. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  154. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  155. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  156. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  157. package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
  158. package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
  159. package/lib/components/editors/CubeDistinctEditor.js +24 -0
  160. package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
  161. package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
  162. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  163. package/lib/components/editors/CubeExtendEditor.js +86 -0
  164. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  165. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  166. package/lib/components/editors/CubeFilterEditor.js +3 -3
  167. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  168. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  169. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  170. package/lib/components/editors/CubeGroupEditor.js +70 -0
  171. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  172. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  173. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  174. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  175. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  176. package/lib/components/editors/CubeIntegerField.d.ts +29 -0
  177. package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
  178. package/lib/components/editors/CubeIntegerField.js +30 -0
  179. package/lib/components/editors/CubeIntegerField.js.map +1 -0
  180. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  181. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  182. package/lib/components/editors/CubeJoinEditor.js +15 -37
  183. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  184. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  185. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  186. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  187. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  188. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  189. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  190. package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
  191. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  192. package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
  193. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  194. package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
  195. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  196. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  197. package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
  198. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  199. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  200. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  201. package/lib/components/editors/CubePartitionEditor.js +93 -0
  202. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  203. package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
  204. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
  205. package/lib/components/editors/CubeRenameEditor.js +60 -0
  206. package/lib/components/editors/CubeRenameEditor.js.map +1 -0
  207. package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
  208. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
  209. package/lib/components/editors/CubeRestrictEditor.js +23 -0
  210. package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
  211. package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
  212. package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
  213. package/lib/components/editors/CubeRowCountEditor.js +38 -0
  214. package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
  215. package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
  216. package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
  217. package/lib/components/editors/CubeSliceEditor.js +40 -0
  218. package/lib/components/editors/CubeSliceEditor.js.map +1 -0
  219. package/lib/components/editors/CubeSortEditor.d.ts +27 -0
  220. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
  221. package/lib/components/editors/CubeSortEditor.js +45 -0
  222. package/lib/components/editors/CubeSortEditor.js.map +1 -0
  223. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  224. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  225. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  226. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  227. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  228. package/lib/components/editors/CubeSourceEditor.js +18 -6
  229. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  230. package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
  231. package/lib/components/editors/CubeValueEditor.js +2 -1
  232. package/lib/components/editors/CubeValueEditor.js.map +1 -1
  233. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  234. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  235. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  236. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  237. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  238. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  239. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  240. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  241. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  242. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  243. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  244. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  245. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  246. package/lib/components/grid/CubeGridRegion.js +20 -9
  247. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  248. package/lib/components/grid/CubeGridValues.d.ts +16 -0
  249. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  250. package/lib/components/grid/CubeGridValues.js +44 -0
  251. package/lib/components/grid/CubeGridValues.js.map +1 -1
  252. package/lib/components/grid/CubeResultGrid.d.ts +14 -1
  253. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  254. package/lib/components/grid/CubeResultGrid.js +55 -7
  255. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  256. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  257. package/lib/components/palette/CubePalette.js +23 -12
  258. package/lib/components/palette/CubePalette.js.map +1 -1
  259. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  260. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  261. package/lib/components/source-picker/CubeDataProductTab.js +102 -0
  262. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  263. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  264. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  265. package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
  266. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  267. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  268. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  269. package/lib/components/source-picker/CubeIngestTab.js +66 -0
  270. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  271. package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
  272. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  273. package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
  274. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  275. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  276. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  277. package/lib/components/source-picker/CubePickerStep.js +23 -0
  278. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  279. package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
  280. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  281. package/lib/components/source-picker/CubeProjectTab.js +50 -0
  282. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  283. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  284. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  285. package/lib/components/source-picker/CubeSourcePicker.js +20 -58
  286. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  287. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
  288. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  289. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  290. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  291. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  292. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  293. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  294. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  295. package/lib/graph-manager/CubeDataProduct.js +102 -0
  296. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  297. package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
  298. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  299. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  300. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  301. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  302. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  303. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  304. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  305. package/lib/graph-manager/CubeEngine.d.ts +50 -2
  306. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  307. package/lib/graph-manager/CubeEngine.js +4 -1
  308. package/lib/graph-manager/CubeEngine.js.map +1 -1
  309. package/lib/graph-manager/CubeIngest.d.ts +50 -0
  310. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  311. package/lib/graph-manager/CubeIngest.js +88 -0
  312. package/lib/graph-manager/CubeIngest.js.map +1 -0
  313. package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
  314. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  315. package/lib/graph-manager/CubeIngestCatalog.js +80 -0
  316. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  317. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  318. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  319. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  320. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  321. package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
  322. package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
  323. package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
  324. package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
  325. package/lib/graph-manager/CubeProject.d.ts +41 -0
  326. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  327. package/lib/graph-manager/CubeProject.js +84 -0
  328. package/lib/graph-manager/CubeProject.js.map +1 -0
  329. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  330. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  331. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  332. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  333. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
  334. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  335. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
  336. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  337. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  338. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  339. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  340. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  341. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
  342. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  343. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
  344. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  345. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  346. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  347. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  348. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  349. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  350. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  351. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  352. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  353. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  354. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  355. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  356. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  357. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  358. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  359. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  360. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  361. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  362. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
  363. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  364. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
  365. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  366. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
  367. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  368. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  369. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  370. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  371. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  372. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  373. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
  374. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  375. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
  376. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +56 -3
  377. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
  378. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  379. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  380. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  381. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  382. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
  383. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  384. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
  385. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  386. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  387. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  388. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  389. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  390. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
  391. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  392. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
  393. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  394. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  395. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  396. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  397. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  398. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  399. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  400. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
  401. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  402. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  403. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  404. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  405. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  406. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  407. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  408. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  409. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  410. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  411. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  412. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  413. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  414. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  415. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  416. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +30 -4
  417. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  418. package/lib/index.css +2 -2
  419. package/lib/index.css.map +1 -1
  420. package/lib/index.d.ts +11 -1
  421. package/lib/index.d.ts.map +1 -1
  422. package/lib/index.js +10 -1
  423. package/lib/index.js.map +1 -1
  424. package/lib/stores/CubeAddPlacement.d.ts +32 -0
  425. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  426. package/lib/stores/CubeAddPlacement.js +40 -0
  427. package/lib/stores/CubeAddPlacement.js.map +1 -0
  428. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  429. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  430. package/lib/stores/CubeDataProductRecheck.js +54 -0
  431. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  432. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  433. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  434. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  435. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  436. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  437. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  438. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  439. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  440. package/lib/stores/CubeEditorState.d.ts +133 -19
  441. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  442. package/lib/stores/CubeEditorState.js +433 -52
  443. package/lib/stores/CubeEditorState.js.map +1 -1
  444. package/lib/stores/CubeEntrySource.d.ts +78 -0
  445. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  446. package/lib/stores/CubeEntrySource.js +200 -0
  447. package/lib/stores/CubeEntrySource.js.map +1 -0
  448. package/lib/stores/CubeExamples.d.ts +43 -0
  449. package/lib/stores/CubeExamples.d.ts.map +1 -0
  450. package/lib/stores/CubeExamples.js +296 -0
  451. package/lib/stores/CubeExamples.js.map +1 -0
  452. package/lib/stores/CubeExamplesState.d.ts +45 -0
  453. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  454. package/lib/stores/CubeExamplesState.js +81 -0
  455. package/lib/stores/CubeExamplesState.js.map +1 -0
  456. package/lib/stores/CubeExecutionState.d.ts +6 -2
  457. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  458. package/lib/stores/CubeExecutionState.js +34 -8
  459. package/lib/stores/CubeExecutionState.js.map +1 -1
  460. package/lib/stores/CubeExtendTyping.d.ts +72 -0
  461. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  462. package/lib/stores/CubeExtendTyping.js +176 -0
  463. package/lib/stores/CubeExtendTyping.js.map +1 -0
  464. package/lib/stores/CubeGridQuickActions.d.ts +48 -0
  465. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
  466. package/lib/stores/CubeGridQuickActions.js +124 -0
  467. package/lib/stores/CubeGridQuickActions.js.map +1 -0
  468. package/lib/stores/CubeHost.d.ts +32 -1
  469. package/lib/stores/CubeHost.d.ts.map +1 -1
  470. package/lib/stores/CubeHost.js +21 -1
  471. package/lib/stores/CubeHost.js.map +1 -1
  472. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  473. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  474. package/lib/stores/CubeIngestRecheck.js +53 -0
  475. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  476. package/lib/stores/CubeNodeEditorState.d.ts +120 -6
  477. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  478. package/lib/stores/CubeNodeEditorState.js +275 -9
  479. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  480. package/lib/stores/CubeShowPureState.d.ts +9 -3
  481. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  482. package/lib/stores/CubeShowPureState.js +28 -8
  483. package/lib/stores/CubeShowPureState.js.map +1 -1
  484. package/lib/stores/CubeSourcePickerState.d.ts +54 -65
  485. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  486. package/lib/stores/CubeSourcePickerState.js +155 -276
  487. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  488. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  489. package/lib/stores/CubeSpecTransferState.js +2 -2
  490. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  491. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  492. package/lib/stores/LocalModelCatalog.js +17 -3
  493. package/lib/stores/LocalModelCatalog.js.map +1 -1
  494. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  495. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  496. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  497. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  498. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  499. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  500. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  501. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  502. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  503. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  504. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  505. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  506. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  507. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  508. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  509. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  510. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  511. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  512. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  513. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  514. package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
  515. package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
  516. package/lib/stores/editors/CubeIntegerText.js +33 -0
  517. package/lib/stores/editors/CubeIntegerText.js.map +1 -0
  518. package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
  519. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  520. package/lib/stores/editors/CubeJoinDraft.js +109 -29
  521. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  522. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  523. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  524. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  525. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  526. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  527. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  528. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  529. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  530. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
  531. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  532. package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
  533. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  534. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  535. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  536. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  537. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  538. package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
  539. package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
  540. package/lib/stores/editors/CubeRenameDraft.js +79 -0
  541. package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
  542. package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
  543. package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
  544. package/lib/stores/editors/CubeRestrictDraft.js +73 -0
  545. package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
  546. package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
  547. package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
  548. package/lib/stores/editors/CubeRowCountDraft.js +55 -0
  549. package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
  550. package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
  551. package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
  552. package/lib/stores/editors/CubeSliceDraft.js +72 -0
  553. package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
  554. package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
  555. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
  556. package/lib/stores/editors/CubeSortDraft.js +73 -0
  557. package/lib/stores/editors/CubeSortDraft.js.map +1 -0
  558. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  559. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  560. package/lib/stores/editors/CubeSortRows.js +50 -0
  561. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  562. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  563. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  564. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  565. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  566. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  567. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  568. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  569. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  570. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  571. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  572. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  573. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  574. package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
  575. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  576. package/lib/stores/fixtures/CubeTradesModel.js +197 -0
  577. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  578. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  579. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  580. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  581. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  582. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
  583. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  584. package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
  585. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  586. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
  587. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  588. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
  589. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  590. package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
  591. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  592. package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
  593. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  594. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
  595. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  596. package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
  597. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  598. package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
  599. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  600. package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
  601. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  602. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
  603. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  604. package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
  605. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  606. package/package.json +12 -8
  607. package/src/__lib__/LegendCubeCommand.ts +5 -0
  608. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  609. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  610. package/src/__lib__/LegendCubeHelpText.ts +46 -2
  611. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  612. package/src/__lib__/LegendCubeLabels.ts +192 -4
  613. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  614. package/src/__lib__/LegendCubeTesting.ts +1 -0
  615. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  616. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  617. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  618. package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
  619. package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
  620. package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
  621. package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
  622. package/src/__test-utils__/CubeTestApplication.ts +21 -2
  623. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  624. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  625. package/src/__test-utils__/FakeCubeEngine.ts +32 -2
  626. package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
  627. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  628. package/src/components/CubeAddItems.tsx +179 -0
  629. package/src/components/CubeEditor.tsx +73 -44
  630. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  631. package/src/components/CubeNodeIcon.tsx +31 -1
  632. package/src/components/CubeSchemaColumnsTable.tsx +49 -0
  633. package/src/components/canvas/CubeCanvas.tsx +51 -14
  634. package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
  635. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  636. package/src/components/canvas/CubeCanvasElements.ts +12 -3
  637. package/src/components/canvas/CubeCanvasNode.tsx +62 -36
  638. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  639. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  640. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  641. package/src/components/editors/CubeColumnChecklist.tsx +130 -0
  642. package/src/components/editors/CubeColumnPicker.tsx +36 -12
  643. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  644. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  645. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  646. package/src/components/editors/CubeDistinctEditor.tsx +28 -0
  647. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  648. package/src/components/editors/CubeFilterEditor.tsx +7 -0
  649. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  650. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  651. package/src/components/editors/CubeIntegerField.tsx +51 -0
  652. package/src/components/editors/CubeJoinEditor.tsx +34 -131
  653. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  654. package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
  655. package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
  656. package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
  657. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  658. package/src/components/editors/CubeRenameEditor.tsx +148 -0
  659. package/src/components/editors/CubeRestrictEditor.tsx +103 -0
  660. package/src/components/editors/CubeRowCountEditor.tsx +53 -0
  661. package/src/components/editors/CubeSliceEditor.tsx +69 -0
  662. package/src/components/editors/CubeSortEditor.tsx +84 -0
  663. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  664. package/src/components/editors/CubeSourceEditor.tsx +42 -40
  665. package/src/components/editors/CubeValueEditor.tsx +2 -1
  666. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  667. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  668. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  669. package/src/components/grid/CubeGridRegion.tsx +49 -10
  670. package/src/components/grid/CubeGridValues.ts +55 -0
  671. package/src/components/grid/CubeResultGrid.tsx +83 -13
  672. package/src/components/palette/CubePalette.tsx +33 -15
  673. package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
  674. package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
  675. package/src/components/source-picker/CubeIngestTab.tsx +232 -0
  676. package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
  677. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  678. package/src/components/source-picker/CubeProjectTab.tsx +114 -0
  679. package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
  680. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
  681. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  682. package/src/graph-manager/CubeDataProduct.ts +150 -0
  683. package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
  684. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  685. package/src/graph-manager/CubeEngine.ts +57 -1
  686. package/src/graph-manager/CubeIngest.ts +144 -0
  687. package/src/graph-manager/CubeIngestCatalog.ts +169 -0
  688. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  689. package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
  690. package/src/graph-manager/CubeProject.ts +117 -0
  691. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  692. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
  693. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  694. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
  695. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  696. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  697. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  698. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  699. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
  700. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
  701. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  702. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
  703. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
  704. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  705. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
  706. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  707. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
  708. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  709. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
  710. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  711. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  712. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  713. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
  714. package/src/index.ts +20 -0
  715. package/src/stores/CubeAddPlacement.ts +67 -0
  716. package/src/stores/CubeDataProductRecheck.ts +93 -0
  717. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  718. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  719. package/src/stores/CubeEditorState.ts +621 -68
  720. package/src/stores/CubeEntrySource.ts +278 -0
  721. package/src/stores/CubeExamples.ts +457 -0
  722. package/src/stores/CubeExamplesState.ts +108 -0
  723. package/src/stores/CubeExecutionState.ts +60 -8
  724. package/src/stores/CubeExtendTyping.ts +291 -0
  725. package/src/stores/CubeGridQuickActions.ts +184 -0
  726. package/src/stores/CubeHost.ts +71 -1
  727. package/src/stores/CubeIngestRecheck.ts +92 -0
  728. package/src/stores/CubeNodeEditorState.ts +348 -10
  729. package/src/stores/CubeShowPureState.ts +33 -8
  730. package/src/stores/CubeSourcePickerState.ts +160 -330
  731. package/src/stores/CubeSpecTransferState.ts +2 -2
  732. package/src/stores/LocalModelCatalog.ts +22 -3
  733. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  734. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  735. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  736. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  737. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  738. package/src/stores/editors/CubeIntegerText.ts +34 -0
  739. package/src/stores/editors/CubeJoinDraft.ts +170 -54
  740. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  741. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  742. package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
  743. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  744. package/src/stores/editors/CubeRenameDraft.ts +110 -0
  745. package/src/stores/editors/CubeRestrictDraft.ts +83 -0
  746. package/src/stores/editors/CubeRowCountDraft.ts +69 -0
  747. package/src/stores/editors/CubeSliceDraft.ts +87 -0
  748. package/src/stores/editors/CubeSortDraft.ts +98 -0
  749. package/src/stores/editors/CubeSortRows.ts +84 -0
  750. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  751. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  752. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  753. package/src/stores/fixtures/CubeTradesModel.ts +241 -0
  754. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  755. package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
  756. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
  757. package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
  758. package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
  759. package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
  760. package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
  761. package/tsconfig.json +104 -0
@@ -0,0 +1,37 @@
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, type JsonObject, type Query } from '@finos/legend-cube';
17
+ /** `x | <body>` and the pieces of a body */
18
+ export declare const TEST__expression: {
19
+ lambda: (body: JsonObject) => JsonObject;
20
+ /** `$x.<name>` */
21
+ column: (name: string) => JsonObject;
22
+ call: (name: string, ...parameters: JsonObject[]) => JsonObject;
23
+ /** The two operands of `+`, `*`, … */
24
+ pair: (first: JsonObject, second: JsonObject) => JsonObject;
25
+ integer: (value: number) => JsonObject;
26
+ };
27
+ /** A new column: its name, its lambda, and the type the engine gives it */
28
+ export type TEST__ExtendColumn = readonly [string, JsonObject, string];
29
+ /**
30
+ * An Extend of these columns, typed as given for the input Cube infers for
31
+ * `input`'s selected node, so it is valid without the engine; the engine
32
+ * tests check the types are the engine's. With an invalid input, untyped.
33
+ */
34
+ export declare const TEST__typedExtend: (id: string, input: Query, columns: readonly TEST__ExtendColumn[]) => Extend;
35
+ /** `a: x | $x.ORDER_ID + 1` and `b: x | $x.a * 2`, the second using the first, both Integer */
36
+ export declare const TEST__ORDER_ID_EXTEND_COLUMNS: readonly TEST__ExtendColumn[];
37
+ //# sourceMappingURL=CubeExpressionTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeExpressionTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeExpressionTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,MAAM,EAEN,KAAK,UAAU,EAEf,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAK5B,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB;mBACZ,UAAU,KAAG,UAAU;IAKtC,kBAAkB;mBACH,MAAM,KAAG,UAAU;iBAKrB,MAAM,iBAAiB,UAAU,EAAE,KAAG,UAAU;IAK7D,sCAAsC;kBACxB,UAAU,UAAU,UAAU,KAAG,UAAU;qBAKxC,MAAM,KAAG,UAAU;CAIrC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,OAAO,KAAK,EACZ,SAAS,SAAS,kBAAkB,EAAE,KACrC,MAkBF,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,EAAE,SAAS,kBAAkB,EA2BtE,CAAC"}
@@ -0,0 +1,83 @@
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 { buildSchemasAndValidity, Extend, getExtendSignature, PrimitiveType, } from '@finos/legend-cube';
17
+ // Extend columns for tests (PLAN §11.7), written as the engine's JSON, as a
18
+ // column stores it: number literals as their digits
19
+ /** `x | <body>` and the pieces of a body */
20
+ export const TEST__expression = {
21
+ lambda: (body) => ({
22
+ _type: 'lambda',
23
+ parameters: [{ _type: 'var', name: 'x' }],
24
+ body: [body],
25
+ }),
26
+ /** `$x.<name>` */
27
+ column: (name) => ({
28
+ _type: 'property',
29
+ property: name,
30
+ parameters: [{ _type: 'var', name: 'x' }],
31
+ }),
32
+ call: (name, ...parameters) => ({
33
+ _type: 'func',
34
+ function: name,
35
+ parameters,
36
+ }),
37
+ /** The two operands of `+`, `*`, … */
38
+ pair: (first, second) => ({
39
+ _type: 'collection',
40
+ multiplicity: { lowerBound: 2, upperBound: 2 },
41
+ values: [first, second],
42
+ }),
43
+ integer: (value) => ({
44
+ _type: 'integer',
45
+ value: String(value),
46
+ }),
47
+ };
48
+ /**
49
+ * An Extend of these columns, typed as given for the input Cube infers for
50
+ * `input`'s selected node, so it is valid without the engine; the engine
51
+ * tests check the types are the engine's. With an invalid input, untyped.
52
+ */
53
+ export const TEST__typedExtend = (id, input, columns) => {
54
+ const schema = buildSchemasAndValidity(input).schemas.get(input.selected ?? '');
55
+ const extendColumns = columns.map(([name, lambda]) => ({
56
+ name,
57
+ code: name,
58
+ lambda,
59
+ }));
60
+ // an invalid input, e.g. a table not resolved yet: nothing to type it for
61
+ if (!schema) {
62
+ return new Extend(id, extendColumns);
63
+ }
64
+ return new Extend(id, extendColumns, {
65
+ kind: 'typed',
66
+ signature: getExtendSignature(schema, extendColumns),
67
+ types: columns.map(([, , type]) => PrimitiveType.get(type)),
68
+ });
69
+ };
70
+ /** `a: x | $x.ORDER_ID + 1` and `b: x | $x.a * 2`, the second using the first, both Integer */
71
+ export const TEST__ORDER_ID_EXTEND_COLUMNS = [
72
+ [
73
+ 'a',
74
+ TEST__expression.lambda(TEST__expression.call('plus', TEST__expression.pair(TEST__expression.column('ORDER_ID'), TEST__expression.integer(1)))),
75
+ 'Integer',
76
+ ],
77
+ [
78
+ 'b',
79
+ TEST__expression.lambda(TEST__expression.call('times', TEST__expression.pair(TEST__expression.column('a'), TEST__expression.integer(2)))),
80
+ 'Integer',
81
+ ],
82
+ ];
83
+ //# sourceMappingURL=CubeExpressionTestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeExpressionTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeExpressionTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAElB,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,4EAA4E;AAC5E,oDAAoD;AAEpD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,CAAC,IAAgB,EAAc,EAAE,CAAC,CAAC;QACzC,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC;IACF,kBAAkB;IAClB,MAAM,EAAE,CAAC,IAAY,EAAc,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;KAC1C,CAAC;IACF,IAAI,EAAE,CAAC,IAAY,EAAE,GAAG,UAAwB,EAAc,EAAE,CAAC,CAAC;QAChE,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;QACd,UAAU;KACX,CAAC;IACF,sCAAsC;IACtC,IAAI,EAAE,CAAC,KAAiB,EAAE,MAAkB,EAAc,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;QAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,EAAE,CAAC,KAAa,EAAc,EAAE,CAAC,CAAC;QACvC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;KACrB,CAAC;CACH,CAAC;AAKF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EAAU,EACV,KAAY,EACZ,OAAsC,EAC9B,EAAE;IACV,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CACvD,KAAK,CAAC,QAAQ,IAAI,EAAE,CACrB,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI;QACJ,IAAI,EAAE,IAAI;QACV,MAAM;KACP,CAAC,CAAC,CAAC;IACJ,0EAA0E;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;QACnC,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,AAAD,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E;QACE,GAAG;QACH,gBAAgB,CAAC,MAAM,CACrB,gBAAgB,CAAC,IAAI,CACnB,MAAM,EACN,gBAAgB,CAAC,IAAI,CACnB,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAC5B,CACF,CACF;QACD,SAAS;KACV;IACD;QACE,GAAG;QACH,gBAAgB,CAAC,MAAM,CACrB,gBAAgB,CAAC,IAAI,CACnB,OAAO,EACP,gBAAgB,CAAC,IAAI,CACnB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAC5B,CACF,CACF;QACD,SAAS;KACV;CACF,CAAC"}
@@ -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 { Query, type QueryNode, RelationalTableSource, Schema } from '@finos/legend-cube';
17
+ import type { CubeEngine, CubeResult, CubeResultValue } from '../graph-manager/CubeEngine.js';
18
+ /** A table of the Cube Northwind model, not resolved yet */
19
+ export declare const TEST__northwindTable: (id: string, table: string, schema?: string) => RelationalTableSource;
20
+ /** The sources, resolved through the engine as the editor resolves them */
21
+ export declare const TEST__resolveSources: (engine: CubeEngine, sources: readonly RelationalTableSource[]) => Promise<RelationalTableSource[]>;
22
+ /** A chain of nodes, each feeding the next on its first port, captured at the last */
23
+ export declare const TEST__chainOf: (nodes: readonly QueryNode[]) => Query;
24
+ /** Every node of the query is valid */
25
+ export declare const TEST__expectValidQuery: (query: Query) => void;
26
+ /**
27
+ * Runs the query up to its capture node, with this row limit; with a database
28
+ * type, written as for that database (on the fixture's H2 all the same, so a
29
+ * workaround's rows can be checked)
30
+ */
31
+ export declare const TEST__runQuery: (engine: CubeEngine, query: Query, rowLimit: number, databaseType?: string) => Promise<CubeResult>;
32
+ /** The values of one column of a result */
33
+ export declare const TEST__columnValues: (result: CubeResult, column: string) => CubeResultValue[];
34
+ /** The schema Cube infers for a node of the query, its capture node by default */
35
+ export declare const TEST__inferredSchema: (query: Query, nodeId?: string) => Schema;
36
+ /** A node of a query to type with the engine, under a key of its own */
37
+ export interface TEST__TypingTarget {
38
+ key: string;
39
+ query: Query;
40
+ nodeId: string;
41
+ }
42
+ /**
43
+ * Every node of the query that can be emitted, keyed `<prefix>/<node id>`, in
44
+ * the query's node order
45
+ */
46
+ export declare const TEST__emittableNodes: (prefix: string, query: Query) => TEST__TypingTarget[];
47
+ /** The engine's schema of each target, in one engine call */
48
+ export declare const TEST__engineSchemas: (engine: CubeEngine, targets: readonly TEST__TypingTarget[]) => Promise<Map<string, Schema | Error>>;
49
+ /**
50
+ * How Cube's schema of a node differs from the engine's, one line per
51
+ * difference: names, positions and types with their parameters must be the
52
+ * same. Nullability must be the same too, except on the columns in
53
+ * `widerNullable`, where the engine misreports it (outer-join padding, the
54
+ * FULL merged key: PLAN §4.7, §11.5) and Cube must say nullable. With
55
+ * `oneWay`, Cube may be wider on any column.
56
+ */
57
+ export declare const TEST__typingDifferences: (key: string, cube: Schema | undefined, engineSchema: Schema | Error | undefined, options?: {
58
+ widerNullable?: readonly string[] | undefined;
59
+ oneWay?: boolean | undefined;
60
+ }) => string[];
61
+ /**
62
+ * The engine types the node as Cube infers it: the same names, in the same
63
+ * order, of the same types and parameters. Cube's nullability may only be
64
+ * wider, since the engine misreports it after outer joins (PLAN §4.7).
65
+ */
66
+ export declare const TEST__expectEngineTyping: (engine: CubeEngine, query: Query, nodeId?: string) => Promise<void>;
67
+ //# sourceMappingURL=CubeOperationsTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeOperationsTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAIL,KAAK,EACL,KAAK,SAAS,EAEd,qBAAqB,EACrB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAUxC,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,OAAO,MAAM,EACb,eAAoB,KACnB,qBAKC,CAAC;AAEL,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,UAAU,EAClB,SAAS,SAAS,qBAAqB,EAAE,KACxC,OAAO,CAAC,qBAAqB,EAAE,CAiBjC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,KAczD,CAAC;AAEJ,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,GAAI,OAAO,KAAK,KAAG,IAMrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,UAAU,MAAM,EAChB,eAAe,MAAM,KACpB,OAAO,CAAC,UAAU,CAUpB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,EAClB,QAAQ,MAAM,KACb,eAAe,EAIjB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,EACZ,eAA6B,KAC5B,MAOF,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,OAAO,KAAK,KACX,kBAAkB,EAKpB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,UAAU,EAClB,SAAS,SAAS,kBAAkB,EAAE,KACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CASnC,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,MAAM,EACX,MAAM,MAAM,GAAG,SAAS,EACxB,cAAc,MAAM,GAAG,KAAK,GAAG,SAAS,EACxC,UAAS;IACP,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzB,KACL,MAAM,EA6BR,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,eAA6B,KAC5B,OAAO,CAAC,IAAI,CAYd,CAAC"}
@@ -0,0 +1,138 @@
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 { expect } from '@jest/globals';
17
+ import { buildSchemasAndValidity, Connection, createNodeRegistry, Query, QueryEmitter, RelationalTableSource, Schema, } from '@finos/legend-cube';
18
+ import { CUBE_NORTHWIND_DATABASE, CUBE_NORTHWIND_MODEL, CUBE_NORTHWIND_RUNTIME, } from '../stores/fixtures/CubeNorthwindModel.js';
19
+ // Helpers for engine tests of operations on the Cube Northwind fixture,
20
+ // through the engine port only (no V1 classes), so any CubeEngine works
21
+ /** A table of the Cube Northwind model, not resolved yet */
22
+ export const TEST__northwindTable = (id, table, schema = 'NORTHWIND') => new RelationalTableSource(id, {
23
+ database: CUBE_NORTHWIND_DATABASE,
24
+ schema,
25
+ table,
26
+ });
27
+ /** The sources, resolved through the engine as the editor resolves them */
28
+ export const TEST__resolveSources = async (engine, sources) => {
29
+ const typed = await engine.resolveSchemas(CUBE_NORTHWIND_MODEL, new Map(sources.map((source) => [
30
+ source.id,
31
+ [source.database, source.schema, source.table],
32
+ ])));
33
+ return sources.map((source) => {
34
+ const schema = typed.get(source.id);
35
+ if (!(schema instanceof Schema)) {
36
+ throw schema ?? new Error(`No schema for ${source.id}`);
37
+ }
38
+ return source.withResolution({ kind: 'resolved', schema });
39
+ });
40
+ };
41
+ /** A chain of nodes, each feeding the next on its first port, captured at the last */
42
+ export const TEST__chainOf = (nodes) => new Query(nodes, nodes
43
+ .slice(1)
44
+ .map((node, index) => new Connection(nodes[index].id, node.id, node.ports[0])), nodes.at(-1)?.id);
45
+ /** Every node of the query is valid */
46
+ export const TEST__expectValidQuery = (query) => {
47
+ const { validity } = buildSchemasAndValidity(query, createNodeRegistry().queryRules);
48
+ expect([...validity].filter(([, errors]) => errors.length)).toEqual([]);
49
+ };
50
+ /**
51
+ * Runs the query up to its capture node, with this row limit; with a database
52
+ * type, written as for that database (on the fixture's H2 all the same, so a
53
+ * workaround's rows can be checked)
54
+ */
55
+ export const TEST__runQuery = async (engine, query, rowLimit, databaseType) => {
56
+ TEST__expectValidQuery(query);
57
+ return engine.execute(CUBE_NORTHWIND_MODEL, new QueryEmitter(query).emitExecutionLambda({
58
+ rowLimit,
59
+ runtime: CUBE_NORTHWIND_RUNTIME,
60
+ databaseType,
61
+ }));
62
+ };
63
+ /** The values of one column of a result */
64
+ export const TEST__columnValues = (result, column) => {
65
+ const index = result.columns.indexOf(column);
66
+ expect(index).toBeGreaterThanOrEqual(0);
67
+ return result.rows.map((row) => row[index] ?? null);
68
+ };
69
+ /** The schema Cube infers for a node of the query, its capture node by default */
70
+ export const TEST__inferredSchema = (query, nodeId = query.selected ?? '') => {
71
+ const schema = buildSchemasAndValidity(query, createNodeRegistry().queryRules).schemas.get(nodeId);
72
+ expect(schema).toBeDefined();
73
+ return schema;
74
+ };
75
+ /**
76
+ * Every node of the query that can be emitted, keyed `<prefix>/<node id>`, in
77
+ * the query's node order
78
+ */
79
+ export const TEST__emittableNodes = (prefix, query) => {
80
+ const emitter = new QueryEmitter(query);
81
+ return query.nodes
82
+ .filter((node) => emitter.canEmit(node.id))
83
+ .map((node) => ({ key: `${prefix}/${node.id}`, query, nodeId: node.id }));
84
+ };
85
+ /** The engine's schema of each target, in one engine call */
86
+ export const TEST__engineSchemas = async (engine, targets) => engine.typeLambdas(CUBE_NORTHWIND_MODEL, new Map(targets.map(({ key, query, nodeId }) => [
87
+ key,
88
+ new QueryEmitter(query).emitTypingLambda(nodeId),
89
+ ])));
90
+ /**
91
+ * How Cube's schema of a node differs from the engine's, one line per
92
+ * difference: names, positions and types with their parameters must be the
93
+ * same. Nullability must be the same too, except on the columns in
94
+ * `widerNullable`, where the engine misreports it (outer-join padding, the
95
+ * FULL merged key: PLAN §4.7, §11.5) and Cube must say nullable. With
96
+ * `oneWay`, Cube may be wider on any column.
97
+ */
98
+ export const TEST__typingDifferences = (key, cube, engineSchema, options = {}) => {
99
+ if (!cube) {
100
+ return [`${key}: Cube infers no schema`];
101
+ }
102
+ if (!(engineSchema instanceof Schema)) {
103
+ return [`${key}: the engine gives no schema (${engineSchema?.message})`];
104
+ }
105
+ const describe = (schema) => schema.columns.map((column) => `${column.name}: ${column.type.fullName}`);
106
+ if (describe(cube).join() !== describe(engineSchema).join()) {
107
+ return [
108
+ `${key}: columns [${describe(cube).join(', ')}], the engine's [${describe(engineSchema).join(', ')}]`,
109
+ ];
110
+ }
111
+ const wider = new Set(options.widerNullable ?? []);
112
+ return cube.columns.flatMap((column, index) => {
113
+ const engineNullable = engineSchema.columns[index]?.nullable === true;
114
+ if (wider.has(column.name)) {
115
+ return column.nullable
116
+ ? []
117
+ : [`${key}: ${column.name} should be nullable`];
118
+ }
119
+ return column.nullable === engineNullable ||
120
+ (options.oneWay && column.nullable)
121
+ ? []
122
+ : [
123
+ `${key}: ${column.name} is ${column.nullable ? '' : 'not '}nullable, the engine's ${engineNullable ? '' : 'not '}nullable`,
124
+ ];
125
+ });
126
+ };
127
+ /**
128
+ * The engine types the node as Cube infers it: the same names, in the same
129
+ * order, of the same types and parameters. Cube's nullability may only be
130
+ * wider, since the engine misreports it after outer joins (PLAN §4.7).
131
+ */
132
+ export const TEST__expectEngineTyping = async (engine, query, nodeId = query.selected ?? '') => {
133
+ const typed = await TEST__engineSchemas(engine, [
134
+ { key: nodeId, query, nodeId },
135
+ ]);
136
+ expect(TEST__typingDifferences(nodeId, TEST__inferredSchema(query, nodeId), typed.get(nodeId), { oneWay: true })).toEqual([]);
137
+ };
138
+ //# sourceMappingURL=CubeOperationsTestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeOperationsTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"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"}
@@ -30,4 +30,16 @@ export declare const TEST__renderInCubeApplication: (element: React.ReactNode, a
30
30
  * tables to be typed again, so nothing changes after the test has ended
31
31
  */
32
32
  export declare const TEST__importDocument: (editorState: CubeEditorState, document: CubeDocument, readOnly?: boolean) => Promise<void>;
33
+ /** The graph header's 'Add Items' trigger */
34
+ export declare const TEST__getAddItemsTrigger: () => HTMLButtonElement;
35
+ /** Opens 'Add Items' in the graph's header and returns its menu */
36
+ export declare const TEST__openAddItems: () => Promise<HTMLElement>;
37
+ /**
38
+ * Chooses an item of 'Add Items' by its label, as the menu shows it (e.g.
39
+ * 'Relational Database Table', 'Data Product (BETA)', 'Filter by Column'),
40
+ * and waits for the menu to close
41
+ */
42
+ export declare const TEST__chooseAddItem: (label: string) => Promise<void>;
43
+ /** Closes 'Add Items' without choosing an item, as Escape does */
44
+ export declare const TEST__closeAddItems: () => Promise<void>;
33
45
  //# sourceMappingURL=CubePageTestUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubePageTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAkBpE,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,QAAO,IAQ9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,KAAK,CAAC,SAAS,EACxB,kBAAkB,6BAA6B,EAC/C,aAAa,MAAM,KAClB,OAAO,CAAC,YAAY,CAWtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,eAAe,EAC5B,UAAU,YAAY,EACtB,kBAAgB,KACf,OAAO,CAAC,IAAI,CAOd,CAAC"}
1
+ {"version":3,"file":"CubePageTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,KAAK,YAAY,EAKlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAkBpE,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,QAAO,IAQ9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,KAAK,CAAC,SAAS,EACxB,kBAAkB,6BAA6B,EAC/C,aAAa,MAAM,KAClB,OAAO,CAAC,YAAY,CAWtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,eAAe,EAC5B,UAAU,YAAY,EACtB,kBAAgB,KACf,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,QAAO,iBAIzC,CAAC;AAEJ,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,WAAW,CAG9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAIrE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,IAAI,CAGxD,CAAC"}
@@ -14,9 +14,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { expect } from '@jest/globals';
17
18
  import { ApplicationFrameworkProvider, ApplicationStoreProvider, } from '@finos/legend-application';
18
19
  import { TEST__BrowserEnvironmentProvider } from '@finos/legend-application/test';
19
- import { act, render, waitFor, } from '@testing-library/react';
20
+ import { act, fireEvent, render, screen, waitFor, within, } from '@testing-library/react';
21
+ import { LEGEND_CUBE_TEST_ID } from '../__lib__/LegendCubeTesting.js';
20
22
  /** React Flow watches the canvas with an IntersectionObserver, which jsdom lacks */
21
23
  class TEST__IntersectionObserver {
22
24
  observe() {
@@ -65,4 +67,26 @@ export const TEST__importDocument = async (editorState, document, readOnly = fal
65
67
  }
66
68
  });
67
69
  };
70
+ /** The graph header's 'Add Items' trigger */
71
+ export const TEST__getAddItemsTrigger = () => within(screen.getByTestId(LEGEND_CUBE_TEST_ID.GRAPH_REGION)).getByRole('button', { name: 'Add Items' });
72
+ /** Opens 'Add Items' in the graph's header and returns its menu */
73
+ export const TEST__openAddItems = async () => {
74
+ fireEvent.click(TEST__getAddItemsTrigger());
75
+ return screen.findByRole('menu');
76
+ };
77
+ /**
78
+ * Chooses an item of 'Add Items' by its label, as the menu shows it (e.g.
79
+ * 'Relational Database Table', 'Data Product (BETA)', 'Filter by Column'),
80
+ * and waits for the menu to close
81
+ */
82
+ export const TEST__chooseAddItem = async (label) => {
83
+ const menu = await TEST__openAddItems();
84
+ fireEvent.click(within(menu).getByRole('menuitem', { name: label }));
85
+ await waitFor(() => expect(screen.queryByRole('menu')).toBeNull());
86
+ };
87
+ /** Closes 'Add Items' without choosing an item, as Escape does */
88
+ export const TEST__closeAddItems = async () => {
89
+ fireEvent.keyDown(screen.getByRole('menu'), { key: 'Escape' });
90
+ await waitFor(() => expect(screen.queryByRole('menu')).toBeNull());
91
+ };
68
92
  //# sourceMappingURL=CubePageTestUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubePageTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EACL,GAAG,EAEH,MAAM,EACN,OAAO,GACR,MAAM,wBAAwB,CAAC;AAGhC,oFAAoF;AACpF,MAAM,0BAA0B;IAC9B,OAAO;QACL,sCAAsC;IACxC,CAAC;IACD,SAAS;QACP,2BAA2B;IAC7B,CAAC;IACD,UAAU;QACR,2BAA2B;IAC7B,CAAC;IACD,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,IAAI,CAAC,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE;YACpD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAwB,EACxB,gBAA+C,EAC/C,WAAmB,EACI,EAAE;IACzB,2BAA2B,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CACzB,KAAC,wBAAwB,IAAC,KAAK,EAAE,gBAAgB,YAC/C,KAAC,gCAAgC,IAAC,cAAc,EAAE,CAAC,GAAG,CAAC,YACrD,KAAC,4BAA4B,cAAE,OAAO,GAAgC,GACrC,GACV,CAC5B,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAA4B,EAC5B,QAAsB,EACtB,QAAQ,GAAG,KAAK,EACD,EAAE;IACjB,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,GAAG,EAAE;QACjB,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"CubePageTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"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"}
@@ -16,15 +16,19 @@
16
16
  import { type GenericLegendApplicationStore, type LegendApplicationPlugin, LegendApplicationPluginManager } from '@finos/legend-application';
17
17
  import type { CubeHost } from '../stores/CubeHost.js';
18
18
  import { type FakeCubeEngine, type FakeCubeEngineAnswers } from './FakeCubeEngine.js';
19
+ import { type FakeCubeConnectionExplorer } from './FakeCubeConnectionExplorer.js';
20
+ import { type FakeCubeDataProductCatalog } from './FakeCubeDataProductCatalog.js';
19
21
  export declare class TEST__LegendCubePluginManager extends LegendApplicationPluginManager<LegendApplicationPlugin> {
20
22
  private constructor();
21
23
  static create(): TEST__LegendCubePluginManager;
22
24
  }
23
25
  /** A fresh application store: build one per test, since it initializes once */
24
26
  export declare const TEST__createCubeApplicationStore: (plugins?: LegendApplicationPlugin[]) => GenericLegendApplicationStore;
25
- /** A host over a fake engine, with the bundled models */
27
+ /** A host over fakes of the engine, the connection explorer and the data product catalog, with the bundled models */
26
28
  export declare const TEST__createCubeHost: (answers?: FakeCubeEngineAnswers, applicationStore?: GenericLegendApplicationStore) => {
27
29
  host: CubeHost;
28
30
  fake: FakeCubeEngine;
31
+ connections: FakeCubeConnectionExplorer;
32
+ dataProducts: FakeCubeDataProductCatalog;
29
33
  };
30
34
  //# sourceMappingURL=CubeTestApplication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubeTestApplication.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAC5B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,6BAA8B,SAAQ,8BAA8B,CAAC,uBAAuB,CAAC;IACxG,OAAO;IAIP,MAAM,CAAC,MAAM,IAAI,6BAA6B;CAG/C;AAQD,+EAA+E;AAC/E,eAAO,MAAM,gCAAgC,GAC3C,UAAS,uBAAuB,EAAO,KACtC,6BAWF,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,qBAAqB,EAC/B,gDAAqD,KACpD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAUxC,CAAC"}
1
+ {"version":3,"file":"CubeTestApplication.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAC5B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AAKzC,qBAAa,6BAA8B,SAAQ,8BAA8B,CAAC,uBAAuB,CAAC;IACxG,OAAO;IAIP,MAAM,CAAC,MAAM,IAAI,6BAA6B;CAG/C;AAQD,+EAA+E;AAC/E,eAAO,MAAM,gCAAgC,GAC3C,UAAS,uBAAuB,EAAO,KACtC,6BAWF,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,qBAAqB,EAC/B,gDAAqD,KACpD;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,0BAA0B,CAAC;IACxC,YAAY,EAAE,0BAA0B,CAAC;CAiB1C,CAAC"}
@@ -17,6 +17,8 @@ import { ApplicationStore, LegendApplicationConfig, LegendApplicationPluginManag
17
17
  import { TEST__getApplicationVersionData } from '@finos/legend-application/test';
18
18
  import { LocalModelCatalog } from '../stores/LocalModelCatalog.js';
19
19
  import { createFakeCubeEngine, } from './FakeCubeEngine.js';
20
+ import { createFakeCubeConnectionExplorer, } from './FakeCubeConnectionExplorer.js';
21
+ import { createFakeCubeDataProductCatalog, } from './FakeCubeDataProductCatalog.js';
20
22
  // A bare Legend application for Cube's jsdom tests, as the data-space viewer's
21
23
  // tests build theirs: the builder may not use the query builder's test helpers
22
24
  export class TEST__LegendCubePluginManager extends LegendApplicationPluginManager {
@@ -42,16 +44,22 @@ export const TEST__createCubeApplicationStore = (plugins = []) => {
42
44
  baseAddress: '/',
43
45
  }), pluginManager);
44
46
  };
45
- /** A host over a fake engine, with the bundled models */
47
+ /** A host over fakes of the engine, the connection explorer and the data product catalog, with the bundled models */
46
48
  export const TEST__createCubeHost = (answers, applicationStore = TEST__createCubeApplicationStore()) => {
47
49
  const fake = createFakeCubeEngine(answers);
50
+ const connections = createFakeCubeConnectionExplorer();
51
+ const dataProducts = createFakeCubeDataProductCatalog();
48
52
  return {
49
53
  host: {
50
54
  applicationStore,
51
55
  engine: fake.engine,
52
56
  modelCatalog: new LocalModelCatalog(fake.engine),
57
+ connectionExplorer: connections.explorer,
58
+ dataProductCatalog: dataProducts.catalog,
53
59
  },
54
60
  fake,
61
+ connections,
62
+ dataProducts,
55
63
  };
56
64
  };
57
65
  //# sourceMappingURL=CubeTestApplication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubeTestApplication.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAM,OAAO,6BAA8B,SAAQ,8BAAuD;IACxG;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,iCAAkC,SAAQ,uBAAuB;IAC5D,+BAA+B;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAqC,EAAE,EACR,EAAE;IACjC,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,IAAI,gBAAgB,CACzB,IAAI,iCAAiC,CAAC;QACpC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5C,WAAW,EAAE,+BAA+B,EAAE;QAC9C,WAAW,EAAE,GAAG;KACjB,CAAC,EACF,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA+B,EAC/B,gBAAgB,GAAG,gCAAgC,EAAE,EACX,EAAE;IAC5C,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;SACjD;QACD,IAAI;KACL,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"CubeTestApplication.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gCAAgC,GAEjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gCAAgC,GAEjC,MAAM,iCAAiC,CAAC;AAEzC,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAM,OAAO,6BAA8B,SAAQ,8BAAuD;IACxG;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,iCAAkC,SAAQ,uBAAuB;IAC5D,+BAA+B;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAqC,EAAE,EACR,EAAE;IACjC,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,IAAI,gBAAgB,CACzB,IAAI,iCAAiC,CAAC;QACpC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5C,WAAW,EAAE,+BAA+B,EAAE;QAC9C,WAAW,EAAE,GAAG;KACjB,CAAC,EACF,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,qHAAqH;AACrH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA+B,EAC/B,gBAAgB,GAAG,gCAAgC,EAAE,EAMrD,EAAE;IACF,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,gCAAgC,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,gCAAgC,EAAE,CAAC;IACxD,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,kBAAkB,EAAE,WAAW,CAAC,QAAQ;YACxC,kBAAkB,EAAE,YAAY,CAAC,OAAO;SACzC;QACD,IAAI;QACJ,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,33 @@
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 { jest } from '@jest/globals';
17
+ import { type CubeConnectionExplorer, type CubeExploredTable } from '../graph-manager/CubeConnectionExplorer.js';
18
+ /** A schema of two tables, one with a column Cube hides */
19
+ export declare const FAKE_DIRECT_TABLES: readonly CubeExploredTable[];
20
+ export interface FakeCubeConnectionExplorerAnswers {
21
+ /** keyed by schema name; a schema not in it gets a compile error */
22
+ readonly tables?: ReadonlyMap<string, readonly CubeExploredTable[]>;
23
+ }
24
+ export interface FakeCubeConnectionExplorer {
25
+ readonly explorer: CubeConnectionExplorer;
26
+ readonly buildConnection: jest.Mock<CubeConnectionExplorer['buildConnection']>;
27
+ readonly describeConnection: jest.Mock<CubeConnectionExplorer['describeConnection']>;
28
+ readonly listSchemas: jest.Mock<CubeConnectionExplorer['listSchemas']>;
29
+ readonly listTables: jest.Mock<CubeConnectionExplorer['listTables']>;
30
+ }
31
+ /** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
32
+ export declare const createFakeCubeConnectionExplorer: (answers?: FakeCubeConnectionExplorerAnswers) => FakeCubeConnectionExplorer;
33
+ //# sourceMappingURL=FakeCubeConnectionExplorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeCubeConnectionExplorer.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,4CAA4C,CAAC;AAUpD,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,iBAAiB,EAe1D,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CACjC,sBAAsB,CAAC,iBAAiB,CAAC,CAC1C,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CACpC,sBAAsB,CAAC,oBAAoB,CAAC,CAC7C,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;CACtE;AAED,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,GAC3C,UAAS,iCAAsC,KAC9C,0BAwCF,CAAC"}
@@ -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 { jest } from '@jest/globals';
17
+ import { CubeConnectionDatasourceKind, CubeDirectDatabaseType, } from '../graph-manager/CubeConnectionExplorer.js';
18
+ import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
19
+ // A connection explorer for jsdom tests: canned answers, no network. Each
20
+ // method is a jest.fn, so tests can read its calls or change its answer. Any
21
+ // connection is supported and summarized as an in-memory H2 database.
22
+ /** A schema of two tables, one with a column Cube hides */
23
+ export const FAKE_DIRECT_TABLES = [
24
+ {
25
+ name: 'ORDERS',
26
+ storedName: '"ORDERS"',
27
+ columnCount: 3,
28
+ hiddenColumnCount: 1,
29
+ flags: [],
30
+ },
31
+ {
32
+ name: 'ORDER.LINES',
33
+ storedName: '"ORDER.LINES"',
34
+ columnCount: 2,
35
+ hiddenColumnCount: 0,
36
+ flags: [],
37
+ },
38
+ ];
39
+ /** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
40
+ export const createFakeCubeConnectionExplorer = (answers = {}) => {
41
+ const tables = answers.tables ?? new Map([['CUBE_DIRECT', FAKE_DIRECT_TABLES]]);
42
+ const buildConnection = jest.fn((draft) => ({ _type: 'fake', ...draft }));
43
+ const describeConnection = jest.fn(() => ({
44
+ supported: true,
45
+ summary: {
46
+ databaseType: CubeDirectDatabaseType.H2,
47
+ datasourceKind: CubeConnectionDatasourceKind.LOCAL_H2,
48
+ setupSqlCount: 1,
49
+ authenticationKind: 'h2Default',
50
+ },
51
+ }));
52
+ const listSchemas = jest.fn(async () => Promise.resolve([...tables.keys()]));
53
+ const listTables = jest.fn(async (_connection, schema) => {
54
+ const found = tables.get(schema);
55
+ return found
56
+ ? Promise.resolve(found)
57
+ : Promise.reject(new CubeEngineError(CubeEngineErrorKind.COMPILE, `The schema "${schema}" can't be found`));
58
+ });
59
+ return {
60
+ explorer: { buildConnection, describeConnection, listSchemas, listTables },
61
+ buildConnection,
62
+ describeConnection,
63
+ listSchemas,
64
+ listTables,
65
+ };
66
+ };
67
+ //# sourceMappingURL=FakeCubeConnectionExplorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeCubeConnectionExplorer.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,4BAA4B,EAE5B,sBAAsB,GAEvB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,0EAA0E;AAC1E,6EAA6E;AAC7E,sEAAsE;AAEtE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,EAAE;KACV;IACD;QACE,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAmBF,mFAAmF;AACnF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAA6C,EAAE,EACnB,EAAE;IAC9B,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CACzC,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAEhC,GAAG,EAAE,CAAC,CAAC;QACP,SAAS,EAAE,IAAI;QACf,OAAO,EAAE;YACP,YAAY,EAAE,sBAAsB,CAAC,EAAE;YACvC,cAAc,EAAE,4BAA4B,CAAC,QAAQ;YACrD,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,WAAW;SAChC;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAwC,KAAK,IAAI,EAAE,CAC5E,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CACpC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CACxB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,KAAK;YACV,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,IAAI,eAAe,CACjB,mBAAmB,CAAC,OAAO,EAC3B,eAAe,MAAM,kBAAkB,CACxC,CACF,CAAC;IACR,CAAC,CACF,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;QAC1E,eAAe;QACf,kBAAkB;QAClB,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}