@finos/legend-cube-builder 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -1
- package/docs/adding-an-operation.md +181 -0
- package/docs/hosting.md +157 -0
- package/docs/testing.md +188 -0
- package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
- package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeCommand.js +5 -0
- package/lib/__lib__/LegendCubeCommand.js.map +1 -1
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeHelpText.js +21 -3
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
- package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
- package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeLabels.d.ts +95 -3
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +121 -4
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
- package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
- package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +1 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts +18 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +51 -0
- package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +67 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubePageTestUtils.js +25 -1
- package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.js +9 -1
- package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.js +21 -2
- package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
- package/lib/components/CubeAddItems.d.ts +35 -0
- package/lib/components/CubeAddItems.d.ts.map +1 -0
- package/lib/components/CubeAddItems.js +82 -0
- package/lib/components/CubeAddItems.js.map +1 -0
- package/lib/components/CubeEditor.d.ts +5 -1
- package/lib/components/CubeEditor.d.ts.map +1 -1
- package/lib/components/CubeEditor.js +33 -13
- package/lib/components/CubeEditor.js.map +1 -1
- package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
- package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
- package/lib/components/CubeEntrySourceBanner.js +32 -0
- package/lib/components/CubeEntrySourceBanner.js.map +1 -0
- package/lib/components/CubeNodeIcon.d.ts.map +1 -1
- package/lib/components/CubeNodeIcon.js +19 -2
- package/lib/components/CubeNodeIcon.js.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
- package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
- package/lib/components/CubeSchemaColumnsTable.js +6 -0
- package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
- package/lib/components/canvas/CubeCanvas.d.ts +4 -3
- package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvas.js +33 -12
- package/lib/components/canvas/CubeCanvas.js.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
- package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
- package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.js +14 -9
- package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts +2 -0
- package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +8 -4
- package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.js +30 -17
- package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
- package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.js +41 -0
- package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
- package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
- package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnPicker.js +9 -4
- package/lib/components/editors/CubeColumnPicker.js.map +1 -1
- package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
- package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeConcatEditor.js +147 -0
- package/lib/components/editors/CubeConcatEditor.js.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.js +29 -0
- package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.js +24 -0
- package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExtendEditor.js +86 -0
- package/lib/components/editors/CubeExtendEditor.js.map +1 -0
- package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeFilterEditor.js +3 -3
- package/lib/components/editors/CubeFilterEditor.js.map +1 -1
- package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
- package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeGroupEditor.js +70 -0
- package/lib/components/editors/CubeGroupEditor.js.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
- package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeIntegerField.d.ts +29 -0
- package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
- package/lib/components/editors/CubeIntegerField.js +30 -0
- package/lib/components/editors/CubeIntegerField.js.map +1 -0
- package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +15 -37
- package/lib/components/editors/CubeJoinEditor.js.map +1 -1
- package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
- package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
- package/lib/components/editors/CubeJoinKeyRows.js +65 -0
- package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
- package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
- package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
- package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
- package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
- package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
- package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
- package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
- package/lib/components/editors/CubePartitionEditor.js +93 -0
- package/lib/components/editors/CubePartitionEditor.js.map +1 -0
- package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
- package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRenameEditor.js +60 -0
- package/lib/components/editors/CubeRenameEditor.js.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.js +23 -0
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.js +38 -0
- package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
- package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
- package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSliceEditor.js +40 -0
- package/lib/components/editors/CubeSliceEditor.js.map +1 -0
- package/lib/components/editors/CubeSortEditor.d.ts +27 -0
- package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortEditor.js +45 -0
- package/lib/components/editors/CubeSortEditor.js.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.js +62 -0
- package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
- package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeSourceEditor.js +18 -6
- package/lib/components/editors/CubeSourceEditor.js.map +1 -1
- package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeValueEditor.js +2 -1
- package/lib/components/editors/CubeValueEditor.js.map +1 -1
- package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
- package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
- package/lib/components/editors/CubeWarehouseControl.js +44 -0
- package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.js +68 -0
- package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
- package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
- package/lib/components/grid/CubeGridRegion.js +20 -9
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +16 -0
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +44 -0
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeResultGrid.d.ts +14 -1
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +55 -7
- package/lib/components/grid/CubeResultGrid.js.map +1 -1
- package/lib/components/palette/CubePalette.d.ts.map +1 -1
- package/lib/components/palette/CubePalette.js +23 -12
- package/lib/components/palette/CubePalette.js.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDataProductTab.js +102 -0
- package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.js +66 -0
- package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
- package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
- package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
- package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
- package/lib/components/source-picker/CubePickerStep.js +23 -0
- package/lib/components/source-picker/CubePickerStep.js.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.js +50 -0
- package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
- package/lib/components/source-picker/CubeSourcePicker.js +20 -58
- package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
- package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
- package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
- package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
- package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProduct.js +102 -0
- package/lib/graph-manager/CubeDataProduct.js.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
- package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.js +48 -0
- package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/CubeEngine.d.ts +50 -2
- package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/CubeEngine.js +4 -1
- package/lib/graph-manager/CubeEngine.js.map +1 -1
- package/lib/graph-manager/CubeIngest.d.ts +50 -0
- package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngest.js +88 -0
- package/lib/graph-manager/CubeIngest.js.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.js +80 -0
- package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
- package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
- package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
- package/lib/graph-manager/CubeProject.d.ts +41 -0
- package/lib/graph-manager/CubeProject.d.ts.map +1 -0
- package/lib/graph-manager/CubeProject.js +84 -0
- package/lib/graph-manager/CubeProject.js.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.js +17 -0
- package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +56 -3
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +11 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/CubeAddPlacement.d.ts +32 -0
- package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
- package/lib/stores/CubeAddPlacement.js +40 -0
- package/lib/stores/CubeAddPlacement.js.map +1 -0
- package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
- package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRecheck.js +54 -0
- package/lib/stores/CubeDataProductRecheck.js.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.js +190 -0
- package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.js +25 -0
- package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
- package/lib/stores/CubeEditorState.d.ts +133 -19
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +433 -52
- package/lib/stores/CubeEditorState.js.map +1 -1
- package/lib/stores/CubeEntrySource.d.ts +78 -0
- package/lib/stores/CubeEntrySource.d.ts.map +1 -0
- package/lib/stores/CubeEntrySource.js +200 -0
- package/lib/stores/CubeEntrySource.js.map +1 -0
- package/lib/stores/CubeExamples.d.ts +43 -0
- package/lib/stores/CubeExamples.d.ts.map +1 -0
- package/lib/stores/CubeExamples.js +296 -0
- package/lib/stores/CubeExamples.js.map +1 -0
- package/lib/stores/CubeExamplesState.d.ts +45 -0
- package/lib/stores/CubeExamplesState.d.ts.map +1 -0
- package/lib/stores/CubeExamplesState.js +81 -0
- package/lib/stores/CubeExamplesState.js.map +1 -0
- package/lib/stores/CubeExecutionState.d.ts +6 -2
- package/lib/stores/CubeExecutionState.d.ts.map +1 -1
- package/lib/stores/CubeExecutionState.js +34 -8
- package/lib/stores/CubeExecutionState.js.map +1 -1
- package/lib/stores/CubeExtendTyping.d.ts +72 -0
- package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
- package/lib/stores/CubeExtendTyping.js +176 -0
- package/lib/stores/CubeExtendTyping.js.map +1 -0
- package/lib/stores/CubeGridQuickActions.d.ts +48 -0
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
- package/lib/stores/CubeGridQuickActions.js +124 -0
- package/lib/stores/CubeGridQuickActions.js.map +1 -0
- package/lib/stores/CubeHost.d.ts +32 -1
- package/lib/stores/CubeHost.d.ts.map +1 -1
- package/lib/stores/CubeHost.js +21 -1
- package/lib/stores/CubeHost.js.map +1 -1
- package/lib/stores/CubeIngestRecheck.d.ts +26 -0
- package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
- package/lib/stores/CubeIngestRecheck.js +53 -0
- package/lib/stores/CubeIngestRecheck.js.map +1 -0
- package/lib/stores/CubeNodeEditorState.d.ts +120 -6
- package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeNodeEditorState.js +275 -9
- package/lib/stores/CubeNodeEditorState.js.map +1 -1
- package/lib/stores/CubeShowPureState.d.ts +9 -3
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +28 -8
- package/lib/stores/CubeShowPureState.js.map +1 -1
- package/lib/stores/CubeSourcePickerState.d.ts +54 -65
- package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
- package/lib/stores/CubeSourcePickerState.js +155 -276
- package/lib/stores/CubeSourcePickerState.js.map +1 -1
- package/lib/stores/CubeSpecTransferState.d.ts +2 -2
- package/lib/stores/CubeSpecTransferState.js +2 -2
- package/lib/stores/LocalModelCatalog.d.ts +2 -0
- package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
- package/lib/stores/LocalModelCatalog.js +17 -3
- package/lib/stores/LocalModelCatalog.js.map +1 -1
- package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
- package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeAggregationRows.js +164 -0
- package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.js +44 -0
- package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
- package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.js +359 -0
- package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.js +106 -0
- package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
- package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
- package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
- package/lib/stores/editors/CubeIntegerText.js +33 -0
- package/lib/stores/editors/CubeIntegerText.js.map +1 -0
- package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
- package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeJoinDraft.js +109 -29
- package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
- package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
- package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraft.js +23 -5
- package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
- package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
- package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubePartitionDraft.js +154 -0
- package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.js +79 -0
- package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.js +73 -0
- package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.js +55 -0
- package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.js +72 -0
- package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
- package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortDraft.js +73 -0
- package/lib/stores/editors/CubeSortDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortRows.d.ts +34 -0
- package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortRows.js +50 -0
- package/lib/stores/editors/CubeSortRows.js.map +1 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
- package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
- package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
- package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
- package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSampleSql.js +64 -0
- package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.js +158 -0
- package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.js +197 -0
- package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
- package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
- package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
- package/package.json +12 -8
- package/src/__lib__/LegendCubeCommand.ts +5 -0
- package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
- package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
- package/src/__lib__/LegendCubeHelpText.ts +46 -2
- package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
- package/src/__lib__/LegendCubeLabels.ts +192 -4
- package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
- package/src/__lib__/LegendCubeTesting.ts +1 -0
- package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
- package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
- package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
- package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
- package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
- package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
- package/src/__test-utils__/CubeTestApplication.ts +21 -2
- package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
- package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
- package/src/__test-utils__/FakeCubeEngine.ts +32 -2
- package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
- package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
- package/src/components/CubeAddItems.tsx +179 -0
- package/src/components/CubeEditor.tsx +73 -44
- package/src/components/CubeEntrySourceBanner.tsx +64 -0
- package/src/components/CubeNodeIcon.tsx +31 -1
- package/src/components/CubeSchemaColumnsTable.tsx +49 -0
- package/src/components/canvas/CubeCanvas.tsx +51 -14
- package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
- package/src/components/canvas/CubeCanvasDnd.ts +16 -9
- package/src/components/canvas/CubeCanvasElements.ts +12 -3
- package/src/components/canvas/CubeCanvasNode.tsx +62 -36
- package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
- package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
- package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
- package/src/components/editors/CubeColumnChecklist.tsx +130 -0
- package/src/components/editors/CubeColumnPicker.tsx +36 -12
- package/src/components/editors/CubeConcatEditor.tsx +374 -0
- package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
- package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
- package/src/components/editors/CubeDistinctEditor.tsx +28 -0
- package/src/components/editors/CubeExtendEditor.tsx +271 -0
- package/src/components/editors/CubeFilterEditor.tsx +7 -0
- package/src/components/editors/CubeGroupEditor.tsx +135 -0
- package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
- package/src/components/editors/CubeIntegerField.tsx +51 -0
- package/src/components/editors/CubeJoinEditor.tsx +34 -131
- package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
- package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
- package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
- package/src/components/editors/CubePartitionEditor.tsx +208 -0
- package/src/components/editors/CubeRenameEditor.tsx +148 -0
- package/src/components/editors/CubeRestrictEditor.tsx +103 -0
- package/src/components/editors/CubeRowCountEditor.tsx +53 -0
- package/src/components/editors/CubeSliceEditor.tsx +69 -0
- package/src/components/editors/CubeSortEditor.tsx +84 -0
- package/src/components/editors/CubeSortRowEditor.tsx +176 -0
- package/src/components/editors/CubeSourceEditor.tsx +42 -40
- package/src/components/editors/CubeValueEditor.tsx +2 -1
- package/src/components/editors/CubeWarehouseControl.tsx +113 -0
- package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
- package/src/components/examples/CubeExamplesDialog.tsx +199 -0
- package/src/components/grid/CubeGridRegion.tsx +49 -10
- package/src/components/grid/CubeGridValues.ts +55 -0
- package/src/components/grid/CubeResultGrid.tsx +83 -13
- package/src/components/palette/CubePalette.tsx +33 -15
- package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
- package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
- package/src/components/source-picker/CubeIngestTab.tsx +232 -0
- package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
- package/src/components/source-picker/CubePickerStep.tsx +49 -0
- package/src/components/source-picker/CubeProjectTab.tsx +114 -0
- package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
- package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
- package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
- package/src/graph-manager/CubeDataProduct.ts +150 -0
- package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
- package/src/graph-manager/CubeDirectConnection.ts +67 -0
- package/src/graph-manager/CubeEngine.ts +57 -1
- package/src/graph-manager/CubeIngest.ts +144 -0
- package/src/graph-manager/CubeIngestCatalog.ts +169 -0
- package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
- package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
- package/src/graph-manager/CubeProject.ts +117 -0
- package/src/graph-manager/CubeProjectCatalog.ts +40 -0
- package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
- package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
- package/src/index.ts +20 -0
- package/src/stores/CubeAddPlacement.ts +67 -0
- package/src/stores/CubeDataProductRecheck.ts +93 -0
- package/src/stores/CubeDataProductRuntimeState.ts +256 -0
- package/src/stores/CubeDataProductWarehouse.ts +40 -0
- package/src/stores/CubeEditorState.ts +621 -68
- package/src/stores/CubeEntrySource.ts +278 -0
- package/src/stores/CubeExamples.ts +457 -0
- package/src/stores/CubeExamplesState.ts +108 -0
- package/src/stores/CubeExecutionState.ts +60 -8
- package/src/stores/CubeExtendTyping.ts +291 -0
- package/src/stores/CubeGridQuickActions.ts +184 -0
- package/src/stores/CubeHost.ts +71 -1
- package/src/stores/CubeIngestRecheck.ts +92 -0
- package/src/stores/CubeNodeEditorState.ts +348 -10
- package/src/stores/CubeShowPureState.ts +33 -8
- package/src/stores/CubeSourcePickerState.ts +160 -330
- package/src/stores/CubeSpecTransferState.ts +2 -2
- package/src/stores/LocalModelCatalog.ts +22 -3
- package/src/stores/editors/CubeAggregationRows.ts +299 -0
- package/src/stores/editors/CubeConcatDraft.ts +49 -0
- package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
- package/src/stores/editors/CubeExtendDraft.ts +532 -0
- package/src/stores/editors/CubeGroupDraft.ts +145 -0
- package/src/stores/editors/CubeIntegerText.ts +34 -0
- package/src/stores/editors/CubeJoinDraft.ts +170 -54
- package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
- package/src/stores/editors/CubeNodeDraft.ts +26 -6
- package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
- package/src/stores/editors/CubePartitionDraft.ts +214 -0
- package/src/stores/editors/CubeRenameDraft.ts +110 -0
- package/src/stores/editors/CubeRestrictDraft.ts +83 -0
- package/src/stores/editors/CubeRowCountDraft.ts +69 -0
- package/src/stores/editors/CubeSliceDraft.ts +87 -0
- package/src/stores/editors/CubeSortDraft.ts +98 -0
- package/src/stores/editors/CubeSortRows.ts +84 -0
- package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
- package/src/stores/fixtures/CubeSampleSql.ts +85 -0
- package/src/stores/fixtures/CubeSportsModel.ts +182 -0
- package/src/stores/fixtures/CubeTradesModel.ts +241 -0
- package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
- package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
- package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
- package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
- package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
- package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
- package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
- package/tsconfig.json +104 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Extend, type JsonObject, type Query } from '@finos/legend-cube';
|
|
17
|
+
/** `x | <body>` and the pieces of a body */
|
|
18
|
+
export declare const TEST__expression: {
|
|
19
|
+
lambda: (body: JsonObject) => JsonObject;
|
|
20
|
+
/** `$x.<name>` */
|
|
21
|
+
column: (name: string) => JsonObject;
|
|
22
|
+
call: (name: string, ...parameters: JsonObject[]) => JsonObject;
|
|
23
|
+
/** The two operands of `+`, `*`, … */
|
|
24
|
+
pair: (first: JsonObject, second: JsonObject) => JsonObject;
|
|
25
|
+
integer: (value: number) => JsonObject;
|
|
26
|
+
};
|
|
27
|
+
/** A new column: its name, its lambda, and the type the engine gives it */
|
|
28
|
+
export type TEST__ExtendColumn = readonly [string, JsonObject, string];
|
|
29
|
+
/**
|
|
30
|
+
* An Extend of these columns, typed as given for the input Cube infers for
|
|
31
|
+
* `input`'s selected node, so it is valid without the engine; the engine
|
|
32
|
+
* tests check the types are the engine's. With an invalid input, untyped.
|
|
33
|
+
*/
|
|
34
|
+
export declare const TEST__typedExtend: (id: string, input: Query, columns: readonly TEST__ExtendColumn[]) => Extend;
|
|
35
|
+
/** `a: x | $x.ORDER_ID + 1` and `b: x | $x.a * 2`, the second using the first, both Integer */
|
|
36
|
+
export declare const TEST__ORDER_ID_EXTEND_COLUMNS: readonly TEST__ExtendColumn[];
|
|
37
|
+
//# sourceMappingURL=CubeExpressionTestUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExpressionTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeExpressionTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,MAAM,EAEN,KAAK,UAAU,EAEf,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAK5B,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB;mBACZ,UAAU,KAAG,UAAU;IAKtC,kBAAkB;mBACH,MAAM,KAAG,UAAU;iBAKrB,MAAM,iBAAiB,UAAU,EAAE,KAAG,UAAU;IAK7D,sCAAsC;kBACxB,UAAU,UAAU,UAAU,KAAG,UAAU;qBAKxC,MAAM,KAAG,UAAU;CAIrC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,OAAO,KAAK,EACZ,SAAS,SAAS,kBAAkB,EAAE,KACrC,MAkBF,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,EAAE,SAAS,kBAAkB,EA2BtE,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { buildSchemasAndValidity, Extend, getExtendSignature, PrimitiveType, } from '@finos/legend-cube';
|
|
17
|
+
// Extend columns for tests (PLAN §11.7), written as the engine's JSON, as a
|
|
18
|
+
// column stores it: number literals as their digits
|
|
19
|
+
/** `x | <body>` and the pieces of a body */
|
|
20
|
+
export const TEST__expression = {
|
|
21
|
+
lambda: (body) => ({
|
|
22
|
+
_type: 'lambda',
|
|
23
|
+
parameters: [{ _type: 'var', name: 'x' }],
|
|
24
|
+
body: [body],
|
|
25
|
+
}),
|
|
26
|
+
/** `$x.<name>` */
|
|
27
|
+
column: (name) => ({
|
|
28
|
+
_type: 'property',
|
|
29
|
+
property: name,
|
|
30
|
+
parameters: [{ _type: 'var', name: 'x' }],
|
|
31
|
+
}),
|
|
32
|
+
call: (name, ...parameters) => ({
|
|
33
|
+
_type: 'func',
|
|
34
|
+
function: name,
|
|
35
|
+
parameters,
|
|
36
|
+
}),
|
|
37
|
+
/** The two operands of `+`, `*`, … */
|
|
38
|
+
pair: (first, second) => ({
|
|
39
|
+
_type: 'collection',
|
|
40
|
+
multiplicity: { lowerBound: 2, upperBound: 2 },
|
|
41
|
+
values: [first, second],
|
|
42
|
+
}),
|
|
43
|
+
integer: (value) => ({
|
|
44
|
+
_type: 'integer',
|
|
45
|
+
value: String(value),
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* An Extend of these columns, typed as given for the input Cube infers for
|
|
50
|
+
* `input`'s selected node, so it is valid without the engine; the engine
|
|
51
|
+
* tests check the types are the engine's. With an invalid input, untyped.
|
|
52
|
+
*/
|
|
53
|
+
export const TEST__typedExtend = (id, input, columns) => {
|
|
54
|
+
const schema = buildSchemasAndValidity(input).schemas.get(input.selected ?? '');
|
|
55
|
+
const extendColumns = columns.map(([name, lambda]) => ({
|
|
56
|
+
name,
|
|
57
|
+
code: name,
|
|
58
|
+
lambda,
|
|
59
|
+
}));
|
|
60
|
+
// an invalid input, e.g. a table not resolved yet: nothing to type it for
|
|
61
|
+
if (!schema) {
|
|
62
|
+
return new Extend(id, extendColumns);
|
|
63
|
+
}
|
|
64
|
+
return new Extend(id, extendColumns, {
|
|
65
|
+
kind: 'typed',
|
|
66
|
+
signature: getExtendSignature(schema, extendColumns),
|
|
67
|
+
types: columns.map(([, , type]) => PrimitiveType.get(type)),
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
/** `a: x | $x.ORDER_ID + 1` and `b: x | $x.a * 2`, the second using the first, both Integer */
|
|
71
|
+
export const TEST__ORDER_ID_EXTEND_COLUMNS = [
|
|
72
|
+
[
|
|
73
|
+
'a',
|
|
74
|
+
TEST__expression.lambda(TEST__expression.call('plus', TEST__expression.pair(TEST__expression.column('ORDER_ID'), TEST__expression.integer(1)))),
|
|
75
|
+
'Integer',
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
'b',
|
|
79
|
+
TEST__expression.lambda(TEST__expression.call('times', TEST__expression.pair(TEST__expression.column('a'), TEST__expression.integer(2)))),
|
|
80
|
+
'Integer',
|
|
81
|
+
],
|
|
82
|
+
];
|
|
83
|
+
//# sourceMappingURL=CubeExpressionTestUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExpressionTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeExpressionTestUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Query, type QueryNode, RelationalTableSource, Schema } from '@finos/legend-cube';
|
|
17
|
+
import type { CubeEngine, CubeResult, CubeResultValue } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
/** A table of the Cube Northwind model, not resolved yet */
|
|
19
|
+
export declare const TEST__northwindTable: (id: string, table: string, schema?: string) => RelationalTableSource;
|
|
20
|
+
/** The sources, resolved through the engine as the editor resolves them */
|
|
21
|
+
export declare const TEST__resolveSources: (engine: CubeEngine, sources: readonly RelationalTableSource[]) => Promise<RelationalTableSource[]>;
|
|
22
|
+
/** A chain of nodes, each feeding the next on its first port, captured at the last */
|
|
23
|
+
export declare const TEST__chainOf: (nodes: readonly QueryNode[]) => Query;
|
|
24
|
+
/** Every node of the query is valid */
|
|
25
|
+
export declare const TEST__expectValidQuery: (query: Query) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Runs the query up to its capture node, with this row limit; with a database
|
|
28
|
+
* type, written as for that database (on the fixture's H2 all the same, so a
|
|
29
|
+
* workaround's rows can be checked)
|
|
30
|
+
*/
|
|
31
|
+
export declare const TEST__runQuery: (engine: CubeEngine, query: Query, rowLimit: number, databaseType?: string) => Promise<CubeResult>;
|
|
32
|
+
/** The values of one column of a result */
|
|
33
|
+
export declare const TEST__columnValues: (result: CubeResult, column: string) => CubeResultValue[];
|
|
34
|
+
/** The schema Cube infers for a node of the query, its capture node by default */
|
|
35
|
+
export declare const TEST__inferredSchema: (query: Query, nodeId?: string) => Schema;
|
|
36
|
+
/** A node of a query to type with the engine, under a key of its own */
|
|
37
|
+
export interface TEST__TypingTarget {
|
|
38
|
+
key: string;
|
|
39
|
+
query: Query;
|
|
40
|
+
nodeId: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Every node of the query that can be emitted, keyed `<prefix>/<node id>`, in
|
|
44
|
+
* the query's node order
|
|
45
|
+
*/
|
|
46
|
+
export declare const TEST__emittableNodes: (prefix: string, query: Query) => TEST__TypingTarget[];
|
|
47
|
+
/** The engine's schema of each target, in one engine call */
|
|
48
|
+
export declare const TEST__engineSchemas: (engine: CubeEngine, targets: readonly TEST__TypingTarget[]) => Promise<Map<string, Schema | Error>>;
|
|
49
|
+
/**
|
|
50
|
+
* How Cube's schema of a node differs from the engine's, one line per
|
|
51
|
+
* difference: names, positions and types with their parameters must be the
|
|
52
|
+
* same. Nullability must be the same too, except on the columns in
|
|
53
|
+
* `widerNullable`, where the engine misreports it (outer-join padding, the
|
|
54
|
+
* FULL merged key: PLAN §4.7, §11.5) and Cube must say nullable. With
|
|
55
|
+
* `oneWay`, Cube may be wider on any column.
|
|
56
|
+
*/
|
|
57
|
+
export declare const TEST__typingDifferences: (key: string, cube: Schema | undefined, engineSchema: Schema | Error | undefined, options?: {
|
|
58
|
+
widerNullable?: readonly string[] | undefined;
|
|
59
|
+
oneWay?: boolean | undefined;
|
|
60
|
+
}) => string[];
|
|
61
|
+
/**
|
|
62
|
+
* The engine types the node as Cube infers it: the same names, in the same
|
|
63
|
+
* order, of the same types and parameters. Cube's nullability may only be
|
|
64
|
+
* wider, since the engine misreports it after outer joins (PLAN §4.7).
|
|
65
|
+
*/
|
|
66
|
+
export declare const TEST__expectEngineTyping: (engine: CubeEngine, query: Query, nodeId?: string) => Promise<void>;
|
|
67
|
+
//# sourceMappingURL=CubeOperationsTestUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeOperationsTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAIL,KAAK,EACL,KAAK,SAAS,EAEd,qBAAqB,EACrB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAUxC,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,OAAO,MAAM,EACb,eAAoB,KACnB,qBAKC,CAAC;AAEL,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,UAAU,EAClB,SAAS,SAAS,qBAAqB,EAAE,KACxC,OAAO,CAAC,qBAAqB,EAAE,CAiBjC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,KAczD,CAAC;AAEJ,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,GAAI,OAAO,KAAK,KAAG,IAMrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,UAAU,MAAM,EAChB,eAAe,MAAM,KACpB,OAAO,CAAC,UAAU,CAUpB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,EAClB,QAAQ,MAAM,KACb,eAAe,EAIjB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,EACZ,eAA6B,KAC5B,MAOF,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,OAAO,KAAK,KACX,kBAAkB,EAKpB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,UAAU,EAClB,SAAS,SAAS,kBAAkB,EAAE,KACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CASnC,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,MAAM,EACX,MAAM,MAAM,GAAG,SAAS,EACxB,cAAc,MAAM,GAAG,KAAK,GAAG,SAAS,EACxC,UAAS;IACP,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzB,KACL,MAAM,EA6BR,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,eAA6B,KAC5B,OAAO,CAAC,IAAI,CAYd,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { expect } from '@jest/globals';
|
|
17
|
+
import { buildSchemasAndValidity, Connection, createNodeRegistry, Query, QueryEmitter, RelationalTableSource, Schema, } from '@finos/legend-cube';
|
|
18
|
+
import { CUBE_NORTHWIND_DATABASE, CUBE_NORTHWIND_MODEL, CUBE_NORTHWIND_RUNTIME, } from '../stores/fixtures/CubeNorthwindModel.js';
|
|
19
|
+
// Helpers for engine tests of operations on the Cube Northwind fixture,
|
|
20
|
+
// through the engine port only (no V1 classes), so any CubeEngine works
|
|
21
|
+
/** A table of the Cube Northwind model, not resolved yet */
|
|
22
|
+
export const TEST__northwindTable = (id, table, schema = 'NORTHWIND') => new RelationalTableSource(id, {
|
|
23
|
+
database: CUBE_NORTHWIND_DATABASE,
|
|
24
|
+
schema,
|
|
25
|
+
table,
|
|
26
|
+
});
|
|
27
|
+
/** The sources, resolved through the engine as the editor resolves them */
|
|
28
|
+
export const TEST__resolveSources = async (engine, sources) => {
|
|
29
|
+
const typed = await engine.resolveSchemas(CUBE_NORTHWIND_MODEL, new Map(sources.map((source) => [
|
|
30
|
+
source.id,
|
|
31
|
+
[source.database, source.schema, source.table],
|
|
32
|
+
])));
|
|
33
|
+
return sources.map((source) => {
|
|
34
|
+
const schema = typed.get(source.id);
|
|
35
|
+
if (!(schema instanceof Schema)) {
|
|
36
|
+
throw schema ?? new Error(`No schema for ${source.id}`);
|
|
37
|
+
}
|
|
38
|
+
return source.withResolution({ kind: 'resolved', schema });
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
/** A chain of nodes, each feeding the next on its first port, captured at the last */
|
|
42
|
+
export const TEST__chainOf = (nodes) => new Query(nodes, nodes
|
|
43
|
+
.slice(1)
|
|
44
|
+
.map((node, index) => new Connection(nodes[index].id, node.id, node.ports[0])), nodes.at(-1)?.id);
|
|
45
|
+
/** Every node of the query is valid */
|
|
46
|
+
export const TEST__expectValidQuery = (query) => {
|
|
47
|
+
const { validity } = buildSchemasAndValidity(query, createNodeRegistry().queryRules);
|
|
48
|
+
expect([...validity].filter(([, errors]) => errors.length)).toEqual([]);
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Runs the query up to its capture node, with this row limit; with a database
|
|
52
|
+
* type, written as for that database (on the fixture's H2 all the same, so a
|
|
53
|
+
* workaround's rows can be checked)
|
|
54
|
+
*/
|
|
55
|
+
export const TEST__runQuery = async (engine, query, rowLimit, databaseType) => {
|
|
56
|
+
TEST__expectValidQuery(query);
|
|
57
|
+
return engine.execute(CUBE_NORTHWIND_MODEL, new QueryEmitter(query).emitExecutionLambda({
|
|
58
|
+
rowLimit,
|
|
59
|
+
runtime: CUBE_NORTHWIND_RUNTIME,
|
|
60
|
+
databaseType,
|
|
61
|
+
}));
|
|
62
|
+
};
|
|
63
|
+
/** The values of one column of a result */
|
|
64
|
+
export const TEST__columnValues = (result, column) => {
|
|
65
|
+
const index = result.columns.indexOf(column);
|
|
66
|
+
expect(index).toBeGreaterThanOrEqual(0);
|
|
67
|
+
return result.rows.map((row) => row[index] ?? null);
|
|
68
|
+
};
|
|
69
|
+
/** The schema Cube infers for a node of the query, its capture node by default */
|
|
70
|
+
export const TEST__inferredSchema = (query, nodeId = query.selected ?? '') => {
|
|
71
|
+
const schema = buildSchemasAndValidity(query, createNodeRegistry().queryRules).schemas.get(nodeId);
|
|
72
|
+
expect(schema).toBeDefined();
|
|
73
|
+
return schema;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Every node of the query that can be emitted, keyed `<prefix>/<node id>`, in
|
|
77
|
+
* the query's node order
|
|
78
|
+
*/
|
|
79
|
+
export const TEST__emittableNodes = (prefix, query) => {
|
|
80
|
+
const emitter = new QueryEmitter(query);
|
|
81
|
+
return query.nodes
|
|
82
|
+
.filter((node) => emitter.canEmit(node.id))
|
|
83
|
+
.map((node) => ({ key: `${prefix}/${node.id}`, query, nodeId: node.id }));
|
|
84
|
+
};
|
|
85
|
+
/** The engine's schema of each target, in one engine call */
|
|
86
|
+
export const TEST__engineSchemas = async (engine, targets) => engine.typeLambdas(CUBE_NORTHWIND_MODEL, new Map(targets.map(({ key, query, nodeId }) => [
|
|
87
|
+
key,
|
|
88
|
+
new QueryEmitter(query).emitTypingLambda(nodeId),
|
|
89
|
+
])));
|
|
90
|
+
/**
|
|
91
|
+
* How Cube's schema of a node differs from the engine's, one line per
|
|
92
|
+
* difference: names, positions and types with their parameters must be the
|
|
93
|
+
* same. Nullability must be the same too, except on the columns in
|
|
94
|
+
* `widerNullable`, where the engine misreports it (outer-join padding, the
|
|
95
|
+
* FULL merged key: PLAN §4.7, §11.5) and Cube must say nullable. With
|
|
96
|
+
* `oneWay`, Cube may be wider on any column.
|
|
97
|
+
*/
|
|
98
|
+
export const TEST__typingDifferences = (key, cube, engineSchema, options = {}) => {
|
|
99
|
+
if (!cube) {
|
|
100
|
+
return [`${key}: Cube infers no schema`];
|
|
101
|
+
}
|
|
102
|
+
if (!(engineSchema instanceof Schema)) {
|
|
103
|
+
return [`${key}: the engine gives no schema (${engineSchema?.message})`];
|
|
104
|
+
}
|
|
105
|
+
const describe = (schema) => schema.columns.map((column) => `${column.name}: ${column.type.fullName}`);
|
|
106
|
+
if (describe(cube).join() !== describe(engineSchema).join()) {
|
|
107
|
+
return [
|
|
108
|
+
`${key}: columns [${describe(cube).join(', ')}], the engine's [${describe(engineSchema).join(', ')}]`,
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
const wider = new Set(options.widerNullable ?? []);
|
|
112
|
+
return cube.columns.flatMap((column, index) => {
|
|
113
|
+
const engineNullable = engineSchema.columns[index]?.nullable === true;
|
|
114
|
+
if (wider.has(column.name)) {
|
|
115
|
+
return column.nullable
|
|
116
|
+
? []
|
|
117
|
+
: [`${key}: ${column.name} should be nullable`];
|
|
118
|
+
}
|
|
119
|
+
return column.nullable === engineNullable ||
|
|
120
|
+
(options.oneWay && column.nullable)
|
|
121
|
+
? []
|
|
122
|
+
: [
|
|
123
|
+
`${key}: ${column.name} is ${column.nullable ? '' : 'not '}nullable, the engine's ${engineNullable ? '' : 'not '}nullable`,
|
|
124
|
+
];
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* The engine types the node as Cube infers it: the same names, in the same
|
|
129
|
+
* order, of the same types and parameters. Cube's nullability may only be
|
|
130
|
+
* wider, since the engine misreports it after outer joins (PLAN §4.7).
|
|
131
|
+
*/
|
|
132
|
+
export const TEST__expectEngineTyping = async (engine, query, nodeId = query.selected ?? '') => {
|
|
133
|
+
const typed = await TEST__engineSchemas(engine, [
|
|
134
|
+
{ key: nodeId, query, nodeId },
|
|
135
|
+
]);
|
|
136
|
+
expect(TEST__typingDifferences(nodeId, TEST__inferredSchema(query, nodeId), typed.get(nodeId), { oneWay: true })).toEqual([]);
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=CubeOperationsTestUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeOperationsTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeOperationsTestUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,4 +30,16 @@ export declare const TEST__renderInCubeApplication: (element: React.ReactNode, a
|
|
|
30
30
|
* tables to be typed again, so nothing changes after the test has ended
|
|
31
31
|
*/
|
|
32
32
|
export declare const TEST__importDocument: (editorState: CubeEditorState, document: CubeDocument, readOnly?: boolean) => Promise<void>;
|
|
33
|
+
/** The graph header's 'Add Items' trigger */
|
|
34
|
+
export declare const TEST__getAddItemsTrigger: () => HTMLButtonElement;
|
|
35
|
+
/** Opens 'Add Items' in the graph's header and returns its menu */
|
|
36
|
+
export declare const TEST__openAddItems: () => Promise<HTMLElement>;
|
|
37
|
+
/**
|
|
38
|
+
* Chooses an item of 'Add Items' by its label, as the menu shows it (e.g.
|
|
39
|
+
* 'Relational Database Table', 'Data Product (BETA)', 'Filter by Column'),
|
|
40
|
+
* and waits for the menu to close
|
|
41
|
+
*/
|
|
42
|
+
export declare const TEST__chooseAddItem: (label: string) => Promise<void>;
|
|
43
|
+
/** Closes 'Add Items' without choosing an item, as Escape does */
|
|
44
|
+
export declare const TEST__closeAddItems: () => Promise<void>;
|
|
33
45
|
//# sourceMappingURL=CubePageTestUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubePageTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"CubePageTestUtils.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,KAAK,YAAY,EAKlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAkBpE,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,QAAO,IAQ9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,KAAK,CAAC,SAAS,EACxB,kBAAkB,6BAA6B,EAC/C,aAAa,MAAM,KAClB,OAAO,CAAC,YAAY,CAWtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,eAAe,EAC5B,UAAU,YAAY,EACtB,kBAAgB,KACf,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,QAAO,iBAIzC,CAAC;AAEJ,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,WAAW,CAG9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAIrE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,IAAI,CAGxD,CAAC"}
|
|
@@ -14,9 +14,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
import { expect } from '@jest/globals';
|
|
17
18
|
import { ApplicationFrameworkProvider, ApplicationStoreProvider, } from '@finos/legend-application';
|
|
18
19
|
import { TEST__BrowserEnvironmentProvider } from '@finos/legend-application/test';
|
|
19
|
-
import { act, render, waitFor, } from '@testing-library/react';
|
|
20
|
+
import { act, fireEvent, render, screen, waitFor, within, } from '@testing-library/react';
|
|
21
|
+
import { LEGEND_CUBE_TEST_ID } from '../__lib__/LegendCubeTesting.js';
|
|
20
22
|
/** React Flow watches the canvas with an IntersectionObserver, which jsdom lacks */
|
|
21
23
|
class TEST__IntersectionObserver {
|
|
22
24
|
observe() {
|
|
@@ -65,4 +67,26 @@ export const TEST__importDocument = async (editorState, document, readOnly = fal
|
|
|
65
67
|
}
|
|
66
68
|
});
|
|
67
69
|
};
|
|
70
|
+
/** The graph header's 'Add Items' trigger */
|
|
71
|
+
export const TEST__getAddItemsTrigger = () => within(screen.getByTestId(LEGEND_CUBE_TEST_ID.GRAPH_REGION)).getByRole('button', { name: 'Add Items' });
|
|
72
|
+
/** Opens 'Add Items' in the graph's header and returns its menu */
|
|
73
|
+
export const TEST__openAddItems = async () => {
|
|
74
|
+
fireEvent.click(TEST__getAddItemsTrigger());
|
|
75
|
+
return screen.findByRole('menu');
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Chooses an item of 'Add Items' by its label, as the menu shows it (e.g.
|
|
79
|
+
* 'Relational Database Table', 'Data Product (BETA)', 'Filter by Column'),
|
|
80
|
+
* and waits for the menu to close
|
|
81
|
+
*/
|
|
82
|
+
export const TEST__chooseAddItem = async (label) => {
|
|
83
|
+
const menu = await TEST__openAddItems();
|
|
84
|
+
fireEvent.click(within(menu).getByRole('menuitem', { name: label }));
|
|
85
|
+
await waitFor(() => expect(screen.queryByRole('menu')).toBeNull());
|
|
86
|
+
};
|
|
87
|
+
/** Closes 'Add Items' without choosing an item, as Escape does */
|
|
88
|
+
export const TEST__closeAddItems = async () => {
|
|
89
|
+
fireEvent.keyDown(screen.getByRole('menu'), { key: 'Escape' });
|
|
90
|
+
await waitFor(() => expect(screen.queryByRole('menu')).toBeNull());
|
|
91
|
+
};
|
|
68
92
|
//# sourceMappingURL=CubePageTestUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubePageTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EACL,GAAG,
|
|
1
|
+
{"version":3,"file":"CubePageTestUtils.js","sourceRoot":"","sources":["../../src/__test-utils__/CubePageTestUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,15 +16,19 @@
|
|
|
16
16
|
import { type GenericLegendApplicationStore, type LegendApplicationPlugin, LegendApplicationPluginManager } from '@finos/legend-application';
|
|
17
17
|
import type { CubeHost } from '../stores/CubeHost.js';
|
|
18
18
|
import { type FakeCubeEngine, type FakeCubeEngineAnswers } from './FakeCubeEngine.js';
|
|
19
|
+
import { type FakeCubeConnectionExplorer } from './FakeCubeConnectionExplorer.js';
|
|
20
|
+
import { type FakeCubeDataProductCatalog } from './FakeCubeDataProductCatalog.js';
|
|
19
21
|
export declare class TEST__LegendCubePluginManager extends LegendApplicationPluginManager<LegendApplicationPlugin> {
|
|
20
22
|
private constructor();
|
|
21
23
|
static create(): TEST__LegendCubePluginManager;
|
|
22
24
|
}
|
|
23
25
|
/** A fresh application store: build one per test, since it initializes once */
|
|
24
26
|
export declare const TEST__createCubeApplicationStore: (plugins?: LegendApplicationPlugin[]) => GenericLegendApplicationStore;
|
|
25
|
-
/** A host over
|
|
27
|
+
/** A host over fakes of the engine, the connection explorer and the data product catalog, with the bundled models */
|
|
26
28
|
export declare const TEST__createCubeHost: (answers?: FakeCubeEngineAnswers, applicationStore?: GenericLegendApplicationStore) => {
|
|
27
29
|
host: CubeHost;
|
|
28
30
|
fake: FakeCubeEngine;
|
|
31
|
+
connections: FakeCubeConnectionExplorer;
|
|
32
|
+
dataProducts: FakeCubeDataProductCatalog;
|
|
29
33
|
};
|
|
30
34
|
//# sourceMappingURL=CubeTestApplication.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeTestApplication.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAC5B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CubeTestApplication.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAC5B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AAKzC,qBAAa,6BAA8B,SAAQ,8BAA8B,CAAC,uBAAuB,CAAC;IACxG,OAAO;IAIP,MAAM,CAAC,MAAM,IAAI,6BAA6B;CAG/C;AAQD,+EAA+E;AAC/E,eAAO,MAAM,gCAAgC,GAC3C,UAAS,uBAAuB,EAAO,KACtC,6BAWF,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,qBAAqB,EAC/B,gDAAqD,KACpD;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,0BAA0B,CAAC;IACxC,YAAY,EAAE,0BAA0B,CAAC;CAiB1C,CAAC"}
|
|
@@ -17,6 +17,8 @@ import { ApplicationStore, LegendApplicationConfig, LegendApplicationPluginManag
|
|
|
17
17
|
import { TEST__getApplicationVersionData } from '@finos/legend-application/test';
|
|
18
18
|
import { LocalModelCatalog } from '../stores/LocalModelCatalog.js';
|
|
19
19
|
import { createFakeCubeEngine, } from './FakeCubeEngine.js';
|
|
20
|
+
import { createFakeCubeConnectionExplorer, } from './FakeCubeConnectionExplorer.js';
|
|
21
|
+
import { createFakeCubeDataProductCatalog, } from './FakeCubeDataProductCatalog.js';
|
|
20
22
|
// A bare Legend application for Cube's jsdom tests, as the data-space viewer's
|
|
21
23
|
// tests build theirs: the builder may not use the query builder's test helpers
|
|
22
24
|
export class TEST__LegendCubePluginManager extends LegendApplicationPluginManager {
|
|
@@ -42,16 +44,22 @@ export const TEST__createCubeApplicationStore = (plugins = []) => {
|
|
|
42
44
|
baseAddress: '/',
|
|
43
45
|
}), pluginManager);
|
|
44
46
|
};
|
|
45
|
-
/** A host over
|
|
47
|
+
/** A host over fakes of the engine, the connection explorer and the data product catalog, with the bundled models */
|
|
46
48
|
export const TEST__createCubeHost = (answers, applicationStore = TEST__createCubeApplicationStore()) => {
|
|
47
49
|
const fake = createFakeCubeEngine(answers);
|
|
50
|
+
const connections = createFakeCubeConnectionExplorer();
|
|
51
|
+
const dataProducts = createFakeCubeDataProductCatalog();
|
|
48
52
|
return {
|
|
49
53
|
host: {
|
|
50
54
|
applicationStore,
|
|
51
55
|
engine: fake.engine,
|
|
52
56
|
modelCatalog: new LocalModelCatalog(fake.engine),
|
|
57
|
+
connectionExplorer: connections.explorer,
|
|
58
|
+
dataProductCatalog: dataProducts.catalog,
|
|
53
59
|
},
|
|
54
60
|
fake,
|
|
61
|
+
connections,
|
|
62
|
+
dataProducts,
|
|
55
63
|
};
|
|
56
64
|
};
|
|
57
65
|
//# sourceMappingURL=CubeTestApplication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeTestApplication.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CubeTestApplication.js","sourceRoot":"","sources":["../../src/__test-utils__/CubeTestApplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gCAAgC,GAEjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gCAAgC,GAEjC,MAAM,iCAAiC,CAAC;AAEzC,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAM,OAAO,6BAA8B,SAAQ,8BAAuD;IACxG;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,iCAAkC,SAAQ,uBAAuB;IAC5D,+BAA+B;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAqC,EAAE,EACR,EAAE;IACjC,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,IAAI,gBAAgB,CACzB,IAAI,iCAAiC,CAAC;QACpC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5C,WAAW,EAAE,+BAA+B,EAAE;QAC9C,WAAW,EAAE,GAAG;KACjB,CAAC,EACF,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,qHAAqH;AACrH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA+B,EAC/B,gBAAgB,GAAG,gCAAgC,EAAE,EAMrD,EAAE;IACF,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,gCAAgC,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,gCAAgC,EAAE,CAAC;IACxD,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,kBAAkB,EAAE,WAAW,CAAC,QAAQ;YACxC,kBAAkB,EAAE,YAAY,CAAC,OAAO;SACzC;QACD,IAAI;QACJ,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { type CubeConnectionExplorer, type CubeExploredTable } from '../graph-manager/CubeConnectionExplorer.js';
|
|
18
|
+
/** A schema of two tables, one with a column Cube hides */
|
|
19
|
+
export declare const FAKE_DIRECT_TABLES: readonly CubeExploredTable[];
|
|
20
|
+
export interface FakeCubeConnectionExplorerAnswers {
|
|
21
|
+
/** keyed by schema name; a schema not in it gets a compile error */
|
|
22
|
+
readonly tables?: ReadonlyMap<string, readonly CubeExploredTable[]>;
|
|
23
|
+
}
|
|
24
|
+
export interface FakeCubeConnectionExplorer {
|
|
25
|
+
readonly explorer: CubeConnectionExplorer;
|
|
26
|
+
readonly buildConnection: jest.Mock<CubeConnectionExplorer['buildConnection']>;
|
|
27
|
+
readonly describeConnection: jest.Mock<CubeConnectionExplorer['describeConnection']>;
|
|
28
|
+
readonly listSchemas: jest.Mock<CubeConnectionExplorer['listSchemas']>;
|
|
29
|
+
readonly listTables: jest.Mock<CubeConnectionExplorer['listTables']>;
|
|
30
|
+
}
|
|
31
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
32
|
+
export declare const createFakeCubeConnectionExplorer: (answers?: FakeCubeConnectionExplorerAnswers) => FakeCubeConnectionExplorer;
|
|
33
|
+
//# sourceMappingURL=FakeCubeConnectionExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeConnectionExplorer.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,4CAA4C,CAAC;AAUpD,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,iBAAiB,EAe1D,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CACjC,sBAAsB,CAAC,iBAAiB,CAAC,CAC1C,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CACpC,sBAAsB,CAAC,oBAAoB,CAAC,CAC7C,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;CACtE;AAED,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,GAC3C,UAAS,iCAAsC,KAC9C,0BAwCF,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { CubeConnectionDatasourceKind, CubeDirectDatabaseType, } from '../graph-manager/CubeConnectionExplorer.js';
|
|
18
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
19
|
+
// A connection explorer for jsdom tests: canned answers, no network. Each
|
|
20
|
+
// method is a jest.fn, so tests can read its calls or change its answer. Any
|
|
21
|
+
// connection is supported and summarized as an in-memory H2 database.
|
|
22
|
+
/** A schema of two tables, one with a column Cube hides */
|
|
23
|
+
export const FAKE_DIRECT_TABLES = [
|
|
24
|
+
{
|
|
25
|
+
name: 'ORDERS',
|
|
26
|
+
storedName: '"ORDERS"',
|
|
27
|
+
columnCount: 3,
|
|
28
|
+
hiddenColumnCount: 1,
|
|
29
|
+
flags: [],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'ORDER.LINES',
|
|
33
|
+
storedName: '"ORDER.LINES"',
|
|
34
|
+
columnCount: 2,
|
|
35
|
+
hiddenColumnCount: 0,
|
|
36
|
+
flags: [],
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
40
|
+
export const createFakeCubeConnectionExplorer = (answers = {}) => {
|
|
41
|
+
const tables = answers.tables ?? new Map([['CUBE_DIRECT', FAKE_DIRECT_TABLES]]);
|
|
42
|
+
const buildConnection = jest.fn((draft) => ({ _type: 'fake', ...draft }));
|
|
43
|
+
const describeConnection = jest.fn(() => ({
|
|
44
|
+
supported: true,
|
|
45
|
+
summary: {
|
|
46
|
+
databaseType: CubeDirectDatabaseType.H2,
|
|
47
|
+
datasourceKind: CubeConnectionDatasourceKind.LOCAL_H2,
|
|
48
|
+
setupSqlCount: 1,
|
|
49
|
+
authenticationKind: 'h2Default',
|
|
50
|
+
},
|
|
51
|
+
}));
|
|
52
|
+
const listSchemas = jest.fn(async () => Promise.resolve([...tables.keys()]));
|
|
53
|
+
const listTables = jest.fn(async (_connection, schema) => {
|
|
54
|
+
const found = tables.get(schema);
|
|
55
|
+
return found
|
|
56
|
+
? Promise.resolve(found)
|
|
57
|
+
: Promise.reject(new CubeEngineError(CubeEngineErrorKind.COMPILE, `The schema "${schema}" can't be found`));
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
explorer: { buildConnection, describeConnection, listSchemas, listTables },
|
|
61
|
+
buildConnection,
|
|
62
|
+
describeConnection,
|
|
63
|
+
listSchemas,
|
|
64
|
+
listTables,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=FakeCubeConnectionExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeConnectionExplorer.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,4BAA4B,EAE5B,sBAAsB,GAEvB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,0EAA0E;AAC1E,6EAA6E;AAC7E,sEAAsE;AAEtE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,EAAE;KACV;IACD;QACE,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAmBF,mFAAmF;AACnF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAA6C,EAAE,EACnB,EAAE;IAC9B,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CACzC,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAEhC,GAAG,EAAE,CAAC,CAAC;QACP,SAAS,EAAE,IAAI;QACf,OAAO,EAAE;YACP,YAAY,EAAE,sBAAsB,CAAC,EAAE;YACvC,cAAc,EAAE,4BAA4B,CAAC,QAAQ;YACrD,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,WAAW;SAChC;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAwC,KAAK,IAAI,EAAE,CAC5E,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CACpC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CACxB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,KAAK;YACV,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,IAAI,eAAe,CACjB,mBAAmB,CAAC,OAAO,EAC3B,eAAe,MAAM,kBAAkB,CACxC,CACF,CAAC;IACR,CAAC,CACF,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;QAC1E,eAAe;QACf,kBAAkB;QAClB,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
|