@finos/legend-cube-builder 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -1
- package/docs/adding-an-operation.md +181 -0
- package/docs/hosting.md +157 -0
- package/docs/testing.md +188 -0
- package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
- package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeCommand.js +5 -0
- package/lib/__lib__/LegendCubeCommand.js.map +1 -1
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeHelpText.js +21 -3
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
- package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
- package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeLabels.d.ts +95 -3
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +121 -4
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
- package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
- package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +1 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts +18 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +51 -0
- package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +67 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubePageTestUtils.js +25 -1
- package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.js +9 -1
- package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.js +21 -2
- package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
- package/lib/components/CubeAddItems.d.ts +35 -0
- package/lib/components/CubeAddItems.d.ts.map +1 -0
- package/lib/components/CubeAddItems.js +82 -0
- package/lib/components/CubeAddItems.js.map +1 -0
- package/lib/components/CubeEditor.d.ts +5 -1
- package/lib/components/CubeEditor.d.ts.map +1 -1
- package/lib/components/CubeEditor.js +33 -13
- package/lib/components/CubeEditor.js.map +1 -1
- package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
- package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
- package/lib/components/CubeEntrySourceBanner.js +32 -0
- package/lib/components/CubeEntrySourceBanner.js.map +1 -0
- package/lib/components/CubeNodeIcon.d.ts.map +1 -1
- package/lib/components/CubeNodeIcon.js +19 -2
- package/lib/components/CubeNodeIcon.js.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
- package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
- package/lib/components/CubeSchemaColumnsTable.js +6 -0
- package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
- package/lib/components/canvas/CubeCanvas.d.ts +4 -3
- package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvas.js +33 -12
- package/lib/components/canvas/CubeCanvas.js.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
- package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
- package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.js +14 -9
- package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts +2 -0
- package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +8 -4
- package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.js +30 -17
- package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
- package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.js +41 -0
- package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
- package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
- package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnPicker.js +9 -4
- package/lib/components/editors/CubeColumnPicker.js.map +1 -1
- package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
- package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeConcatEditor.js +147 -0
- package/lib/components/editors/CubeConcatEditor.js.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.js +29 -0
- package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.js +24 -0
- package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExtendEditor.js +86 -0
- package/lib/components/editors/CubeExtendEditor.js.map +1 -0
- package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeFilterEditor.js +3 -3
- package/lib/components/editors/CubeFilterEditor.js.map +1 -1
- package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
- package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeGroupEditor.js +70 -0
- package/lib/components/editors/CubeGroupEditor.js.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
- package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeIntegerField.d.ts +29 -0
- package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
- package/lib/components/editors/CubeIntegerField.js +30 -0
- package/lib/components/editors/CubeIntegerField.js.map +1 -0
- package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +15 -37
- package/lib/components/editors/CubeJoinEditor.js.map +1 -1
- package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
- package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
- package/lib/components/editors/CubeJoinKeyRows.js +65 -0
- package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
- package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
- package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
- package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
- package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
- package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
- package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
- package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
- package/lib/components/editors/CubePartitionEditor.js +93 -0
- package/lib/components/editors/CubePartitionEditor.js.map +1 -0
- package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
- package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRenameEditor.js +60 -0
- package/lib/components/editors/CubeRenameEditor.js.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.js +23 -0
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.js +38 -0
- package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
- package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
- package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSliceEditor.js +40 -0
- package/lib/components/editors/CubeSliceEditor.js.map +1 -0
- package/lib/components/editors/CubeSortEditor.d.ts +27 -0
- package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortEditor.js +45 -0
- package/lib/components/editors/CubeSortEditor.js.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.js +62 -0
- package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
- package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeSourceEditor.js +18 -6
- package/lib/components/editors/CubeSourceEditor.js.map +1 -1
- package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeValueEditor.js +2 -1
- package/lib/components/editors/CubeValueEditor.js.map +1 -1
- package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
- package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
- package/lib/components/editors/CubeWarehouseControl.js +44 -0
- package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.js +68 -0
- package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
- package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
- package/lib/components/grid/CubeGridRegion.js +20 -9
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +16 -0
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +44 -0
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeResultGrid.d.ts +14 -1
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +55 -7
- package/lib/components/grid/CubeResultGrid.js.map +1 -1
- package/lib/components/palette/CubePalette.d.ts.map +1 -1
- package/lib/components/palette/CubePalette.js +23 -12
- package/lib/components/palette/CubePalette.js.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDataProductTab.js +102 -0
- package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.js +66 -0
- package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
- package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
- package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
- package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
- package/lib/components/source-picker/CubePickerStep.js +23 -0
- package/lib/components/source-picker/CubePickerStep.js.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.js +50 -0
- package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
- package/lib/components/source-picker/CubeSourcePicker.js +20 -58
- package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
- package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
- package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
- package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
- package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProduct.js +102 -0
- package/lib/graph-manager/CubeDataProduct.js.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
- package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.js +48 -0
- package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/CubeEngine.d.ts +50 -2
- package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/CubeEngine.js +4 -1
- package/lib/graph-manager/CubeEngine.js.map +1 -1
- package/lib/graph-manager/CubeIngest.d.ts +50 -0
- package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngest.js +88 -0
- package/lib/graph-manager/CubeIngest.js.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.js +80 -0
- package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
- package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
- package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
- package/lib/graph-manager/CubeProject.d.ts +41 -0
- package/lib/graph-manager/CubeProject.d.ts.map +1 -0
- package/lib/graph-manager/CubeProject.js +84 -0
- package/lib/graph-manager/CubeProject.js.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.js +17 -0
- package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +56 -3
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +11 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/CubeAddPlacement.d.ts +32 -0
- package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
- package/lib/stores/CubeAddPlacement.js +40 -0
- package/lib/stores/CubeAddPlacement.js.map +1 -0
- package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
- package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRecheck.js +54 -0
- package/lib/stores/CubeDataProductRecheck.js.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.js +190 -0
- package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.js +25 -0
- package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
- package/lib/stores/CubeEditorState.d.ts +133 -19
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +433 -52
- package/lib/stores/CubeEditorState.js.map +1 -1
- package/lib/stores/CubeEntrySource.d.ts +78 -0
- package/lib/stores/CubeEntrySource.d.ts.map +1 -0
- package/lib/stores/CubeEntrySource.js +200 -0
- package/lib/stores/CubeEntrySource.js.map +1 -0
- package/lib/stores/CubeExamples.d.ts +43 -0
- package/lib/stores/CubeExamples.d.ts.map +1 -0
- package/lib/stores/CubeExamples.js +296 -0
- package/lib/stores/CubeExamples.js.map +1 -0
- package/lib/stores/CubeExamplesState.d.ts +45 -0
- package/lib/stores/CubeExamplesState.d.ts.map +1 -0
- package/lib/stores/CubeExamplesState.js +81 -0
- package/lib/stores/CubeExamplesState.js.map +1 -0
- package/lib/stores/CubeExecutionState.d.ts +6 -2
- package/lib/stores/CubeExecutionState.d.ts.map +1 -1
- package/lib/stores/CubeExecutionState.js +34 -8
- package/lib/stores/CubeExecutionState.js.map +1 -1
- package/lib/stores/CubeExtendTyping.d.ts +72 -0
- package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
- package/lib/stores/CubeExtendTyping.js +176 -0
- package/lib/stores/CubeExtendTyping.js.map +1 -0
- package/lib/stores/CubeGridQuickActions.d.ts +48 -0
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
- package/lib/stores/CubeGridQuickActions.js +124 -0
- package/lib/stores/CubeGridQuickActions.js.map +1 -0
- package/lib/stores/CubeHost.d.ts +32 -1
- package/lib/stores/CubeHost.d.ts.map +1 -1
- package/lib/stores/CubeHost.js +21 -1
- package/lib/stores/CubeHost.js.map +1 -1
- package/lib/stores/CubeIngestRecheck.d.ts +26 -0
- package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
- package/lib/stores/CubeIngestRecheck.js +53 -0
- package/lib/stores/CubeIngestRecheck.js.map +1 -0
- package/lib/stores/CubeNodeEditorState.d.ts +120 -6
- package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeNodeEditorState.js +275 -9
- package/lib/stores/CubeNodeEditorState.js.map +1 -1
- package/lib/stores/CubeShowPureState.d.ts +9 -3
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +28 -8
- package/lib/stores/CubeShowPureState.js.map +1 -1
- package/lib/stores/CubeSourcePickerState.d.ts +54 -65
- package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
- package/lib/stores/CubeSourcePickerState.js +155 -276
- package/lib/stores/CubeSourcePickerState.js.map +1 -1
- package/lib/stores/CubeSpecTransferState.d.ts +2 -2
- package/lib/stores/CubeSpecTransferState.js +2 -2
- package/lib/stores/LocalModelCatalog.d.ts +2 -0
- package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
- package/lib/stores/LocalModelCatalog.js +17 -3
- package/lib/stores/LocalModelCatalog.js.map +1 -1
- package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
- package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeAggregationRows.js +164 -0
- package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.js +44 -0
- package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
- package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.js +359 -0
- package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.js +106 -0
- package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
- package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
- package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
- package/lib/stores/editors/CubeIntegerText.js +33 -0
- package/lib/stores/editors/CubeIntegerText.js.map +1 -0
- package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
- package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeJoinDraft.js +109 -29
- package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
- package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
- package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraft.js +23 -5
- package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
- package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
- package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubePartitionDraft.js +154 -0
- package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.js +79 -0
- package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.js +73 -0
- package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.js +55 -0
- package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.js +72 -0
- package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
- package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortDraft.js +73 -0
- package/lib/stores/editors/CubeSortDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortRows.d.ts +34 -0
- package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortRows.js +50 -0
- package/lib/stores/editors/CubeSortRows.js.map +1 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
- package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
- package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
- package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
- package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSampleSql.js +64 -0
- package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.js +158 -0
- package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.js +197 -0
- package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
- package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
- package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
- package/package.json +12 -8
- package/src/__lib__/LegendCubeCommand.ts +5 -0
- package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
- package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
- package/src/__lib__/LegendCubeHelpText.ts +46 -2
- package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
- package/src/__lib__/LegendCubeLabels.ts +192 -4
- package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
- package/src/__lib__/LegendCubeTesting.ts +1 -0
- package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
- package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
- package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
- package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
- package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
- package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
- package/src/__test-utils__/CubeTestApplication.ts +21 -2
- package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
- package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
- package/src/__test-utils__/FakeCubeEngine.ts +32 -2
- package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
- package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
- package/src/components/CubeAddItems.tsx +179 -0
- package/src/components/CubeEditor.tsx +73 -44
- package/src/components/CubeEntrySourceBanner.tsx +64 -0
- package/src/components/CubeNodeIcon.tsx +31 -1
- package/src/components/CubeSchemaColumnsTable.tsx +49 -0
- package/src/components/canvas/CubeCanvas.tsx +51 -14
- package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
- package/src/components/canvas/CubeCanvasDnd.ts +16 -9
- package/src/components/canvas/CubeCanvasElements.ts +12 -3
- package/src/components/canvas/CubeCanvasNode.tsx +62 -36
- package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
- package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
- package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
- package/src/components/editors/CubeColumnChecklist.tsx +130 -0
- package/src/components/editors/CubeColumnPicker.tsx +36 -12
- package/src/components/editors/CubeConcatEditor.tsx +374 -0
- package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
- package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
- package/src/components/editors/CubeDistinctEditor.tsx +28 -0
- package/src/components/editors/CubeExtendEditor.tsx +271 -0
- package/src/components/editors/CubeFilterEditor.tsx +7 -0
- package/src/components/editors/CubeGroupEditor.tsx +135 -0
- package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
- package/src/components/editors/CubeIntegerField.tsx +51 -0
- package/src/components/editors/CubeJoinEditor.tsx +34 -131
- package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
- package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
- package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
- package/src/components/editors/CubePartitionEditor.tsx +208 -0
- package/src/components/editors/CubeRenameEditor.tsx +148 -0
- package/src/components/editors/CubeRestrictEditor.tsx +103 -0
- package/src/components/editors/CubeRowCountEditor.tsx +53 -0
- package/src/components/editors/CubeSliceEditor.tsx +69 -0
- package/src/components/editors/CubeSortEditor.tsx +84 -0
- package/src/components/editors/CubeSortRowEditor.tsx +176 -0
- package/src/components/editors/CubeSourceEditor.tsx +42 -40
- package/src/components/editors/CubeValueEditor.tsx +2 -1
- package/src/components/editors/CubeWarehouseControl.tsx +113 -0
- package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
- package/src/components/examples/CubeExamplesDialog.tsx +199 -0
- package/src/components/grid/CubeGridRegion.tsx +49 -10
- package/src/components/grid/CubeGridValues.ts +55 -0
- package/src/components/grid/CubeResultGrid.tsx +83 -13
- package/src/components/palette/CubePalette.tsx +33 -15
- package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
- package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
- package/src/components/source-picker/CubeIngestTab.tsx +232 -0
- package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
- package/src/components/source-picker/CubePickerStep.tsx +49 -0
- package/src/components/source-picker/CubeProjectTab.tsx +114 -0
- package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
- package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
- package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
- package/src/graph-manager/CubeDataProduct.ts +150 -0
- package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
- package/src/graph-manager/CubeDirectConnection.ts +67 -0
- package/src/graph-manager/CubeEngine.ts +57 -1
- package/src/graph-manager/CubeIngest.ts +144 -0
- package/src/graph-manager/CubeIngestCatalog.ts +169 -0
- package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
- package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
- package/src/graph-manager/CubeProject.ts +117 -0
- package/src/graph-manager/CubeProjectCatalog.ts +40 -0
- package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
- package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
- package/src/index.ts +20 -0
- package/src/stores/CubeAddPlacement.ts +67 -0
- package/src/stores/CubeDataProductRecheck.ts +93 -0
- package/src/stores/CubeDataProductRuntimeState.ts +256 -0
- package/src/stores/CubeDataProductWarehouse.ts +40 -0
- package/src/stores/CubeEditorState.ts +621 -68
- package/src/stores/CubeEntrySource.ts +278 -0
- package/src/stores/CubeExamples.ts +457 -0
- package/src/stores/CubeExamplesState.ts +108 -0
- package/src/stores/CubeExecutionState.ts +60 -8
- package/src/stores/CubeExtendTyping.ts +291 -0
- package/src/stores/CubeGridQuickActions.ts +184 -0
- package/src/stores/CubeHost.ts +71 -1
- package/src/stores/CubeIngestRecheck.ts +92 -0
- package/src/stores/CubeNodeEditorState.ts +348 -10
- package/src/stores/CubeShowPureState.ts +33 -8
- package/src/stores/CubeSourcePickerState.ts +160 -330
- package/src/stores/CubeSpecTransferState.ts +2 -2
- package/src/stores/LocalModelCatalog.ts +22 -3
- package/src/stores/editors/CubeAggregationRows.ts +299 -0
- package/src/stores/editors/CubeConcatDraft.ts +49 -0
- package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
- package/src/stores/editors/CubeExtendDraft.ts +532 -0
- package/src/stores/editors/CubeGroupDraft.ts +145 -0
- package/src/stores/editors/CubeIntegerText.ts +34 -0
- package/src/stores/editors/CubeJoinDraft.ts +170 -54
- package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
- package/src/stores/editors/CubeNodeDraft.ts +26 -6
- package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
- package/src/stores/editors/CubePartitionDraft.ts +214 -0
- package/src/stores/editors/CubeRenameDraft.ts +110 -0
- package/src/stores/editors/CubeRestrictDraft.ts +83 -0
- package/src/stores/editors/CubeRowCountDraft.ts +69 -0
- package/src/stores/editors/CubeSliceDraft.ts +87 -0
- package/src/stores/editors/CubeSortDraft.ts +98 -0
- package/src/stores/editors/CubeSortRows.ts +84 -0
- package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
- package/src/stores/fixtures/CubeSampleSql.ts +85 -0
- package/src/stores/fixtures/CubeSportsModel.ts +182 -0
- package/src/stores/fixtures/CubeTradesModel.ts +241 -0
- package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
- package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
- package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
- package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
- package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
- package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
- package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
- package/tsconfig.json +104 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Extend, type ExtendTyping, type IR, type JsonObject, type ModelContext, type NodeRegistry, type Query, QueryEmitter, type QueryRule, type Schema } from '@finos/legend-cube';
|
|
17
|
+
import { CubeEngineError, type NodeId } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
/** An engine message without the compiler's ` - Context:[…]` trail, which repeats what it was doing */
|
|
19
|
+
export declare const withoutEngineContext: (message: string) => string;
|
|
20
|
+
/** A column to type: its name, and its lambda, located in its text or not */
|
|
21
|
+
export interface CubeExtendTypingColumn {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly lambda: JsonObject;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The lambdas that type an Extend's columns, by key: the input's relation
|
|
27
|
+
* then the first k columns, for every k. A located lambda keeps its
|
|
28
|
+
* locations, so an error points into its text; a stored one is marked with
|
|
29
|
+
* the Extend, so an error lands on it. The input must be valid.
|
|
30
|
+
*/
|
|
31
|
+
export declare const buildCubeExtendTypingLambdas: (query: Query, extend: Extend, columns: readonly CubeExtendTypingColumn[], registry: NodeRegistry, located: boolean) => Map<NodeId, IR>;
|
|
32
|
+
/**
|
|
33
|
+
* What the engine is given for an Extend's input when it types it, digested
|
|
34
|
+
* (PLAN §11.7): the input's relation as emitted, and the model. A typing
|
|
35
|
+
* records it (`upstream`), since the engine sees more than Cube's schema
|
|
36
|
+
* does; `undefined` when the input can't be emitted, e.g. it is invalid.
|
|
37
|
+
*/
|
|
38
|
+
export declare const getCubeExtendUpstream: (emitter: QueryEmitter, extendId: string, model: ModelContext) => string | undefined;
|
|
39
|
+
/** The digest of what the engine was given for the input, which the typing recorded */
|
|
40
|
+
export declare const getCubeExtendTypingUpstream: (typing: ExtendTyping) => string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the Extend's typing gives its types for this input: typed, for
|
|
43
|
+
* this schema and these columns, and for this input as the engine is given
|
|
44
|
+
* it, or recorded without it, as when loaded
|
|
45
|
+
*/
|
|
46
|
+
export declare const isCubeExtendTypingCurrent: (extend: Extend, input: Schema, upstream: string | undefined) => boolean;
|
|
47
|
+
/**
|
|
48
|
+
* A query rule for the editor (PLAN §11.7): an Extend whose typing recorded
|
|
49
|
+
* another input than the engine would be given now waits to be typed again
|
|
50
|
+
* (`ERR_TYPING`), e.g. after an Extend above it gains `->toOne()`, which
|
|
51
|
+
* Cube's schema doesn't show. A typing that recorded nothing, as one loaded,
|
|
52
|
+
* is used as it is; an Extend that already waits, or whose input is invalid,
|
|
53
|
+
* is left to its own checks.
|
|
54
|
+
*/
|
|
55
|
+
export declare const createStaleCubeExtendTypingRule: (registry: NodeRegistry, modelOf: () => ModelContext | undefined) => QueryRule;
|
|
56
|
+
/** What typing an Extend gave: the typing to store, and the error the engine gave, if it failed */
|
|
57
|
+
export interface CubeExtendTypingResult {
|
|
58
|
+
readonly typing: ExtendTyping;
|
|
59
|
+
readonly error?: CubeEngineError | undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The typing the engine's answers give, for this input and these columns:
|
|
63
|
+
* every column's type, from the whole chain, else the first column whose
|
|
64
|
+
* chain fails, with the engine's error (a network failure on none)
|
|
65
|
+
*/
|
|
66
|
+
export declare const readCubeExtendTyping: (answers: ReadonlyMap<NodeId, Schema | CubeEngineError>, extend: Extend, input: Schema, columns: readonly CubeExtendTypingColumn[], upstream: string | undefined) => CubeExtendTypingResult;
|
|
67
|
+
/**
|
|
68
|
+
* Whether two typings say the same: the same kind, signature and input as
|
|
69
|
+
* the engine was given it, and the same types, or the same failure
|
|
70
|
+
*/
|
|
71
|
+
export declare const isSameCubeExtendTyping: (a: ExtendTyping, b: ExtendTyping) => boolean;
|
|
72
|
+
//# sourceMappingURL=CubeExtendTyping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExtendTyping.d.ts","sourceRoot":"","sources":["../../src/stores/CubeExtendTyping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,MAAM,EACN,KAAK,YAAY,EAIjB,KAAK,EAAE,EAEP,KAAK,UAAU,EAGf,KAAK,YAAY,EACjB,KAAK,YAAY,EAGjB,KAAK,KAAK,EACV,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,MAAM,EAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EAEf,KAAK,MAAM,EACZ,MAAM,gCAAgC,CAAC;AAOxC,uGAAuG;AACvG,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MACT,CAAC;AAE/C,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAMD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,KAAK,EACZ,QAAQ,MAAM,EACd,SAAS,SAAS,sBAAsB,EAAE,EAC1C,UAAU,YAAY,EACtB,SAAS,OAAO,KACf,GAAG,CAAC,MAAM,EAAE,EAAE,CAwBhB,CAAC;AAcF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,YAAY,EACrB,UAAU,MAAM,EAChB,OAAO,YAAY,KAClB,MAAM,GAAG,SAQX,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,2BAA2B,GACtC,QAAQ,YAAY,KACnB,MAAM,GAAG,SACgD,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,UAAU,MAAM,GAAG,SAAS,KAC3B,OAQF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAExC,UAAU,YAAY,EACtB,SAAS,MAAM,YAAY,GAAG,SAAS,KACtC,SAuBF,CAAC;AAEJ,mGAAmG;AACnG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,EACtD,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,SAAS,SAAS,sBAAsB,EAAE,EAC1C,UAAU,MAAM,GAAG,SAAS,KAC3B,sBAyCF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,GAAG,YAAY,EACf,GAAG,YAAY,KACd,OAsBF,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { buildSchemasAndValidity, colSpec, colSpecArray, EmitRole, ERR_TYPING, Extend, func, getExtendSignature, hashText, isTypingError, lambda, lambdaJson, originOf, printIR, QueryEmitter, stableJsonText, } from '@finos/legend-cube';
|
|
17
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
// Typing an Extend's columns with the engine (PLAN §11.7): its input's
|
|
19
|
+
// relation, as Cube types any node, then one extend per column. The whole
|
|
20
|
+
// chain gives every type; each shorter chain, typed with it, tells which
|
|
21
|
+
// column the engine fails on, since a stored lambda has no locations.
|
|
22
|
+
/** An engine message without the compiler's ` - Context:[…]` trail, which repeats what it was doing */
|
|
23
|
+
export const withoutEngineContext = (message) => message.replace(/ - Context:\[[^\n]*/gu, '');
|
|
24
|
+
/** The key of the lambda that types the first `count` columns */
|
|
25
|
+
const keyOf = (extendId, count) => `${extendId}#${count}`;
|
|
26
|
+
/**
|
|
27
|
+
* The lambdas that type an Extend's columns, by key: the input's relation
|
|
28
|
+
* then the first k columns, for every k. A located lambda keeps its
|
|
29
|
+
* locations, so an error points into its text; a stored one is marked with
|
|
30
|
+
* the Extend, so an error lands on it. The input must be valid.
|
|
31
|
+
*/
|
|
32
|
+
export const buildCubeExtendTypingLambdas = (query, extend, columns, registry, located) => {
|
|
33
|
+
const [inputId] = query.getInputIds(extend.id);
|
|
34
|
+
if (inputId === undefined) {
|
|
35
|
+
throw new Error(`Extend "${extend.id}" has no input to type it on`);
|
|
36
|
+
}
|
|
37
|
+
const input = new QueryEmitter(query, registry).emitRelation(inputId);
|
|
38
|
+
const lambdas = new Map();
|
|
39
|
+
columns.reduce((relation, column, index) => {
|
|
40
|
+
const extended = func('extend', [
|
|
41
|
+
relation,
|
|
42
|
+
colSpecArray([
|
|
43
|
+
colSpec(column.name, lambdaJson(column.lambda, located ? undefined : originOf(extend.id, EmitRole.EXPRESSION))),
|
|
44
|
+
]),
|
|
45
|
+
]);
|
|
46
|
+
lambdas.set(keyOf(extend.id, index + 1), lambda([], [extended]));
|
|
47
|
+
return extended;
|
|
48
|
+
}, input);
|
|
49
|
+
return lambdas;
|
|
50
|
+
};
|
|
51
|
+
/** Each model's digest, by the object, so a large model is digested once */
|
|
52
|
+
const MODEL_DIGESTS = new WeakMap();
|
|
53
|
+
const digestModel = (model) => {
|
|
54
|
+
let digest = MODEL_DIGESTS.get(model);
|
|
55
|
+
if (digest === undefined) {
|
|
56
|
+
digest = hashText(stableJsonText(model));
|
|
57
|
+
MODEL_DIGESTS.set(model, digest);
|
|
58
|
+
}
|
|
59
|
+
return digest;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* What the engine is given for an Extend's input when it types it, digested
|
|
63
|
+
* (PLAN §11.7): the input's relation as emitted, and the model. A typing
|
|
64
|
+
* records it (`upstream`), since the engine sees more than Cube's schema
|
|
65
|
+
* does; `undefined` when the input can't be emitted, e.g. it is invalid.
|
|
66
|
+
*/
|
|
67
|
+
export const getCubeExtendUpstream = (emitter, extendId, model) => {
|
|
68
|
+
const [inputId] = emitter.query.getInputIds(extendId);
|
|
69
|
+
if (inputId === undefined || !emitter.canEmit(inputId)) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return hashText(`${digestModel(model)}\n${printIR(emitter.emitRelation(inputId))}`);
|
|
73
|
+
};
|
|
74
|
+
/** The digest of what the engine was given for the input, which the typing recorded */
|
|
75
|
+
export const getCubeExtendTypingUpstream = (typing) => typing.kind === 'unresolved' ? undefined : typing.upstream;
|
|
76
|
+
const upstreamOf = getCubeExtendTypingUpstream;
|
|
77
|
+
/**
|
|
78
|
+
* Whether the Extend's typing gives its types for this input: typed, for
|
|
79
|
+
* this schema and these columns, and for this input as the engine is given
|
|
80
|
+
* it, or recorded without it, as when loaded
|
|
81
|
+
*/
|
|
82
|
+
export const isCubeExtendTypingCurrent = (extend, input, upstream) => {
|
|
83
|
+
const { typing } = extend;
|
|
84
|
+
const recorded = upstreamOf(typing);
|
|
85
|
+
return (typing.kind === 'typed' &&
|
|
86
|
+
extend.currentTyping(input) === typing &&
|
|
87
|
+
(recorded === undefined || recorded === upstream));
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* A query rule for the editor (PLAN §11.7): an Extend whose typing recorded
|
|
91
|
+
* another input than the engine would be given now waits to be typed again
|
|
92
|
+
* (`ERR_TYPING`), e.g. after an Extend above it gains `->toOne()`, which
|
|
93
|
+
* Cube's schema doesn't show. A typing that recorded nothing, as one loaded,
|
|
94
|
+
* is used as it is; an Extend that already waits, or whose input is invalid,
|
|
95
|
+
* is left to its own checks.
|
|
96
|
+
*/
|
|
97
|
+
export const createStaleCubeExtendTypingRule = (registry, modelOf) => (query) => {
|
|
98
|
+
const stale = new Map();
|
|
99
|
+
const model = modelOf();
|
|
100
|
+
const recorded = query.nodes.filter((node) => node instanceof Extend && upstreamOf(node.typing) !== undefined);
|
|
101
|
+
if (!model || !recorded.length) {
|
|
102
|
+
return stale;
|
|
103
|
+
}
|
|
104
|
+
const { validity } = buildSchemasAndValidity(query, registry.queryRules);
|
|
105
|
+
const emitter = new QueryEmitter(query, registry);
|
|
106
|
+
recorded.forEach((node) => {
|
|
107
|
+
if ((validity.get(node.id) ?? []).some(isTypingError)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const upstream = getCubeExtendUpstream(emitter, node.id, model);
|
|
111
|
+
if (upstream !== undefined && upstream !== upstreamOf(node.typing)) {
|
|
112
|
+
stale.set(node.id, [ERR_TYPING]);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return stale;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The typing the engine's answers give, for this input and these columns:
|
|
119
|
+
* every column's type, from the whole chain, else the first column whose
|
|
120
|
+
* chain fails, with the engine's error (a network failure on none)
|
|
121
|
+
*/
|
|
122
|
+
export const readCubeExtendTyping = (answers, extend, input, columns, upstream) => {
|
|
123
|
+
const signature = getExtendSignature(input, extend.columns);
|
|
124
|
+
const whole = answers.get(keyOf(extend.id, columns.length));
|
|
125
|
+
if (whole !== undefined && !(whole instanceof CubeEngineError)) {
|
|
126
|
+
return {
|
|
127
|
+
typing: {
|
|
128
|
+
kind: 'typed',
|
|
129
|
+
signature,
|
|
130
|
+
types: whole.columns
|
|
131
|
+
.slice(-columns.length)
|
|
132
|
+
.map((column) => column.type),
|
|
133
|
+
upstream,
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const failing = columns.findIndex((_, index) => answers.get(keyOf(extend.id, index + 1)) instanceof CubeEngineError);
|
|
138
|
+
const error = answers.get(keyOf(extend.id, failing + 1)) ??
|
|
139
|
+
new CubeEngineError(CubeEngineErrorKind.NETWORK, 'The engine gave no type for these columns', extend.id);
|
|
140
|
+
return {
|
|
141
|
+
typing: {
|
|
142
|
+
kind: 'failed',
|
|
143
|
+
signature,
|
|
144
|
+
message: withoutEngineContext(error.detail),
|
|
145
|
+
column: failing < 0 || error.kind === CubeEngineErrorKind.NETWORK
|
|
146
|
+
? undefined
|
|
147
|
+
: failing,
|
|
148
|
+
upstream,
|
|
149
|
+
},
|
|
150
|
+
error,
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Whether two typings say the same: the same kind, signature and input as
|
|
155
|
+
* the engine was given it, and the same types, or the same failure
|
|
156
|
+
*/
|
|
157
|
+
export const isSameCubeExtendTyping = (a, b) => {
|
|
158
|
+
if (upstreamOf(a) !== upstreamOf(b)) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
if (a.kind === 'typed' && b.kind === 'typed') {
|
|
162
|
+
return (a.signature === b.signature &&
|
|
163
|
+
a.types.length === b.types.length &&
|
|
164
|
+
a.types.every((type, index) => {
|
|
165
|
+
const other = b.types[index];
|
|
166
|
+
return other !== undefined && type.equals(other);
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
if (a.kind === 'failed' && b.kind === 'failed') {
|
|
170
|
+
return (a.signature === b.signature &&
|
|
171
|
+
a.message === b.message &&
|
|
172
|
+
a.column === b.column);
|
|
173
|
+
}
|
|
174
|
+
return a.kind === 'unresolved' && b.kind === 'unresolved';
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=CubeExtendTyping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExtendTyping.js","sourceRoot":"","sources":["../../src/stores/CubeExtendTyping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { CubeResultValue } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
import type { CubeEditorState } from './CubeEditorState.js';
|
|
19
|
+
/**
|
|
20
|
+
* The name of a Group by's Count rows: `Count Rows`, or with a number after it
|
|
21
|
+
* when an input column already has that name in any case, e.g. on a Group of
|
|
22
|
+
* a Group (PLAN §11.5)
|
|
23
|
+
*/
|
|
24
|
+
export declare const getGroupByCountName: (schema: Schema) => string;
|
|
25
|
+
/** One of the grid's quick actions on a cell (spec §12.4) */
|
|
26
|
+
export interface CubeGridQuickAction {
|
|
27
|
+
/** e.g. `Sort by "SHIP_COUNTRY"` */
|
|
28
|
+
readonly label: string;
|
|
29
|
+
/** Why it can't be used, its tooltip then; `undefined` when it can */
|
|
30
|
+
readonly disabledReason: string | undefined;
|
|
31
|
+
/** A note shown as its tooltip when it can be used, e.g. on comparing floats */
|
|
32
|
+
readonly hint: string | undefined;
|
|
33
|
+
/** Adds its node after the node that runs, as one undo step; nothing runs */
|
|
34
|
+
readonly apply: () => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The quick actions on a cell of the shown rows (spec §12.4, PLAN §11.4 and
|
|
38
|
+
* §11.5): "Sort by" adds an ascending Sort on the cell's column, "Group by" a
|
|
39
|
+
* Group by it with Count rows, and "Filter by" an Equal on its value (Is
|
|
40
|
+
* Empty on a null), after the node that runs, which they replace as the node
|
|
41
|
+
* that runs. All need the rows to be from the current query, no run in
|
|
42
|
+
* flight, and a cube that can change; "Sort by" and "Group by" a type that
|
|
43
|
+
* compares, and "Filter by" a value its column's type can compare.
|
|
44
|
+
* Read when the menu opens; `[]` when the position is not a column of the
|
|
45
|
+
* shown rows.
|
|
46
|
+
*/
|
|
47
|
+
export declare const getCubeGridQuickActions: (editorState: CubeEditorState, position: number, cell: CubeResultValue) => CubeGridQuickAction[];
|
|
48
|
+
//# sourceMappingURL=CubeGridQuickActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeGridQuickActions.d.ts","sourceRoot":"","sources":["../../src/stores/CubeGridQuickActions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAUL,KAAK,MAAM,EAGZ,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAWpD,CAAC;AAEF,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAClC,aAAa,eAAe,EAC5B,UAAU,MAAM,EAChB,MAAM,eAAe,KACpB,mBAAmB,EAoGrB,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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 { AggregationFunction, buildQuickFilterRule, FilterOperator, Filter, foldColumnName, getAggregationAutoName, Group, isOperatorAvailable, isSortableType, Sort, TypeFamily, } from '@finos/legend-cube';
|
|
17
|
+
import { CUBE_QUICK_ACTION_DISABLED_REASON, FILTER_FLOAT_COMPARISON_HINT, READ_ONLY_CUBE_TITLE, } from '../__lib__/LegendCubeLabels.js';
|
|
18
|
+
/**
|
|
19
|
+
* The name of a Group by's Count rows: `Count Rows`, or with a number after it
|
|
20
|
+
* when an input column already has that name in any case, e.g. on a Group of
|
|
21
|
+
* a Group (PLAN §11.5)
|
|
22
|
+
*/
|
|
23
|
+
export const getGroupByCountName = (schema) => {
|
|
24
|
+
const base = getAggregationAutoName(AggregationFunction.COUNT_ROWS, undefined);
|
|
25
|
+
const taken = new Set(schema.names().map(foldColumnName));
|
|
26
|
+
let name = base;
|
|
27
|
+
for (let suffix = 2; taken.has(foldColumnName(name)); suffix += 1) {
|
|
28
|
+
name = `${base} ${suffix}`;
|
|
29
|
+
}
|
|
30
|
+
return name;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The quick actions on a cell of the shown rows (spec §12.4, PLAN §11.4 and
|
|
34
|
+
* §11.5): "Sort by" adds an ascending Sort on the cell's column, "Group by" a
|
|
35
|
+
* Group by it with Count rows, and "Filter by" an Equal on its value (Is
|
|
36
|
+
* Empty on a null), after the node that runs, which they replace as the node
|
|
37
|
+
* that runs. All need the rows to be from the current query, no run in
|
|
38
|
+
* flight, and a cube that can change; "Sort by" and "Group by" a type that
|
|
39
|
+
* compares, and "Filter by" a value its column's type can compare.
|
|
40
|
+
* Read when the menu opens; `[]` when the position is not a column of the
|
|
41
|
+
* shown rows.
|
|
42
|
+
*/
|
|
43
|
+
export const getCubeGridQuickActions = (editorState, position, cell) => {
|
|
44
|
+
const { execution, document } = editorState;
|
|
45
|
+
const { result } = execution;
|
|
46
|
+
const column = result?.schema.columns[position];
|
|
47
|
+
if (!result || !column) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
const { query } = document;
|
|
51
|
+
const afterId = query.selected;
|
|
52
|
+
const typeName = column.type.displayName;
|
|
53
|
+
const rule = buildQuickFilterRule(column.name, column.type, cell);
|
|
54
|
+
// what keeps both from being used, in order
|
|
55
|
+
const blocked = result.query !== query || execution.isStale
|
|
56
|
+
? CUBE_QUICK_ACTION_DISABLED_REASON.STALE_ROWS
|
|
57
|
+
: // choosing would apply the edits first, leaving these rows stale
|
|
58
|
+
editorState.hasEditsToApply || editorState.nodeEditor.hasPendingInput()
|
|
59
|
+
? CUBE_QUICK_ACTION_DISABLED_REASON.EDITING
|
|
60
|
+
: execution.isRunning
|
|
61
|
+
? CUBE_QUICK_ACTION_DISABLED_REASON.RUNNING
|
|
62
|
+
: editorState.readOnly
|
|
63
|
+
? READ_ONLY_CUBE_TITLE
|
|
64
|
+
: undefined;
|
|
65
|
+
const sortReason = blocked ??
|
|
66
|
+
(isSortableType(column.type)
|
|
67
|
+
? undefined
|
|
68
|
+
: CUBE_QUICK_ACTION_DISABLED_REASON.notSortable(typeName));
|
|
69
|
+
const groupReason = blocked ??
|
|
70
|
+
(isSortableType(column.type)
|
|
71
|
+
? undefined
|
|
72
|
+
: CUBE_QUICK_ACTION_DISABLED_REASON.notGroupable(typeName));
|
|
73
|
+
const filterReason = blocked ??
|
|
74
|
+
(rule
|
|
75
|
+
? undefined
|
|
76
|
+
: isOperatorAvailable(FilterOperator.EQUAL, column.type)
|
|
77
|
+
? CUBE_QUICK_ACTION_DISABLED_REASON.UNREADABLE_VALUE
|
|
78
|
+
: CUBE_QUICK_ACTION_DISABLED_REASON.notComparable(typeName));
|
|
79
|
+
return [
|
|
80
|
+
{
|
|
81
|
+
label: `Sort by "${column.name}"`,
|
|
82
|
+
disabledReason: sortReason,
|
|
83
|
+
hint: undefined,
|
|
84
|
+
apply: () => {
|
|
85
|
+
// as the menu found it: nothing changed since it opened
|
|
86
|
+
if (sortReason === undefined && editorState.document === document) {
|
|
87
|
+
editorState.addConfiguredNode(Sort.byColumn(query.generateId(Sort.TYPE), column.name), afterId);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
label: `Group by "${column.name}"`,
|
|
93
|
+
disabledReason: groupReason,
|
|
94
|
+
hint: undefined,
|
|
95
|
+
apply: () => {
|
|
96
|
+
if (groupReason === undefined && editorState.document === document) {
|
|
97
|
+
editorState.addConfiguredNode(new Group(query.generateId(Group.TYPE), [column.name], [
|
|
98
|
+
{
|
|
99
|
+
column: undefined,
|
|
100
|
+
function: AggregationFunction.COUNT_ROWS,
|
|
101
|
+
name: getGroupByCountName(result.schema),
|
|
102
|
+
},
|
|
103
|
+
]), afterId);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
label: `Filter by "${column.name}"`,
|
|
109
|
+
disabledReason: filterReason,
|
|
110
|
+
hint: rule?.operator === FilterOperator.EQUAL &&
|
|
111
|
+
column.type.family === TypeFamily.FLOAT
|
|
112
|
+
? FILTER_FLOAT_COMPARISON_HINT
|
|
113
|
+
: undefined,
|
|
114
|
+
apply: () => {
|
|
115
|
+
if (filterReason === undefined &&
|
|
116
|
+
rule &&
|
|
117
|
+
editorState.document === document) {
|
|
118
|
+
editorState.addConfiguredNode(new Filter(query.generateId(Filter.TYPE), rule), afterId);
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=CubeGridQuickActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeGridQuickActions.js","sourceRoot":"","sources":["../../src/stores/CubeGridQuickActions.ts"],"names":[],"mappings":"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"}
|
package/lib/stores/CubeHost.d.ts
CHANGED
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import type { GenericLegendApplicationStore } from '@finos/legend-application';
|
|
17
|
-
import type {
|
|
17
|
+
import type { ModelContext } from '@finos/legend-cube';
|
|
18
|
+
import type { CubeConnectionExplorer } from '../graph-manager/CubeConnectionExplorer.js';
|
|
19
|
+
import type { CubeDataProductCatalog } from '../graph-manager/CubeDataProductCatalog.js';
|
|
20
|
+
import type { CubeIngestCatalog } from '../graph-manager/CubeIngestCatalog.js';
|
|
21
|
+
import { type CubeEngine, type CubeModelOutline } from '../graph-manager/CubeEngine.js';
|
|
22
|
+
import type { CubeProjectCatalog } from '../graph-manager/CubeProjectCatalog.js';
|
|
18
23
|
import type { LocalModelCatalog } from './LocalModelCatalog.js';
|
|
19
24
|
/**
|
|
20
25
|
* What the application hosting the Cube page gives it (PLAN §3.5, Settled
|
|
@@ -27,5 +32,31 @@ export interface CubeHost {
|
|
|
27
32
|
readonly applicationStore: GenericLegendApplicationStore;
|
|
28
33
|
readonly engine: CubeEngine;
|
|
29
34
|
readonly modelCatalog: LocalModelCatalog;
|
|
35
|
+
/**
|
|
36
|
+
* Reads the databases behind direct connections (PLAN §6.8); without one,
|
|
37
|
+
* the source picker offers no database connection
|
|
38
|
+
*/
|
|
39
|
+
readonly connectionExplorer?: CubeConnectionExplorer | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* The deployed data products (PLAN §6.8); without one, the source dialog
|
|
42
|
+
* offers no data products
|
|
43
|
+
*/
|
|
44
|
+
readonly dataProductCatalog?: CubeDataProductCatalog | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* The deployed ingest definitions (PLAN §6.7); without one, the source
|
|
47
|
+
* dialog offers no ingest data sets
|
|
48
|
+
*/
|
|
49
|
+
readonly ingestCatalog?: CubeIngestCatalog | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* The published projects in the host's depot (PLAN §6.3); without one, the
|
|
52
|
+
* source dialog offers no projects
|
|
53
|
+
*/
|
|
54
|
+
readonly projectCatalog?: CubeProjectCatalog | undefined;
|
|
30
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* A model's databases and runtimes, wherever its kind keeps them: a
|
|
58
|
+
* project's in the host's depot (PLAN §6.3), any other through the model
|
|
59
|
+
* catalog's engine
|
|
60
|
+
*/
|
|
61
|
+
export declare const loadCubeModelOutline: (host: CubeHost, model: ModelContext) => Promise<CubeModelOutline>;
|
|
31
62
|
//# sourceMappingURL=CubeHost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeHost.d.ts","sourceRoot":"","sources":["../../src/stores/CubeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CubeHost.d.ts","sourceRoot":"","sources":["../../src/stores/CubeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC1D;AAMD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,QAAQ,EACd,OAAO,YAAY,KAClB,OAAO,CAAC,gBAAgB,CAqB1B,CAAC"}
|
package/lib/stores/CubeHost.js
CHANGED
|
@@ -13,5 +13,25 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
17
|
+
import { checkCubeProjectModel, getCubeProjectCoordinates, isCubeProjectModel, } from '../graph-manager/CubeProject.js';
|
|
18
|
+
/** Why the host can't list a project model's Databases */
|
|
19
|
+
const NO_PROJECT_CATALOG = "This page can't read published projects: its host has no depot";
|
|
20
|
+
/**
|
|
21
|
+
* A model's databases and runtimes, wherever its kind keeps them: a
|
|
22
|
+
* project's in the host's depot (PLAN §6.3), any other through the model
|
|
23
|
+
* catalog's engine
|
|
24
|
+
*/
|
|
25
|
+
export const loadCubeModelOutline = (host, model) => {
|
|
26
|
+
if (!isCubeProjectModel(model)) {
|
|
27
|
+
return host.modelCatalog.loadOutline(model);
|
|
28
|
+
}
|
|
29
|
+
const project = getCubeProjectCoordinates(model);
|
|
30
|
+
if (!project) {
|
|
31
|
+
return Promise.reject(new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, checkCubeProjectModel(model).join('\n')));
|
|
32
|
+
}
|
|
33
|
+
return host.projectCatalog
|
|
34
|
+
? host.projectCatalog.loadOutline(project)
|
|
35
|
+
: Promise.reject(new CubeEngineError(CubeEngineErrorKind.UNSUPPORTED_MODEL, NO_PROJECT_CATALOG));
|
|
36
|
+
};
|
|
17
37
|
//# sourceMappingURL=CubeHost.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeHost.js","sourceRoot":"","sources":["../../src/stores/CubeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
1
|
+
{"version":3,"file":"CubeHost.js","sourceRoot":"","sources":["../../src/stores/CubeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EACL,eAAe,EACf,mBAAmB,GAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAqCzC,0DAA0D;AAC1D,MAAM,kBAAkB,GACtB,gEAAgE,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAc,EACd,KAAmB,EACQ,EAAE;IAC7B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,eAAe,CACjB,mBAAmB,CAAC,iBAAiB,EACrC,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,cAAc;QACxB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,IAAI,eAAe,CACjB,mBAAmB,CAAC,iBAAiB,EACrC,kBAAkB,CACnB,CACF,CAAC;AACR,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 { IngestDatasetSource, ModelContext, Schema } from '@finos/legend-cube';
|
|
17
|
+
import { CubeEngineError, type NodeId } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
import type { CubeIngestCatalog } from '../graph-manager/CubeIngestCatalog.js';
|
|
19
|
+
/**
|
|
20
|
+
* Reads an ingest cube's data sets again (PLAN §6.7): their columns as their
|
|
21
|
+
* deployed definitions declare them, through the catalog, with no engine
|
|
22
|
+
* call; `fresh` reads the definitions again rather than what this page visit
|
|
23
|
+
* read. One answer per source, failures included; never rejects.
|
|
24
|
+
*/
|
|
25
|
+
export declare const recheckCubeIngestSources: (catalog: CubeIngestCatalog | undefined, model: ModelContext, sources: readonly IngestDatasetSource[], fresh?: boolean) => Promise<Map<NodeId, Schema | CubeEngineError>>;
|
|
26
|
+
//# sourceMappingURL=CubeIngestRecheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeIngestRecheck.d.ts","sourceRoot":"","sources":["../../src/stores/CubeIngestRecheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,MAAM,EACP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EAEf,KAAK,MAAM,EACZ,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,GAAG,SAAS,EACtC,OAAO,YAAY,EACnB,SAAS,SAAS,mBAAmB,EAAE,EACvC,eAAa,KACZ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,CA+C/C,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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 { CUBE_INGEST_RECHECK_MESSAGE } from '../__lib__/LegendCubeIngestLabels.js';
|
|
17
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
import { checkCubeIngestModel, getCubeIngestSettings, } from '../graph-manager/CubeIngest.js';
|
|
19
|
+
/**
|
|
20
|
+
* Reads an ingest cube's data sets again (PLAN §6.7): their columns as their
|
|
21
|
+
* deployed definitions declare them, through the catalog, with no engine
|
|
22
|
+
* call; `fresh` reads the definitions again rather than what this page visit
|
|
23
|
+
* read. One answer per source, failures included; never rejects.
|
|
24
|
+
*/
|
|
25
|
+
export const recheckCubeIngestSources = async (catalog, model, sources, fresh = false) => {
|
|
26
|
+
const failAll = (kind, detail) => new Map(sources.map((source) => [
|
|
27
|
+
source.id,
|
|
28
|
+
new CubeEngineError(kind, detail, source.id),
|
|
29
|
+
]));
|
|
30
|
+
if (!catalog) {
|
|
31
|
+
return failAll(CubeEngineErrorKind.UNSUPPORTED_MODEL, CUBE_INGEST_RECHECK_MESSAGE.NO_CATALOG);
|
|
32
|
+
}
|
|
33
|
+
const settings = getCubeIngestSettings(model);
|
|
34
|
+
if (!settings) {
|
|
35
|
+
return failAll(CubeEngineErrorKind.UNSUPPORTED_MODEL, checkCubeIngestModel(model).join('\n'));
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
return await catalog.resolveSchemas(settings.environmentType, new Map(sources.map((source) => [
|
|
39
|
+
source.id,
|
|
40
|
+
{
|
|
41
|
+
ingestDefinitionUrn: source.ingestDefinitionUrn,
|
|
42
|
+
ingestDefinition: source.ingestDefinition,
|
|
43
|
+
dataSet: source.dataSet,
|
|
44
|
+
},
|
|
45
|
+
])), { fresh });
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return error instanceof CubeEngineError
|
|
49
|
+
? failAll(error.kind, error.detail)
|
|
50
|
+
: failAll(CubeEngineErrorKind.NETWORK, error instanceof Error ? error.message : String(error));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=CubeIngestRecheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeIngestRecheck.js","sourceRoot":"","sources":["../../src/stores/CubeIngestRecheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACL,eAAe,EACf,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,OAAsC,EACtC,KAAmB,EACnB,OAAuC,EACvC,KAAK,GAAG,KAAK,EACmC,EAAE;IAClD,MAAM,OAAO,GAAG,CACd,IAAyB,EACzB,MAAc,EACyB,EAAE,CACzC,IAAI,GAAG,CACL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE;QACT,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;KAC7C,CAAC,CACH,CAAC;IACJ,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,mBAAmB,CAAC,iBAAiB,EACrC,2BAA2B,CAAC,UAAU,CACvC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,OAAO,CACZ,mBAAmB,CAAC,iBAAiB,EACrC,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,cAAc,CACjC,QAAQ,CAAC,eAAe,EACxB,IAAI,GAAG,CACL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE;YACT;gBACE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CACH,EACD,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,YAAY,eAAe;YACrC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACnC,CAAC,CAAC,OAAO,CACL,mBAAmB,CAAC,OAAO,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACR,CAAC;AACH,CAAC,CAAC"}
|