@finos/legend-cube-builder 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (971) hide show
  1. package/README.md +59 -20
  2. package/docs/adding-an-operation.md +112 -13
  3. package/docs/demo/DEMO-FAST-NOTES.md +67 -0
  4. package/docs/demo/README.md +102 -0
  5. package/docs/demo/specs/duckdb-sales-pivot.cube.json +110 -0
  6. package/docs/demo/specs/trades-desks-1-joined.cube.json +123 -0
  7. package/docs/demo/specs/trades-desks-2-grouped.cube.json +140 -0
  8. package/docs/demo/specs/trades-desks-3-ranked.cube.json +158 -0
  9. package/docs/demo/specs/trades-desks-4-extended.cube.json +208 -0
  10. package/docs/demo/specs/trades-desks-5-final.cube.json +248 -0
  11. package/docs/hosting.md +132 -7
  12. package/docs/testing.md +146 -9
  13. package/lib/__lib__/LegendCubeCommand.d.ts +4 -1
  14. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
  15. package/lib/__lib__/LegendCubeCommand.js +12 -0
  16. package/lib/__lib__/LegendCubeCommand.js.map +1 -1
  17. package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
  18. package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
  19. package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
  20. package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
  21. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
  22. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
  23. package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
  24. package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
  25. package/lib/__lib__/LegendCubeFunctionLabels.d.ts +29 -0
  26. package/lib/__lib__/LegendCubeFunctionLabels.d.ts.map +1 -0
  27. package/lib/__lib__/LegendCubeFunctionLabels.js +31 -0
  28. package/lib/__lib__/LegendCubeFunctionLabels.js.map +1 -0
  29. package/lib/__lib__/LegendCubeHelpText.d.ts +5 -1
  30. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
  31. package/lib/__lib__/LegendCubeHelpText.js +25 -3
  32. package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
  33. package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
  34. package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
  35. package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
  36. package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
  37. package/lib/__lib__/LegendCubeLabels.d.ts +171 -6
  38. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  39. package/lib/__lib__/LegendCubeLabels.js +226 -13
  40. package/lib/__lib__/LegendCubeLabels.js.map +1 -1
  41. package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
  42. package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
  43. package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
  44. package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
  45. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts +26 -0
  46. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts.map +1 -0
  47. package/lib/__lib__/LegendCubeProjectSourceLabels.js +26 -0
  48. package/lib/__lib__/LegendCubeProjectSourceLabels.js.map +1 -0
  49. package/lib/__lib__/LegendCubeServiceLabels.d.ts +27 -0
  50. package/lib/__lib__/LegendCubeServiceLabels.d.ts.map +1 -0
  51. package/lib/__lib__/LegendCubeServiceLabels.js +32 -0
  52. package/lib/__lib__/LegendCubeServiceLabels.js.map +1 -0
  53. package/lib/__lib__/LegendCubeTesting.d.ts +8 -0
  54. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
  55. package/lib/__lib__/LegendCubeTesting.js +8 -0
  56. package/lib/__lib__/LegendCubeTesting.js.map +1 -1
  57. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
  58. package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
  59. package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
  60. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
  61. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
  62. package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
  63. package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
  64. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
  65. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
  66. package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
  67. package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
  68. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +13 -1
  69. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  70. package/lib/__test-utils__/CubeEngineTestSupport.js +23 -2
  71. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
  72. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +44 -0
  73. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
  74. package/lib/__test-utils__/CubeExpressionTestUtils.js +100 -0
  75. package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
  76. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts +26 -0
  77. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts.map +1 -0
  78. package/lib/__test-utils__/CubeFunctionTestOutline.js +56 -0
  79. package/lib/__test-utils__/CubeFunctionTestOutline.js.map +1 -0
  80. package/lib/__test-utils__/CubeLambdaCorpus.d.ts +36 -0
  81. package/lib/__test-utils__/CubeLambdaCorpus.d.ts.map +1 -0
  82. package/lib/__test-utils__/CubeLambdaCorpus.js +83 -0
  83. package/lib/__test-utils__/CubeLambdaCorpus.js.map +1 -0
  84. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +25 -0
  85. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -1
  86. package/lib/__test-utils__/CubeOperationsTestUtils.js +56 -10
  87. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -1
  88. package/lib/__test-utils__/CubePageTestUtils.d.ts +18 -0
  89. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
  90. package/lib/__test-utils__/CubePageTestUtils.js +46 -1
  91. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
  92. package/lib/__test-utils__/CubeTestApplication.d.ts +14 -1
  93. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
  94. package/lib/__test-utils__/CubeTestApplication.js +25 -1
  95. package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
  96. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
  97. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
  98. package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
  99. package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
  100. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
  101. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
  102. package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
  103. package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
  104. package/lib/__test-utils__/FakeCubeEngine.d.ts +7 -0
  105. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
  106. package/lib/__test-utils__/FakeCubeEngine.js +31 -1
  107. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
  108. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +41 -0
  109. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
  110. package/lib/__test-utils__/FakeCubeIngestCatalog.js +123 -0
  111. package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
  112. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
  113. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
  114. package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
  115. package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
  116. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts +26 -0
  117. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts.map +1 -0
  118. package/lib/__test-utils__/FakeCubeServiceCatalog.js +40 -0
  119. package/lib/__test-utils__/FakeCubeServiceCatalog.js.map +1 -0
  120. package/lib/components/CubeAddItems.d.ts +35 -0
  121. package/lib/components/CubeAddItems.d.ts.map +1 -0
  122. package/lib/components/CubeAddItems.js +85 -0
  123. package/lib/components/CubeAddItems.js.map +1 -0
  124. package/lib/components/CubeDialogTheme.d.ts +25 -0
  125. package/lib/components/CubeDialogTheme.d.ts.map +1 -0
  126. package/lib/components/CubeDialogTheme.js +25 -0
  127. package/lib/components/CubeDialogTheme.js.map +1 -0
  128. package/lib/components/CubeEditor.d.ts +17 -2
  129. package/lib/components/CubeEditor.d.ts.map +1 -1
  130. package/lib/components/CubeEditor.js +39 -17
  131. package/lib/components/CubeEditor.js.map +1 -1
  132. package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
  133. package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
  134. package/lib/components/CubeEntrySourceBanner.js +32 -0
  135. package/lib/components/CubeEntrySourceBanner.js.map +1 -0
  136. package/lib/components/CubeFileMenu.d.ts +28 -0
  137. package/lib/components/CubeFileMenu.d.ts.map +1 -0
  138. package/lib/components/CubeFileMenu.js +77 -0
  139. package/lib/components/CubeFileMenu.js.map +1 -0
  140. package/lib/components/CubeLambdaImportBanner.d.ts +26 -0
  141. package/lib/components/CubeLambdaImportBanner.d.ts.map +1 -0
  142. package/lib/components/CubeLambdaImportBanner.js +47 -0
  143. package/lib/components/CubeLambdaImportBanner.js.map +1 -0
  144. package/lib/components/CubeNodeIcon.d.ts.map +1 -1
  145. package/lib/components/CubeNodeIcon.js +12 -1
  146. package/lib/components/CubeNodeIcon.js.map +1 -1
  147. package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
  148. package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
  149. package/lib/components/CubeSchemaColumnsTable.js +6 -0
  150. package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
  151. package/lib/components/canvas/CubeCanvas.d.ts +4 -3
  152. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
  153. package/lib/components/canvas/CubeCanvas.js +68 -16
  154. package/lib/components/canvas/CubeCanvas.js.map +1 -1
  155. package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
  156. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
  157. package/lib/components/canvas/CubeCanvasContextMenu.js +20 -9
  158. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
  159. package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
  160. package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
  161. package/lib/components/canvas/CubeCanvasDnd.js +14 -9
  162. package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
  163. package/lib/components/canvas/CubeCanvasElements.d.ts +18 -1
  164. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  165. package/lib/components/canvas/CubeCanvasElements.js +63 -5
  166. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  167. package/lib/components/canvas/CubeCanvasLayout.js +1 -1
  168. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  169. package/lib/components/canvas/CubeCanvasNode.js +35 -21
  170. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  171. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  172. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  173. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  174. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  175. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  176. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  177. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  178. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  179. package/lib/components/dev-settings/CubeDevSettings.d.ts +35 -0
  180. package/lib/components/dev-settings/CubeDevSettings.d.ts.map +1 -0
  181. package/lib/components/dev-settings/CubeDevSettings.js +50 -0
  182. package/lib/components/dev-settings/CubeDevSettings.js.map +1 -0
  183. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  184. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  185. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  186. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  187. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  188. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  189. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  190. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  191. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
  192. package/lib/components/editors/CubeColumnPicker.js +3 -3
  193. package/lib/components/editors/CubeColumnPicker.js.map +1 -1
  194. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  195. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  196. package/lib/components/editors/CubeConcatEditor.js +147 -0
  197. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  198. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  199. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  200. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  201. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  202. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  203. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  204. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  205. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  206. package/lib/components/editors/CubeExpressionFilterEditor.d.ts +25 -0
  207. package/lib/components/editors/CubeExpressionFilterEditor.d.ts.map +1 -0
  208. package/lib/components/editors/CubeExpressionFilterEditor.js +83 -0
  209. package/lib/components/editors/CubeExpressionFilterEditor.js.map +1 -0
  210. package/lib/components/editors/CubeExtendEditor.d.ts +27 -0
  211. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  212. package/lib/components/editors/CubeExtendEditor.js +86 -0
  213. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  214. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  215. package/lib/components/editors/CubeFilterEditor.js +15 -4
  216. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  217. package/lib/components/editors/CubeFunctionSourceEditor.d.ts +25 -0
  218. package/lib/components/editors/CubeFunctionSourceEditor.d.ts.map +1 -0
  219. package/lib/components/editors/CubeFunctionSourceEditor.js +55 -0
  220. package/lib/components/editors/CubeFunctionSourceEditor.js.map +1 -0
  221. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  222. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  223. package/lib/components/editors/CubeGroupEditor.js +70 -0
  224. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  225. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  226. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  227. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  228. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  229. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  230. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  231. package/lib/components/editors/CubeJoinEditor.js +21 -39
  232. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  233. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  234. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  235. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  236. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  237. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  238. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  239. package/lib/components/editors/CubeNodeEditorPanel.js +64 -16
  240. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  241. package/lib/components/editors/CubeNodeEditorPopper.d.ts +44 -0
  242. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  243. package/lib/components/editors/CubeNodeEditorPopper.js +133 -0
  244. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  245. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  246. package/lib/components/editors/CubeNodeEditorRegistry.js +23 -1
  247. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  248. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  249. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  250. package/lib/components/editors/CubePartitionEditor.js +93 -0
  251. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  252. package/lib/components/editors/CubePivotEditor.d.ts +26 -0
  253. package/lib/components/editors/CubePivotEditor.d.ts.map +1 -0
  254. package/lib/components/editors/CubePivotEditor.js +93 -0
  255. package/lib/components/editors/CubePivotEditor.js.map +1 -0
  256. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -1
  257. package/lib/components/editors/CubeRenameEditor.js +6 -4
  258. package/lib/components/editors/CubeRenameEditor.js.map +1 -1
  259. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -1
  260. package/lib/components/editors/CubeRestrictEditor.js +2 -2
  261. package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
  262. package/lib/components/editors/CubeServiceSourceEditor.d.ts +25 -0
  263. package/lib/components/editors/CubeServiceSourceEditor.d.ts.map +1 -0
  264. package/lib/components/editors/CubeServiceSourceEditor.js +41 -0
  265. package/lib/components/editors/CubeServiceSourceEditor.js.map +1 -0
  266. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -1
  267. package/lib/components/editors/CubeSortEditor.js +10 -37
  268. package/lib/components/editors/CubeSortEditor.js.map +1 -1
  269. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  270. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  271. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  272. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  273. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  274. package/lib/components/editors/CubeSourceEditor.js +18 -5
  275. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  276. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  277. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  278. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  279. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  280. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  281. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  282. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  283. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  284. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  285. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  286. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  287. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  288. package/lib/components/grid/CubeColumnFormatDialog.d.ts +28 -0
  289. package/lib/components/grid/CubeColumnFormatDialog.d.ts.map +1 -0
  290. package/lib/components/grid/CubeColumnFormatDialog.js +94 -0
  291. package/lib/components/grid/CubeColumnFormatDialog.js.map +1 -0
  292. package/lib/components/grid/CubeDrilldownBar.d.ts +37 -0
  293. package/lib/components/grid/CubeDrilldownBar.d.ts.map +1 -0
  294. package/lib/components/grid/CubeDrilldownBar.js +77 -0
  295. package/lib/components/grid/CubeDrilldownBar.js.map +1 -0
  296. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  297. package/lib/components/grid/CubeGridRegion.js +56 -31
  298. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  299. package/lib/components/grid/CubeGridValues.d.ts +47 -1
  300. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  301. package/lib/components/grid/CubeGridValues.js +152 -1
  302. package/lib/components/grid/CubeGridValues.js.map +1 -1
  303. package/lib/components/grid/CubeResultGrid.d.ts +68 -5
  304. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  305. package/lib/components/grid/CubeResultGrid.js +316 -31
  306. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  307. package/lib/components/grid/CubeRunStatsPanel.d.ts +28 -0
  308. package/lib/components/grid/CubeRunStatsPanel.d.ts.map +1 -0
  309. package/lib/components/grid/CubeRunStatsPanel.js +61 -0
  310. package/lib/components/grid/CubeRunStatsPanel.js.map +1 -0
  311. package/lib/components/grid/CubeServerSideGrid.d.ts +36 -0
  312. package/lib/components/grid/CubeServerSideGrid.d.ts.map +1 -0
  313. package/lib/components/grid/CubeServerSideGrid.js +114 -0
  314. package/lib/components/grid/CubeServerSideGrid.js.map +1 -0
  315. package/lib/components/grid/CubeSqlDialog.d.ts +24 -0
  316. package/lib/components/grid/CubeSqlDialog.d.ts.map +1 -0
  317. package/lib/components/grid/CubeSqlDialog.js +39 -0
  318. package/lib/components/grid/CubeSqlDialog.js.map +1 -0
  319. package/lib/components/grid/CubeSqlFormat.d.ts +20 -0
  320. package/lib/components/grid/CubeSqlFormat.d.ts.map +1 -0
  321. package/lib/components/grid/CubeSqlFormat.js +32 -0
  322. package/lib/components/grid/CubeSqlFormat.js.map +1 -0
  323. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  324. package/lib/components/palette/CubePalette.js +44 -14
  325. package/lib/components/palette/CubePalette.js.map +1 -1
  326. package/lib/components/show-pure/CubeShowPureDialog.d.ts +4 -1
  327. package/lib/components/show-pure/CubeShowPureDialog.d.ts.map +1 -1
  328. package/lib/components/show-pure/CubeShowPureDialog.js +8 -4
  329. package/lib/components/show-pure/CubeShowPureDialog.js.map +1 -1
  330. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  331. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  332. package/lib/components/source-picker/CubeDataProductTab.js +123 -0
  333. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  334. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  335. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  336. package/lib/components/source-picker/CubeDirectConnectionTab.js +89 -0
  337. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  338. package/lib/components/source-picker/CubeFunctionSteps.d.ts +36 -0
  339. package/lib/components/source-picker/CubeFunctionSteps.d.ts.map +1 -0
  340. package/lib/components/source-picker/CubeFunctionSteps.js +76 -0
  341. package/lib/components/source-picker/CubeFunctionSteps.js.map +1 -0
  342. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  343. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  344. package/lib/components/source-picker/CubeIngestTab.js +89 -0
  345. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  346. package/lib/components/source-picker/CubeInlineModelTab.d.ts +38 -0
  347. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  348. package/lib/components/source-picker/CubeInlineModelTab.js +81 -0
  349. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  350. package/lib/components/source-picker/CubePickerListItem.d.ts +47 -0
  351. package/lib/components/source-picker/CubePickerListItem.d.ts.map +1 -0
  352. package/lib/components/source-picker/CubePickerListItem.js +62 -0
  353. package/lib/components/source-picker/CubePickerListItem.js.map +1 -0
  354. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  355. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  356. package/lib/components/source-picker/CubePickerStep.js +23 -0
  357. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  358. package/lib/components/source-picker/CubeProjectTab.d.ts +28 -0
  359. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  360. package/lib/components/source-picker/CubeProjectTab.js +53 -0
  361. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  362. package/lib/components/source-picker/CubeServiceTab.d.ts +27 -0
  363. package/lib/components/source-picker/CubeServiceTab.d.ts.map +1 -0
  364. package/lib/components/source-picker/CubeServiceTab.js +36 -0
  365. package/lib/components/source-picker/CubeServiceTab.js.map +1 -0
  366. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  367. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  368. package/lib/components/source-picker/CubeSourcePicker.js +33 -58
  369. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  370. package/lib/components/source-picker/CubeTablePreview.d.ts +29 -0
  371. package/lib/components/source-picker/CubeTablePreview.d.ts.map +1 -0
  372. package/lib/components/source-picker/CubeTablePreview.js +10 -0
  373. package/lib/components/source-picker/CubeTablePreview.js.map +1 -0
  374. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts +27 -0
  375. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts.map +1 -0
  376. package/lib/components/spec-transfer/CubeImportPureDialog.js +38 -0
  377. package/lib/components/spec-transfer/CubeImportPureDialog.js.map +1 -0
  378. package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts.map +1 -1
  379. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +9 -3
  380. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  381. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  382. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  383. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  384. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  385. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  386. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  387. package/lib/graph-manager/CubeDataProduct.js +102 -0
  388. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  389. package/lib/graph-manager/CubeDataProductCatalog.d.ts +177 -0
  390. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  391. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  392. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  393. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  394. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  395. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  396. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  397. package/lib/graph-manager/CubeEngine.d.ts +83 -3
  398. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  399. package/lib/graph-manager/CubeEngine.js +4 -1
  400. package/lib/graph-manager/CubeEngine.js.map +1 -1
  401. package/lib/graph-manager/CubeEngineClientSettings.d.ts +43 -0
  402. package/lib/graph-manager/CubeEngineClientSettings.d.ts.map +1 -0
  403. package/lib/graph-manager/CubeEngineClientSettings.js +51 -0
  404. package/lib/graph-manager/CubeEngineClientSettings.js.map +1 -0
  405. package/lib/graph-manager/CubeIngest.d.ts +55 -0
  406. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  407. package/lib/graph-manager/CubeIngest.js +98 -0
  408. package/lib/graph-manager/CubeIngest.js.map +1 -0
  409. package/lib/graph-manager/CubeIngestCatalog.d.ts +142 -0
  410. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  411. package/lib/graph-manager/CubeIngestCatalog.js +86 -0
  412. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  413. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  414. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  415. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  416. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  417. package/lib/graph-manager/CubeLakehouseRuntime.d.ts +29 -0
  418. package/lib/graph-manager/CubeLakehouseRuntime.d.ts.map +1 -0
  419. package/lib/graph-manager/CubeLakehouseRuntime.js +40 -0
  420. package/lib/graph-manager/CubeLakehouseRuntime.js.map +1 -0
  421. package/lib/graph-manager/CubeProject.d.ts +41 -0
  422. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  423. package/lib/graph-manager/CubeProject.js +84 -0
  424. package/lib/graph-manager/CubeProject.js.map +1 -0
  425. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  426. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  427. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  428. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  429. package/lib/graph-manager/CubeService.d.ts +20 -0
  430. package/lib/graph-manager/CubeService.d.ts.map +1 -0
  431. package/lib/graph-manager/CubeService.js +22 -0
  432. package/lib/graph-manager/CubeService.js.map +1 -0
  433. package/lib/graph-manager/CubeServiceCatalog.d.ts +31 -0
  434. package/lib/graph-manager/CubeServiceCatalog.d.ts.map +1 -0
  435. package/lib/graph-manager/CubeServiceCatalog.js +17 -0
  436. package/lib/graph-manager/CubeServiceCatalog.js.map +1 -0
  437. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +111 -2
  438. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  439. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +108 -1
  440. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  441. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  442. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  443. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  444. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  445. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +32 -0
  446. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  447. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +88 -0
  448. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  449. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  450. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  451. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  452. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  453. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  454. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  455. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  456. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  457. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  458. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  459. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  460. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  461. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  462. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  463. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  464. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts +30 -0
  465. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts.map +1 -0
  466. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js +229 -0
  467. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js.map +1 -0
  468. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  469. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  470. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +149 -0
  471. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  472. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +57 -0
  473. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  474. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +120 -0
  475. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  476. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  477. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  478. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  479. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  480. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts +34 -0
  481. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts.map +1 -0
  482. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js +332 -0
  483. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js.map +1 -0
  484. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  485. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +111 -13
  486. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  487. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts +1 -1
  488. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
  489. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +3 -1
  490. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
  491. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  492. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  493. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  494. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  495. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +35 -0
  496. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  497. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +65 -0
  498. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  499. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  500. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  501. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  502. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  503. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +115 -3
  504. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  505. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +654 -21
  506. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  507. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  508. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  509. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  510. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  511. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  512. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  513. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +94 -0
  514. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  515. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts +31 -0
  516. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts.map +1 -0
  517. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js +69 -0
  518. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js.map +1 -0
  519. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  520. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  521. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  522. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  523. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  524. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  525. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  526. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  527. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  528. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  529. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  530. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  531. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  532. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  533. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +33 -3
  534. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  535. package/lib/index.css +2 -2
  536. package/lib/index.css.map +1 -1
  537. package/lib/index.d.ts +22 -3
  538. package/lib/index.d.ts.map +1 -1
  539. package/lib/index.js +19 -1
  540. package/lib/index.js.map +1 -1
  541. package/lib/stores/CubeAddPlacement.d.ts +39 -0
  542. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  543. package/lib/stores/CubeAddPlacement.js +51 -0
  544. package/lib/stores/CubeAddPlacement.js.map +1 -0
  545. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  546. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  547. package/lib/stores/CubeDataProductRecheck.js +54 -0
  548. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  549. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  550. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  551. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  552. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  553. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  554. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  555. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  556. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  557. package/lib/stores/CubeDevSettingsState.d.ts +47 -0
  558. package/lib/stores/CubeDevSettingsState.d.ts.map +1 -0
  559. package/lib/stores/CubeDevSettingsState.js +99 -0
  560. package/lib/stores/CubeDevSettingsState.js.map +1 -0
  561. package/lib/stores/CubeEditorState.d.ts +242 -28
  562. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  563. package/lib/stores/CubeEditorState.js +751 -66
  564. package/lib/stores/CubeEditorState.js.map +1 -1
  565. package/lib/stores/CubeEngineChecks.d.ts +59 -0
  566. package/lib/stores/CubeEngineChecks.d.ts.map +1 -0
  567. package/lib/stores/CubeEngineChecks.js +100 -0
  568. package/lib/stores/CubeEngineChecks.js.map +1 -0
  569. package/lib/stores/CubeEntrySource.d.ts +78 -0
  570. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  571. package/lib/stores/CubeEntrySource.js +200 -0
  572. package/lib/stores/CubeEntrySource.js.map +1 -0
  573. package/lib/stores/CubeExamples.d.ts +43 -0
  574. package/lib/stores/CubeExamples.d.ts.map +1 -0
  575. package/lib/stores/CubeExamples.js +333 -0
  576. package/lib/stores/CubeExamples.js.map +1 -0
  577. package/lib/stores/CubeExamplesState.d.ts +45 -0
  578. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  579. package/lib/stores/CubeExamplesState.js +81 -0
  580. package/lib/stores/CubeExamplesState.js.map +1 -0
  581. package/lib/stores/CubeExecutionState.d.ts +6 -2
  582. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  583. package/lib/stores/CubeExecutionState.js +39 -38
  584. package/lib/stores/CubeExecutionState.js.map +1 -1
  585. package/lib/stores/CubeExportState.d.ts +41 -0
  586. package/lib/stores/CubeExportState.d.ts.map +1 -0
  587. package/lib/stores/CubeExportState.js +134 -0
  588. package/lib/stores/CubeExportState.js.map +1 -0
  589. package/lib/stores/CubeExpressionFilterCheck.d.ts +51 -0
  590. package/lib/stores/CubeExpressionFilterCheck.d.ts.map +1 -0
  591. package/lib/stores/CubeExpressionFilterCheck.js +134 -0
  592. package/lib/stores/CubeExpressionFilterCheck.js.map +1 -0
  593. package/lib/stores/CubeExtendTyping.d.ts +64 -0
  594. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  595. package/lib/stores/CubeExtendTyping.js +149 -0
  596. package/lib/stores/CubeExtendTyping.js.map +1 -0
  597. package/lib/stores/CubeFunctionRecheck.d.ts +30 -0
  598. package/lib/stores/CubeFunctionRecheck.d.ts.map +1 -0
  599. package/lib/stores/CubeFunctionRecheck.js +67 -0
  600. package/lib/stores/CubeFunctionRecheck.js.map +1 -0
  601. package/lib/stores/CubeGridFetcher.d.ts +75 -0
  602. package/lib/stores/CubeGridFetcher.d.ts.map +1 -0
  603. package/lib/stores/CubeGridFetcher.js +197 -0
  604. package/lib/stores/CubeGridFetcher.js.map +1 -0
  605. package/lib/stores/CubeGridQuickActions.d.ts +27 -7
  606. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
  607. package/lib/stores/CubeGridQuickActions.js +79 -21
  608. package/lib/stores/CubeGridQuickActions.js.map +1 -1
  609. package/lib/stores/CubeGridState.d.ts +136 -0
  610. package/lib/stores/CubeGridState.d.ts.map +1 -0
  611. package/lib/stores/CubeGridState.js +317 -0
  612. package/lib/stores/CubeGridState.js.map +1 -0
  613. package/lib/stores/CubeHost.d.ts +74 -1
  614. package/lib/stores/CubeHost.d.ts.map +1 -1
  615. package/lib/stores/CubeHost.js +25 -1
  616. package/lib/stores/CubeHost.js.map +1 -1
  617. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  618. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  619. package/lib/stores/CubeIngestRecheck.js +53 -0
  620. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  621. package/lib/stores/CubeLambdaImportState.d.ts +118 -0
  622. package/lib/stores/CubeLambdaImportState.d.ts.map +1 -0
  623. package/lib/stores/CubeLambdaImportState.js +302 -0
  624. package/lib/stores/CubeLambdaImportState.js.map +1 -0
  625. package/lib/stores/CubeLambdaSources.d.ts +45 -0
  626. package/lib/stores/CubeLambdaSources.d.ts.map +1 -0
  627. package/lib/stores/CubeLambdaSources.js +261 -0
  628. package/lib/stores/CubeLambdaSources.js.map +1 -0
  629. package/lib/stores/CubeNodeEditorState.d.ts +101 -5
  630. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  631. package/lib/stores/CubeNodeEditorState.js +221 -10
  632. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  633. package/lib/stores/CubeQueryRun.d.ts +59 -0
  634. package/lib/stores/CubeQueryRun.d.ts.map +1 -0
  635. package/lib/stores/CubeQueryRun.js +101 -0
  636. package/lib/stores/CubeQueryRun.js.map +1 -0
  637. package/lib/stores/CubeRunStatsState.d.ts +61 -0
  638. package/lib/stores/CubeRunStatsState.d.ts.map +1 -0
  639. package/lib/stores/CubeRunStatsState.js +54 -0
  640. package/lib/stores/CubeRunStatsState.js.map +1 -0
  641. package/lib/stores/CubeRunningStepLambda.d.ts +25 -0
  642. package/lib/stores/CubeRunningStepLambda.d.ts.map +1 -0
  643. package/lib/stores/CubeRunningStepLambda.js +45 -0
  644. package/lib/stores/CubeRunningStepLambda.js.map +1 -0
  645. package/lib/stores/CubeServiceRecheck.d.ts +29 -0
  646. package/lib/stores/CubeServiceRecheck.d.ts.map +1 -0
  647. package/lib/stores/CubeServiceRecheck.js +33 -0
  648. package/lib/stores/CubeServiceRecheck.js.map +1 -0
  649. package/lib/stores/CubeShowPureState.d.ts +18 -2
  650. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  651. package/lib/stores/CubeShowPureState.js +46 -13
  652. package/lib/stores/CubeShowPureState.js.map +1 -1
  653. package/lib/stores/CubeSourcePickerState.d.ts +70 -65
  654. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  655. package/lib/stores/CubeSourcePickerState.js +207 -267
  656. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  657. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  658. package/lib/stores/CubeSpecTransferState.js +2 -2
  659. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  660. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  661. package/lib/stores/LocalModelCatalog.js +19 -3
  662. package/lib/stores/LocalModelCatalog.js.map +1 -1
  663. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  664. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  665. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  666. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  667. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  668. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  669. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  670. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  671. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  672. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  673. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  674. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  675. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts +91 -0
  676. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts.map +1 -0
  677. package/lib/stores/editors/CubeExpressionFilterDraft.js +254 -0
  678. package/lib/stores/editors/CubeExpressionFilterDraft.js.map +1 -0
  679. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  680. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  681. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  682. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  683. package/lib/stores/editors/CubeFunctionDraft.d.ts +34 -0
  684. package/lib/stores/editors/CubeFunctionDraft.d.ts.map +1 -0
  685. package/lib/stores/editors/CubeFunctionDraft.js +69 -0
  686. package/lib/stores/editors/CubeFunctionDraft.js.map +1 -0
  687. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  688. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  689. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  690. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  691. package/lib/stores/editors/CubeJoinDraft.d.ts +9 -10
  692. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  693. package/lib/stores/editors/CubeJoinDraft.js +92 -21
  694. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  695. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  696. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  697. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  698. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  699. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  700. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  701. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  702. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  703. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +4 -2
  704. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  705. package/lib/stores/editors/CubeNodeDraftRegistry.js +39 -3
  706. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  707. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  708. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  709. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  710. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  711. package/lib/stores/editors/CubePivotDraft.d.ts +93 -0
  712. package/lib/stores/editors/CubePivotDraft.d.ts.map +1 -0
  713. package/lib/stores/editors/CubePivotDraft.js +267 -0
  714. package/lib/stores/editors/CubePivotDraft.js.map +1 -0
  715. package/lib/stores/editors/CubeSortDraft.d.ts +2 -10
  716. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -1
  717. package/lib/stores/editors/CubeSortDraft.js +9 -35
  718. package/lib/stores/editors/CubeSortDraft.js.map +1 -1
  719. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  720. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  721. package/lib/stores/editors/CubeSortRows.js +50 -0
  722. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  723. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  724. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  725. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  726. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  727. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts +26 -0
  728. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts.map +1 -0
  729. package/lib/stores/fixtures/CubeSalesDuckDbModel.js +46 -0
  730. package/lib/stores/fixtures/CubeSalesDuckDbModel.js.map +1 -0
  731. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  732. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  733. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  734. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  735. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  736. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  737. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  738. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  739. package/lib/stores/fixtures/CubeTradesModel.d.ts +33 -0
  740. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  741. package/lib/stores/fixtures/CubeTradesModel.js +227 -0
  742. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  743. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  744. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  745. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  746. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  747. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +215 -0
  748. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  749. package/lib/stores/source-picker/CubeDataProductTabState.js +766 -0
  750. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  751. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +163 -0
  752. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  753. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +668 -0
  754. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  755. package/lib/stores/source-picker/CubeIngestTabState.d.ts +127 -0
  756. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  757. package/lib/stores/source-picker/CubeIngestTabState.js +510 -0
  758. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  759. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +203 -0
  760. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  761. package/lib/stores/source-picker/CubeInlineModelTabState.js +734 -0
  762. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  763. package/lib/stores/source-picker/CubeProjectTabState.d.ts +77 -0
  764. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  765. package/lib/stores/source-picker/CubeProjectTabState.js +206 -0
  766. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  767. package/lib/stores/source-picker/CubeServiceTabState.d.ts +74 -0
  768. package/lib/stores/source-picker/CubeServiceTabState.d.ts.map +1 -0
  769. package/lib/stores/source-picker/CubeServiceTabState.js +216 -0
  770. package/lib/stores/source-picker/CubeServiceTabState.js.map +1 -0
  771. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +60 -0
  772. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  773. package/lib/stores/source-picker/CubeSourcePickerTab.js +45 -0
  774. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  775. package/package.json +12 -7
  776. package/src/__lib__/LegendCubeCommand.ts +12 -0
  777. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  778. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  779. package/src/__lib__/LegendCubeFunctionLabels.ts +41 -0
  780. package/src/__lib__/LegendCubeHelpText.ts +48 -2
  781. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  782. package/src/__lib__/LegendCubeLabels.ts +327 -12
  783. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  784. package/src/__lib__/LegendCubeProjectSourceLabels.ts +26 -0
  785. package/src/__lib__/LegendCubeServiceLabels.ts +41 -0
  786. package/src/__lib__/LegendCubeTesting.ts +8 -0
  787. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  788. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  789. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  790. package/src/__test-utils__/CubeEngineTestSupport.ts +40 -1
  791. package/src/__test-utils__/CubeExpressionTestUtils.ts +146 -0
  792. package/src/__test-utils__/CubeFunctionTestOutline.ts +78 -0
  793. package/src/__test-utils__/CubeLambdaCorpus.ts +137 -0
  794. package/src/__test-utils__/CubeOperationsTestUtils.ts +93 -18
  795. package/src/__test-utils__/CubePageTestUtils.tsx +69 -0
  796. package/src/__test-utils__/CubeTestApplication.ts +46 -2
  797. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  798. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  799. package/src/__test-utils__/FakeCubeEngine.ts +52 -1
  800. package/src/__test-utils__/FakeCubeIngestCatalog.ts +198 -0
  801. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  802. package/src/__test-utils__/FakeCubeServiceCatalog.ts +57 -0
  803. package/src/components/CubeAddItems.tsx +186 -0
  804. package/src/components/CubeDialogTheme.ts +25 -0
  805. package/src/components/CubeEditor.tsx +195 -140
  806. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  807. package/src/components/CubeFileMenu.tsx +127 -0
  808. package/src/components/CubeLambdaImportBanner.tsx +97 -0
  809. package/src/components/CubeNodeIcon.tsx +20 -0
  810. package/src/components/CubeSchemaColumnsTable.tsx +54 -0
  811. package/src/components/canvas/CubeCanvas.tsx +94 -20
  812. package/src/components/canvas/CubeCanvasContextMenu.tsx +64 -32
  813. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  814. package/src/components/canvas/CubeCanvasElements.ts +84 -5
  815. package/src/components/canvas/CubeCanvasLayout.ts +1 -1
  816. package/src/components/canvas/CubeCanvasNode.tsx +88 -43
  817. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  818. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  819. package/src/components/dev-settings/CubeDevSettings.tsx +154 -0
  820. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  821. package/src/components/editors/CubeColumnChecklist.tsx +136 -0
  822. package/src/components/editors/CubeColumnPicker.tsx +6 -3
  823. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  824. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  825. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  826. package/src/components/editors/CubeExpressionFilterEditor.tsx +193 -0
  827. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  828. package/src/components/editors/CubeFilterEditor.tsx +20 -1
  829. package/src/components/editors/CubeFunctionSourceEditor.tsx +140 -0
  830. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  831. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  832. package/src/components/editors/CubeJoinEditor.tsx +34 -135
  833. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  834. package/src/components/editors/CubeNodeEditorPanel.tsx +111 -36
  835. package/src/components/editors/CubeNodeEditorPopper.tsx +191 -0
  836. package/src/components/editors/CubeNodeEditorRegistry.ts +33 -0
  837. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  838. package/src/components/editors/CubePivotEditor.tsx +277 -0
  839. package/src/components/editors/CubeRenameEditor.tsx +10 -5
  840. package/src/components/editors/CubeRestrictEditor.tsx +9 -3
  841. package/src/components/editors/CubeServiceSourceEditor.tsx +77 -0
  842. package/src/components/editors/CubeSortEditor.tsx +20 -142
  843. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  844. package/src/components/editors/CubeSourceEditor.tsx +42 -30
  845. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  846. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  847. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  848. package/src/components/grid/CubeColumnFormatDialog.tsx +289 -0
  849. package/src/components/grid/CubeDrilldownBar.tsx +219 -0
  850. package/src/components/grid/CubeGridRegion.tsx +214 -60
  851. package/src/components/grid/CubeGridValues.ts +201 -1
  852. package/src/components/grid/CubeResultGrid.tsx +461 -43
  853. package/src/components/grid/CubeRunStatsPanel.tsx +156 -0
  854. package/src/components/grid/CubeServerSideGrid.tsx +200 -0
  855. package/src/components/grid/CubeSqlDialog.tsx +90 -0
  856. package/src/components/grid/CubeSqlFormat.ts +37 -0
  857. package/src/components/palette/CubePalette.tsx +70 -19
  858. package/src/components/show-pure/CubeShowPureDialog.tsx +19 -5
  859. package/src/components/source-picker/CubeDataProductTab.tsx +486 -0
  860. package/src/components/source-picker/CubeDirectConnectionTab.tsx +352 -0
  861. package/src/components/source-picker/CubeFunctionSteps.tsx +244 -0
  862. package/src/components/source-picker/CubeIngestTab.tsx +312 -0
  863. package/src/components/source-picker/CubeInlineModelTab.tsx +220 -0
  864. package/src/components/source-picker/CubePickerListItem.tsx +118 -0
  865. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  866. package/src/components/source-picker/CubeProjectTab.tsx +117 -0
  867. package/src/components/source-picker/CubeServiceTab.tsx +151 -0
  868. package/src/components/source-picker/CubeSourcePicker.tsx +99 -228
  869. package/src/components/source-picker/CubeTablePreview.tsx +49 -0
  870. package/src/components/spec-transfer/CubeImportPureDialog.tsx +122 -0
  871. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +22 -9
  872. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  873. package/src/graph-manager/CubeDataProduct.ts +150 -0
  874. package/src/graph-manager/CubeDataProductCatalog.ts +256 -0
  875. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  876. package/src/graph-manager/CubeEngine.ts +94 -2
  877. package/src/graph-manager/CubeEngineClientSettings.ts +64 -0
  878. package/src/graph-manager/CubeIngest.ts +159 -0
  879. package/src/graph-manager/CubeIngestCatalog.ts +202 -0
  880. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  881. package/src/graph-manager/CubeLakehouseRuntime.ts +43 -0
  882. package/src/graph-manager/CubeProject.ts +117 -0
  883. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  884. package/src/graph-manager/CubeService.ts +29 -0
  885. package/src/graph-manager/CubeServiceCatalog.ts +35 -0
  886. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +256 -2
  887. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  888. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +107 -0
  889. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  890. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  891. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  892. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  893. package/src/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.ts +312 -0
  894. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +227 -0
  895. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +174 -0
  896. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  897. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.ts +471 -0
  898. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +153 -18
  899. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +3 -1
  900. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  901. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +122 -0
  902. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  903. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +1083 -25
  904. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  905. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +152 -0
  906. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.ts +92 -0
  907. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  908. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  909. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  910. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -2
  911. package/src/index.ts +52 -2
  912. package/src/stores/CubeAddPlacement.ts +87 -0
  913. package/src/stores/CubeDataProductRecheck.ts +93 -0
  914. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  915. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  916. package/src/stores/CubeDevSettingsState.ts +117 -0
  917. package/src/stores/CubeEditorState.ts +1030 -92
  918. package/src/stores/CubeEngineChecks.ts +240 -0
  919. package/src/stores/CubeEntrySource.ts +278 -0
  920. package/src/stores/CubeExamples.ts +526 -0
  921. package/src/stores/CubeExamplesState.ts +110 -0
  922. package/src/stores/CubeExecutionState.ts +50 -62
  923. package/src/stores/CubeExportState.ts +196 -0
  924. package/src/stores/CubeExpressionFilterCheck.ts +218 -0
  925. package/src/stores/CubeExtendTyping.ts +251 -0
  926. package/src/stores/CubeFunctionRecheck.ts +97 -0
  927. package/src/stores/CubeGridFetcher.ts +302 -0
  928. package/src/stores/CubeGridQuickActions.ts +97 -20
  929. package/src/stores/CubeGridState.ts +450 -0
  930. package/src/stores/CubeHost.ts +119 -1
  931. package/src/stores/CubeIngestRecheck.ts +92 -0
  932. package/src/stores/CubeLambdaImportState.ts +434 -0
  933. package/src/stores/CubeLambdaSources.ts +390 -0
  934. package/src/stores/CubeNodeEditorState.ts +278 -9
  935. package/src/stores/CubeQueryRun.ts +169 -0
  936. package/src/stores/CubeRunStatsState.ts +91 -0
  937. package/src/stores/CubeRunningStepLambda.ts +62 -0
  938. package/src/stores/CubeServiceRecheck.ts +53 -0
  939. package/src/stores/CubeShowPureState.ts +57 -15
  940. package/src/stores/CubeSourcePickerState.ts +231 -325
  941. package/src/stores/CubeSpecTransferState.ts +2 -2
  942. package/src/stores/LocalModelCatalog.ts +27 -3
  943. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  944. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  945. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  946. package/src/stores/editors/CubeExpressionFilterDraft.ts +385 -0
  947. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  948. package/src/stores/editors/CubeFunctionDraft.ts +92 -0
  949. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  950. package/src/stores/editors/CubeJoinDraft.ts +130 -41
  951. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  952. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  953. package/src/stores/editors/CubeNodeDraftRegistry.ts +52 -2
  954. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  955. package/src/stores/editors/CubePivotDraft.ts +355 -0
  956. package/src/stores/editors/CubeSortDraft.ts +17 -54
  957. package/src/stores/editors/CubeSortRows.ts +84 -0
  958. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  959. package/src/stores/fixtures/CubeSalesDuckDbModel.ts +54 -0
  960. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  961. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  962. package/src/stores/fixtures/CubeTradesModel.ts +276 -0
  963. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  964. package/src/stores/source-picker/CubeDataProductTabState.ts +966 -0
  965. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +846 -0
  966. package/src/stores/source-picker/CubeIngestTabState.ts +625 -0
  967. package/src/stores/source-picker/CubeInlineModelTabState.ts +928 -0
  968. package/src/stores/source-picker/CubeProjectTabState.ts +250 -0
  969. package/src/stores/source-picker/CubeServiceTabState.ts +288 -0
  970. package/src/stores/source-picker/CubeSourcePickerTab.ts +79 -0
  971. package/tsconfig.json +139 -0
