@finos/legend-cube-builder 0.0.3 → 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 +52 -19
- package/docs/adding-an-operation.md +102 -13
- package/docs/hosting.md +82 -4
- package/docs/testing.md +114 -9
- 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 +12 -2
- 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 +76 -3
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +102 -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 +12 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +21 -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 +25 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeOperationsTestUtils.js +56 -10
- package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -1
- 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 +14 -1
- 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 +8 -1
- 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 +31 -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.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +6 -3
- 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 -20
- 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/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/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/CubeJoinEditor.d.ts +2 -4
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +7 -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 +51 -13
- 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 +15 -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.map +1 -1
- package/lib/components/editors/CubeRenameEditor.js +6 -4
- package/lib/components/editors/CubeRenameEditor.js.map +1 -1
- package/lib/components/editors/CubeRestrictEditor.js +1 -1
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
- package/lib/components/editors/CubeSortEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeSortEditor.js +10 -37
- package/lib/components/editors/CubeSortEditor.js.map +1 -1
- 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 -5
- package/lib/components/editors/CubeSourceEditor.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 +19 -8
- 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.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +14 -2
- 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 +37 -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/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_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 +27 -1
- 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 +100 -16
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +347 -47
- 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 +15 -5
- 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 +14 -6
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
- package/lib/stores/CubeGridQuickActions.js +53 -15
- package/lib/stores/CubeGridQuickActions.js.map +1 -1
- 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 +101 -5
- package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeNodeEditorState.js +221 -10
- package/lib/stores/CubeNodeEditorState.js.map +1 -1
- package/lib/stores/CubeShowPureState.d.ts +5 -2
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +7 -4
- 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/CubeJoinDraft.d.ts +9 -10
- package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeJoinDraft.js +92 -21
- 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.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +20 -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/CubeSortDraft.d.ts +2 -10
- package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeSortDraft.js +9 -35
- package/lib/stores/editors/CubeSortDraft.js.map +1 -1
- 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 +10 -6
- 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 +25 -1
- package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
- package/src/__lib__/LegendCubeLabels.ts +162 -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 +38 -0
- package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
- package/src/__test-utils__/CubeOperationsTestUtils.ts +93 -18
- 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 +25 -1
- 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 +13 -0
- package/src/components/CubeSchemaColumnsTable.tsx +49 -0
- package/src/components/canvas/CubeCanvas.tsx +49 -14
- package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
- package/src/components/canvas/CubeCanvasDnd.ts +16 -9
- package/src/components/canvas/CubeCanvasElements.ts +8 -2
- package/src/components/canvas/CubeCanvasNode.tsx +61 -43
- 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/CubeConcatEditor.tsx +374 -0
- package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
- package/src/components/editors/CubeDifferenceEditor.tsx +87 -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/CubeJoinEditor.tsx +12 -132
- package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +91 -28
- package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
- package/src/components/editors/CubeNodeEditorRegistry.ts +21 -0
- package/src/components/editors/CubePartitionEditor.tsx +208 -0
- package/src/components/editors/CubeRenameEditor.tsx +10 -5
- package/src/components/editors/CubeRestrictEditor.tsx +1 -1
- package/src/components/editors/CubeSortEditor.tsx +20 -142
- package/src/components/editors/CubeSortRowEditor.tsx +176 -0
- package/src/components/editors/CubeSourceEditor.tsx +42 -30
- 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 +48 -10
- package/src/components/grid/CubeGridValues.ts +55 -0
- package/src/components/grid/CubeResultGrid.tsx +24 -8
- 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 +43 -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/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_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 +42 -1
- 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 +511 -63
- 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 +24 -5
- package/src/stores/CubeExtendTyping.ts +291 -0
- package/src/stores/CubeGridQuickActions.ts +69 -14
- package/src/stores/CubeHost.ts +71 -1
- package/src/stores/CubeIngestRecheck.ts +92 -0
- package/src/stores/CubeNodeEditorState.ts +278 -9
- package/src/stores/CubeShowPureState.ts +7 -4
- 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/CubeJoinDraft.ts +130 -41
- package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
- package/src/stores/editors/CubeNodeDraft.ts +26 -6
- package/src/stores/editors/CubeNodeDraftRegistry.ts +25 -0
- package/src/stores/editors/CubePartitionDraft.ts +214 -0
- package/src/stores/editors/CubeSortDraft.ts +17 -54
- 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 +89 -0
|
@@ -15,75 +15,37 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { clsx, Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, PanelLoadingIndicator, } from '@finos/legend-art';
|
|
18
|
-
import { getRelationalDisplayName } from '@finos/legend-cube';
|
|
19
18
|
import { flowResult } from 'mobx';
|
|
20
19
|
import { observer } from 'mobx-react-lite';
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("label", { className: "w-20 shrink-0 text-base", htmlFor: id, children: label }), _jsxs("select", { id: id, className: "h-7 min-w-0 flex-1 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base text-[var(--color-text-primary)] disabled:text-[var(--color-text-secondary)]", value: value ?? '', disabled: Boolean(disabled) || !options.length, onChange: (event) => onChange(event.target.value || undefined), children: [value === undefined && _jsx("option", { value: "", children: "Choose\u2026" }), options.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value)))] })] }));
|
|
29
|
-
};
|
|
20
|
+
import { SELECT_SOURCE_TYPE_PROMPT } from '../../__lib__/LegendCubeLabels.js';
|
|
21
|
+
import { CubeSourcePickerTabKey } from '../../stores/source-picker/CubeSourcePickerTab.js';
|
|
22
|
+
import { CubeDataProductTab } from './CubeDataProductTab.js';
|
|
23
|
+
import { CubeIngestTab } from './CubeIngestTab.js';
|
|
24
|
+
import { CubeProjectTab } from './CubeProjectTab.js';
|
|
25
|
+
import { CubeDirectConnectionTab } from './CubeDirectConnectionTab.js';
|
|
26
|
+
import { CubeInlineModelTab } from './CubeInlineModelTab.js';
|
|
30
27
|
/**
|
|
31
|
-
* Adds a
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* Adds a source to the cube (PLAN §6.1, §6.2.7, §6.8): a tab per way to find
|
|
29
|
+
* one, shown when the host offers more than one. The source lands with its
|
|
30
|
+
* schema; the first one fixes the cube's context, and with it the only tab
|
|
31
|
+
* enabled.
|
|
34
32
|
*/
|
|
35
|
-
/** The Model option that offers a text box for Pure text */
|
|
36
|
-
const PASTE_MODEL_OPTION = 'paste';
|
|
37
33
|
export const CubeSourcePicker = observer((props) => {
|
|
38
34
|
const { editorState } = props;
|
|
39
35
|
const picker = editorState.sourcePicker;
|
|
40
36
|
const { applicationStore } = editorState.host;
|
|
41
37
|
const darkMode = !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
|
|
42
|
-
const
|
|
43
|
-
const fixedModelLabel = picker.models.find((model) => JSON.stringify(model.model) ===
|
|
44
|
-
JSON.stringify(picker.fixedContext?.model))?.label ?? "The cube's model";
|
|
38
|
+
const { activeTab, tabs } = picker;
|
|
45
39
|
const confirm = () => {
|
|
46
40
|
flowResult(picker.confirm()).catch(applicationStore.alertUnhandledError);
|
|
47
41
|
};
|
|
48
|
-
return (_jsx(Dialog, { open: picker.isOpen, onClose: () => picker.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[640px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: "Add a
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
?
|
|
52
|
-
:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
value: model.id,
|
|
57
|
-
label: model.label,
|
|
58
|
-
})),
|
|
59
|
-
{
|
|
60
|
-
value: PASTE_MODEL_OPTION,
|
|
61
|
-
label: 'Paste Pure model…',
|
|
62
|
-
},
|
|
63
|
-
], disabled: isFixed, onChange: (id) => {
|
|
64
|
-
if (id === PASTE_MODEL_OPTION) {
|
|
65
|
-
picker.startPastingModel();
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const model = picker.models.find((candidate) => candidate.id === id);
|
|
69
|
-
if (model) {
|
|
70
|
-
flowResult(picker.selectModel(model.model)).catch(applicationStore.alertUnhandledError);
|
|
71
|
-
}
|
|
72
|
-
} }), picker.isPastingModel && !isFixed && (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("textarea", { className: "h-40 w-full resize-y rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] p-1 font-mono text-sm text-[var(--color-text-primary)]", "aria-label": "Pure model", placeholder: '###Relational\nDatabase my::Database ( … )\n\n###Runtime\nRuntime my::Runtime { … }', spellCheck: false, value: picker.pastedModelText, onChange: (event) => picker.setPastedModelText(event.target.value) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CubeButton, { disabled: !picker.pastedModelText.trim() || picker.isLoadingModel, onClick: () => {
|
|
73
|
-
flowResult(picker.loadPastedModel()).catch(applicationStore.alertUnhandledError);
|
|
74
|
-
}, children: "Load model" }), _jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "The cube keeps the model's text, which counts towards the 1 MiB a cube spec can hold." })] })] })), picker.isLoadingModel && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.LOADING_MODEL })), _jsx(CubePickerStep, { label: "Database", value: picker.databasePath, options: picker.databases.map((database) => ({
|
|
75
|
-
value: database.path,
|
|
76
|
-
label: database.path,
|
|
77
|
-
})), disabled: picker.fixedDatabasePath !== undefined, onChange: (path) => picker.selectDatabase(path) }), _jsx(CubePickerStep, { label: "Runtime", value: picker.runtimePath, options: picker.runtimes.map((runtime) => ({
|
|
78
|
-
value: runtime.path,
|
|
79
|
-
label: runtime.path,
|
|
80
|
-
})), disabled: picker.fixedContext?.runtime !== undefined, onChange: (path) => picker.selectRuntime(path) }), _jsx(CubePickerStep, { label: "Schema", value: picker.schemaName, options: picker.schemas.map((schema) => ({
|
|
81
|
-
value: schema.name,
|
|
82
|
-
label: getRelationalDisplayName(schema.name),
|
|
83
|
-
})), onChange: (name) => picker.selectSchema(name) }), picker.schemaName !== undefined && (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("input", { className: "h-7 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base text-[var(--color-text-primary)]", placeholder: "Search tables", "aria-label": "Search tables", value: picker.tableSearch, onChange: (event) => picker.setTableSearch(event.target.value) }), _jsx("ul", { className: "h-56 overflow-auto rounded-sm border border-[var(--color-border-subtle)]", "aria-label": "Tables", children: picker.tables.map((table) => {
|
|
84
|
-
const selectable = isTableSelectable(table);
|
|
85
|
-
const isPicked = picker.tableName === table.name;
|
|
86
|
-
return (_jsx("li", { children: _jsxs("button", { type: "button", className: clsx('flex w-full items-center gap-2 px-2 py-1 text-left text-base enabled:hover:bg-[var(--color-bg-hover)] disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]', { 'bg-[var(--color-bg-selected)]': isPicked }), "aria-pressed": isPicked, disabled: !selectable, onClick: () => picker.selectTable(table.name), children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: getRelationalDisplayName(table.name) }), table.flags.map((flag) => (_jsx("span", { className: "rounded-sm bg-[var(--color-status-warn-bg)] px-1 text-sm text-[var(--color-status-warn)]", title: CUBE_TABLE_FLAG_LABELS[flag].description, children: CUBE_TABLE_FLAG_LABELS[flag].label }, flag))), _jsxs("span", { className: "shrink-0 text-sm text-[var(--color-text-muted)]", children: [table.columnCount, " columns"] })] }) }, table.name));
|
|
87
|
-
}) })] })), picker.isResolving && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RESOLVING_SOURCE })), picker.error !== undefined && (_jsx("div", { className: "text-base text-[var(--color-status-error)]", role: "alert", children: picker.error }))] }) }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, text: "Add", disabled: !picker.canConfirm, onClick: confirm }), _jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, type: "secondary", text: "Cancel", onClick: () => picker.close() })] })] }) }));
|
|
42
|
+
return (_jsx(Dialog, { open: picker.isOpen, onClose: () => picker.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[640px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: "Add a source" }) }), _jsx(PanelLoadingIndicator, { isLoading: !picker.isChoosingTab && activeTab.isBusy }), _jsxs(ModalBody, { children: [tabs.length > 1 && (_jsx("div", { className: "mb-2 flex gap-1 border-b border-[var(--color-border-subtle)]", role: "tablist", "aria-label": "Source kinds", children: tabs.map((tab) => {
|
|
43
|
+
const isActive = !picker.isChoosingTab && tab === activeTab;
|
|
44
|
+
return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, disabled: !picker.isTabEnabled(tab), className: clsx('-mb-px border-b-2 px-2 py-1 text-base enabled:cursor-pointer disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]', isActive
|
|
45
|
+
? 'border-[var(--color-accent)] text-[var(--color-text-primary)]'
|
|
46
|
+
: 'border-transparent text-[var(--color-text-secondary)] enabled:hover:text-[var(--color-text-primary)]'), onClick: () => picker.selectTab(tab.key), children: tab.label }, tab.key));
|
|
47
|
+
}) })), _jsx("div", { role: tabs.length > 1 && !picker.isChoosingTab
|
|
48
|
+
? 'tabpanel'
|
|
49
|
+
: undefined, children: picker.isChoosingTab ? (_jsx("div", { className: "py-4 text-center text-base text-[var(--color-text-secondary)]", children: SELECT_SOURCE_TYPE_PROMPT })) : activeTab.key === CubeSourcePickerTabKey.DIRECT_CONNECTION ? (_jsx(CubeDirectConnectionTab, { tab: picker.directTab })) : activeTab.key === CubeSourcePickerTabKey.DATA_PRODUCT ? (_jsx(CubeDataProductTab, { tab: picker.dataProductTab })) : activeTab.key === CubeSourcePickerTabKey.INGEST ? (_jsx(CubeIngestTab, { tab: picker.ingestTab })) : activeTab.key === CubeSourcePickerTabKey.PROJECT ? (_jsx(CubeProjectTab, { tab: picker.projectTab })) : (_jsx(CubeInlineModelTab, { tab: picker.modelTab })) })] }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, text: "Add", disabled: !picker.canConfirm, onClick: confirm }), _jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, type: "secondary", text: "Cancel", onClick: () => picker.close() })] })] }) }));
|
|
88
50
|
});
|
|
89
51
|
//# sourceMappingURL=CubeSourcePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeSourcePicker.js","sourceRoot":"","sources":["../../../src/components/source-picker/CubeSourcePicker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CubeSourcePicker.js","sourceRoot":"","sources":["../../../src/components/source-picker/CubeSourcePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export const CubeSpecTransferDialog = observer((props) => {
|
|
|
29
29
|
const { applicationStore } = editorState.host;
|
|
30
30
|
const darkMode = !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
|
|
31
31
|
const isExport = transfer.mode === CUBE_SPEC_TRANSFER_MODE.EXPORT;
|
|
32
|
-
return (_jsx(Dialog, { open: transfer.mode !== undefined, onClose: () => transfer.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[720px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: isExport ? 'Export spec
|
|
32
|
+
return (_jsx(Dialog, { open: transfer.mode !== undefined, onClose: () => transfer.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[720px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: isExport ? 'Export spec' : 'Import spec' }) }), _jsx(PanelLoadingIndicator, { isLoading: transfer.isReadingFile }), _jsx(ModalBody, { children: _jsxs("div", { className: "flex flex-col gap-2", children: [isExport ? (transfer.exportText !== undefined && (_jsx("textarea", { className: TEXT_AREA_CLASS_NAME, "aria-label": "Cube spec", readOnly: true, value: transfer.exportText }))) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: "Paste a cube spec, or choose a .cube.json file. The spec replaces this cube; Undo brings it back." }), _jsx("input", { className: "text-base", type: "file", accept: ".json,application/json", "aria-label": "Spec file", onChange: (event) => {
|
|
33
33
|
const file = event.target.files?.[0];
|
|
34
34
|
// the same file can be chosen again
|
|
35
35
|
event.target.value = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeSpecTransferDialog.js","sourceRoot":"","sources":["../../../src/components/spec-transfer/CubeSpecTransferDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,MAAM,oBAAoB,GACxB,kKAAkK,CAAC;AAErK;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAC5C,CAAC,KAAuC,EAAE,EAAE;IAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC;IAC1C,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9C,MAAM,QAAQ,GACZ,CAAC,gBAAgB,CAAC,aAAa,CAAC,mCAAmC,CAAC;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAK,uBAAuB,CAAC,MAAM,CAAC;IAElE,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,YAE/B,MAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,sBAAsB,aACzD,KAAC,WAAW,cACV,cAAK,SAAS,EAAC,cAAc,YAC1B,QAAQ,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"CubeSpecTransferDialog.js","sourceRoot":"","sources":["../../../src/components/spec-transfer/CubeSpecTransferDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
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 { PlainObject } from '@finos/legend-shared';
|
|
17
|
+
import type { CubeTableFlag } from './CubeEngine.js';
|
|
18
|
+
/** The databases a direct connection can reach this round */
|
|
19
|
+
export declare enum CubeDirectDatabaseType {
|
|
20
|
+
H2 = "H2",
|
|
21
|
+
DUCKDB = "DuckDB"
|
|
22
|
+
}
|
|
23
|
+
/** What the connection form gives, before it becomes a connection */
|
|
24
|
+
export interface CubeConnectionDraft {
|
|
25
|
+
databaseType: CubeDirectDatabaseType;
|
|
26
|
+
/** Statements the engine runs on each connection, e.g. to create test tables */
|
|
27
|
+
setupSqls: readonly string[];
|
|
28
|
+
/** DuckDB only: a database file on the engine's host, or '' for an in-memory database */
|
|
29
|
+
path?: string | undefined;
|
|
30
|
+
}
|
|
31
|
+
/** How a database is reached, as the page shows it */
|
|
32
|
+
export declare enum CubeConnectionDatasourceKind {
|
|
33
|
+
/** An H2 database the engine creates in its own H2 server */
|
|
34
|
+
LOCAL_H2 = "LOCAL_H2",
|
|
35
|
+
DUCKDB_IN_MEMORY = "DUCKDB_IN_MEMORY",
|
|
36
|
+
DUCKDB_FILE = "DUCKDB_FILE"
|
|
37
|
+
}
|
|
38
|
+
/** What the page shows of a saved connection: never its setup SQL */
|
|
39
|
+
export interface CubeConnectionSummary {
|
|
40
|
+
databaseType: CubeDirectDatabaseType;
|
|
41
|
+
datasourceKind: CubeConnectionDatasourceKind;
|
|
42
|
+
/** The DuckDB file, for a DuckDB file database */
|
|
43
|
+
path?: string | undefined;
|
|
44
|
+
setupSqlCount: number;
|
|
45
|
+
/** The authentication strategy, as the engine names it */
|
|
46
|
+
authenticationKind: string;
|
|
47
|
+
}
|
|
48
|
+
/** A table read from a connection's database, for the picker */
|
|
49
|
+
export interface CubeExploredTable {
|
|
50
|
+
/** As the database stores it, e.g. `ORDER.LINES` */
|
|
51
|
+
name: string;
|
|
52
|
+
/** As a table's coordinates store it: always quoted, e.g. `"ORDER.LINES"` */
|
|
53
|
+
storedName: string;
|
|
54
|
+
/** The columns Cube can use */
|
|
55
|
+
columnCount: number;
|
|
56
|
+
/** The columns left out because the engine can't type them; Cube shows how many */
|
|
57
|
+
hiddenColumnCount: number;
|
|
58
|
+
flags: readonly CubeTableFlag[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A direct connection as a cube saves it: protocol JSON, which only the
|
|
62
|
+
* engine's implementation reads
|
|
63
|
+
*/
|
|
64
|
+
export type CubeDirectConnection = PlainObject;
|
|
65
|
+
/** What the page knows of a connection without calling the engine */
|
|
66
|
+
export type CubeConnectionDescription = {
|
|
67
|
+
supported: true;
|
|
68
|
+
summary: CubeConnectionSummary;
|
|
69
|
+
}
|
|
70
|
+
/** Why Cube can't use the connection, in words a user can act on */
|
|
71
|
+
| {
|
|
72
|
+
supported: false;
|
|
73
|
+
problems: readonly string[];
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Reading a direct connection's database (PLAN §6.8), for the picker: its own
|
|
77
|
+
* port, beside the `CubeEngine`, so hosts without direct connections need
|
|
78
|
+
* neither. Calls fail with a `CubeEngineError`, with no node
|
|
79
|
+
*/
|
|
80
|
+
export interface CubeConnectionExplorer {
|
|
81
|
+
/** The connection the connection form describes */
|
|
82
|
+
buildConnection(draft: CubeConnectionDraft): CubeDirectConnection;
|
|
83
|
+
/** Whether Cube can use a connection, and what the page shows of it: no engine call */
|
|
84
|
+
describeConnection(connection: CubeDirectConnection): CubeConnectionDescription;
|
|
85
|
+
/** The schemas of the connection's database, without the database's own; tests the connection */
|
|
86
|
+
listSchemas(connection: CubeDirectConnection): Promise<readonly string[]>;
|
|
87
|
+
/** A schema's tables and views, with how many columns Cube can use and hides */
|
|
88
|
+
listTables(connection: CubeDirectConnection, schema: string): Promise<readonly CubeExploredTable[]>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=CubeConnectionExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeConnectionExplorer.d.ts","sourceRoot":"","sources":["../../src/graph-manager/CubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,6DAA6D;AAC7D,oBAAY,sBAAsB;IAChC,EAAE,OAAO;IACT,MAAM,WAAW;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,sBAAsB,CAAC;IACrC,gFAAgF;IAChF,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,sDAAsD;AACtD,oBAAY,4BAA4B;IACtC,6DAA6D;IAC7D,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;CAC5B;AAED,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,sBAAsB,CAAC;IACrC,cAAc,EAAE,4BAA4B,CAAC;IAC7C,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAE/C,qEAAqE;AACrE,MAAM,MAAM,yBAAyB,GACjC;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE;AACrD,oEAAoE;GAClE;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAAC;IAElE,uFAAuF;IACvF,kBAAkB,CAChB,UAAU,EAAE,oBAAoB,GAC/B,yBAAyB,CAAC;IAE7B,iGAAiG;IACjG,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAE1E,gFAAgF;IAChF,UAAU,CACR,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;CAC1C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
// Direct connections (PLAN §6.8), in Cube's own terms: what the connection
|
|
17
|
+
// form gives, what the page shows of a saved connection, and what reading its
|
|
18
|
+
// database finds. The connection itself stays opaque JSON outside
|
|
19
|
+
// `protocol/pure/v1/`, which alone reads it
|
|
20
|
+
/** The databases a direct connection can reach this round */
|
|
21
|
+
export var CubeDirectDatabaseType;
|
|
22
|
+
(function (CubeDirectDatabaseType) {
|
|
23
|
+
CubeDirectDatabaseType["H2"] = "H2";
|
|
24
|
+
CubeDirectDatabaseType["DUCKDB"] = "DuckDB";
|
|
25
|
+
})(CubeDirectDatabaseType || (CubeDirectDatabaseType = {}));
|
|
26
|
+
/** How a database is reached, as the page shows it */
|
|
27
|
+
export var CubeConnectionDatasourceKind;
|
|
28
|
+
(function (CubeConnectionDatasourceKind) {
|
|
29
|
+
/** An H2 database the engine creates in its own H2 server */
|
|
30
|
+
CubeConnectionDatasourceKind["LOCAL_H2"] = "LOCAL_H2";
|
|
31
|
+
CubeConnectionDatasourceKind["DUCKDB_IN_MEMORY"] = "DUCKDB_IN_MEMORY";
|
|
32
|
+
CubeConnectionDatasourceKind["DUCKDB_FILE"] = "DUCKDB_FILE";
|
|
33
|
+
})(CubeConnectionDatasourceKind || (CubeConnectionDatasourceKind = {}));
|
|
34
|
+
//# sourceMappingURL=CubeConnectionExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeConnectionExplorer.js","sourceRoot":"","sources":["../../src/graph-manager/CubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,2EAA2E;AAC3E,8EAA8E;AAC9E,kEAAkE;AAClE,4CAA4C;AAE5C,6DAA6D;AAC7D,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mCAAS,CAAA;IACT,2CAAiB,CAAA;AACnB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAWD,sDAAsD;AACtD,MAAM,CAAN,IAAY,4BAKX;AALD,WAAY,4BAA4B;IACtC,6DAA6D;IAC7D,qDAAqB,CAAA;IACrB,qEAAqC,CAAA;IACrC,2DAA2B,CAAA;AAC7B,CAAC,EALW,4BAA4B,KAA5B,4BAA4B,QAKvC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 { ModelContext } from '@finos/legend-cube';
|
|
17
|
+
/** The kind of a data product cube's model: Cube's own, never an engine model kind */
|
|
18
|
+
export declare const CUBE_DATA_PRODUCT_MODEL_TYPE = "cubeDataProduct";
|
|
19
|
+
/** The runtime a data product cube runs with, in a package of Cube's own */
|
|
20
|
+
export declare const CUBE_DATA_PRODUCT_RUNTIME_PATH = "cube::dataProduct::Runtime";
|
|
21
|
+
/** The warehouse a run uses when neither the cube nor the viewer has one (PLAN §6.8) */
|
|
22
|
+
export declare const CUBE_DEFAULT_CONSUMER_WAREHOUSE = "LAKEHOUSE_CONSUMER_DEFAULT_WH";
|
|
23
|
+
/**
|
|
24
|
+
* The deployment classes Cube reads data products from: production and
|
|
25
|
+
* production-parallel, as Data Cube's selection offers. Development
|
|
26
|
+
* deployments are not supported in this phase (user, 2026-10-09)
|
|
27
|
+
*/
|
|
28
|
+
export declare enum CubeDataProductEnvironmentType {
|
|
29
|
+
PRODUCTION = "PRODUCTION",
|
|
30
|
+
PRODUCTION_PARALLEL = "PRODUCTION_PARALLEL"
|
|
31
|
+
}
|
|
32
|
+
/** What a data product cube's model holds */
|
|
33
|
+
export interface CubeDataProductProject {
|
|
34
|
+
readonly groupId: string;
|
|
35
|
+
readonly artifactId: string;
|
|
36
|
+
/** The version the data products were deployed from, as the catalog gave it */
|
|
37
|
+
readonly versionId: string;
|
|
38
|
+
readonly environmentType: CubeDataProductEnvironmentType;
|
|
39
|
+
/** The warehouse the cube runs on; none until one is picked */
|
|
40
|
+
readonly warehouse?: string | undefined;
|
|
41
|
+
}
|
|
42
|
+
/** The model of a data product cube */
|
|
43
|
+
export declare const createCubeDataProductModel: (project: CubeDataProductProject) => ModelContext;
|
|
44
|
+
export declare const isCubeDataProductModel: (model: ModelContext) => boolean;
|
|
45
|
+
/** Whether a version moves: a SNAPSHOT's data and columns may change under a cube */
|
|
46
|
+
export declare const isCubeSnapshotVersion: (versionId: string) => boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The model with another warehouse; every other key is kept, including ones
|
|
49
|
+
* a later version saved, which a cube keeps as they are
|
|
50
|
+
*/
|
|
51
|
+
export declare const withCubeDataProductWarehouse: (model: ModelContext, warehouse: string) => ModelContext;
|
|
52
|
+
/**
|
|
53
|
+
* Why Cube can't run a data product model, in words a user can act on; none
|
|
54
|
+
* when it can. A saved model is checked before every use: it may have been
|
|
55
|
+
* written by hand or by a later version
|
|
56
|
+
*/
|
|
57
|
+
export declare const checkCubeDataProductModel: (model: ModelContext) => readonly string[];
|
|
58
|
+
/** The project of a data product model Cube can run; undefined for any other model */
|
|
59
|
+
export declare const getCubeDataProductProject: (model: ModelContext) => CubeDataProductProject | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* The warehouse a run uses (PLAN §6.8, DP-2): the cube's own, else the one
|
|
62
|
+
* the viewer last picked, else the default consumer warehouse. Shown and sent
|
|
63
|
+
* alike, so the page shows what runs
|
|
64
|
+
*/
|
|
65
|
+
export declare const getEffectiveCubeWarehouse: (project: Pick<CubeDataProductProject, "warehouse">, rememberedWarehouse: string | undefined) => string;
|
|
66
|
+
//# sourceMappingURL=CubeDataProduct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDataProduct.d.ts","sourceRoot":"","sources":["../../src/graph-manager/CubeDataProduct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAE9D,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAE3E,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E;;;;GAIG;AACH,oBAAY,8BAA8B;IACxC,UAAU,eAAe;IACzB,mBAAmB,wBAAwB;CAC5C;AAKD,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,8BAA8B,CAAC;IACzD,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AASD,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,GACrC,SAAS,sBAAsB,KAC9B,YAUiB,CAAC;AAErB,eAAO,MAAM,sBAAsB,GAAI,OAAO,YAAY,KAAG,OACf,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,KAAG,OACzB,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,YAAY,EACnB,WAAW,MAAM,KAChB,YAAyC,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,YAAY,KAClB,SAAS,MAAM,EAkBjB,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,GACpC,OAAO,YAAY,KAClB,sBAAsB,GAAG,SAUb,CAAC;AAEhB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,EAClD,qBAAqB,MAAM,GAAG,SAAS,KACtC,MAImC,CAAC"}
|
|
@@ -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
|
+
// A data product cube (PLAN §6.8, DP-1) saves its project once, as its
|
|
17
|
+
// model: the project and the version its data products were deployed from,
|
|
18
|
+
// the environment type and, once picked, the warehouse. The engine's
|
|
19
|
+
// implementation builds, for each run, the project at that version and a
|
|
20
|
+
// lakehouse runtime at a fixed path, which the saved runtime names
|
|
21
|
+
/** The kind of a data product cube's model: Cube's own, never an engine model kind */
|
|
22
|
+
export const CUBE_DATA_PRODUCT_MODEL_TYPE = 'cubeDataProduct';
|
|
23
|
+
/** The runtime a data product cube runs with, in a package of Cube's own */
|
|
24
|
+
export const CUBE_DATA_PRODUCT_RUNTIME_PATH = 'cube::dataProduct::Runtime';
|
|
25
|
+
/** The warehouse a run uses when neither the cube nor the viewer has one (PLAN §6.8) */
|
|
26
|
+
export const CUBE_DEFAULT_CONSUMER_WAREHOUSE = 'LAKEHOUSE_CONSUMER_DEFAULT_WH';
|
|
27
|
+
/**
|
|
28
|
+
* The deployment classes Cube reads data products from: production and
|
|
29
|
+
* production-parallel, as Data Cube's selection offers. Development
|
|
30
|
+
* deployments are not supported in this phase (user, 2026-10-09)
|
|
31
|
+
*/
|
|
32
|
+
export var CubeDataProductEnvironmentType;
|
|
33
|
+
(function (CubeDataProductEnvironmentType) {
|
|
34
|
+
CubeDataProductEnvironmentType["PRODUCTION"] = "PRODUCTION";
|
|
35
|
+
CubeDataProductEnvironmentType["PRODUCTION_PARALLEL"] = "PRODUCTION_PARALLEL";
|
|
36
|
+
})(CubeDataProductEnvironmentType || (CubeDataProductEnvironmentType = {}));
|
|
37
|
+
/** The wire name of the development class, which Cube refuses by name */
|
|
38
|
+
const DEVELOPMENT_ENVIRONMENT_TYPE = 'DEVELOPMENT';
|
|
39
|
+
const ENVIRONMENT_TYPES = Object.values(CubeDataProductEnvironmentType);
|
|
40
|
+
const isNonEmptyString = (value) => typeof value === 'string' && value.length > 0;
|
|
41
|
+
/** The model of a data product cube */
|
|
42
|
+
export const createCubeDataProductModel = (project) => ({
|
|
43
|
+
_type: CUBE_DATA_PRODUCT_MODEL_TYPE,
|
|
44
|
+
groupId: project.groupId,
|
|
45
|
+
artifactId: project.artifactId,
|
|
46
|
+
versionId: project.versionId,
|
|
47
|
+
environmentType: project.environmentType,
|
|
48
|
+
...(project.warehouse !== undefined
|
|
49
|
+
? { warehouse: project.warehouse }
|
|
50
|
+
: {}),
|
|
51
|
+
});
|
|
52
|
+
export const isCubeDataProductModel = (model) => model._type === CUBE_DATA_PRODUCT_MODEL_TYPE;
|
|
53
|
+
/** Whether a version moves: a SNAPSHOT's data and columns may change under a cube */
|
|
54
|
+
export const isCubeSnapshotVersion = (versionId) => versionId.endsWith('-SNAPSHOT');
|
|
55
|
+
/**
|
|
56
|
+
* The model with another warehouse; every other key is kept, including ones
|
|
57
|
+
* a later version saved, which a cube keeps as they are
|
|
58
|
+
*/
|
|
59
|
+
export const withCubeDataProductWarehouse = (model, warehouse) => ({ ...model, warehouse });
|
|
60
|
+
/**
|
|
61
|
+
* Why Cube can't run a data product model, in words a user can act on; none
|
|
62
|
+
* when it can. A saved model is checked before every use: it may have been
|
|
63
|
+
* written by hand or by a later version
|
|
64
|
+
*/
|
|
65
|
+
export const checkCubeDataProductModel = (model) => {
|
|
66
|
+
const problems = [];
|
|
67
|
+
['groupId', 'artifactId', 'versionId'].forEach((key) => {
|
|
68
|
+
if (!isNonEmptyString(model[key])) {
|
|
69
|
+
problems.push(`The data product's project has no ${key}`);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (model.environmentType === DEVELOPMENT_ENVIRONMENT_TYPE) {
|
|
73
|
+
problems.push(`Cube doesn't read development data products yet`);
|
|
74
|
+
}
|
|
75
|
+
else if (!ENVIRONMENT_TYPES.includes(model.environmentType)) {
|
|
76
|
+
problems.push(`Cube doesn't know the environment type "${String(model.environmentType)}"`);
|
|
77
|
+
}
|
|
78
|
+
if (model.warehouse !== undefined && !isNonEmptyString(model.warehouse)) {
|
|
79
|
+
problems.push(`The cube's warehouse must be a name`);
|
|
80
|
+
}
|
|
81
|
+
return problems;
|
|
82
|
+
};
|
|
83
|
+
/** The project of a data product model Cube can run; undefined for any other model */
|
|
84
|
+
export const getCubeDataProductProject = (model) => isCubeDataProductModel(model) && !checkCubeDataProductModel(model).length
|
|
85
|
+
? {
|
|
86
|
+
groupId: model.groupId,
|
|
87
|
+
artifactId: model.artifactId,
|
|
88
|
+
versionId: model.versionId,
|
|
89
|
+
environmentType: model.environmentType,
|
|
90
|
+
warehouse: model.warehouse,
|
|
91
|
+
}
|
|
92
|
+
: undefined;
|
|
93
|
+
/**
|
|
94
|
+
* The warehouse a run uses (PLAN §6.8, DP-2): the cube's own, else the one
|
|
95
|
+
* the viewer last picked, else the default consumer warehouse. Shown and sent
|
|
96
|
+
* alike, so the page shows what runs
|
|
97
|
+
*/
|
|
98
|
+
export const getEffectiveCubeWarehouse = (project, rememberedWarehouse) => project.warehouse ??
|
|
99
|
+
(isNonEmptyString(rememberedWarehouse)
|
|
100
|
+
? rememberedWarehouse
|
|
101
|
+
: CUBE_DEFAULT_CONSUMER_WAREHOUSE);
|
|
102
|
+
//# sourceMappingURL=CubeDataProduct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDataProduct.js","sourceRoot":"","sources":["../../src/graph-manager/CubeDataProduct.ts"],"names":[],"mappings":"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"}
|