@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
|
@@ -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 type { PlainObject } from '@finos/legend-shared';
|
|
17
|
+
import { CubeDirectDatabaseType, type CubeExploredTable } from '../../../CubeConnectionExplorer.js';
|
|
18
|
+
import { CubeEngineError, type CubeEngineErrorKind, type NodeId } from '../../../CubeEngine.js';
|
|
19
|
+
/** What one exploration asks for; names are as the database stores them */
|
|
20
|
+
export type V1_CubeExplorationScope =
|
|
21
|
+
/** The schema names, to test a connection */
|
|
22
|
+
{
|
|
23
|
+
kind: 'schemas';
|
|
24
|
+
}
|
|
25
|
+
/** A schema's tables and their columns, for the picker */
|
|
26
|
+
| {
|
|
27
|
+
kind: 'tables';
|
|
28
|
+
schema: string;
|
|
29
|
+
}
|
|
30
|
+
/** Some tables in full, to build the model a query runs on */
|
|
31
|
+
| {
|
|
32
|
+
kind: 'columns';
|
|
33
|
+
tables: readonly V1_CubeExploredTablePath[];
|
|
34
|
+
};
|
|
35
|
+
/** A table's schema and table names, as the database stores them */
|
|
36
|
+
export type V1_CubeExploredTablePath = readonly [schema: string, table: string];
|
|
37
|
+
/** Where the engine puts the Database it builds */
|
|
38
|
+
export interface V1_CubeExploredDatabasePath {
|
|
39
|
+
package: string;
|
|
40
|
+
name: string;
|
|
41
|
+
}
|
|
42
|
+
/** A name as the database stores it: the engine quotes some names, and Cube all of them */
|
|
43
|
+
export declare const V1_unquoteCubeName: (name: string) => string;
|
|
44
|
+
/** A name as a Database stores it; Pure can't quote a name holding a quote */
|
|
45
|
+
export declare const V1_quoteCubeName: (name: string) => string;
|
|
46
|
+
/** The request that reads part of a connection's database */
|
|
47
|
+
export declare const V1_buildCubeSchemaExplorationInput: (connection: PlainObject, databaseType: CubeDirectDatabaseType, database: V1_CubeExploredDatabasePath, scope: V1_CubeExplorationScope) => PlainObject;
|
|
48
|
+
/** The schema names a connection's database holds, for the picker */
|
|
49
|
+
export declare const V1_readExploredSchemaNames: (response: unknown) => readonly string[];
|
|
50
|
+
/** A schema's tables, for the picker; views are offered as tables */
|
|
51
|
+
export declare const V1_readExploredTables: (response: unknown, schema: string) => readonly CubeExploredTable[];
|
|
52
|
+
/**
|
|
53
|
+
* The Database a query runs on, holding exactly the tables asked for that the
|
|
54
|
+
* database has, and the tables it doesn't have: an answer without a table
|
|
55
|
+
* never stands for an empty one
|
|
56
|
+
*/
|
|
57
|
+
export declare const V1_buildExploredDatabase: (response: unknown, tables: readonly V1_CubeExploredTablePath[]) => {
|
|
58
|
+
database: PlainObject;
|
|
59
|
+
tables: readonly CubeExploredTable[];
|
|
60
|
+
missing: readonly V1_CubeExploredTablePath[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* The error of a failed exploration: the engine's message, led by what it
|
|
64
|
+
* means when the message alone says little. A network failure stays one
|
|
65
|
+
*/
|
|
66
|
+
export declare const V1_toCubeExplorationError: (error: unknown, kind: CubeEngineErrorKind, nodeId?: NodeId) => CubeEngineError;
|
|
67
|
+
//# sourceMappingURL=V1_CubeSchemaExploration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeSchemaExploration.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EAExB,KAAK,MAAM,EACZ,MAAM,wBAAwB,CAAC;AAehC,2EAA2E;AAC3E,MAAM,MAAM,uBAAuB;AACjC,6CAA6C;AAC3C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,0DAA0D;GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC,8DAA8D;GAC5D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAErE,oEAAoE;AACpE,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEhF,mDAAmD;AACnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAGxC,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAAqB,CAAC;AAsCtE,6DAA6D;AAC7D,eAAO,MAAM,kCAAkC,GAC7C,YAAY,WAAW,EACvB,cAAc,sBAAsB,EACpC,UAAU,2BAA2B,EACrC,OAAO,uBAAuB,KAC7B,WAqCF,CAAC;AA2CF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,GACrC,UAAU,OAAO,KAChB,SAAS,MAAM,EAG8C,CAAC;AAEjE,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,GAChC,UAAU,OAAO,EACjB,QAAQ,MAAM,KACb,SAAS,iBAAiB,EAO5B,CAAC;AAwBF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,OAAO,EACjB,QAAQ,SAAS,wBAAwB,EAAE,KAC1C;IACD,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAmC9C,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,OAAO,EACd,MAAM,mBAAmB,EACzB,SAAS,MAAM,KACd,eAgBF,CAAC"}
|
|
@@ -0,0 +1,238 @@
|
|
|
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 { CubeDirectDatabaseType, } from '../../../CubeConnectionExplorer.js';
|
|
17
|
+
import { CubeEngineError, CubeTableFlag, } from '../../../CubeEngine.js';
|
|
18
|
+
import { V1_toCubeEngineError } from './V1_CubeEngineErrors.js';
|
|
19
|
+
const ANY = '%';
|
|
20
|
+
/** Table functions are never read; this pattern only fills the request */
|
|
21
|
+
const FUNCTION_PATTERN = '_%';
|
|
22
|
+
const OTHER_TYPE = 'Other';
|
|
23
|
+
const CHAR_TYPE = 'Char';
|
|
24
|
+
/** Schemas of the database itself, matched in any case */
|
|
25
|
+
const SYSTEM_SCHEMAS = ['information_schema', 'pg_catalog'];
|
|
26
|
+
const asObject = (value) => value && typeof value === 'object' && !Array.isArray(value)
|
|
27
|
+
? value
|
|
28
|
+
: {};
|
|
29
|
+
const asList = (value) => Array.isArray(value) ? value : [];
|
|
30
|
+
const asString = (value) => typeof value === 'string' ? value : '';
|
|
31
|
+
/** A name as the database stores it: the engine quotes some names, and Cube all of them */
|
|
32
|
+
export const V1_unquoteCubeName = (name) => name.length >= 2 && name.startsWith('"') && name.endsWith('"')
|
|
33
|
+
? name.slice(1, -1)
|
|
34
|
+
: name;
|
|
35
|
+
/** A name as a Database stores it; Pure can't quote a name holding a quote */
|
|
36
|
+
export const V1_quoteCubeName = (name) => `"${name}"`;
|
|
37
|
+
/**
|
|
38
|
+
* A name as the database stores it, from the engine's answer: the engine
|
|
39
|
+
* quotes only a name holding a space or a colon (SchemaExportation's
|
|
40
|
+
* escapeString), so other quotes are the name's own
|
|
41
|
+
*/
|
|
42
|
+
const readEngineName = (name) => name.length >= 2 &&
|
|
43
|
+
name.startsWith('"') &&
|
|
44
|
+
name.endsWith('"') &&
|
|
45
|
+
/[ :]/u.test(name.slice(1, -1))
|
|
46
|
+
? name.slice(1, -1)
|
|
47
|
+
: name;
|
|
48
|
+
/**
|
|
49
|
+
* A name Cube can use: Pure can't write one holding a double quote, and the
|
|
50
|
+
* engine reads a backslash in a name as its pattern escape
|
|
51
|
+
*/
|
|
52
|
+
const isWritable = (name) => !name.includes('"') && !name.includes('\\');
|
|
53
|
+
const isSystemSchema = (name) => SYSTEM_SCHEMAS.includes(name.toLowerCase());
|
|
54
|
+
/**
|
|
55
|
+
* The pattern that finds a name. H2 upper-cases a pattern, so a name that
|
|
56
|
+
* isn't all upper case is found through '%' and picked out by Cube; DuckDB
|
|
57
|
+
* matches the name as it is (local evidence `sources-v2/db-direct/`)
|
|
58
|
+
*/
|
|
59
|
+
const patternFor = (databaseType, name) => databaseType === CubeDirectDatabaseType.H2 && name !== name.toUpperCase()
|
|
60
|
+
? ANY
|
|
61
|
+
: name;
|
|
62
|
+
/** The request that reads part of a connection's database */
|
|
63
|
+
export const V1_buildCubeSchemaExplorationInput = (connection, databaseType, database, scope) => {
|
|
64
|
+
const pattern = (schema, table) => ({
|
|
65
|
+
schemaPattern: schema,
|
|
66
|
+
tablePattern: table,
|
|
67
|
+
functionPattern: FUNCTION_PATTERN,
|
|
68
|
+
});
|
|
69
|
+
const config = scope.kind === 'schemas'
|
|
70
|
+
? {
|
|
71
|
+
enrichTables: false,
|
|
72
|
+
enrichColumns: false,
|
|
73
|
+
enrichPrimaryKeys: false,
|
|
74
|
+
patterns: [pattern(ANY, ANY)],
|
|
75
|
+
}
|
|
76
|
+
: scope.kind === 'tables'
|
|
77
|
+
? {
|
|
78
|
+
enrichTables: true,
|
|
79
|
+
enrichColumns: true,
|
|
80
|
+
enrichPrimaryKeys: false,
|
|
81
|
+
patterns: [pattern(patternFor(databaseType, scope.schema), ANY)],
|
|
82
|
+
}
|
|
83
|
+
: {
|
|
84
|
+
enrichTables: true,
|
|
85
|
+
enrichColumns: true,
|
|
86
|
+
enrichPrimaryKeys: true,
|
|
87
|
+
patterns: scope.tables.map(([schema, table]) => pattern(patternFor(databaseType, schema), patternFor(databaseType, table))),
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
connection,
|
|
91
|
+
targetDatabase: { package: database.package, name: database.name },
|
|
92
|
+
config: { ...config, enrichTableFunctions: false },
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/** The schemas of the one Database the engine returns */
|
|
96
|
+
const schemasOf = (response) => asList(asObject(asList(asObject(response).elements)[0]).schemas).map(asObject);
|
|
97
|
+
/** The tables of a schema, by name as the database stores them */
|
|
98
|
+
const tablesOf = (schema) => new Map(asList(schema.tables)
|
|
99
|
+
.map(asObject)
|
|
100
|
+
.map((table) => [readEngineName(asString(table.name)), table]));
|
|
101
|
+
/** A schema of the answer, by name as the database stores it */
|
|
102
|
+
const findSchema = (response, name) => schemasOf(response).find((schema) => readEngineName(asString(schema.name)) === name);
|
|
103
|
+
const isHidden = (column) => asString(asObject(column.type)._type) === OTHER_TYPE ||
|
|
104
|
+
!isWritable(readEngineName(asString(column.name)));
|
|
105
|
+
const describeTable = (name, table) => {
|
|
106
|
+
const columns = asList(table.columns).map(asObject);
|
|
107
|
+
const kept = columns.filter((column) => !isHidden(column));
|
|
108
|
+
return {
|
|
109
|
+
name,
|
|
110
|
+
storedName: V1_quoteCubeName(name),
|
|
111
|
+
columnCount: kept.length,
|
|
112
|
+
hiddenColumnCount: columns.length - kept.length,
|
|
113
|
+
// the engine types a CHAR(n) column with a length of 1
|
|
114
|
+
flags: kept.some((column) => asString(asObject(column.type)._type) === CHAR_TYPE)
|
|
115
|
+
? [CubeTableFlag.LENGTH_UNKNOWN]
|
|
116
|
+
: [],
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
/** The schema names a connection's database holds, for the picker */
|
|
120
|
+
export const V1_readExploredSchemaNames = (response) => schemasOf(response)
|
|
121
|
+
.map((schema) => readEngineName(asString(schema.name)))
|
|
122
|
+
.filter((name) => isWritable(name) && !isSystemSchema(name));
|
|
123
|
+
/** A schema's tables, for the picker; views are offered as tables */
|
|
124
|
+
export const V1_readExploredTables = (response, schema) => {
|
|
125
|
+
const found = findSchema(response, schema);
|
|
126
|
+
return found
|
|
127
|
+
? Array.from(tablesOf(found).entries())
|
|
128
|
+
.filter(([name]) => isWritable(name))
|
|
129
|
+
.map(([name, table]) => describeTable(name, table))
|
|
130
|
+
: [];
|
|
131
|
+
};
|
|
132
|
+
/** A table of the Database Cube builds: every name quoted, usable columns only */
|
|
133
|
+
const buildTable = (name, table) => {
|
|
134
|
+
const columns = asList(table.columns)
|
|
135
|
+
.map(asObject)
|
|
136
|
+
.filter((column) => !isHidden(column));
|
|
137
|
+
const columnNames = new Set(columns.map((column) => readEngineName(asString(column.name))));
|
|
138
|
+
return {
|
|
139
|
+
...table,
|
|
140
|
+
name: V1_quoteCubeName(name),
|
|
141
|
+
columns: columns.map((column) => ({
|
|
142
|
+
...column,
|
|
143
|
+
name: V1_quoteCubeName(readEngineName(asString(column.name))),
|
|
144
|
+
})),
|
|
145
|
+
primaryKey: asList(table.primaryKey)
|
|
146
|
+
.map((key) => readEngineName(asString(key)))
|
|
147
|
+
.filter((key) => columnNames.has(key))
|
|
148
|
+
.map(V1_quoteCubeName),
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* The Database a query runs on, holding exactly the tables asked for that the
|
|
153
|
+
* database has, and the tables it doesn't have: an answer without a table
|
|
154
|
+
* never stands for an empty one
|
|
155
|
+
*/
|
|
156
|
+
export const V1_buildExploredDatabase = (response, tables) => {
|
|
157
|
+
const element = asObject(asList(asObject(response).elements)[0]);
|
|
158
|
+
const schemas = new Map();
|
|
159
|
+
const explored = [];
|
|
160
|
+
const missing = [];
|
|
161
|
+
tables.forEach(([schemaName, tableName]) => {
|
|
162
|
+
const schema = findSchema(response, schemaName);
|
|
163
|
+
const table = schema ? tablesOf(schema).get(tableName) : undefined;
|
|
164
|
+
if (!table || !isWritable(schemaName) || !isWritable(tableName)) {
|
|
165
|
+
missing.push([schemaName, tableName]);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const built = schemas.get(schemaName) ?? [];
|
|
169
|
+
if (!built.some((existing) => existing.name === V1_quoteCubeName(tableName))) {
|
|
170
|
+
built.push(buildTable(tableName, table));
|
|
171
|
+
explored.push(describeTable(tableName, table));
|
|
172
|
+
}
|
|
173
|
+
schemas.set(schemaName, built);
|
|
174
|
+
});
|
|
175
|
+
return {
|
|
176
|
+
database: {
|
|
177
|
+
...element,
|
|
178
|
+
schemas: Array.from(schemas.entries()).map(([name, builtTables]) => ({
|
|
179
|
+
name: V1_quoteCubeName(name),
|
|
180
|
+
tables: builtTables,
|
|
181
|
+
views: [],
|
|
182
|
+
tabularFunctions: [],
|
|
183
|
+
})),
|
|
184
|
+
},
|
|
185
|
+
tables: explored,
|
|
186
|
+
missing,
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* What a failed exploration's engine message means, for the errors whose
|
|
191
|
+
* message alone says little (a bare `NullPointerException: `, a Java class
|
|
192
|
+
* name): matched on the message's first line
|
|
193
|
+
*/
|
|
194
|
+
const EXPLORATION_FAILURES = [
|
|
195
|
+
[
|
|
196
|
+
/InvalidTypeIdException/u,
|
|
197
|
+
"The engine doesn't know this kind of connection or authentication",
|
|
198
|
+
],
|
|
199
|
+
[
|
|
200
|
+
/UnrecognizedPropertyException/u,
|
|
201
|
+
"The engine doesn't recognize a property of the connection",
|
|
202
|
+
],
|
|
203
|
+
[
|
|
204
|
+
/NullPointerException/u,
|
|
205
|
+
"The engine couldn't open the connection: its authentication may be missing or unresolved",
|
|
206
|
+
],
|
|
207
|
+
[
|
|
208
|
+
/ConnectException|Connection refused/u,
|
|
209
|
+
"The engine couldn't reach the database",
|
|
210
|
+
],
|
|
211
|
+
[
|
|
212
|
+
/Maximum number of tables/u,
|
|
213
|
+
'The database has too many tables to read at once',
|
|
214
|
+
],
|
|
215
|
+
[
|
|
216
|
+
/must not end with escape character|LIKE ESCAPE/u,
|
|
217
|
+
"A schema or table name ends with a backslash, which Cube can't read",
|
|
218
|
+
],
|
|
219
|
+
[
|
|
220
|
+
/SQLException|SQL statement|Parser Error/u,
|
|
221
|
+
"The database refused a statement: check the connection's setup SQL",
|
|
222
|
+
],
|
|
223
|
+
];
|
|
224
|
+
/**
|
|
225
|
+
* The error of a failed exploration: the engine's message, led by what it
|
|
226
|
+
* means when the message alone says little. A network failure stays one
|
|
227
|
+
*/
|
|
228
|
+
export const V1_toCubeExplorationError = (error, kind, nodeId) => {
|
|
229
|
+
const engineError = V1_toCubeEngineError(error, nodeId, kind);
|
|
230
|
+
if (engineError.kind !== kind) {
|
|
231
|
+
return engineError;
|
|
232
|
+
}
|
|
233
|
+
const meaning = EXPLORATION_FAILURES.find(([pattern]) => pattern.test(engineError.firstLine))?.[1];
|
|
234
|
+
return meaning
|
|
235
|
+
? new CubeEngineError(kind, `${meaning}\n${engineError.detail}`, engineError.nodeId, engineError.role)
|
|
236
|
+
: engineError;
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=V1_CubeSchemaExploration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeSchemaExploration.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
+
import { V1_EngineServerClient } from '@finos/legend-graph';
|
|
17
|
+
import type { TracerService } from '@finos/legend-shared';
|
|
18
|
+
import type { CubeConnectionDescription, CubeConnectionDraft, CubeConnectionExplorer, CubeDirectConnection, CubeExploredTable } from '../../../CubeConnectionExplorer.js';
|
|
19
|
+
import type { V1_CubeEngineConfig } from './V1_LegendCubeEngine.js';
|
|
20
|
+
/**
|
|
21
|
+
* The Legend implementation of the connection explorer (PLAN §6.8): the
|
|
22
|
+
* engine's schema exploration, with its own client. Connections are checked
|
|
23
|
+
* first, so one Cube can't use never reaches the engine
|
|
24
|
+
*/
|
|
25
|
+
export declare class V1_LegendCubeConnectionExplorer implements CubeConnectionExplorer {
|
|
26
|
+
readonly client: V1_EngineServerClient;
|
|
27
|
+
constructor(config: V1_CubeEngineConfig, tracerService: TracerService);
|
|
28
|
+
buildConnection(draft: CubeConnectionDraft): CubeDirectConnection;
|
|
29
|
+
describeConnection(connection: CubeDirectConnection): CubeConnectionDescription;
|
|
30
|
+
listSchemas(connection: CubeDirectConnection): Promise<readonly string[]>;
|
|
31
|
+
listTables(connection: CubeDirectConnection, schema: string): Promise<readonly CubeExploredTable[]>;
|
|
32
|
+
private explore;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=V1_LegendCubeConnectionExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_LegendCubeConnectionExplorer.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAEpB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAc5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKpE;;;;GAIG;AACH,qBAAa,+BAAgC,YAAW,sBAAsB;IAC5E,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;gBAE3B,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa;IAKrE,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAIjE,kBAAkB,CAChB,UAAU,EAAE,oBAAoB,GAC/B,yBAAyB;IAUtB,WAAW,CACf,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAMvB,UAAU,CACd,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;YAO1B,OAAO;CAwBtB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { V1_EngineServerClient } from '@finos/legend-graph';
|
|
17
|
+
import { CubeEngineError, CubeEngineErrorKind } from '../../../CubeEngine.js';
|
|
18
|
+
import { V1_buildCubeDirectConnection, V1_checkCubeDirectConnection, V1_summarizeCubeDirectConnection, } from './V1_CubeDirectConnection.js';
|
|
19
|
+
import { V1_buildCubeSchemaExplorationInput, V1_readExploredSchemaNames, V1_readExploredTables, V1_toCubeExplorationError, } from './V1_CubeSchemaExploration.js';
|
|
20
|
+
/** Where the engine puts the Database it reads for the picker: never saved */
|
|
21
|
+
const EXPLORED_DATABASE = { package: 'cube::explored', name: 'Database' };
|
|
22
|
+
/**
|
|
23
|
+
* The Legend implementation of the connection explorer (PLAN §6.8): the
|
|
24
|
+
* engine's schema exploration, with its own client. Connections are checked
|
|
25
|
+
* first, so one Cube can't use never reaches the engine
|
|
26
|
+
*/
|
|
27
|
+
export class V1_LegendCubeConnectionExplorer {
|
|
28
|
+
client;
|
|
29
|
+
constructor(config, tracerService) {
|
|
30
|
+
this.client = new V1_EngineServerClient(config);
|
|
31
|
+
this.client.setTracerService(tracerService);
|
|
32
|
+
}
|
|
33
|
+
buildConnection(draft) {
|
|
34
|
+
return V1_buildCubeDirectConnection(draft);
|
|
35
|
+
}
|
|
36
|
+
describeConnection(connection) {
|
|
37
|
+
const problems = V1_checkCubeDirectConnection(connection);
|
|
38
|
+
return problems.length
|
|
39
|
+
? { supported: false, problems }
|
|
40
|
+
: {
|
|
41
|
+
supported: true,
|
|
42
|
+
summary: V1_summarizeCubeDirectConnection(connection),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async listSchemas(connection) {
|
|
46
|
+
return V1_readExploredSchemaNames(await this.explore(connection, { kind: 'schemas' }));
|
|
47
|
+
}
|
|
48
|
+
async listTables(connection, schema) {
|
|
49
|
+
return V1_readExploredTables(await this.explore(connection, { kind: 'tables', schema }), schema);
|
|
50
|
+
}
|
|
51
|
+
async explore(connection, scope) {
|
|
52
|
+
const problems = V1_checkCubeDirectConnection(connection);
|
|
53
|
+
if (problems.length) {
|
|
54
|
+
throw new CubeEngineError(CubeEngineErrorKind.COMPILE, problems.join('\n'));
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
return await this.client.buildDatabase(V1_buildCubeSchemaExplorationInput(connection, connection.databaseType, EXPLORED_DATABASE, scope));
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw V1_toCubeExplorationError(error, CubeEngineErrorKind.COMPILE);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=V1_LegendCubeConnectionExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_LegendCubeConnectionExplorer.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAU5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAGvC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,OAAO,+BAA+B;IACjC,MAAM,CAAwB;IAEvC,YAAY,MAA2B,EAAE,aAA4B;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,KAA0B;QACxC,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAChB,UAAgC;QAEhC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,MAAM;YACpB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;YAChC,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,gCAAgC,CAAC,UAAU,CAAC;aACtD,CAAC;IACR,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAgC;QAEhC,OAAO,0BAA0B,CAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAgC,EAChC,MAAc;QAEd,OAAO,qBAAqB,CAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAC1D,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,UAAgC,EAChC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,OAAO,EAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CACpC,kCAAkC,CAChC,UAAU,EACV,UAAU,CAAC,YAAsC,EACjD,iBAAiB,EACjB,KAAK,CACN,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import type { Schema } from '@finos/legend-cube';
|
|
17
|
+
import { type DepotServerClient } from '@finos/legend-server-depot';
|
|
18
|
+
import type { LakehouseContractServerClient } from '@finos/legend-server-lakehouse';
|
|
19
|
+
import { type MarketplaceServerClient } from '@finos/legend-server-marketplace';
|
|
20
|
+
import { type CubeDataProductProject, CubeDataProductEnvironmentType } from '../../../CubeDataProduct.js';
|
|
21
|
+
import { CubeAccessPointGroupAccess, type CubeAccessPointLocation, type CubeDataProductCatalog, type CubeMarketplaceLinkTarget, CubeDataProductCandidate, type CubeDataProductDescription } from '../../../CubeDataProductCatalog.js';
|
|
22
|
+
import { CubeEngineError, type NodeId } from '../../../CubeEngine.js';
|
|
23
|
+
import { type V1_CubeEnterpriseStereotype } from './V1_CubeDataProductArtifact.js';
|
|
24
|
+
export declare const V1_CUBE_DATA_PRODUCT_LIST_ERROR: {
|
|
25
|
+
readonly UNREADABLE_PAGE: "The lakehouse's answer isn't a page of data products";
|
|
26
|
+
readonly NO_CURSOR: "The lakehouse said more data products follow, but not where the next page starts";
|
|
27
|
+
readonly REPEATED_CURSOR: "The lakehouse sent the same page of data products twice";
|
|
28
|
+
readonly TOO_MANY_PAGES: "The lakehouse's data product list runs past 50 pages";
|
|
29
|
+
};
|
|
30
|
+
export declare const V1_CUBE_DATA_PRODUCT_SEARCH_ERROR: {
|
|
31
|
+
readonly UNREADABLE_PAGE: "The marketplace's answer isn't a page of search results";
|
|
32
|
+
};
|
|
33
|
+
/** What a host can add to the catalog: each part turns on what it serves */
|
|
34
|
+
export interface V1_CubeDataProductCatalogOptions {
|
|
35
|
+
/** The marketplace's search API; with it, searches run there */
|
|
36
|
+
readonly marketplaceServerClient?: MarketplaceServerClient | undefined;
|
|
37
|
+
/** Builds a product's marketplace page, as the host's marketplace names it */
|
|
38
|
+
readonly marketplaceLink?: ((target: CubeMarketplaceLinkTarget) => string | undefined) | undefined;
|
|
39
|
+
/** The viewer, whose contracts give their access to each group */
|
|
40
|
+
readonly getCurrentUser?: (() => string) | undefined;
|
|
41
|
+
/** The stereotype the host's marketplace marks groups open to everyone with */
|
|
42
|
+
readonly enterpriseStereotype?: V1_CubeEnterpriseStereotype | undefined;
|
|
43
|
+
}
|
|
44
|
+
export declare class V1_LegendCubeDataProductCatalog implements CubeDataProductCatalog {
|
|
45
|
+
readonly environmentTypes: CubeDataProductEnvironmentType[];
|
|
46
|
+
private readonly contractServerClient;
|
|
47
|
+
private readonly depotServerClient;
|
|
48
|
+
private readonly getAccessToken;
|
|
49
|
+
private readonly options;
|
|
50
|
+
/** Each class's list, read once per page visit */
|
|
51
|
+
private readonly lists;
|
|
52
|
+
/** Each product's description, by its project, version and path */
|
|
53
|
+
private readonly descriptions;
|
|
54
|
+
/** The search answers whose page leaves out matches */
|
|
55
|
+
private readonly cutShortAnswers;
|
|
56
|
+
constructor(contractServerClient: LakehouseContractServerClient, depotServerClient: DepotServerClient, getAccessToken: () => string | undefined, options?: V1_CubeDataProductCatalogOptions);
|
|
57
|
+
get searchesOnServer(): boolean;
|
|
58
|
+
get searchLimit(): number | undefined;
|
|
59
|
+
isCutShort(answer: readonly CubeDataProductCandidate[]): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The class's lite rows, page by page along the lakehouse's cursor. Stops
|
|
62
|
+
* with an error on a page that isn't one, on a missing or repeated cursor,
|
|
63
|
+
* or past the page cap, and between pages once the search is dropped.
|
|
64
|
+
*/
|
|
65
|
+
private readLiteRows;
|
|
66
|
+
/**
|
|
67
|
+
* The class's list, read once per page visit. A list whose search is
|
|
68
|
+
* dropped while it pages is forgotten at once, so the next search reads it
|
|
69
|
+
* again rather than waiting on the stopped one.
|
|
70
|
+
*/
|
|
71
|
+
private listOf;
|
|
72
|
+
/** The class's list, along its pages; a stopped one fails with why it was stopped */
|
|
73
|
+
private readList;
|
|
74
|
+
/**
|
|
75
|
+
* The products the marketplace matches, in its order: the first page of a
|
|
76
|
+
* full text search in the class. A failed search fails; it never falls
|
|
77
|
+
* back to the lakehouse's list
|
|
78
|
+
*/
|
|
79
|
+
private searchMarketplace;
|
|
80
|
+
search(search: {
|
|
81
|
+
text: string;
|
|
82
|
+
environmentType: CubeDataProductEnvironmentType;
|
|
83
|
+
}, signal?: AbortSignal): Promise<readonly CubeDataProductCandidate[]>;
|
|
84
|
+
/** The product's deployed artifact: the generation file at its path */
|
|
85
|
+
private readArtifact;
|
|
86
|
+
/** The product's definition at the deployed version */
|
|
87
|
+
private readDefinition;
|
|
88
|
+
describe(candidate: CubeDataProductCandidate): Promise<CubeDataProductDescription>;
|
|
89
|
+
resolveSchemas(project: CubeDataProductProject, sources: ReadonlyMap<NodeId, CubeAccessPointLocation>, options?: {
|
|
90
|
+
readonly fresh?: boolean | undefined;
|
|
91
|
+
}): Promise<Map<NodeId, Schema | CubeEngineError>>;
|
|
92
|
+
/** The product's page in the host's marketplace, as the host builds it; none without one */
|
|
93
|
+
getMarketplaceLink(target: CubeMarketplaceLinkTarget): string | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* The viewer's access to each of the product's groups, as the marketplace
|
|
96
|
+
* shows it, from the viewer's contracts, read afresh each time: a group
|
|
97
|
+
* marked open to everyone needs none; otherwise the contract for that
|
|
98
|
+
* group of this deployment furthest along approval. A group with no
|
|
99
|
+
* contract has no access only when the host marks open groups, since it
|
|
100
|
+
* might be one otherwise
|
|
101
|
+
*/
|
|
102
|
+
getAccess(candidate: CubeDataProductCandidate, signal?: AbortSignal): Promise<ReadonlyMap<string, CubeAccessPointGroupAccess>>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=V1_LegendCubeDataProductCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_LegendCubeDataProductCatalog.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts"],"names":[],"mappings":"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"}
|