@@ -14,27 +14,111 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { EmitRole, lambda, storeAccessor, } from '@finos/legend-cube';
17
- import { V1_EngineServerClient, V1_RenderStyle } from '@finos/legend-graph';
18
- import { stringifyLosslessJSON, } from '@finos/legend-shared';
17
+ import { EXECUTION_SERIALIZATION_FORMAT, V1_EngineServerClient, V1_RenderStyle, } from '@finos/legend-graph';
18
+ import { ContentType, HttpHeader, parseLosslessJSON, stringifyLosslessJSON, } from '@finos/legend-shared';
19
+ import { checkCubeDataProductModel, CUBE_DATA_PRODUCT_RUNTIME_PATH, getCubeDataProductProject, getEffectiveCubeWarehouse, isCubeDataProductModel, } from '../../../CubeDataProduct.js';
20
+ import { checkCubeIngestModel, CUBE_INGEST_RUNTIME_PATH, getCubeIngestSettings, isCubeIngestModel, } from '../../../CubeIngest.js';
21
+ import { checkCubeProjectModel, isCubeProjectModel, } from '../../../CubeProject.js';
22
+ import { CUBE_DIRECT_DATABASE_PATH, CUBE_DIRECT_MODEL_TYPE, CUBE_DIRECT_RUNTIME_PATH, getCubeDirectConnection, } from '../../../CubeDirectConnection.js';
19
23
  import { CubeEngineError, CubeEngineErrorKind, } from '../../../CubeEngine.js';
