@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,104 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { Schema } from '@finos/legend-cube';
17
+ import { type DepotServerClient } from '@finos/legend-server-depot';
18
+ import type { LakehouseContractServerClient } from '@finos/legend-server-lakehouse';
19
+ import { type MarketplaceServerClient } from '@finos/legend-server-marketplace';
20
+ import { type CubeDataProductProject, CubeDataProductEnvironmentType } from '../../../CubeDataProduct.js';
21
+ import { CubeAccessPointGroupAccess, type CubeAccessPointLocation, type CubeDataProductCatalog, type CubeMarketplaceLinkTarget, CubeDataProductCandidate, type CubeDataProductDescription } from '../../../CubeDataProductCatalog.js';
22
+ import { CubeEngineError, type NodeId } from '../../../CubeEngine.js';
23
+ import { type V1_CubeEnterpriseStereotype } from './V1_CubeDataProductArtifact.js';
24
+ export declare const V1_CUBE_DATA_PRODUCT_LIST_ERROR: {
25
+ readonly UNREADABLE_PAGE: "The lakehouse's answer isn't a page of data products";
26
+ readonly NO_CURSOR: "The lakehouse said more data products follow, but not where the next page starts";
27
+ readonly REPEATED_CURSOR: "The lakehouse sent the same page of data products twice";
28
+ readonly TOO_MANY_PAGES: "The lakehouse's data product list runs past 50 pages";
29
+ };
30
+ export declare const V1_CUBE_DATA_PRODUCT_SEARCH_ERROR: {
31
+ readonly UNREADABLE_PAGE: "The marketplace's answer isn't a page of search results";
32
+ };
33
+ /** What a host can add to the catalog: each part turns on what it serves */
34
+ export interface V1_CubeDataProductCatalogOptions {
35
+ /** The marketplace's search API; with it, searches run there */
36
+ readonly marketplaceServerClient?: MarketplaceServerClient | undefined;
37
+ /** Builds a product's marketplace page, as the host's marketplace names it */
38
+ readonly marketplaceLink?: ((target: CubeMarketplaceLinkTarget) => string | undefined) | undefined;
39
+ /** The viewer, whose contracts give their access to each group */
40
+ readonly getCurrentUser?: (() => string) | undefined;
41
+ /** The stereotype the host's marketplace marks groups open to everyone with */
42
+ readonly enterpriseStereotype?: V1_CubeEnterpriseStereotype | undefined;
43
+ }
44
+ export declare class V1_LegendCubeDataProductCatalog implements CubeDataProductCatalog {
45
+ readonly environmentTypes: CubeDataProductEnvironmentType[];
46
+ private readonly contractServerClient;
47
+ private readonly depotServerClient;
48
+ private readonly getAccessToken;
49
+ private readonly options;
50
+ /** Each class's list, read once per page visit */
51
+ private readonly lists;
52
+ /** Each product's description, by its project, version and path */
53
+ private readonly descriptions;
54
+ /** The search answers whose page leaves out matches */
55
+ private readonly cutShortAnswers;
56
+ constructor(contractServerClient: LakehouseContractServerClient, depotServerClient: DepotServerClient, getAccessToken: () => string | undefined, options?: V1_CubeDataProductCatalogOptions);
57
+ get searchesOnServer(): boolean;
58
+ get searchLimit(): number | undefined;
59
+ isCutShort(answer: readonly CubeDataProductCandidate[]): boolean;
60
+ /**
61
+ * The class's lite rows, page by page along the lakehouse's cursor. Stops
62
+ * with an error on a page that isn't one, on a missing or repeated cursor,
63
+ * or past the page cap, and between pages once the search is dropped.
64
+ */
65
+ private readLiteRows;
66
+ /**
67
+ * The class's list, read once per page visit. A list whose search is
68
+ * dropped while it pages is forgotten at once, so the next search reads it
69
+ * again rather than waiting on the stopped one.
70
+ */
71
+ private listOf;
72
+ /** The class's list, along its pages; a stopped one fails with why it was stopped */
73
+ private readList;
74
+ /**
75
+ * The products the marketplace matches, in its order: the first page of a
76
+ * full text search in the class. A failed search fails; it never falls
77
+ * back to the lakehouse's list
78
+ */
79
+ private searchMarketplace;
80
+ search(search: {
81
+ text: string;
82
+ environmentType: CubeDataProductEnvironmentType;
83
+ }, signal?: AbortSignal): Promise<readonly CubeDataProductCandidate[]>;
84
+ /** The product's deployed artifact: the generation file at its path */
85
+ private readArtifact;
86
+ /** The product's definition at the deployed version */
87
+ private readDefinition;
88
+ describe(candidate: CubeDataProductCandidate): Promise<CubeDataProductDescription>;
89
+ resolveSchemas(project: CubeDataProductProject, sources: ReadonlyMap<NodeId, CubeAccessPointLocation>, options?: {
90
+ readonly fresh?: boolean | undefined;
91
+ }): Promise<Map<NodeId, Schema | CubeEngineError>>;
92
+ /** The product's page in the host's marketplace, as the host builds it; none without one */
93
+ getMarketplaceLink(target: CubeMarketplaceLinkTarget): string | undefined;
94
+ /**
95
+ * The viewer's access to each of the product's groups, as the marketplace
96
+ * shows it, from the viewer's contracts, read afresh each time: a group
97
+ * marked open to everyone needs none; otherwise the contract for that
98
+ * group of this deployment furthest along approval. A group with no
99
+ * contract has no access only when the host marks open groups, since it
100
+ * might be one otherwise
101
+ */
102
+ getAccess(candidate: CubeDataProductCandidate, signal?: AbortSignal): Promise<ReadonlyMap<string, CubeAccessPointGroupAccess>>;
103
+ }
104
+ //# sourceMappingURL=V1_LegendCubeDataProductCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_LegendCubeDataProductCatalog.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,484 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { V1_EnrichedUserApprovalStatus, V1_EntitlementsDataProductLiteModelSchema, V1_liteDataContractWithUserStatusModelSchema, V1_ResourceType, V1_SdlcDeploymentDataProductOrigin, } from '@finos/legend-graph';
17
+ import { StoreProjectData, } from '@finos/legend-server-depot';
18
+ import { DataProductSearchResult, LakehouseDataProductSearchResultDetails, LakehouseSDLCDataProductSearchResultOrigin, SearchType, } from '@finos/legend-server-marketplace';
19
+ import { isNonNullable } from '@finos/legend-shared';
20
+ import { StoredFileGeneration } from '@finos/legend-storage';
21
+ import { deserialize } from 'serializr';
22
+ import { CubeDataProductEnvironmentType, } from '../../../CubeDataProduct.js';
23
+ import { CubeAccessPointGroupAccess, CubeDataProductCandidate, } from '../../../CubeDataProductCatalog.js';
24
+ import { CubeEngineError, CubeEngineErrorKind, } from '../../../CubeEngine.js';
25
+ import { V1_findCubeAccessPointSchema, V1_readCubeDataProductDescription, } from './V1_CubeDataProductArtifact.js';
26
+ // The deployed data products, as Legend Query lists and reads them: the
27
+ // lakehouse's lite list per class (DataProductSelectorState), then a
28
+ // product's deployed artifact (getGenerationFilesByType) and its definition
29
+ // at the deployed version, from the depot. Cube pages the lite list itself
30
+ // (PLAN §6.8): the client's own loop never ends on a page that says more
31
+ // follow without saying where, or on a repeated cursor, and can't be stopped.
32
+ // Given the marketplace's search API, a search runs there instead, as the
33
+ // marketplace's Lakehouse Access search does, and the list is never read
34
+ /** The generation type of a data product's artifact */
35
+ const DATA_PRODUCT_GENERATION_TYPE = 'dataProduct';
36
+ /** The classes Cube lists, Production first, as Data Cube's selection offers */
37
+ const ENVIRONMENT_TYPES = [
38
+ CubeDataProductEnvironmentType.PRODUCTION,
39
+ CubeDataProductEnvironmentType.PRODUCTION_PARALLEL,
40
+ ];
41
+ /** The lite list's page size, as the lakehouse client's own loop uses */
42
+ const LITE_PAGE_SIZE = 1000;
43
+ /** Past this many pages a list is taken to be stuck */
44
+ const LITE_PAGE_CAP = 50;
45
+ /** The products one marketplace search gives: its first page, of this size */
46
+ const SEARCH_PAGE_SIZE = 100;
47
+ export const V1_CUBE_DATA_PRODUCT_LIST_ERROR = {
48
+ UNREADABLE_PAGE: "The lakehouse's answer isn't a page of data products",
49
+ NO_CURSOR: 'The lakehouse said more data products follow, but not where the next page starts',
50
+ REPEATED_CURSOR: 'The lakehouse sent the same page of data products twice',
51
+ TOO_MANY_PAGES: `The lakehouse's data product list runs past ${LITE_PAGE_CAP} pages`,
52
+ };
53
+ export const V1_CUBE_DATA_PRODUCT_SEARCH_ERROR = {
54
+ UNREADABLE_PAGE: "The marketplace's answer isn't a page of search results",
55
+ };
56
+ const toMessage = (error) => error instanceof Error ? error.message : String(error);
57
+ const isPlainObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
58
+ /** Stops a list between pages once its search is dropped */
59
+ const throwIfAborted = (signal) => {
60
+ if (signal?.aborted) {
61
+ throw signal.reason instanceof Error
62
+ ? signal.reason
63
+ : new Error('The data product list was stopped');
64
+ }
65
+ };
66
+ /** A lite row as Cube lists it; none for an ad hoc or incomplete one */
67
+ const toCandidate = (row, environmentType) => {
68
+ const { origin } = row;
69
+ if (!(origin instanceof V1_SdlcDeploymentDataProductOrigin) ||
70
+ !origin.group ||
71
+ !origin.artifact ||
72
+ !origin.version ||
73
+ !row.fullPath ||
74
+ row.lakehouseEnvironment?.type.toUpperCase() !== environmentType) {
75
+ return undefined;
76
+ }
77
+ return new CubeDataProductCandidate({
78
+ id: row.id,
79
+ deploymentId: String(row.deploymentId),
80
+ dataProductPath: row.fullPath,
81
+ title: row.title ?? row.id,
82
+ // a wire null is no description
83
+ description: row.description ?? undefined,
84
+ groupId: origin.group,
85
+ artifactId: origin.artifact,
86
+ versionId: origin.version,
87
+ environmentType,
88
+ producerEnvironmentName: row.lakehouseEnvironment.producerEnvironmentName,
89
+ });
90
+ };
91
+ /** A lite row read on its own: one that can't be read is dropped, never failing the list */
92
+ const toLiteCandidate = (row, environmentType) => {
93
+ try {
94
+ return toCandidate(deserialize(V1_EntitlementsDataProductLiteModelSchema, row), environmentType);
95
+ }
96
+ catch {
97
+ return undefined;
98
+ }
99
+ };
100
+ /**
101
+ * A search row as Cube lists it, the same candidate as its lite row's: none
102
+ * for a DataSpace, an error, an ad hoc or incomplete one, or another class's
103
+ */
104
+ const toSearchCandidate = (result, environmentType) => {
105
+ const details = result.dataProductDetails;
106
+ if (!(details instanceof LakehouseDataProductSearchResultDetails)) {
107
+ return undefined;
108
+ }
109
+ const { origin } = details;
110
+ const deploymentId = details.deploymentId;
111
+ if (!(origin instanceof LakehouseSDLCDataProductSearchResultOrigin) ||
112
+ !origin.groupId ||
113
+ !origin.artifactId ||
114
+ !origin.versionId ||
115
+ !origin.path ||
116
+ !details.dataProductId ||
117
+ deploymentId === undefined ||
118
+ deploymentId === null ||
119
+ details.producerEnvironmentType?.toUpperCase() !== environmentType) {
120
+ return undefined;
121
+ }
122
+ return new CubeDataProductCandidate({
123
+ id: details.dataProductId,
124
+ deploymentId: String(deploymentId),
125
+ dataProductPath: origin.path,
126
+ title: result.dataProductTitle ?? details.dataProductId,
127
+ description: result.dataProductDescription ?? undefined,
128
+ groupId: origin.groupId,
129
+ artifactId: origin.artifactId,
130
+ versionId: origin.versionId,
131
+ environmentType,
132
+ producerEnvironmentName: details.producerEnvironmentName,
133
+ });
134
+ };
135
+ /** A search row read on its own: one that can't be read, e.g. of an unknown type, is dropped, never failing the page */
136
+ const toSearchRowCandidate = (row, environmentType) => {
137
+ try {
138
+ return toSearchCandidate(DataProductSearchResult.serialization.fromJson(row), environmentType);
139
+ }
140
+ catch {
141
+ return undefined;
142
+ }
143
+ };
144
+ /** The cursor's deployment, a number or a string of digits; none for anything else, null and '' included */
145
+ const toCursorDeploymentId = (value) => {
146
+ if (typeof value === 'number') {
147
+ return Number.isFinite(value) ? value : undefined;
148
+ }
149
+ return typeof value === 'string' && /^\d+$/u.test(value)
150
+ ? Number(value)
151
+ : undefined;
152
+ };
153
+ /**
154
+ * How far along approval a contract is, as the marketplace ranks a viewer's
155
+ * contracts for one group, so a granted one is never hidden behind a
156
+ * pending duplicate
157
+ */
158
+ const APPROVAL_STAGE = {
159
+ [V1_EnrichedUserApprovalStatus.SUBMITTED_FOR_APPROVALS]: 1,
160
+ [V1_EnrichedUserApprovalStatus.PENDING_CONSUMER_PRIVILEGE_MANAGER_APPROVAL]: 2,
161
+ [V1_EnrichedUserApprovalStatus.PENDING_DATA_OWNER_APPROVAL]: 3,
162
+ [V1_EnrichedUserApprovalStatus.APPROVED]: 4,
163
+ };
164
+ /** A contract's status as the access the marketplace shows for it */
165
+ const toGroupAccess = (status) => {
166
+ switch (status) {
167
+ case V1_EnrichedUserApprovalStatus.APPROVED:
168
+ return CubeAccessPointGroupAccess.APPROVED;
169
+ case V1_EnrichedUserApprovalStatus.SUBMITTED_FOR_APPROVALS:
170
+ return CubeAccessPointGroupAccess.SUBMITTED_FOR_APPROVALS;
171
+ case V1_EnrichedUserApprovalStatus.PENDING_CONSUMER_PRIVILEGE_MANAGER_APPROVAL:
172
+ return CubeAccessPointGroupAccess.PENDING_MANAGER_APPROVAL;
173
+ case V1_EnrichedUserApprovalStatus.PENDING_DATA_OWNER_APPROVAL:
174
+ return CubeAccessPointGroupAccess.PENDING_DATA_OWNER_APPROVAL;
175
+ case V1_EnrichedUserApprovalStatus.DENIED:
176
+ return CubeAccessPointGroupAccess.DENIED;
177
+ default:
178
+ return CubeAccessPointGroupAccess.NO_ACCESS;
179
+ }
180
+ };
181
+ /** A product's description, by its project, version and path, read once per visit */
182
+ const descriptionKey = (groupId, artifactId, versionId, dataProductPath) => JSON.stringify([groupId, artifactId, versionId, dataProductPath]);
183
+ export class V1_LegendCubeDataProductCatalog {
184
+ environmentTypes = ENVIRONMENT_TYPES;
185
+ contractServerClient;
186
+ depotServerClient;
187
+ getAccessToken;
188
+ options;
189
+ /** Each class's list, read once per page visit */
190
+ lists = new Map();
191
+ /** Each product's description, by its project, version and path */
192
+ descriptions = new Map();
193
+ /** The search answers whose page leaves out matches */
194
+ cutShortAnswers = new WeakSet();
195
+ constructor(contractServerClient, depotServerClient, getAccessToken, options = {}) {
196
+ this.contractServerClient = contractServerClient;
197
+ this.depotServerClient = depotServerClient;
198
+ this.getAccessToken = getAccessToken;
199
+ this.options = options;
200
+ }
201
+ get searchesOnServer() {
202
+ return this.options.marketplaceServerClient !== undefined;
203
+ }
204
+ get searchLimit() {
205
+ return this.searchesOnServer ? SEARCH_PAGE_SIZE : undefined;
206
+ }
207
+ isCutShort(answer) {
208
+ return this.cutShortAnswers.has(answer);
209
+ }
210
+ /**
211
+ * The class's lite rows, page by page along the lakehouse's cursor. Stops
212
+ * with an error on a page that isn't one, on a missing or repeated cursor,
213
+ * or past the page cap, and between pages once the search is dropped.
214
+ */
215
+ async readLiteRows(environmentType, signal) {
216
+ const rows = [];
217
+ let cursor;
218
+ for (let page = 1; page <= LITE_PAGE_CAP; page++) {
219
+ throwIfAborted(signal);
220
+ const response = await this.contractServerClient.getDataProductsLitePaginated(LITE_PAGE_SIZE, environmentType, cursor?.id, cursor?.deploymentId, this.getAccessToken());
221
+ // a 200 carrying an error is no page; a page may leave out an empty
222
+ // list, as the lakehouse client and its model allow
223
+ const list = isPlainObject(response)
224
+ ? response.liteDataProductsResponse
225
+ : undefined;
226
+ const products = isPlainObject(list)
227
+ ? (list.dataProducts ?? [])
228
+ : undefined;
229
+ if (!Array.isArray(products)) {
230
+ throw new Error(V1_CUBE_DATA_PRODUCT_LIST_ERROR.UNREADABLE_PAGE);
231
+ }
232
+ rows.push(...products.filter(isPlainObject));
233
+ const metadata = response.paginationMetadataRecord;
234
+ if (!isPlainObject(metadata) || metadata.hasNextPage !== true) {
235
+ return rows;
236
+ }
237
+ const last = metadata.lastValuesMap;
238
+ const id = isPlainObject(last) ? last.id : undefined;
239
+ const deploymentId = toCursorDeploymentId(isPlainObject(last) ? last.deployment_id : undefined);
240
+ if (typeof id !== 'string' || !id || deploymentId === undefined) {
241
+ throw new Error(V1_CUBE_DATA_PRODUCT_LIST_ERROR.NO_CURSOR);
242
+ }
243
+ if (cursor?.id === id && cursor.deploymentId === deploymentId) {
244
+ throw new Error(V1_CUBE_DATA_PRODUCT_LIST_ERROR.REPEATED_CURSOR);
245
+ }
246
+ cursor = { id, deploymentId };
247
+ }
248
+ throw new Error(V1_CUBE_DATA_PRODUCT_LIST_ERROR.TOO_MANY_PAGES);
249
+ }
250
+ /**
251
+ * The class's list, read once per page visit. A list whose search is
252
+ * dropped while it pages is forgotten at once, so the next search reads it
253
+ * again rather than waiting on the stopped one.
254
+ */
255
+ listOf(environmentType, signal) {
256
+ const cached = this.lists.get(environmentType);
257
+ if (cached) {
258
+ return cached;
259
+ }
260
+ const list = this.readList(environmentType, signal);
261
+ const forget = () => {
262
+ if (this.lists.get(environmentType) === list) {
263
+ this.lists.delete(environmentType);
264
+ }
265
+ };
266
+ const stopWatching = () => signal?.removeEventListener('abort', forget);
267
+ signal?.addEventListener('abort', forget, { once: true });
268
+ // a failed list is read again on the next search: forgotten before its failure is seen
269
+ list.then(stopWatching, () => {
270
+ forget();
271
+ stopWatching();
272
+ });
273
+ this.lists.set(environmentType, list);
274
+ return list;
275
+ }
276
+ /** The class's list, along its pages; a stopped one fails with why it was stopped */
277
+ async readList(environmentType, signal) {
278
+ try {
279
+ return (await this.readLiteRows(environmentType, signal))
280
+ .map((row) => toLiteCandidate(row, environmentType))
281
+ .filter(isNonNullable);
282
+ }
283
+ catch (error) {
284
+ if (signal?.aborted) {
285
+ throw error;
286
+ }
287
+ throw new CubeEngineError(CubeEngineErrorKind.NETWORK, `Cube couldn't list the data products\n${toMessage(error)}`);
288
+ }
289
+ }
290
+ /**
291
+ * The products the marketplace matches, in its order: the first page of a
292
+ * full text search in the class. A failed search fails; it never falls
293
+ * back to the lakehouse's list
294
+ */
295
+ async searchMarketplace(marketplaceServerClient, search, signal) {
296
+ const { environmentType } = search;
297
+ try {
298
+ const response = await marketplaceServerClient.lakehouseAccessSearch(search.text.trim(), environmentType, {
299
+ searchType: SearchType.FULL_TEXT,
300
+ pageSize: SEARCH_PAGE_SIZE,
301
+ pageNumber: 1,
302
+ // every deployment, as the lite list gives, none hidden as a duplicate
303
+ showAll: true,
304
+ ...(signal ? { signal } : {}),
305
+ });
306
+ // a 200 carrying an error is no page
307
+ const results = isPlainObject(response) ? response.results : undefined;
308
+ if (!Array.isArray(results)) {
309
+ throw new Error(V1_CUBE_DATA_PRODUCT_SEARCH_ERROR.UNREADABLE_PAGE);
310
+ }
311
+ const answer = results
312
+ .filter(isPlainObject)
313
+ .map((row) => toSearchRowCandidate(row, environmentType))
314
+ .filter(isNonNullable);
315
+ // counted before any row is dropped: a full page, or fewer rows than the matches
316
+ const metadata = response.metadata;
317
+ const totalCount = isPlainObject(metadata)
318
+ ? metadata.total_count
319
+ : undefined;
320
+ if (results.length >= SEARCH_PAGE_SIZE ||
321
+ (typeof totalCount === 'number' && totalCount > results.length)) {
322
+ this.cutShortAnswers.add(answer);
323
+ }
324
+ return answer;
325
+ }
326
+ catch (error) {
327
+ if (signal?.aborted) {
328
+ throw error;
329
+ }
330
+ throw new CubeEngineError(CubeEngineErrorKind.NETWORK, `Cube couldn't search the data products\n${toMessage(error)}`);
331
+ }
332
+ }
333
+ async search(search, signal) {
334
+ if (this.options.marketplaceServerClient) {
335
+ return this.searchMarketplace(this.options.marketplaceServerClient, search, signal);
336
+ }
337
+ const text = search.text.trim().toLowerCase();
338
+ return (await this.listOf(search.environmentType, signal)).filter((candidate) => [candidate.title, candidate.id, candidate.description ?? '']
339
+ .join('\n')
340
+ .toLowerCase()
341
+ .includes(text));
342
+ }
343
+ /** The product's deployed artifact: the generation file at its path */
344
+ async readArtifact(candidate) {
345
+ const project = new StoreProjectData();
346
+ project.groupId = candidate.groupId;
347
+ project.artifactId = candidate.artifactId;
348
+ const files = (await this.depotServerClient.getGenerationFilesByType(project, candidate.versionId, DATA_PRODUCT_GENERATION_TYPE, candidate.dataProductPath)).map((file) => StoredFileGeneration.serialization.fromJson(file));
349
+ const content = files.find((file) => file.path === candidate.dataProductPath)?.file.content;
350
+ if (content === undefined) {
351
+ throw new Error(`The data product ${candidate.dataProductPath} has no deployed artifact at ${candidate.groupId}:${candidate.artifactId}:${candidate.versionId}`);
352
+ }
353
+ return JSON.parse(content);
354
+ }
355
+ /** The product's definition at the deployed version */
356
+ async readDefinition(candidate) {
357
+ const entity = await this.depotServerClient.getVersionEntity(candidate.groupId, candidate.artifactId, candidate.versionId, candidate.dataProductPath);
358
+ return entity.content;
359
+ }
360
+ describe(candidate) {
361
+ const key = descriptionKey(candidate.groupId, candidate.artifactId, candidate.versionId, candidate.dataProductPath);
362
+ let description = this.descriptions.get(key);
363
+ if (!description) {
364
+ description = Promise.all([
365
+ this.readArtifact(candidate),
366
+ this.readDefinition(candidate),
367
+ ])
368
+ .then(([artifact, definition]) => V1_readCubeDataProductDescription(candidate, artifact, definition, this.options.enterpriseStereotype))
369
+ .catch((error) => {
370
+ this.descriptions.delete(key);
371
+ throw new CubeEngineError(CubeEngineErrorKind.NETWORK, `Cube couldn't read the data product ${candidate.dataProductPath}\n${toMessage(error)}`);
372
+ });
373
+ this.descriptions.set(key, description);
374
+ }
375
+ return description;
376
+ }
377
+ async resolveSchemas(project, sources, options) {
378
+ if (options?.fresh) {
379
+ // read the products again, not what this visit read
380
+ sources.forEach(({ dataProduct }) => this.descriptions.delete(descriptionKey(project.groupId, project.artifactId, project.versionId, dataProduct)));
381
+ }
382
+ const resolved = new Map();
383
+ await Promise.all([...sources].map(async ([nodeId, location]) => {
384
+ try {
385
+ const description = await this.describe(new CubeDataProductCandidate({
386
+ id: location.dataProduct,
387
+ deploymentId: '',
388
+ dataProductPath: location.dataProduct,
389
+ title: location.dataProduct,
390
+ groupId: project.groupId,
391
+ artifactId: project.artifactId,
392
+ versionId: project.versionId,
393
+ environmentType: project.environmentType,
394
+ }));
395
+ const schema = V1_findCubeAccessPointSchema(description, location);
396
+ resolved.set(nodeId, typeof schema === 'string'
397
+ ? new CubeEngineError(CubeEngineErrorKind.COMPILE, schema, nodeId)
398
+ : schema);
399
+ }
400
+ catch (error) {
401
+ resolved.set(nodeId, error instanceof CubeEngineError
402
+ ? new CubeEngineError(error.kind, error.detail, nodeId)
403
+ : new CubeEngineError(CubeEngineErrorKind.NETWORK, toMessage(error), nodeId));
404
+ }
405
+ }));
406
+ return new Map([...sources.keys()].map((nodeId) => [
407
+ nodeId,
408
+ resolved.get(nodeId),
409
+ ]));
410
+ }
411
+ /** The product's page in the host's marketplace, as the host builds it; none without one */
412
+ getMarketplaceLink(target) {
413
+ return this.options.marketplaceLink?.(target);
414
+ }
415
+ /**
416
+ * The viewer's access to each of the product's groups, as the marketplace
417
+ * shows it, from the viewer's contracts, read afresh each time: a group
418
+ * marked open to everyone needs none; otherwise the contract for that
419
+ * group of this deployment furthest along approval. A group with no
420
+ * contract has no access only when the host marks open groups, since it
421
+ * might be one otherwise
422
+ */
423
+ async getAccess(candidate, signal) {
424
+ const { getCurrentUser, enterpriseStereotype } = this.options;
425
+ if (!getCurrentUser || !/^\d+$/u.test(candidate.deploymentId)) {
426
+ return new Map();
427
+ }
428
+ const deploymentId = Number(candidate.deploymentId);
429
+ const description = await this.describe(candidate);
430
+ throwIfAborted(signal);
431
+ let rows;
432
+ try {
433
+ rows = await this.contractServerClient.getContractsForUser(getCurrentUser(), this.getAccessToken());
434
+ }
435
+ catch (error) {
436
+ throw new CubeEngineError(CubeEngineErrorKind.NETWORK, `Cube couldn't read your data contracts\n${toMessage(error)}`);
437
+ }
438
+ throwIfAborted(signal);
439
+ if (!Array.isArray(rows)) {
440
+ throw new CubeEngineError(CubeEngineErrorKind.NETWORK, "Cube couldn't read your data contracts\nThe lakehouse's answer isn't a list of contracts");
441
+ }
442
+ // a contract Cube can't read is left out, never failing the others
443
+ const contracts = rows.flatMap((row) => {
444
+ if (!isPlainObject(row) || !isPlainObject(row.contractResultLite)) {
445
+ return [];
446
+ }
447
+ try {
448
+ return [
449
+ deserialize(V1_liteDataContractWithUserStatusModelSchema([]), row),
450
+ ];
451
+ }
452
+ catch {
453
+ return [];
454
+ }
455
+ });
456
+ const access = new Map();
457
+ description.groups.forEach((group) => {
458
+ if (group.isEnterprise) {
459
+ access.set(group.id, CubeAccessPointGroupAccess.ENTERPRISE);
460
+ return;
461
+ }
462
+ const best = contracts
463
+ .filter(({ contractResultLite: contract }) => {
464
+ return (contract.resourceType === V1_ResourceType.ACCESS_POINT_GROUP &&
465
+ contract.accessPointGroup === group.id &&
466
+ contract.resourceId === candidate.id &&
467
+ contract.deploymentId === deploymentId);
468
+ })
469
+ .reduce((found, contract) => !found ||
470
+ (APPROVAL_STAGE[contract.status] ?? 0) >
471
+ (APPROVAL_STAGE[found.status] ?? 0)
472
+ ? contract
473
+ : found, undefined);
474
+ if (best) {
475
+ access.set(group.id, toGroupAccess(best.status));
476
+ }
477
+ else if (enterpriseStereotype) {
478
+ access.set(group.id, CubeAccessPointGroupAccess.NO_ACCESS);
479
+ }
480
+ });
481
+ return access;
482
+ }
483
+ }
484
+ //# sourceMappingURL=V1_LegendCubeDataProductCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_LegendCubeDataProductCatalog.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts"],"names":[],"mappings":"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"}