@finos/legend-cube-builder 0.0.0-stage → 0.0.3

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 (379) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +64 -2
  3. package/docs/adding-an-operation.md +92 -0
  4. package/docs/hosting.md +79 -0
  5. package/docs/testing.md +83 -0
  6. package/lib/__lib__/LegendCubeCommand.d.ts +26 -0
  7. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -0
  8. package/lib/__lib__/LegendCubeCommand.js +40 -0
  9. package/lib/__lib__/LegendCubeCommand.js.map +1 -0
  10. package/lib/__lib__/LegendCubeHelpText.d.ts +19 -0
  11. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -0
  12. package/lib/__lib__/LegendCubeHelpText.js +35 -0
  13. package/lib/__lib__/LegendCubeHelpText.js.map +1 -0
  14. package/lib/__lib__/LegendCubeLabels.d.ts +87 -0
  15. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -0
  16. package/lib/__lib__/LegendCubeLabels.js +128 -0
  17. package/lib/__lib__/LegendCubeLabels.js.map +1 -0
  18. package/lib/__lib__/LegendCubeTesting.d.ts +33 -0
  19. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -0
  20. package/lib/__lib__/LegendCubeTesting.js +34 -0
  21. package/lib/__lib__/LegendCubeTesting.js.map +1 -0
  22. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts +24 -0
  23. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -0
  24. package/lib/__test-utils__/CubeCanvasTestUtils.js +37 -0
  25. package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -0
  26. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +47 -0
  27. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -0
  28. package/lib/__test-utils__/CubeEngineTestSupport.js +106 -0
  29. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -0
  30. package/lib/__test-utils__/CubeNorthwindTestQueries.d.ts +31 -0
  31. package/lib/__test-utils__/CubeNorthwindTestQueries.d.ts.map +1 -0
  32. package/lib/__test-utils__/CubeNorthwindTestQueries.js +102 -0
  33. package/lib/__test-utils__/CubeNorthwindTestQueries.js.map +1 -0
  34. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +42 -0
  35. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
  36. package/lib/__test-utils__/CubeOperationsTestUtils.js +92 -0
  37. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
  38. package/lib/__test-utils__/CubePageTestUtils.d.ts +33 -0
  39. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -0
  40. package/lib/__test-utils__/CubePageTestUtils.js +68 -0
  41. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -0
  42. package/lib/__test-utils__/CubeTestApplication.d.ts +30 -0
  43. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -0
  44. package/lib/__test-utils__/CubeTestApplication.js +57 -0
  45. package/lib/__test-utils__/CubeTestApplication.js.map +1 -0
  46. package/lib/__test-utils__/FakeCubeEngine.d.ts +41 -0
  47. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -0
  48. package/lib/__test-utils__/FakeCubeEngine.js +91 -0
  49. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -0
  50. package/lib/components/CubeButton.d.ts +20 -0
  51. package/lib/components/CubeButton.d.ts.map +1 -0
  52. package/lib/components/CubeButton.js +24 -0
  53. package/lib/components/CubeButton.js.map +1 -0
  54. package/lib/components/CubeEditor.d.ts +31 -0
  55. package/lib/components/CubeEditor.d.ts.map +1 -0
  56. package/lib/components/CubeEditor.js +90 -0
  57. package/lib/components/CubeEditor.js.map +1 -0
  58. package/lib/components/CubeNodeIcon.d.ts +23 -0
  59. package/lib/components/CubeNodeIcon.d.ts.map +1 -0
  60. package/lib/components/CubeNodeIcon.js +42 -0
  61. package/lib/components/CubeNodeIcon.js.map +1 -0
  62. package/lib/components/canvas/CubeCanvas.d.ts +37 -0
  63. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -0
  64. package/lib/components/canvas/CubeCanvas.js +137 -0
  65. package/lib/components/canvas/CubeCanvas.js.map +1 -0
  66. package/lib/components/canvas/CubeCanvasContext.d.ts +19 -0
  67. package/lib/components/canvas/CubeCanvasContext.d.ts.map +1 -0
  68. package/lib/components/canvas/CubeCanvasContext.js +22 -0
  69. package/lib/components/canvas/CubeCanvasContext.js.map +1 -0
  70. package/lib/components/canvas/CubeCanvasContextMenu.d.ts +28 -0
  71. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -0
  72. package/lib/components/canvas/CubeCanvasContextMenu.js +35 -0
  73. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -0
  74. package/lib/components/canvas/CubeCanvasDnd.d.ts +43 -0
  75. package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -0
  76. package/lib/components/canvas/CubeCanvasDnd.js +51 -0
  77. package/lib/components/canvas/CubeCanvasDnd.js.map +1 -0
  78. package/lib/components/canvas/CubeCanvasEdge.d.ts +24 -0
  79. package/lib/components/canvas/CubeCanvasEdge.d.ts.map +1 -0
  80. package/lib/components/canvas/CubeCanvasEdge.js +33 -0
  81. package/lib/components/canvas/CubeCanvasEdge.js.map +1 -0
  82. package/lib/components/canvas/CubeCanvasElements.d.ts +66 -0
  83. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -0
  84. package/lib/components/canvas/CubeCanvasElements.js +97 -0
  85. package/lib/components/canvas/CubeCanvasElements.js.map +1 -0
  86. package/lib/components/canvas/CubeCanvasLayout.d.ts +32 -0
  87. package/lib/components/canvas/CubeCanvasLayout.d.ts.map +1 -0
  88. package/lib/components/canvas/CubeCanvasLayout.js +63 -0
  89. package/lib/components/canvas/CubeCanvasLayout.js.map +1 -0
  90. package/lib/components/canvas/CubeCanvasNode.d.ts +29 -0
  91. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -0
  92. package/lib/components/canvas/CubeCanvasNode.js +75 -0
  93. package/lib/components/canvas/CubeCanvasNode.js.map +1 -0
  94. package/lib/components/editors/CubeColumnPicker.d.ts +47 -0
  95. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -0
  96. package/lib/components/editors/CubeColumnPicker.js +56 -0
  97. package/lib/components/editors/CubeColumnPicker.js.map +1 -0
  98. package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
  99. package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
  100. package/lib/components/editors/CubeDistinctEditor.js +24 -0
  101. package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
  102. package/lib/components/editors/CubeFilterEditor.d.ts +26 -0
  103. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -0
  104. package/lib/components/editors/CubeFilterEditor.js +90 -0
  105. package/lib/components/editors/CubeFilterEditor.js.map +1 -0
  106. package/lib/components/editors/CubeIntegerField.d.ts +29 -0
  107. package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
  108. package/lib/components/editors/CubeIntegerField.js +30 -0
  109. package/lib/components/editors/CubeIntegerField.js.map +1 -0
  110. package/lib/components/editors/CubeJoinEditor.d.ts +26 -0
  111. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -0
  112. package/lib/components/editors/CubeJoinEditor.js +84 -0
  113. package/lib/components/editors/CubeJoinEditor.js.map +1 -0
  114. package/lib/components/editors/CubeNodeEditorPanel.d.ts +29 -0
  115. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -0
  116. package/lib/components/editors/CubeNodeEditorPanel.js +72 -0
  117. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -0
  118. package/lib/components/editors/CubeNodeEditorRegistry.d.ts +44 -0
  119. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -0
  120. package/lib/components/editors/CubeNodeEditorRegistry.js +43 -0
  121. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -0
  122. package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
  123. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
  124. package/lib/components/editors/CubeRenameEditor.js +58 -0
  125. package/lib/components/editors/CubeRenameEditor.js.map +1 -0
  126. package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
  127. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
  128. package/lib/components/editors/CubeRestrictEditor.js +23 -0
  129. package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
  130. package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
  131. package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
  132. package/lib/components/editors/CubeRowCountEditor.js +38 -0
  133. package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
  134. package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
  135. package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
  136. package/lib/components/editors/CubeSliceEditor.js +40 -0
  137. package/lib/components/editors/CubeSliceEditor.js.map +1 -0
  138. package/lib/components/editors/CubeSortEditor.d.ts +27 -0
  139. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
  140. package/lib/components/editors/CubeSortEditor.js +72 -0
  141. package/lib/components/editors/CubeSortEditor.js.map +1 -0
  142. package/lib/components/editors/CubeSourceEditor.d.ts +25 -0
  143. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -0
  144. package/lib/components/editors/CubeSourceEditor.js +41 -0
  145. package/lib/components/editors/CubeSourceEditor.js.map +1 -0
  146. package/lib/components/editors/CubeValueEditor.d.ts +40 -0
  147. package/lib/components/editors/CubeValueEditor.d.ts.map +1 -0
  148. package/lib/components/editors/CubeValueEditor.js +178 -0
  149. package/lib/components/editors/CubeValueEditor.js.map +1 -0
  150. package/lib/components/grid/CubeGridRegion.d.ts +23 -0
  151. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -0
  152. package/lib/components/grid/CubeGridRegion.js +94 -0
  153. package/lib/components/grid/CubeGridRegion.js.map +1 -0
  154. package/lib/components/grid/CubeGridValues.d.ts +25 -0
  155. package/lib/components/grid/CubeGridValues.d.ts.map +1 -0
  156. package/lib/components/grid/CubeGridValues.js +95 -0
  157. package/lib/components/grid/CubeGridValues.js.map +1 -0
  158. package/lib/components/grid/CubeResultGrid.d.ts +39 -0
  159. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -0
  160. package/lib/components/grid/CubeResultGrid.js +86 -0
  161. package/lib/components/grid/CubeResultGrid.js.map +1 -0
  162. package/lib/components/palette/CubePalette.d.ts +29 -0
  163. package/lib/components/palette/CubePalette.d.ts.map +1 -0
  164. package/lib/components/palette/CubePalette.js +73 -0
  165. package/lib/components/palette/CubePalette.js.map +1 -0
  166. package/lib/components/show-pure/CubeShowPureDialog.d.ts +23 -0
  167. package/lib/components/show-pure/CubeShowPureDialog.d.ts.map +1 -0
  168. package/lib/components/show-pure/CubeShowPureDialog.js +37 -0
  169. package/lib/components/show-pure/CubeShowPureDialog.js.map +1 -0
  170. package/lib/components/source-picker/CubeSourcePicker.d.ts +22 -0
  171. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -0
  172. package/lib/components/source-picker/CubeSourcePicker.js +89 -0
  173. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -0
  174. package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts +26 -0
  175. package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts.map +1 -0
  176. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +45 -0
  177. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -0
  178. package/lib/graph-manager/CubeEngine.d.ts +128 -0
  179. package/lib/graph-manager/CubeEngine.d.ts.map +1 -0
  180. package/lib/graph-manager/CubeEngine.js +61 -0
  181. package/lib/graph-manager/CubeEngine.js.map +1 -0
  182. package/lib/graph-manager/CubeModelOutlineHelper.d.ts +33 -0
  183. package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -0
  184. package/lib/graph-manager/CubeModelOutlineHelper.js +45 -0
  185. package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -0
  186. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +26 -0
  187. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -0
  188. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +22 -0
  189. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -0
  190. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts +27 -0
  191. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -0
  192. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +76 -0
  193. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -0
  194. package/lib/graph-manager/protocol/pure/v1/V1_CubeExecutionResultReader.d.ts +27 -0
  195. package/lib/graph-manager/protocol/pure/v1/V1_CubeExecutionResultReader.d.ts.map +1 -0
  196. package/lib/graph-manager/protocol/pure/v1/V1_CubeExecutionResultReader.js +82 -0
  197. package/lib/graph-manager/protocol/pure/v1/V1_CubeExecutionResultReader.js.map +1 -0
  198. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts +32 -0
  199. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -0
  200. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +195 -0
  201. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -0
  202. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts +20 -0
  203. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -0
  204. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +174 -0
  205. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -0
  206. package/lib/graph-manager/protocol/pure/v1/V1_CubeRelationTypeAdapter.d.ts +24 -0
  207. package/lib/graph-manager/protocol/pure/v1/V1_CubeRelationTypeAdapter.d.ts.map +1 -0
  208. package/lib/graph-manager/protocol/pure/v1/V1_CubeRelationTypeAdapter.js +43 -0
  209. package/lib/graph-manager/protocol/pure/v1/V1_CubeRelationTypeAdapter.js.map +1 -0
  210. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +45 -0
  211. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -0
  212. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +171 -0
  213. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -0
  214. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +22 -0
  215. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -0
  216. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +79 -0
  217. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -0
  218. package/lib/index.css +17 -0
  219. package/lib/index.css.map +1 -0
  220. package/lib/index.d.ts +25 -0
  221. package/lib/index.d.ts.map +1 -0
  222. package/lib/index.js +24 -0
  223. package/lib/index.js.map +1 -0
  224. package/lib/stores/CubeEditorState.d.ts +236 -0
  225. package/lib/stores/CubeEditorState.d.ts.map +1 -0
  226. package/lib/stores/CubeEditorState.js +632 -0
  227. package/lib/stores/CubeEditorState.js.map +1 -0
  228. package/lib/stores/CubeExecutionState.d.ts +67 -0
  229. package/lib/stores/CubeExecutionState.d.ts.map +1 -0
  230. package/lib/stores/CubeExecutionState.js +212 -0
  231. package/lib/stores/CubeExecutionState.js.map +1 -0
  232. package/lib/stores/CubeGridQuickActions.d.ts +40 -0
  233. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
  234. package/lib/stores/CubeGridQuickActions.js +86 -0
  235. package/lib/stores/CubeGridQuickActions.js.map +1 -0
  236. package/lib/stores/CubeHost.d.ts +31 -0
  237. package/lib/stores/CubeHost.d.ts.map +1 -0
  238. package/lib/stores/CubeHost.js +17 -0
  239. package/lib/stores/CubeHost.js.map +1 -0
  240. package/lib/stores/CubeNodeEditorState.d.ts +103 -0
  241. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -0
  242. package/lib/stores/CubeNodeEditorState.js +262 -0
  243. package/lib/stores/CubeNodeEditorState.js.map +1 -0
  244. package/lib/stores/CubeShowPureState.d.ts +41 -0
  245. package/lib/stores/CubeShowPureState.d.ts.map +1 -0
  246. package/lib/stores/CubeShowPureState.js +100 -0
  247. package/lib/stores/CubeShowPureState.js.map +1 -0
  248. package/lib/stores/CubeSourcePickerState.d.ts +98 -0
  249. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -0
  250. package/lib/stores/CubeSourcePickerState.js +334 -0
  251. package/lib/stores/CubeSourcePickerState.js.map +1 -0
  252. package/lib/stores/CubeSpecTransferState.d.ts +60 -0
  253. package/lib/stores/CubeSpecTransferState.d.ts.map +1 -0
  254. package/lib/stores/CubeSpecTransferState.js +167 -0
  255. package/lib/stores/CubeSpecTransferState.js.map +1 -0
  256. package/lib/stores/LocalModelCatalog.d.ts +37 -0
  257. package/lib/stores/LocalModelCatalog.d.ts.map +1 -0
  258. package/lib/stores/LocalModelCatalog.js +49 -0
  259. package/lib/stores/LocalModelCatalog.js.map +1 -0
  260. package/lib/stores/editors/CubeFilterDraft.d.ts +61 -0
  261. package/lib/stores/editors/CubeFilterDraft.d.ts.map +1 -0
  262. package/lib/stores/editors/CubeFilterDraft.js +186 -0
  263. package/lib/stores/editors/CubeFilterDraft.js.map +1 -0
  264. package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
  265. package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
  266. package/lib/stores/editors/CubeIntegerText.js +33 -0
  267. package/lib/stores/editors/CubeIntegerText.js.map +1 -0
  268. package/lib/stores/editors/CubeJoinDraft.d.ts +71 -0
  269. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -0
  270. package/lib/stores/editors/CubeJoinDraft.js +145 -0
  271. package/lib/stores/editors/CubeJoinDraft.js.map +1 -0
  272. package/lib/stores/editors/CubeNodeDraft.d.ts +38 -0
  273. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -0
  274. package/lib/stores/editors/CubeNodeDraft.js +35 -0
  275. package/lib/stores/editors/CubeNodeDraft.js.map +1 -0
  276. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +35 -0
  277. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -0
  278. package/lib/stores/editors/CubeNodeDraftRegistry.js +55 -0
  279. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -0
  280. package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
  281. package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
  282. package/lib/stores/editors/CubeRenameDraft.js +79 -0
  283. package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
  284. package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
  285. package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
  286. package/lib/stores/editors/CubeRestrictDraft.js +73 -0
  287. package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
  288. package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
  289. package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
  290. package/lib/stores/editors/CubeRowCountDraft.js +55 -0
  291. package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
  292. package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
  293. package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
  294. package/lib/stores/editors/CubeSliceDraft.js +72 -0
  295. package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
  296. package/lib/stores/editors/CubeSortDraft.d.ts +49 -0
  297. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
  298. package/lib/stores/editors/CubeSortDraft.js +99 -0
  299. package/lib/stores/editors/CubeSortDraft.js.map +1 -0
  300. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +23 -0
  301. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -0
  302. package/lib/stores/fixtures/CubeNorthwindModel.js +338 -0
  303. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -0
  304. package/package.json +81 -3
  305. package/src/__lib__/LegendCubeCommand.ts +44 -0
  306. package/src/__lib__/LegendCubeHelpText.ts +58 -0
  307. package/src/__lib__/LegendCubeLabels.ts +171 -0
  308. package/src/__lib__/LegendCubeTesting.ts +33 -0
  309. package/src/__test-utils__/CubeCanvasTestUtils.ts +53 -0
  310. package/src/__test-utils__/CubeEngineTestSupport.ts +172 -0
  311. package/src/__test-utils__/CubeNorthwindTestQueries.ts +165 -0
  312. package/src/__test-utils__/CubeOperationsTestUtils.ts +177 -0
  313. package/src/__test-utils__/CubePageTestUtils.tsx +96 -0
  314. package/src/__test-utils__/CubeTestApplication.ts +82 -0
  315. package/src/__test-utils__/FakeCubeEngine.ts +145 -0
  316. package/src/components/CubeButton.tsx +35 -0
  317. package/src/components/CubeEditor.tsx +239 -0
  318. package/src/components/CubeNodeIcon.tsx +64 -0
  319. package/src/components/canvas/CubeCanvas.tsx +262 -0
  320. package/src/components/canvas/CubeCanvasContext.ts +31 -0
  321. package/src/components/canvas/CubeCanvasContextMenu.tsx +89 -0
  322. package/src/components/canvas/CubeCanvasDnd.ts +82 -0
  323. package/src/components/canvas/CubeCanvasEdge.tsx +57 -0
  324. package/src/components/canvas/CubeCanvasElements.ts +153 -0
  325. package/src/components/canvas/CubeCanvasLayout.ts +88 -0
  326. package/src/components/canvas/CubeCanvasNode.tsx +149 -0
  327. package/src/components/editors/CubeColumnPicker.tsx +138 -0
  328. package/src/components/editors/CubeDistinctEditor.tsx +28 -0
  329. package/src/components/editors/CubeFilterEditor.tsx +309 -0
  330. package/src/components/editors/CubeIntegerField.tsx +51 -0
  331. package/src/components/editors/CubeJoinEditor.tsx +247 -0
  332. package/src/components/editors/CubeNodeEditorPanel.tsx +215 -0
  333. package/src/components/editors/CubeNodeEditorRegistry.ts +81 -0
  334. package/src/components/editors/CubeRenameEditor.tsx +143 -0
  335. package/src/components/editors/CubeRestrictEditor.tsx +103 -0
  336. package/src/components/editors/CubeRowCountEditor.tsx +53 -0
  337. package/src/components/editors/CubeSliceEditor.tsx +69 -0
  338. package/src/components/editors/CubeSortEditor.tsx +206 -0
  339. package/src/components/editors/CubeSourceEditor.tsx +106 -0
  340. package/src/components/editors/CubeValueEditor.tsx +333 -0
  341. package/src/components/grid/CubeGridRegion.tsx +275 -0
  342. package/src/components/grid/CubeGridValues.ts +125 -0
  343. package/src/components/grid/CubeResultGrid.tsx +138 -0
  344. package/src/components/palette/CubePalette.tsx +177 -0
  345. package/src/components/show-pure/CubeShowPureDialog.tsx +101 -0
  346. package/src/components/source-picker/CubeSourcePicker.tsx +304 -0
  347. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +157 -0
  348. package/src/graph-manager/CubeEngine.ts +169 -0
  349. package/src/graph-manager/CubeModelOutlineHelper.ts +58 -0
  350. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +34 -0
  351. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +109 -0
  352. package/src/graph-manager/protocol/pure/v1/V1_CubeExecutionResultReader.ts +115 -0
  353. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +257 -0
  354. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +243 -0
  355. package/src/graph-manager/protocol/pure/v1/V1_CubeRelationTypeAdapter.ts +58 -0
  356. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +278 -0
  357. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +127 -0
  358. package/src/index.ts +41 -0
  359. package/src/stores/CubeEditorState.ts +807 -0
  360. package/src/stores/CubeExecutionState.ts +288 -0
  361. package/src/stores/CubeGridQuickActions.ts +129 -0
  362. package/src/stores/CubeHost.ts +32 -0
  363. package/src/stores/CubeNodeEditorState.ts +324 -0
  364. package/src/stores/CubeShowPureState.ts +118 -0
  365. package/src/stores/CubeSourcePickerState.ts +426 -0
  366. package/src/stores/CubeSpecTransferState.ts +198 -0
  367. package/src/stores/LocalModelCatalog.ts +70 -0
  368. package/src/stores/editors/CubeFilterDraft.ts +241 -0
  369. package/src/stores/editors/CubeIntegerText.ts +34 -0
  370. package/src/stores/editors/CubeJoinDraft.ts +224 -0
  371. package/src/stores/editors/CubeNodeDraft.ts +46 -0
  372. package/src/stores/editors/CubeNodeDraftRegistry.ts +83 -0
  373. package/src/stores/editors/CubeRenameDraft.ts +110 -0
  374. package/src/stores/editors/CubeRestrictDraft.ts +83 -0
  375. package/src/stores/editors/CubeRowCountDraft.ts +69 -0
  376. package/src/stores/editors/CubeSliceDraft.ts +87 -0
  377. package/src/stores/editors/CubeSortDraft.ts +135 -0
  378. package/src/stores/fixtures/CubeNorthwindModel.ts +355 -0
  379. package/tsconfig.json +133 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ColumnComparisonFilter, CompositeFilter, CompositeFilterOperator, Connection, Filter, FilterOperator, Join, JoinType, PrimitiveType, Query, RelationalTableSource, Schema, SchemaColumn, } from '@finos/legend-cube';