24
+ import { V1_canonicalCubeDirectConnection, V1_checkCubeDirectConnection, } from './V1_CubeDirectConnection.js';
25
+ import { V1_buildCubeDataProductExecutionContext, V1_buildCubeDataProductTypingContext, V1_hasCubeDataProductAccessor, } from './V1_CubeDataProductModel.js';
26
+ import { V1_buildCubeIngestExecutionContext, V1_buildCubeIngestTypingContext, V1_checkCubeIngestAccessors, V1_collectCubeIngestAccessors, V1_getCubeIngestUrns, V1_hasCubeIngestAccessor, } from './V1_CubeIngestModel.js';
27
+ import { V1_buildCubeDirectModelContext, V1_collectCubeStoreAccessors, V1_CUBE_DIRECT_DATABASE, } from './V1_CubeDirectModel.js';
20
28
  import { V1_buildCubeEngineError, V1_toCubeEngineError, } from './V1_CubeEngineErrors.js';
21
29
  import { V1_CubeUnreadableResultError, V1_readCubeExecutionResult, } from './V1_CubeExecutionResultReader.js';
30
+ import { V1_readCubeExpression } from './V1_CubeExpression.js';
22
31
  import { V1_serializeCubeLambda } from './V1_CubeLambdaSerializer.js';
23
32
  import { V1_buildCubeModelOutline } from './V1_CubeModelOutlineBuilder.js';
24
33
  import { V1_buildCubeSchema } from './V1_CubeRelationTypeAdapter.js';
25
- /** The only model kind the slice runs: Pure text (PLAN §6.2.2) */
34
+ import { V1_buildCubeSchemaExplorationInput, V1_buildExploredDatabase, V1_toCubeExplorationError, V1_unquoteCubeName, } from './V1_CubeSchemaExploration.js';
35
+ /** Pure text (PLAN §6.2.2); the other kind run is a direct connection (§6.8) */
26
36
  const TEXT_MODEL_TYPE = 'text';
27
37
  const EXECUTION_CLIENT_VERSION = 'vX_X_X';
38
+ /** The engine client's trace name for its grammar-to-JSON calls */
39
+ const GRAMMAR_TO_JSON_TRACE = 'transform Pure code to protocol';
28
40
  /**
29
- * The node an execution lambda runs: the one its `from` call is stamped with
30
- * (`{| <relation>->limit(…)->from(runtime)}`), where errors without a stamp go
41
+ * The node an execution lambda runs: the one its outermost call is stamped
42
+ * with, `from` in `{| <relation>->limit(…)->from(runtime)}` and `limit` in
43
+ * the let form, `{| {| <lets>; <relation>}->from(runtime)->limit(…)}` (PLAN
44
+ * §8.6), or the capture's sort or `from` when Show Pure leaves the limit out,
45
+ * where errors without a stamp go
31
46
  */