17
+ // Cube queries over Northwind, typed as the engine types the Cube fixture
18
+ // (PLAN §8.5), for the serializer's and the engine's tests
19
+ export const NORTHWIND_DATABASE = 'showcase::northwind::store::NorthwindDatabase';
20
+ export const NORTHWIND_RUNTIME = 'showcase::northwind::mapping::StoreRuntime';
21
+ const P = 'meta::pure::precisePrimitives::';
22
+ const column = (name, path, nullable = true, params = []) => new SchemaColumn(name, PrimitiveType.get(path, params), nullable);
23
+ const varchar = (name, length, nullable = true) => column(name, `${P}Varchar`, nullable, [length]);
24
+ const smallInt = (name, nullable = true) => column(name, `${P}SmallInt`, nullable);
25
+ const date = (name) => column(name, 'StrictDate');
26
+ export const ORDERS_COLUMNS = [
27
+ smallInt('ORDER_ID', false),
28
+ varchar('CUSTOMER_ID', 5),
29
+ smallInt('EMPLOYEE_ID'),
30
+ date('ORDER_DATE'),
31
+ date('REQUIRED_DATE'),
32
+ date('SHIPPED_DATE'),
33
+ smallInt('SHIP_VIA'),
34
+ column('FREIGHT', `${P}Double`),
35
+ varchar('SHIP_NAME', 40),
36
+ varchar('SHIP_ADDRESS', 60),
37
+ varchar('SHIP_CITY', 15),
38
+ varchar('SHIP_REGION', 15),
39
+ varchar('SHIP_POSTAL_CODE', 10),
40
+ varchar('SHIP_COUNTRY', 15),
41
+ ];
42
+ export const CUSTOMERS_COLUMNS = [
43
+ varchar('CUSTOMER_ID', 5, false),
44
+ varchar('COMPANY_NAME', 40, false),
45
+ varchar('CONTACT_NAME', 30),
46
+ varchar('CONTACT_TITLE', 30),
47
+ varchar('ADDRESS', 60),
48
+ varchar('CITY', 15),
49
+ varchar('REGION', 15),
50
+ varchar('POSTAL_CODE', 10),
51
+ varchar('COUNTRY', 15),
52
+ varchar('PHONE', 24),
53
+ varchar('FAX', 24),
54
+ ];
55
+ export const northwindTable = (id, name, columns) => new RelationalTableSource(id, { database: NORTHWIND_DATABASE, schema: 'NORTHWIND', table: name }, { kind: 'resolved', schema: new Schema(columns) });
56
+ /** France since 1997, by employees 1 and 4 (PLAN §8.5) */
57
+ export const SLICE_FILTER = new CompositeFilter(CompositeFilterOperator.AND, [
58
+ new ColumnComparisonFilter('SHIP_COUNTRY', FilterOperator.EQUAL, {
59
+ kind: 'string',
60
+ value: 'France',
61
+ }),
62
+ new ColumnComparisonFilter('ORDER_DATE', FilterOperator.GREATER_THAN_OR_EQUAL, { kind: 'strictDate', value: '1997-01-01' }),
63
+ new ColumnComparisonFilter('EMPLOYEE_ID', FilterOperator.IN, [
64
+ { kind: 'integer', value: '1' },
65
+ { kind: 'integer', value: '4' },
66
+ ]),
67
+ ]);
68
+ /** The slice (PLAN §8.5): ORDERS ⋈ CUSTOMERS on CUSTOMER_ID, then the filter, captured at the filter */
69
+ export const sliceQuery = (filter = SLICE_FILTER, joinType = JoinType.INNER) => new Query([
70
+ northwindTable('relational101', 'ORDERS', ORDERS_COLUMNS),
71
+ northwindTable('relational102', 'CUSTOMERS', CUSTOMERS_COLUMNS),
72
+ new Join('join101', {
73
+ leftColumns: ['CUSTOMER_ID'],
74
+ rightColumns: ['CUSTOMER_ID'],
75
+ joinType,
76
+ }),
77
+ new Filter('filter101', filter),
78
+ ], [
79
+ new Connection('relational101', 'join101', 'leftTds'),
80
+ new Connection('relational102', 'join101', 'rightTds'),
81
+ new Connection('join101', 'filter101', 'tds'),
82
+ ], 'filter101');
83
+ /**
84
+ * ORDERS ⟗ a CUSTOMERS-like table on CUSTOMER_ID, nullable on both sides with
85
+ * different lengths (so `toOne()`, a merge and a cast), captured at the join
86
+ */
87
+ export const fullJoinQuery = () => new Query([
88
+ northwindTable('relational101', 'ORDERS', ORDERS_COLUMNS),
89
+ northwindTable('relational102', 'CUSTOMERS', [
90
+ varchar('CUSTOMER_ID', 40),
91
+ varchar('COMPANY_NAME', 40),
92
+ ]),
93
+ new Join('join101', {
94
+ leftColumns: ['CUSTOMER_ID'],
95
+ rightColumns: ['CUSTOMER_ID'],
96
+ joinType: JoinType.FULL_OUTER,
97
+ }),
98
+ ], [
99
+ new Connection('relational101', 'join101', 'leftTds'),
100
+ new Connection('relational102', 'join101', 'rightTds'),
101
+ ], 'join101');
102
+ //# sourceMappingURL=CubeNorthwindTestQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeNorthwindTestQueries.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeNorthwindTestQueries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Query, type QueryNode, RelationalTableSource, Schema } from '@finos/legend-cube';
17
+ import type { CubeEngine, CubeResult, CubeResultValue } from '../graph-manager/CubeEngine.js';
18
+ /** A table of the Cube Northwind model, not resolved yet */
19
+ export declare const TEST__northwindTable: (id: string, table: string, schema?: string) => RelationalTableSource;
20
+ /** The sources, resolved through the engine as the editor resolves them */
21
+ export declare const TEST__resolveSources: (engine: CubeEngine, sources: readonly RelationalTableSource[]) => Promise<RelationalTableSource[]>;
22
+ /** A chain of nodes, each feeding the next on its first port, captured at the last */
23
+ export declare const TEST__chainOf: (nodes: readonly QueryNode[]) => Query;
24
+ /** Every node of the query is valid */
25
+ export declare const TEST__expectValidQuery: (query: Query) => void;
26
+ /**
27
+ * Runs the query up to its capture node, with this row limit; with a database
28
+ * type, written as for that database (on the fixture's H2 all the same, so a
29
+ * workaround's rows can be checked)
30
+ */
31
+ export declare const TEST__runQuery: (engine: CubeEngine, query: Query, rowLimit: number, databaseType?: string) => Promise<CubeResult>;
32
+ /** The values of one column of a result */
33
+ export declare const TEST__columnValues: (result: CubeResult, column: string) => CubeResultValue[];
34
+ /** The schema Cube infers for a node of the query, its capture node by default */
35
+ export declare const TEST__inferredSchema: (query: Query, nodeId?: string) => Schema;
36
+ /**
37
+ * The engine types the node as Cube infers it: the same names, in the same
38
+ * order, of the same types and parameters. Cube's nullability may only be
39
+ * wider, since the engine misreports it after outer joins (PLAN §4.7).
40
+ */
41
+ export declare const TEST__expectEngineTyping: (engine: CubeEngine, query: Query, nodeId?: string) => Promise<void>;
42
+ //# sourceMappingURL=CubeOperationsTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeOperationsTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAIL,KAAK,EACL,KAAK,SAAS,EAEd,qBAAqB,EACrB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAUxC,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,OAAO,MAAM,EACb,eAAoB,KACnB,qBAKC,CAAC;AAEL,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,UAAU,EAClB,SAAS,SAAS,qBAAqB,EAAE,KACxC,OAAO,CAAC,qBAAqB,EAAE,CAiBjC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,KAczD,CAAC;AAEJ,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,GAAI,OAAO,KAAK,KAAG,IAMrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,UAAU,MAAM,EAChB,eAAe,MAAM,KACpB,OAAO,CAAC,UAAU,CAUpB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,EAClB,QAAQ,MAAM,KACb,eAAe,EAIjB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,EACZ,eAA6B,KAC5B,MAOF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,eAA6B,KAC5B,OAAO,CAAC,IAAI,CAoBd,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { expect } from '@jest/globals';
17
+ import { buildSchemasAndValidity, Connection, createNodeRegistry, Query, QueryEmitter, RelationalTableSource, Schema, } from '@finos/legend-cube';
18
+ import { CUBE_NORTHWIND_DATABASE, CUBE_NORTHWIND_MODEL, CUBE_NORTHWIND_RUNTIME, } from '../stores/fixtures/CubeNorthwindModel.js';
19
+ // Helpers for engine tests of operations on the Cube Northwind fixture,
20
+ // through the engine port only (no V1 classes), so any CubeEngine works
21
+ /** A table of the Cube Northwind model, not resolved yet */
22
+ export const TEST__northwindTable = (id, table, schema = 'NORTHWIND') => new RelationalTableSource(id, {
23
+ database: CUBE_NORTHWIND_DATABASE,
24
+ schema,
25
+ table,
26
+ });
27
+ /** The sources, resolved through the engine as the editor resolves them */
28
+ export const TEST__resolveSources = async (engine, sources) => {
29
+ const typed = await engine.resolveSchemas(CUBE_NORTHWIND_MODEL, new Map(sources.map((source) => [
30
+ source.id,
31
+ [source.database, source.schema, source.table],
32
+ ])));
33
+ return sources.map((source) => {
34
+ const schema = typed.get(source.id);
35
+ if (!(schema instanceof Schema)) {
36
+ throw schema ?? new Error(`No schema for ${source.id}`);
37
+ }
38
+ return source.withResolution({ kind: 'resolved', schema });
39
+ });
40
+ };
41
+ /** A chain of nodes, each feeding the next on its first port, captured at the last */
42
+ export const TEST__chainOf = (nodes) => new Query(nodes, nodes
43
+ .slice(1)
44
+ .map((node, index) => new Connection(nodes[index].id, node.id, node.ports[0])), nodes.at(-1)?.id);
45
+ /** Every node of the query is valid */
46
+ export const TEST__expectValidQuery = (query) => {
47
+ const { validity } = buildSchemasAndValidity(query, createNodeRegistry().queryRules);
48
+ expect([...validity].filter(([, errors]) => errors.length)).toEqual([]);
49
+ };
50
+ /**
51
+ * Runs the query up to its capture node, with this row limit; with a database
52
+ * type, written as for that database (on the fixture's H2 all the same, so a
53
+ * workaround's rows can be checked)
54
+ */
55
+ export const TEST__runQuery = async (engine, query, rowLimit, databaseType) => {
56
+ TEST__expectValidQuery(query);
57
+ return engine.execute(CUBE_NORTHWIND_MODEL, new QueryEmitter(query).emitExecutionLambda({
58
+ rowLimit,
59
+ runtime: CUBE_NORTHWIND_RUNTIME,
60
+ databaseType,
61
+ }));
62
+ };
63
+ /** The values of one column of a result */
64
+ export const TEST__columnValues = (result, column) => {
65
+ const index = result.columns.indexOf(column);
66
+ expect(index).toBeGreaterThanOrEqual(0);
67
+ return result.rows.map((row) => row[index] ?? null);
68
+ };
69
+ /** The schema Cube infers for a node of the query, its capture node by default */
70
+ export const TEST__inferredSchema = (query, nodeId = query.selected ?? '') => {
71
+ const schema = buildSchemasAndValidity(query, createNodeRegistry().queryRules).schemas.get(nodeId);
72
+ expect(schema).toBeDefined();
73
+ return schema;
74
+ };
75
+ /**
76
+ * The engine types the node as Cube infers it: the same names, in the same
77
+ * order, of the same types and parameters. Cube's nullability may only be
78
+ * wider, since the engine misreports it after outer joins (PLAN §4.7).
79
+ */
80
+ export const TEST__expectEngineTyping = async (engine, query, nodeId = query.selected ?? '') => {
81
+ const cube = TEST__inferredSchema(query, nodeId);
82
+ const typed = (await engine.typeLambdas(CUBE_NORTHWIND_MODEL, new Map([[nodeId, new QueryEmitter(query).emitTypingLambda(nodeId)]]))).get(nodeId);
83
+ expect(typed).toBeInstanceOf(Schema);
84
+ const engineSchema = typed;
85
+ expect(cube.columns.map((column) => [column.name, column.type.fullName])).toEqual(engineSchema.columns.map((column) => [column.name, column.type.fullName]));
86
+ cube.columns.forEach((column, index) => {
87
+ if (engineSchema.columns[index]?.nullable) {
88
+ expect([column.name, column.nullable]).toEqual([column.name, true]);
89
+ }
90
+ });
91
+ };
92
+ //# sourceMappingURL=CubeOperationsTestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeOperationsTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { type GenericLegendApplicationStore } from '@finos/legend-application';
17
+ import type { CubeDocument } from '@finos/legend-cube';
18
+ import { type RenderResult } from '@testing-library/react';
19
+ import type { CubeEditorState } from '../stores/CubeEditorState.js';
20
+ /** Lets the canvas mount under jsdom; call before rendering it */
21
+ export declare const TEST__installCanvasDomStubs: () => void;
22
+ /**
23
+ * Renders an element inside a Legend application, as a host would, and waits
24
+ * for the element with the given test id: the framework renders nothing until
25
+ * the application store has initialized
26
+ */
27
+ export declare const TEST__renderInCubeApplication: (element: React.ReactNode, applicationStore: GenericLegendApplicationStore, readyTestId: string) => Promise<RenderResult>;
28
+ /**
29
+ * Imports a cube into a rendered page, as Import does, and waits for its
30
+ * tables to be typed again, so nothing changes after the test has ended
31
+ */
32
+ export declare const TEST__importDocument: (editorState: CubeEditorState, document: CubeDocument, readOnly?: boolean) => Promise<void>;
33
+ //# sourceMappingURL=CubePageTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubePageTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAkBpE,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,QAAO,IAQ9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,KAAK,CAAC,SAAS,EACxB,kBAAkB,6BAA6B,EAC/C,aAAa,MAAM,KAClB,OAAO,CAAC,YAAY,CAWtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,eAAe,EAC5B,UAAU,YAAY,EACtB,kBAAgB,KACf,OAAO,CAAC,IAAI,CAOd,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ApplicationFrameworkProvider, ApplicationStoreProvider, } from '@finos/legend-application';
18
+ import { TEST__BrowserEnvironmentProvider } from '@finos/legend-application/test';
19
+ import { act, render, waitFor, } from '@testing-library/react';
20
+ /** React Flow watches the canvas with an IntersectionObserver, which jsdom lacks */
21
+ class TEST__IntersectionObserver {
22
+ observe() {
23
+ // nothing is ever in view under jsdom
24
+ }
25
+ unobserve() {
26
+ // nothing to stop watching
27
+ }
28
+ disconnect() {
29
+ // nothing to stop watching
30
+ }
31
+ takeRecords() {
32
+ return [];
33
+ }
34
+ }
35
+ /** Lets the canvas mount under jsdom; call before rendering it */
36
+ export const TEST__installCanvasDomStubs = () => {
37
+ if (!('IntersectionObserver' in window)) {
38
+ Object.defineProperty(window, 'IntersectionObserver', {
39
+ configurable: true,
40
+ writable: true,
41
+ value: TEST__IntersectionObserver,
42
+ });
43
+ }
44
+ };
45
+ /**
46
+ * Renders an element inside a Legend application, as a host would, and waits
47
+ * for the element with the given test id: the framework renders nothing until
48
+ * the application store has initialized
49
+ */
50
+ export const TEST__renderInCubeApplication = async (element, applicationStore, readyTestId) => {
51
+ TEST__installCanvasDomStubs();
52
+ const renderResult = render(_jsx(ApplicationStoreProvider, { store: applicationStore, children: _jsx(TEST__BrowserEnvironmentProvider, { initialEntries: ['/'], children: _jsx(ApplicationFrameworkProvider, { children: element }) }) }));
53
+ await waitFor(() => renderResult.getByTestId(readyTestId));
54
+ return renderResult;
55
+ };
56
+ /**
57
+ * Imports a cube into a rendered page, as Import does, and waits for its
58
+ * tables to be typed again, so nothing changes after the test has ended
59
+ */
60
+ export const TEST__importDocument = async (editorState, document, readOnly = false) => {
61
+ act(() => editorState.importDocument(document, readOnly));
62
+ await waitFor(() => {
63
+ if (editorState.isResolvingSources) {
64
+ throw new Error('The imported tables are still being typed');
65
+ }
66
+ });
67
+ };
68
+ //# sourceMappingURL=CubePageTestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubePageTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EACL,GAAG,EAEH,MAAM,EACN,OAAO,GACR,MAAM,wBAAwB,CAAC;AAGhC,oFAAoF;AACpF,MAAM,0BAA0B;IAC9B,OAAO;QACL,sCAAsC;IACxC,CAAC;IACD,SAAS;QACP,2BAA2B;IAC7B,CAAC;IACD,UAAU;QACR,2BAA2B;IAC7B,CAAC;IACD,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,IAAI,CAAC,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE;YACpD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAwB,EACxB,gBAA+C,EAC/C,WAAmB,EACI,EAAE;IACzB,2BAA2B,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CACzB,KAAC,wBAAwB,IAAC,KAAK,EAAE,gBAAgB,YAC/C,KAAC,gCAAgC,IAAC,cAAc,EAAE,CAAC,GAAG,CAAC,YACrD,KAAC,4BAA4B,cAAE,OAAO,GAAgC,GACrC,GACV,CAC5B,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAA4B,EAC5B,QAAsB,EACtB,QAAQ,GAAG,KAAK,EACD,EAAE;IACjB,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,GAAG,EAAE;QACjB,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { type GenericLegendApplicationStore, type LegendApplicationPlugin, LegendApplicationPluginManager } from '@finos/legend-application';
17
+ import type { CubeHost } from '../stores/CubeHost.js';
18
+ import { type FakeCubeEngine, type FakeCubeEngineAnswers } from './FakeCubeEngine.js';
19
+ export declare class TEST__LegendCubePluginManager extends LegendApplicationPluginManager<LegendApplicationPlugin> {
20
+ private constructor();
21
+ static create(): TEST__LegendCubePluginManager;
22
+ }
23
+ /** A fresh application store: build one per test, since it initializes once */
24
+ export declare const TEST__createCubeApplicationStore: (plugins?: LegendApplicationPlugin[]) => GenericLegendApplicationStore;
25
+ /** A host over a fake engine, with the bundled models */
26
+ export declare const TEST__createCubeHost: (answers?: FakeCubeEngineAnswers, applicationStore?: GenericLegendApplicationStore) => {
27
+ host: CubeHost;
28
+ fake: FakeCubeEngine;
29
+ };
30
+ //# sourceMappingURL=CubeTestApplication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeTestApplication.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAC5B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,6BAA8B,SAAQ,8BAA8B,CAAC,uBAAuB,CAAC;IACxG,OAAO;IAIP,MAAM,CAAC,MAAM,IAAI,6BAA6B;CAG/C;AAQD,+EAA+E;AAC/E,eAAO,MAAM,gCAAgC,GAC3C,UAAS,uBAAuB,EAAO,KACtC,6BAWF,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,qBAAqB,EAC/B,gDAAqD,KACpD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAUxC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ApplicationStore, LegendApplicationConfig, LegendApplicationPluginManager, } from '@finos/legend-application';
17
+ import { TEST__getApplicationVersionData } from '@finos/legend-application/test';
18
+ import { LocalModelCatalog } from '../stores/LocalModelCatalog.js';
19
+ import { createFakeCubeEngine, } from './FakeCubeEngine.js';
20
+ // A bare Legend application for Cube's jsdom tests, as the data-space viewer's
21
+ // tests build theirs: the builder may not use the query builder's test helpers
22
+ export class TEST__LegendCubePluginManager extends LegendApplicationPluginManager {
23
+ constructor() {
24
+ super();
25
+ }
26
+ static create() {
27
+ return new TEST__LegendCubePluginManager();
28
+ }
29
+ }
30
+ class TEST__LegendCubeApplicationConfig extends LegendApplicationConfig {
31
+ getDefaultApplicationStorageKey() {
32
+ return 'test';
33
+ }
34
+ }
35
+ /** A fresh application store: build one per test, since it initializes once */
36
+ export const TEST__createCubeApplicationStore = (plugins = []) => {
37
+ const pluginManager = TEST__LegendCubePluginManager.create();
38
+ pluginManager.usePlugins(plugins).install();
39
+ return new ApplicationStore(new TEST__LegendCubeApplicationConfig({
40
+ configData: { env: 'TEST', appName: 'TEST' },
41
+ versionData: TEST__getApplicationVersionData(),
42
+ baseAddress: '/',
43
+ }), pluginManager);
44
+ };
45
+ /** A host over a fake engine, with the bundled models */
46
+ export const TEST__createCubeHost = (answers, applicationStore = TEST__createCubeApplicationStore()) => {
47
+ const fake = createFakeCubeEngine(answers);
48
+ return {
49
+ host: {
50
+ applicationStore,
51
+ engine: fake.engine,
52
+ modelCatalog: new LocalModelCatalog(fake.engine),
53
+ },
54
+ fake,
55
+ };
56
+ };
57
+ //# sourceMappingURL=CubeTestApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeTestApplication.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAM,OAAO,6BAA8B,SAAQ,8BAAuD;IACxG;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,iCAAkC,SAAQ,uBAAuB;IAC5D,+BAA+B;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAqC,EAAE,EACR,EAAE;IACjC,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,IAAI,gBAAgB,CACzB,IAAI,iCAAiC,CAAC;QACpC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5C,WAAW,EAAE,+BAA+B,EAAE;QAC9C,WAAW,EAAE,GAAG;KACjB,CAAC,EACF,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA+B,EAC/B,gBAAgB,GAAG,gCAAgC,EAAE,EACX,EAAE;IAC5C,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;SACjD;QACD,IAAI;KACL,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { jest } from '@jest/globals';
17
+ import { Schema } from '@finos/legend-cube';
18
+ import { type CubeEngine, type CubeModelOutline, type CubeResult } from '../graph-manager/CubeEngine.js';
19
+ /** Northwind as the fake knows it: two tables, one runtime keyed by the database */
20
+ export declare const FAKE_NORTHWIND_OUTLINE: CubeModelOutline;
21
+ /** The schemas the fake gives, keyed by `<schema>.<table>` as the outline names them */
22
+ export declare const FAKE_NORTHWIND_SCHEMAS: ReadonlyMap<string, Schema>;
23
+ export declare const EMPTY_CUBE_RESULT: CubeResult;
24
+ export interface FakeCubeEngineAnswers {
25
+ readonly outline?: CubeModelOutline;
26
+ /** keyed by `<schema>.<table>`; a table not in it gets a compile error */
27
+ readonly schemas?: ReadonlyMap<string, Schema>;
28
+ readonly result?: CubeResult;
29
+ readonly pure?: string;
30
+ }
31
+ export interface FakeCubeEngine {
32
+ readonly engine: CubeEngine;
33
+ readonly loadModel: jest.Mock<CubeEngine['loadModel']>;
34
+ readonly resolveSchemas: jest.Mock<CubeEngine['resolveSchemas']>;
35
+ readonly typeLambdas: jest.Mock<CubeEngine['typeLambdas']>;
36
+ readonly execute: jest.Mock<CubeEngine['execute']>;
37
+ readonly renderPure: jest.Mock<CubeEngine['renderPure']>;
38
+ }
39
+ /** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
40
+ export declare const createFakeCubeEngine: (answers?: FakeCubeEngineAnswers) => FakeCubeEngine;
41
+ //# sourceMappingURL=FakeCubeEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeCubeEngine.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,gCAAgC,CAAC;AAYxC,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,EAAE,gBAkCpC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,UAK/B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,GAC/B,UAAS,qBAA0B,KAClC,cAsCF,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { jest } from '@jest/globals';
17
+ import { Schema } from '@finos/legend-cube';
18
+ import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
19
+ import { CUSTOMERS_COLUMNS, NORTHWIND_DATABASE, NORTHWIND_RUNTIME, ORDERS_COLUMNS, } from './CubeNorthwindTestQueries.js';
20
+ // A CubeEngine for jsdom tests (PLAN §11.1 M1.8a): canned answers, no network.
21
+ // Each method is a jest.fn, kept in its own variable so tests can read its
22
+ // calls or change its answer.
23
+ /** Northwind as the fake knows it: two tables, one runtime keyed by the database */
24
+ export const FAKE_NORTHWIND_OUTLINE = {
25
+ databases: [
26
+ {
27
+ path: NORTHWIND_DATABASE,
28
+ schemas: [
29
+ {
30
+ name: 'NORTHWIND',
31
+ tables: [
32
+ {
33
+ name: 'ORDERS',
34
+ isView: false,
35
+ columnCount: ORDERS_COLUMNS.length,
36
+ flags: [],
37
+ untypedColumns: [],
38
+ },
39
+ {
40
+ name: 'CUSTOMERS',
41
+ isView: false,
42
+ columnCount: CUSTOMERS_COLUMNS.length,
43
+ flags: [],
44
+ untypedColumns: [],
45
+ },
46
+ ],
47
+ },
48
+ ],
49
+ },
50
+ ],
51
+ runtimes: [
52
+ {
53
+ path: NORTHWIND_RUNTIME,
54
+ storePaths: [NORTHWIND_DATABASE],
55
+ connections: [{ storePath: NORTHWIND_DATABASE, databaseType: 'H2' }],
56
+ },
57
+ ],
58
+ };
59
+ /** The schemas the fake gives, keyed by `<schema>.<table>` as the outline names them */
60
+ export const FAKE_NORTHWIND_SCHEMAS = new Map([
61
+ ['NORTHWIND.ORDERS', new Schema(ORDERS_COLUMNS)],
62
+ ['NORTHWIND.CUSTOMERS', new Schema(CUSTOMERS_COLUMNS)],
63
+ ]);
64
+ export const EMPTY_CUBE_RESULT = {
65
+ columns: [],
66
+ rows: [],
67
+ sql: [],
68
+ durationMs: 0,
69
+ };
70
+ /** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
71
+ export const createFakeCubeEngine = (answers = {}) => {
72
+ const schemas = answers.schemas ?? FAKE_NORTHWIND_SCHEMAS;
73
+ const loadModel = jest.fn(async () => Promise.resolve(answers.outline ?? FAKE_NORTHWIND_OUTLINE));
74
+ const resolveSchemas = jest.fn(async (_model, accessors) => Promise.resolve(new Map([...accessors].map(([nodeId, [, schema, table]]) => [
75
+ nodeId,
76
+ schemas.get(`${schema}.${table}`) ??
77
+ new CubeEngineError(CubeEngineErrorKind.COMPILE, `The table "${schema}.${table}" can't be found`, nodeId),
78
+ ]))));
79
+ const typeLambdas = jest.fn(async () => Promise.resolve(new Map()));
80
+ const execute = jest.fn(async () => Promise.resolve(answers.result ?? EMPTY_CUBE_RESULT));
81
+ const renderPure = jest.fn(async () => Promise.resolve(answers.pure ?? ''));
82
+ return {
83
+ engine: { loadModel, resolveSchemas, typeLambdas, execute, renderPure },
84
+ loadModel,
85
+ resolveSchemas,
86
+ typeLambdas,
87
+ execute,
88
+ renderPure,
89
+ };
90
+ };
91
+ //# sourceMappingURL=FakeCubeEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeCubeEngine.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /** A small text button in the page's toolbars and lists, coloured by the theme's tokens */
17
+ export declare const CubeButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement> & {
18
+ primary?: boolean;
19
+ }>;
20
+ //# sourceMappingURL=CubeButton.d.ts.map