32
47
  const captureNodeOf = (executionLambda) => {
33
48
  const from = executionLambda.k === 'lambda' ? executionLambda.body[0] : undefined;
34
49
  return from?.k === 'func' ? from.origin?.nodeId : undefined;
35
50
  };
51
+ /** Why a lambda can't run on the cube's model: data products and database tables are kept apart (PLAN §6.8) */
52
+ const DATA_PRODUCT_ONLY = 'Only a data product cube can read data products';
53
+ const TABLES_IN_DATA_PRODUCT_CUBE = "A data product cube can't read database tables";
54
+ const NO_LAKEHOUSE = "This page can't run data products: its host has no lakehouse";
55
+ /** Why a lambda can't run on the cube's model: ingest data sets are kept apart too (PLAN §6.7) */
56
+ const INGEST_ONLY = 'Only an ingest cube can read ingest data sets';
57
+ const OTHER_SOURCES_IN_INGEST_CUBE = 'An ingest cube reads ingest data sets only';
58
+ const NO_INGEST = "This page can't read ingest data sets: its host has no ingest servers";
59
+ /** The kinds of model a cube's sources must match */
60
+ var CubeSourceFamily;
61
+ (function (CubeSourceFamily) {
62
+ CubeSourceFamily["DATA_PRODUCT"] = "dataProduct";
63
+ CubeSourceFamily["INGEST"] = "ingest";
64
+ CubeSourceFamily["TABLES"] = "tables";
65
+ })(CubeSourceFamily || (CubeSourceFamily = {}));
66
+ const familyOf = (model) => isCubeDataProductModel(model)
67
+ ? CubeSourceFamily.DATA_PRODUCT
68
+ : isCubeIngestModel(model)
69
+ ? CubeSourceFamily.INGEST
70
+ : CubeSourceFamily.TABLES;
71
+ /** Why a lambda reads a source its cube's kind can't, if it does */
72
+ const foreignSourceProblemOf = (family, ir) => {
73
+ const readsTables = V1_collectCubeStoreAccessors(ir).length > 0;
74
+ const readsDataProducts = V1_hasCubeDataProductAccessor(ir);
75
+ const readsIngest = V1_hasCubeIngestAccessor(ir);
76
+ switch (family) {
77
+ case CubeSourceFamily.DATA_PRODUCT:
78
+ return readsTables
79
+ ? TABLES_IN_DATA_PRODUCT_CUBE
80
+ : readsIngest
81
+ ? INGEST_ONLY
82
+ : undefined;
83
+ case CubeSourceFamily.INGEST:
84
+ return readsTables || readsDataProducts
85
+ ? OTHER_SOURCES_IN_INGEST_CUBE
86
+ : undefined;
87
+ default:
88
+ return readsDataProducts
89
+ ? DATA_PRODUCT_ONLY
90
+ : readsIngest
91
+ ? INGEST_ONLY
92
+ : undefined;
93
+ }
94
+ };
95
+ /** An error of the host's ingest servers, placed on a node */
96
+ const toIngestError = (error, kind, nodeId) => error instanceof CubeEngineError
97
+ ? new CubeEngineError(error.kind, error.detail, nodeId)
98
+ : new CubeEngineError(kind, error instanceof Error ? error.message : String(error), nodeId);
36
99
  /** The message for a model of a kind this version can't run (PLAN §8.7) */
37
100
  export const V1_unsupportedModelMessage = (type) => `This cube's model kind "${type}" isn't supported yet.`;
101
+ /** A table of a direct-connection cube, as the database stores its names */
102
+ const directTableOf = (path) => [
103
+ V1_unquoteCubeName(path[1]),
104
+ V1_unquoteCubeName(path[2]),
105
+ ];
106
+ const tableKey = (path) => JSON.stringify(path);
107
+ /** The error of a table a direct-connection cube's database doesn't have */
108
+ const missingTableError = (path, kind, nodeId) => new CubeEngineError(kind, `The database has no table ${path[1]} in schema ${path[0]}`, nodeId);
109
+ /** The error of a table that isn't in a direct-connection cube's one Database */
110
+ const foreignTableError = (path, kind, nodeId) => new CubeEngineError(kind, `The table is in "${path[0]}", not in the cube's database connection`, nodeId);
111
+ /** A lambda's problem with a direct-connection cube's tables, if any */
112
+ const tableProblemOf = (accessors, missing, kind, nodeId) => {
113
+ const foreign = accessors.find((path) => path[0] !== CUBE_DIRECT_DATABASE_PATH);
114
+ if (foreign) {
115
+ return foreignTableError(foreign, kind, nodeId);
116
+ }
117
+ const absent = accessors
118
+ .map(directTableOf)
119
+ .find((path) => missing.has(tableKey(path)));
120
+ return absent ? missingTableError(absent, kind, nodeId) : undefined;
121
+ };
38
122
  /**
39
123
  * The Legend engine behind the Cube engine port (PLAN §8.7). It sends the
40
124
  * cube's saved model context as it is, lambdas as protocol JSON with lossless
@@ -43,10 +127,102 @@ export const V1_unsupportedModelMessage = (type) => `This cube's model kind "${t
43
127
  */
44
128
  export class V1_LegendCubeEngine {
45
129
  client;
46
- constructor(config, tracerService) {
130
+ /**
131
+ * The tables this session has read from direct connections, by connection
132
+ * and table: picking or re-checking a table reads it again, and typing and
133
+ * running reuse what was read
134
+ */
135
+ directTables = new Map();
136
+ /** The viewer's lakehouse environment, which data product runs need */
137
+ lakehouseEnvironment;
138
+ /** The warehouse the viewer last picked, for a data product cube without its own */
139
+ getRememberedWarehouse;
140
+ /** The deployed ingest definitions, which ingest cubes read */
141
+ ingestDefinitions;
142
+ /** The model data product cubes read their project from, when not its deployed version */
143
+ dataProductModels;
144
+ constructor(config, tracerService, options) {
47
145
  this.client = new V1_EngineServerClient(config);
48
146
  // every call throws without one
49
147
  this.client.setTracerService(tracerService);
148
+ options?.clientSettings?.register(this.client);
149
+ this.lakehouseEnvironment = options?.lakehouseEnvironment;
150
+ this.getRememberedWarehouse =
151
+ options?.getRememberedWarehouse ?? (() => undefined);
152
+ this.ingestDefinitions = options?.ingestDefinitions;
153
+ this.dataProductModels = options?.dataProductModels;
154
+ }
155
+ /**
156
+ * The elements an ingest cube's model holds: the host's, when it has more
157
+ * than the definitions (Studio's workspace), else the definitions read
158
+ */
159
+ async ingestModelElementsOf(definitions) {
160
+ const source = this.ingestDefinitions;
161
+ return source?.getModelElements
162
+ ? source.getModelElements()
163
+ : [...definitions.values()].filter((read) => !(read instanceof CubeEngineError));
164
+ }
165
+ /** The model a data product cube's project is read from: the host's, else its deployed version's pointer */
166
+ async dataProductProjectModelOf(project) {
167
+ return this.dataProductModels?.getProjectModel(project);
168
+ }
169
+ /** An ingest model's settings, or an unsupported-model error naming its problems */
170
+ ingestSettingsOf(model, nodeId) {
171
+ const settings = getCubeIngestSettings(model);
172
+ if (!settings) {
173
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, checkCubeIngestModel(model).join('\n'), nodeId);
174
+ }
175
+ return settings;
176
+ }
177
+ /**
178
+ * The definitions the URNs name, read from the host's ingest servers, each
179
+ * once; a definition that can't be read gives its error instead
180
+ */
181
+ async ingestDefinitionsOf(urns, settings) {
182
+ const source = this.ingestDefinitions;
183
+ return new Map(await Promise.all(urns.map(async (urn) => {
184
+ if (!source) {
185
+ return [
186
+ urn,
187
+ new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, NO_INGEST),
188
+ ];
189
+ }
190
+ try {
191
+ return [
192
+ urn,
193
+ await source.getDefinitionElement(urn, settings.environmentType),
194
+ ];
195
+ }
196
+ catch (error) {
197
+ return [
198
+ urn,
199
+ toIngestError(error, CubeEngineErrorKind.NETWORK, undefined),
200
+ ];
201
+ }
202
+ })));
203
+ }
204
+ /** A data product model's project, or an unsupported-model error naming its problems */
205
+ dataProductProjectOf(model, nodeId) {
206
+ const project = getCubeDataProductProject(model);
207
+ if (!project) {
208
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, checkCubeDataProductModel(model).join('\n'), nodeId);
209
+ }
210
+ return project;
211
+ }
212
+ /**
213
+ * Checks a tables cube's model can be sent to the engine: Pure text, or a
214
+ * project pointer at a released version (PLAN §6.3); else an
215
+ * unsupported-model error
216
+ */
217
+ checkTablesModel(model, nodeId) {
218
+ if (isCubeProjectModel(model)) {
219
+ const problems = checkCubeProjectModel(model);
220
+ if (problems.length) {
221
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, problems.join('\n'), nodeId);
222
+ }
223
+ return;
224
+ }
225
+ this.textOf(model, nodeId);
50
226
  }
51
227
  /** The model's Pure text, or an unsupported-model error for any other kind */
52
228
  textOf(model, nodeId) {
@@ -55,7 +231,100 @@ export class V1_LegendCubeEngine {
55
231
  }
56
232
  return model.code;
57
233
  }
234
+ /**
235
+ * A direct-connection model's connection, or an unsupported-model error when
236
+ * Cube can't use it (an imported cube then shows its saved schemas)
237
+ */
238
+ directConnectionOf(model, nodeId) {
239
+ const connection = getCubeDirectConnection(model);
240
+ const problems = V1_checkCubeDirectConnection(connection);
241
+ if (!connection || problems.length) {
242
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, problems.join('\n'), nodeId);
243
+ }
244
+ return connection;
245
+ }
246
+ /**
247
+ * The model a call on a direct-connection cube runs on, holding the tables
248
+ * it needs, and those its database doesn't have. Tables this session
249
+ * hasn't read are read in one call; `fresh` reads them all again
250
+ */
251
+ async directContextFor(connection, tables, fresh) {
252
+ const connectionKey = V1_canonicalCubeDirectConnection(connection);
253
+ const cacheKey = (path) => JSON.stringify([connectionKey, ...path]);
254
+ const needed = [
255
+ ...new Map(tables.map((path) => [tableKey(path), path])).values(),
256
+ ];
257
+ const toRead = fresh
258
+ ? needed
259
+ : needed.filter((path) => !this.directTables.has(cacheKey(path)));
260
+ if (toRead.length) {
261
+ const { database, missing } = V1_buildExploredDatabase(await this.client.buildDatabase(V1_buildCubeSchemaExplorationInput(connection, connection.databaseType, V1_CUBE_DIRECT_DATABASE, { kind: 'columns', tables: toRead })), toRead);
262
+ database.schemas.forEach((schema) => schema.tables.forEach((definition) => {
263
+ const path = [
264
+ V1_unquoteCubeName(schema.name),
265
+ V1_unquoteCubeName(definition.name),
266
+ ];
267
+ this.directTables.set(cacheKey(path), { path, definition });
268
+ }));
269
+ missing.forEach((path) => this.directTables.delete(cacheKey(path)));
270
+ }
271
+ const found = [];
272
+ const missing = new Set();
273
+ needed.forEach((path) => {
274
+ const table = this.directTables.get(cacheKey(path));
275
+ if (table) {
276
+ found.push(table);
277
+ }
278
+ else {
279
+ missing.add(tableKey(path));
280
+ }
281
+ });
282
+ return {
283
+ context: V1_buildCubeDirectModelContext(connection, found),
284
+ missing,
285
+ };
286
+ }
58
287
  async loadModel(model) {
288
+ if (isCubeIngestModel(model)) {
289
+ this.ingestSettingsOf(model);
290
+ // its data sets are listed through the ingest catalog
291
+ return {
292
+ databases: [],
293
+ runtimes: [{ path: CUBE_INGEST_RUNTIME_PATH, storePaths: [] }],
294
+ };
295
+ }
296
+ if (isCubeDataProductModel(model)) {
297
+ this.dataProductProjectOf(model);
298
+ // its access points are listed through the data product catalog
299
+ return {
300
+ databases: [],
301
+ runtimes: [{ path: CUBE_DATA_PRODUCT_RUNTIME_PATH, storePaths: [] }],
302
+ };
303
+ }
304
+ if (model._type === CUBE_DIRECT_MODEL_TYPE) {
305
+ const connection = this.directConnectionOf(model);
306
+ // its tables are listed through the connection explorer; its one
307
+ // connection gives the database type operations are written for
308
+ return {
309
+ databases: [],
310
+ runtimes: [
311
+ {
312
+ path: CUBE_DIRECT_RUNTIME_PATH,
313
+ storePaths: [CUBE_DIRECT_DATABASE_PATH],
314
+ connections: [
315
+ {
316
+ storePath: CUBE_DIRECT_DATABASE_PATH,
317
+ databaseType: connection.databaseType,
318
+ },
319
+ ],
320
+ },
321
+ ],
322
+ };
323
+ }
324
+ if (isCubeProjectModel(model)) {
325
+ // its Databases and runtimes are listed through the project catalog
326
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, `A project's outline comes from its depot, through the project catalog`);
327
+ }
59
328
  const code = this.textOf(model);
60
329
  try {
61
330
  return V1_buildCubeModelOutline(await this.client.grammarToJSON_model(code));
@@ -65,16 +334,209 @@ export class V1_LegendCubeEngine {
65
334
  }
66
335
  }
67
336
  resolveSchemas(model, accessors) {
68
- return this.typeAll(model, new Map([...accessors].map(([nodeId, path]) => [
337
+ const lambdas = new Map([...accessors].map(([nodeId, path]) => [
69
338
  nodeId,
70
339
  lambda([], [storeAccessor(path, { nodeId, role: EmitRole.ACCESSOR })]),
71
- ])));
340
+ ]));
341
+ if (isCubeDataProductModel(model) || isCubeIngestModel(model)) {
342
+ return Promise.resolve(new Map([...accessors.keys()].map((nodeId) => [
343
+ nodeId,
344
+ new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, isCubeIngestModel(model)
345
+ ? OTHER_SOURCES_IN_INGEST_CUBE
346
+ : TABLES_IN_DATA_PRODUCT_CUBE, nodeId),
347
+ ])));
348
+ }
349
+ // a table is read again from its database whenever it is resolved
350
+ return model._type === CUBE_DIRECT_MODEL_TYPE
351
+ ? this.typeDirect(model, lambdas, true)
352
+ : this.typeAll(model, lambdas);
353
+ }
354
+ async typeLambdas(model, lambdas) {
355
+ const family = familyOf(model);
356
+ // a lambda reading another kind of source is refused before any call
357
+ const refused = new Map();
358
+ const typable = new Map();
359
+ lambdas.forEach((ir, nodeId) => {
360
+ const problem = foreignSourceProblemOf(family, ir);
361
+ if (problem) {
362
+ refused.set(nodeId, new CubeEngineError(CubeEngineErrorKind.COMPILE, problem, nodeId));
363
+ }
364
+ else {
365
+ typable.set(nodeId, ir);
366
+ }
367
+ });
368
+ const typed = family === CubeSourceFamily.DATA_PRODUCT
369
+ ? await this.typeDataProduct(model, typable)
370
+ : family === CubeSourceFamily.INGEST
371
+ ? await this.typeIngest(model, typable)
372
+ : model._type === CUBE_DIRECT_MODEL_TYPE
373
+ ? await this.typeDirect(model, typable, false)
374
+ : await this.typeAll(model, typable);
375
+ // in the order the lambdas were given
376
+ return new Map([...lambdas.keys()].map((nodeId) => [
377
+ nodeId,
378
+ (refused.get(nodeId) ?? typed.get(nodeId)),
379
+ ]));
72
380
  }
73
- typeLambdas(model, lambdas) {
74
- return this.typeAll(model, lambdas);
381
+ /**
382
+ * Types lambdas on a data product cube: on its project at its saved
383
+ * version, with no runtime. The open-source engine reads no data product,
384
+ * so there every lambda fails as the engine says
385
+ */
386
+ async typeDataProduct(model, lambdas) {
387
+ let project;
388
+ try {
389
+ project = this.dataProductProjectOf(model);
390
+ }
391
+ catch (error) {
392
+ return new Map([...lambdas.keys()].map((nodeId) => [
393
+ nodeId,
394
+ new CubeEngineError(error.kind, error.detail, nodeId),
395
+ ]));
396
+ }
397
+ let projectModel;
398
+ try {
399
+ projectModel = await this.dataProductProjectModelOf(project);
400
+ }
401
+ catch (error) {
402
+ return new Map([...lambdas.keys()].map((nodeId) => [
403
+ nodeId,
404
+ V1_toCubeEngineError(error, nodeId, CubeEngineErrorKind.COMPILE),
405
+ ]));
406
+ }
407
+ return this.typeOn(V1_buildCubeDataProductTypingContext(project, projectModel), lambdas);
75
408
  }
76
- /** Types every lambda in one batch call: one entry per key, whatever fails */
409
+ /**
410
+ * Types lambdas on an ingest cube: on the definitions they read, as the
411
+ * ingest servers serve them, with no runtime. A lambda whose data sets
412
+ * can't be read on the cube, or whose definition can't be fetched, fails
413
+ * on its own node. The open-source engine reads no ingest definition
414
+ */
415
+ async typeIngest(model, lambdas) {
416
+ const typed = new Map();
417
+ if (!lambdas.size) {
418
+ return typed;
419
+ }
420
+ let settings;
421
+ try {
422
+ settings = this.ingestSettingsOf(model);
423
+ }
424
+ catch (error) {
425
+ return new Map([...lambdas.keys()].map((nodeId) => [
426
+ nodeId,
427
+ toIngestError(error, CubeEngineErrorKind.COMPILE, nodeId),
428
+ ]));
429
+ }
430
+ const accessorsOf = new Map([...lambdas].map(([nodeId, ir]) => [
431
+ nodeId,
432
+ V1_collectCubeIngestAccessors(ir),
433
+ ]));
434
+ const checked = new Map();
435
+ lambdas.forEach((ir, nodeId) => {
436
+ const problem = V1_checkCubeIngestAccessors(accessorsOf.get(nodeId) ?? [], settings);
437
+ if (problem) {
438
+ typed.set(nodeId, new CubeEngineError(CubeEngineErrorKind.COMPILE, problem, nodeId));
439
+ }
440
+ else {
441
+ checked.set(nodeId, ir);
442
+ }
443
+ });
444
+ const definitions = await this.ingestDefinitionsOf(V1_getCubeIngestUrns([...checked.keys()].flatMap((nodeId) => accessorsOf.get(nodeId) ?? [])), settings);
445
+ const typable = new Map();
446
+ checked.forEach((ir, nodeId) => {
447
+ const failure = V1_getCubeIngestUrns(accessorsOf.get(nodeId) ?? [])
448
+ .map((urn) => definitions.get(urn))
449
+ .find((read) => read instanceof CubeEngineError);
450
+ if (failure) {
451
+ typed.set(nodeId, toIngestError(failure, CubeEngineErrorKind.COMPILE, nodeId));
452
+ }
453
+ else {
454
+ typable.set(nodeId, ir);
455
+ }
456
+ });
457
+ let elements;
458
+ try {
459
+ elements = await this.ingestModelElementsOf(definitions);
460
+ }
461
+ catch (error) {
462
+ typable.forEach((_ir, nodeId) => typed.set(nodeId, toIngestError(error, CubeEngineErrorKind.COMPILE, nodeId)));
463
+ typable.clear();
464
+ elements = [];
465
+ }
466
+ (await this.typeOn(V1_buildCubeIngestTypingContext(elements), typable)).forEach((schema, nodeId) => typed.set(nodeId, schema));
467
+ // in the order the lambdas were given
468
+ return new Map([...lambdas.keys()].map((nodeId) => [
469
+ nodeId,
470
+ typed.get(nodeId),
471
+ ]));
472
+ }
473
+ /**
474
+ * Types lambdas on a direct-connection cube: the tables they use are read
475
+ * from its database in one call, then typed in one batch on the model built
476
+ * from them
477
+ */
478
+ async typeDirect(model, lambdas, fresh) {
479
+ const typed = new Map();
480
+ if (!lambdas.size) {
481
+ return typed;
482
+ }
483
+ const failAll = (toError) => new Map([...lambdas.keys()].map((nodeId) => [nodeId, toError(nodeId)]));
484
+ let connection;
485
+ try {
486
+ connection = this.directConnectionOf(model);
487
+ }
488
+ catch (error) {
489
+ return failAll((nodeId) => new CubeEngineError(error.kind, error.detail, nodeId));
490
+ }
491
+ const accessorsOf = new Map([...lambdas].map(([nodeId, ir]) => [
492
+ nodeId,
493
+ V1_collectCubeStoreAccessors(ir),
494
+ ]));
495
+ const tables = [...accessorsOf.values()]
496
+ .flat()
497
+ .filter((path) => path[0] === CUBE_DIRECT_DATABASE_PATH)
498
+ .map(directTableOf);
499
+ let built;
500
+ try {
501
+ built = await this.directContextFor(connection, tables, fresh);
502
+ }
503
+ catch (error) {
504
+ return failAll((nodeId) => V1_toCubeExplorationError(error, CubeEngineErrorKind.COMPILE, nodeId));
505
+ }
506
+ const typable = new Map();
507
+ lambdas.forEach((ir, nodeId) => {
508
+ const problem = tableProblemOf(accessorsOf.get(nodeId) ?? [], built.missing, CubeEngineErrorKind.COMPILE, nodeId);
509
+ if (problem) {
510
+ typed.set(nodeId, problem);
511
+ }
512
+ else {
513
+ typable.set(nodeId, ir);
514
+ }
515
+ });
516
+ (await this.typeOn(built.context, typable)).forEach((schema, nodeId) => typed.set(nodeId, schema));
517
+ // in the order the lambdas were given
518
+ return new Map([...lambdas.keys()].map((nodeId) => [
519
+ nodeId,
520
+ typed.get(nodeId),
521
+ ]));
522
+ }
523
+ /** Types every lambda in one batch call on a text model: one entry per key, whatever fails */
77
524
  async typeAll(model, lambdas) {
525
+ if (lambdas.size) {
526
+ try {
527
+ this.checkTablesModel(model);
528
+ }
529
+ catch (error) {
530
+ return new Map([...lambdas.keys()].map((nodeId) => [
531
+ nodeId,
532
+ V1_toCubeEngineError(error, nodeId, CubeEngineErrorKind.COMPILE),
533
+ ]));
534
+ }
535
+ }
536
+ return this.typeOn(model, lambdas);
537
+ }
538
+ /** Types every lambda in one batch call on a model context: one entry per key, whatever fails */
539
+ async typeOn(context, lambdas) {
78
540
  const typed = new Map();
79
541
  if (!lambdas.size) {
80
542
  return typed;
@@ -85,9 +547,8 @@ export class V1_LegendCubeEngine {
85
547
  ]));
86
548
  let response;
87
549
  try {
88
- this.textOf(model);
89
550
  const body = stringifyLosslessJSON({
90
- model,
551
+ model: context,
91
552
  lambdas: Object.fromEntries([...lambdas].map(([nodeId, ir]) => [
92
553
  nodeId,
93
554
  V1_serializeCubeLambda(ir),
@@ -124,16 +585,10 @@ export class V1_LegendCubeEngine {
124
585
  async execute(model, executionLambda, options) {
125
586
  const captureId = captureNodeOf(executionLambda);
126
587
  const startedAt = Date.now();
588
+ const context = await this.executionContextOf(model, executionLambda, captureId, options?.abortController);
127
589
  let text;
128
590
  try {
129
- this.textOf(model);
130
- const body = stringifyLosslessJSON({
131
- clientVersion: EXECUTION_CLIENT_VERSION,
132
- function: V1_serializeCubeLambda(executionLambda),
133
- model,
134
- context: { _type: 'BaseExecutionContext' },
135
- parameterValues: [],
136
- });
591
+ const body = this.executionBodyOf(model, context, executionLambda);
137
592
  // `returnAsResponse` leaves the body unread, so it can be read losslessly
138
593
  const response = (await this.client.runQuery(body, {
139
594
  returnAsResponse: true,
@@ -157,6 +612,184 @@ export class V1_LegendCubeEngine {
157
612
  throw error;
158
613
  }
159
614
  }
615
+ async exportCsv(model, executionLambda, options) {
616
+ const captureId = captureNodeOf(executionLambda);
617
+ const context = await this.executionContextOf(model, executionLambda, captureId, options?.abortController);
618
+ try {
619
+ const body = this.executionBodyOf(model, context, executionLambda);
620
+ // the engine answers CSV under a JSON content type, and a failure as JSON with status 500 (PLAN §11.10)
621
+ const response = (await this.client.runQuery(body, {
622
+ returnAsResponse: true,
623
+ serializationFormat: EXECUTION_SERIALIZATION_FORMAT.CSV,
624
+ abortController: options?.abortController,
625
+ }));
626
+ return await response.text();
627
+ }
628
+ catch (error) {
629
+ throw V1_toCubeEngineError(error, captureId, CubeEngineErrorKind.EXECUTION);
630
+ }
631
+ }
632
+ /**
633
+ * The model a run on a data product cube runs on (PLAN §6.8): its project at
634
+ * the saved version, and a lakehouse runtime at Cube's fixed path, in the
635
+ * viewer's environment, with the cube's warehouse, else the default
636
+ */
637
+ async dataProductExecutionContext(model, executionLambda, captureId) {
638
+ const project = this.dataProductProjectOf(model, captureId);
639
+ if (V1_collectCubeStoreAccessors(executionLambda).length) {
640
+ throw new CubeEngineError(CubeEngineErrorKind.EXECUTION, TABLES_IN_DATA_PRODUCT_CUBE, captureId);
641
+ }
642
+ if (!this.lakehouseEnvironment) {
643
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, NO_LAKEHOUSE, captureId);
644
+ }
645
+ let environment;
646
+ try {
647
+ environment = await this.lakehouseEnvironment.resolveEnvironment(project);
648
+ }
649
+ catch (error) {
650
+ throw error instanceof CubeEngineError
651
+ ? new CubeEngineError(error.kind, error.detail, captureId)
652
+ : new CubeEngineError(CubeEngineErrorKind.EXECUTION, error instanceof Error ? error.message : String(error), captureId);
653
+ }
654
+ let projectModel;
655
+ try {
656
+ projectModel = await this.dataProductProjectModelOf(project);
657
+ }
658
+ catch (error) {
659
+ throw V1_toCubeEngineError(error, captureId, CubeEngineErrorKind.EXECUTION);
660
+ }
661
+ return V1_buildCubeDataProductExecutionContext(project, environment, getEffectiveCubeWarehouse(project, this.getRememberedWarehouse()), projectModel);
662
+ }
663
+ /**
664
+ * The model a run on an ingest cube runs on (PLAN §6.7): the definitions it
665
+ * reads, as the ingest servers serve them, and a lakehouse runtime at
666
+ * Cube's fixed path, in the environment of the cube's class, with the
667
+ * cube's warehouse, else the one the viewer last picked, else the default
668
+ */
669
+ async ingestExecutionContext(model, executionLambda, captureId) {
670
+ const settings = this.ingestSettingsOf(model, captureId);
671
+ const accessors = V1_collectCubeIngestAccessors(executionLambda);
672
+ const problem = V1_checkCubeIngestAccessors(accessors, settings);
673
+ if (problem) {
674
+ throw new CubeEngineError(CubeEngineErrorKind.EXECUTION, problem, captureId);
675
+ }
676
+ const source = this.ingestDefinitions;
677
+ if (!source) {
678
+ throw new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, NO_INGEST, captureId);
679
+ }
680
+ const definitions = await this.ingestDefinitionsOf(V1_getCubeIngestUrns(accessors), settings);
681
+ definitions.forEach((read) => {
682
+ if (read instanceof CubeEngineError) {
683
+ throw toIngestError(read, CubeEngineErrorKind.EXECUTION, captureId);
684
+ }
685
+ });
686
+ let elements;
687
+ try {
688
+ elements = await this.ingestModelElementsOf(definitions);
689
+ }
690
+ catch (error) {
691
+ throw toIngestError(error, CubeEngineErrorKind.EXECUTION, captureId);
692
+ }
693
+ let environment;
694
+ try {
695
+ environment = await source.getRuntimeEnvironment(settings.environmentType);
696
+ }
697
+ catch (error) {
698
+ throw toIngestError(error, CubeEngineErrorKind.EXECUTION, captureId);
699
+ }
700
+ return V1_buildCubeIngestExecutionContext(elements, environment, getEffectiveCubeWarehouse(settings, this.getRememberedWarehouse()));
701
+ }
702
+ /**
703
+ * The model a run on a direct-connection cube runs on: the tables it uses,
704
+ * read from its database when this session hasn't read them. A run stopped
705
+ * meanwhile goes no further
706
+ */
707
+ async directExecutionContext(model, executionLambda, captureId, abortController) {
708
+ const connection = this.directConnectionOf(model, captureId);
709
+ const accessors = V1_collectCubeStoreAccessors(executionLambda);
710
+ const foreign = accessors.find((path) => path[0] !== CUBE_DIRECT_DATABASE_PATH);
711
+ if (foreign) {
712
+ throw foreignTableError(foreign, CubeEngineErrorKind.EXECUTION, captureId);
713
+ }
714
+ let built;
715
+ try {
716
+ built = await this.directContextFor(connection, accessors.map(directTableOf), false);
717
+ }
718
+ catch (error) {
719
+ throw V1_toCubeExplorationError(error, CubeEngineErrorKind.EXECUTION, captureId);
720
+ }
721
+ const problem = tableProblemOf(accessors, built.missing, CubeEngineErrorKind.EXECUTION, captureId);
722
+ if (problem) {
723
+ throw problem;
724
+ }
725
+ if (abortController?.signal.aborted) {
726
+ throw new CubeEngineError(CubeEngineErrorKind.EXECUTION, 'The run was stopped', captureId);
727
+ }
728
+ return built.context;
729
+ }
730
+ /**
731
+ * The model a run of the lambda runs on: the cube's, or the context its
732
+ * data products, ingest data sets or direct connection need. A lambda
733
+ * reading another kind of source is refused first
734
+ */
735
+ async executionContextOf(model, executionLambda, captureId, abortController) {
736
+ const family = familyOf(model);
737
+ const problem = foreignSourceProblemOf(family, executionLambda);
738
+ if (problem) {
739
+ throw new CubeEngineError(CubeEngineErrorKind.EXECUTION, problem, captureId);
740
+ }
741
+ return family === CubeSourceFamily.DATA_PRODUCT
742
+ ? this.dataProductExecutionContext(model, executionLambda, captureId)
743
+ : family === CubeSourceFamily.INGEST
744
+ ? this.ingestExecutionContext(model, executionLambda, captureId)
745
+ : model._type === CUBE_DIRECT_MODEL_TYPE
746
+ ? this.directExecutionContext(model, executionLambda, captureId, abortController)
747
+ : model;
748
+ }
749
+ /** The body of a run, or of its plan, as text, so numbers keep every digit */
750
+ executionBodyOf(model, context, executionLambda) {
751
+ if (model._type !== CUBE_DIRECT_MODEL_TYPE &&
752
+ familyOf(model) === CubeSourceFamily.TABLES) {
753
+ this.checkTablesModel(model);
754
+ }
755
+ return stringifyLosslessJSON({
756
+ clientVersion: EXECUTION_CLIENT_VERSION,
757
+ function: V1_serializeCubeLambda(executionLambda),
758
+ model: context,
759
+ context: { _type: 'BaseExecutionContext' },
760
+ parameterValues: [],
761
+ });
762
+ }
763
+ async planLambda(model, executionLambda) {
764
+ const captureId = captureNodeOf(executionLambda);
765
+ const context = await this.executionContextOf(model, executionLambda, captureId, undefined);
766
+ try {
767
+ await this.client.generatePlan(this.executionBodyOf(model, context, executionLambda));
768
+ }
769
+ catch (error) {
770
+ throw V1_toCubeEngineError(error, captureId, CubeEngineErrorKind.EXECUTION);
771
+ }
772
+ }
773
+ async parseExpression(code, sourceId) {
774
+ let text;
775
+ try {
776
+ // unread, so it can be read losslessly: a literal keeps its digits
777
+ const response = await this.client.postWithTracing(this.client.getTraceData(GRAMMAR_TO_JSON_TRACE), `${this.client._grammarToJSON()}/valueSpecification`, code, {}, { [HttpHeader.CONTENT_TYPE]: ContentType.TEXT_PLAIN }, { sourceId, returnSourceInformation: true }, { enableCompression: true }, { skipProcessing: true });
778
+ text = await response.text();
779
+ }
780
+ catch (error) {
781
+ throw V1_toCubeEngineError(error, undefined, CubeEngineErrorKind.COMPILE);
782
+ }
783
+ try {
784
+ return V1_readCubeExpression(parseLosslessJSON(text));
785
+ }
786
+ catch (error) {
787
+ throw new CubeEngineError(CubeEngineErrorKind.COMPILE, error.message);
788
+ }
789
+ }
790
+ serializeLambda(lambdaIR) {
791
+ return stringifyLosslessJSON(V1_serializeCubeLambda(lambdaIR), undefined, 2);
792
+ }
160
793
  async renderPure(lambdaIR) {
161
794
  try {
162
795
  // sent as text, as typing and execution are: the serialized lambda holds