@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 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDifferenceDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeDifferenceDraft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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 CubeType, Extend, type ExtendColumn, type ExtendTyping, type JsonObject, type QueryNode, type Schema } from '@finos/legend-cube';
|
|
17
|
+
import type { GeneratorFn } from '@finos/legend-shared';
|
|
18
|
+
import { type CubeSourceLocation } from '../../graph-manager/CubeEngine.js';
|
|
19
|
+
import type { CubeEditorState } from '../CubeEditorState.js';
|
|
20
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
21
|
+
/** What the engine made of a row's code the last time it was validated */
|
|
22
|
+
export interface CubeExtendCheckedCode {
|
|
23
|
+
readonly code: string;
|
|
24
|
+
readonly lambda: JsonObject;
|
|
25
|
+
readonly located: JsonObject;
|
|
26
|
+
}
|
|
27
|
+
/** A row's problem from the last Validate: the engine's message, where it is in the code, and a hint */
|
|
28
|
+
export interface CubeExtendRowProblem {
|
|
29
|
+
readonly message: string;
|
|
30
|
+
readonly location?: CubeSourceLocation | undefined;
|
|
31
|
+
readonly hint?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** One new column in the editor */
|
|
34
|
+
export interface CubeExtendRow {
|
|
35
|
+
/** Identifies the row in the editor, and its code to the engine */
|
|
36
|
+
readonly key: number;
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly code: string;
|
|
39
|
+
readonly checked?: CubeExtendCheckedCode | undefined;
|
|
40
|
+
readonly problem?: CubeExtendRowProblem | undefined;
|
|
41
|
+
/** The type the engine gave, while the row is as it was typed */
|
|
42
|
+
readonly type?: CubeType | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** What a new column's code starts as (PLAN §11.7 Q2) */
|
|
45
|
+
export declare const NEW_EXPRESSION_CODE = "x | ";
|
|
46
|
+
/**
|
|
47
|
+
* The Extend editor's draft (PLAN §11.7): a row per new column, its name and
|
|
48
|
+
* its code, `x | …`. Validate (F10) has the engine check each changed code,
|
|
49
|
+
* type the columns as a chain after the input, located so an error points
|
|
50
|
+
* into the code, and plan the query for the cube's database. Apply waits
|
|
51
|
+
* until every row's code is the one validated; the node then holds the
|
|
52
|
+
* engine's lambdas and their typing, so it needn't be typed again.
|
|
53
|
+
*/
|
|
54
|
+
export declare class CubeExtendDraft extends CubeNodeDraft<Extend> {
|
|
55
|
+
readonly editorState: CubeEditorState;
|
|
56
|
+
rows: readonly CubeExtendRow[];
|
|
57
|
+
/** The typing the last Validate gave, for the rows as they were then */
|
|
58
|
+
typing: ExtendTyping | undefined;
|
|
59
|
+
validating: boolean;
|
|
60
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
61
|
+
private touched;
|
|
62
|
+
/** The database type the last plan was for, named in its problem */
|
|
63
|
+
private planDatabaseType;
|
|
64
|
+
constructor(original: Extend, editorState: CubeEditorState);
|
|
65
|
+
/** The input's schema, when the input is valid */
|
|
66
|
+
get inputSchema(): Schema | undefined;
|
|
67
|
+
/** A row named `col_<n>`, the first such name no column has, in any case */
|
|
68
|
+
private newRow;
|
|
69
|
+
/** The columns the rows build: a row's lambda only while its code is the one validated */
|
|
70
|
+
get columns(): ExtendColumn[];
|
|
71
|
+
/** Every row's code is the one the engine last checked */
|
|
72
|
+
get isValidated(): boolean;
|
|
73
|
+
/** Why Apply waits: a validation running, or a code not validated yet */
|
|
74
|
+
get applyDisabledReason(): string | undefined;
|
|
75
|
+
private change;
|
|
76
|
+
addRow(): void;
|
|
77
|
+
removeRow(key: number): void;
|
|
78
|
+
/** Moves a row up (-1) or down (+1); a later column may use it, so its typing waits */
|
|
79
|
+
moveRow(key: number, offset: number): void;
|
|
80
|
+
setName(key: number, name: string): void;
|
|
81
|
+
/** A code edit drops the row's problem and type, until the next Validate */
|
|
82
|
+
setCode(key: number, code: string): void;
|
|
83
|
+
build(): Extend;
|
|
84
|
+
/**
|
|
85
|
+
* Goes on from an Extend that differs from the original only in its
|
|
86
|
+
* typing, e.g. typed in the background after an Apply, keeping the rows;
|
|
87
|
+
* rows not validated in this draft take the new types
|
|
88
|
+
*/
|
|
89
|
+
follow(node: QueryNode): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Checks every row with the engine (F10): parses each code changed since
|
|
92
|
+
* the last Validate, then, when every code parses and the input is valid,
|
|
93
|
+
* types the columns after the input, located in their codes, and plans the
|
|
94
|
+
* query up to this node for the cube's database; a plan that fails is
|
|
95
|
+
* planned again column by column to find the first that fails. Each
|
|
96
|
+
* problem goes on its row.
|
|
97
|
+
*/
|
|
98
|
+
validate(): GeneratorFn<void>;
|
|
99
|
+
/** Cube's problems, each on its row; whether there was one */
|
|
100
|
+
private putCubeProblems;
|
|
101
|
+
/** The problem on its row, or on every row when the engine named none */
|
|
102
|
+
private putProblem;
|
|
103
|
+
/**
|
|
104
|
+
* Plans the query up to the typed candidate, as a run would; when it
|
|
105
|
+
* fails with several columns, the first k columns for every k, to name
|
|
106
|
+
* the column the database can't run
|
|
107
|
+
*/
|
|
108
|
+
private planFrom;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=CubeExtendDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExtendDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeExtendDraft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,359 @@
|
|
|
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, foldColumnName, getExtendSignature, QueryEmitter, UNTYPED, } from '@finos/legend-cube';
|
|
17
|
+
import { action, computed, flow, flowResult, makeObservable, observable, } from 'mobx';
|
|
18
|
+
import { EXTEND_APPLY_DISABLED_REASON, EXTEND_TO_ONE_HINT, getExtendPlanProblem, } from '../../__lib__/LegendCubeLabels.js';
|
|
19
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../../graph-manager/CubeEngine.js';
|
|
20
|
+
import { buildCubeExtendTypingLambdas, getCubeExtendUpstream, readCubeExtendTyping, withoutEngineContext, } from '../CubeExtendTyping.js';
|
|
21
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
22
|
+
/** What a new column's code starts as (PLAN §11.7 Q2) */
|
|
23
|
+
export const NEW_EXPRESSION_CODE = 'x | ';
|
|
24
|
+
let nextRowKey = 1;
|
|
25
|
+
/** An engine message about a column that can be empty in arithmetic, which `->toOne()` fixes */
|
|
26
|
+
const NEEDS_TO_ONE = /must have a multiplicity \[1\]|Can't find a match for function '[^']*\[0\.\.1\]/u;
|
|
27
|
+
const problemOf = (error) => ({
|
|
28
|
+
message: withoutEngineContext(error.firstLine),
|
|
29
|
+
location: error.location,
|
|
30
|
+
hint: NEEDS_TO_ONE.test(error.detail) ? EXTEND_TO_ONE_HINT : undefined,
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* The Extend editor's draft (PLAN §11.7): a row per new column, its name and
|
|
34
|
+
* its code, `x | …`. Validate (F10) has the engine check each changed code,
|
|
35
|
+
* type the columns as a chain after the input, located so an error points
|
|
36
|
+
* into the code, and plan the query for the cube's database. Apply waits
|
|
37
|
+
* until every row's code is the one validated; the node then holds the
|
|
38
|
+
* engine's lambdas and their typing, so it needn't be typed again.
|
|
39
|
+
*/
|
|
40
|
+
export class CubeExtendDraft extends CubeNodeDraft {
|
|
41
|
+
editorState;
|
|
42
|
+
rows;
|
|
43
|
+
/** The typing the last Validate gave, for the rows as they were then */
|
|
44
|
+
typing;
|
|
45
|
+
validating = false;
|
|
46
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
47
|
+
touched = false;
|
|
48
|
+
/** The database type the last plan was for, named in its problem */
|
|
49
|
+
planDatabaseType;
|
|
50
|
+
constructor(original, editorState) {
|
|
51
|
+
super(original);
|
|
52
|
+
makeObservable(this, {
|
|
53
|
+
original: observable.ref,
|
|
54
|
+
rows: observable.ref,
|
|
55
|
+
typing: observable.ref,
|
|
56
|
+
validating: observable,
|
|
57
|
+
touched: observable,
|
|
58
|
+
columns: computed,
|
|
59
|
+
isValidated: computed,
|
|
60
|
+
applyDisabledReason: computed,
|
|
61
|
+
addRow: action,
|
|
62
|
+
removeRow: action,
|
|
63
|
+
moveRow: action,
|
|
64
|
+
setName: action,
|
|
65
|
+
setCode: action,
|
|
66
|
+
validate: flow,
|
|
67
|
+
follow: action,
|
|
68
|
+
});
|
|
69
|
+
this.editorState = editorState;
|
|
70
|
+
const types = original.typing.kind === 'typed' ? original.typing.types : [];
|
|
71
|
+
this.rows = original.columns.map(({ name, code, lambda }, index) => ({
|
|
72
|
+
key: nextRowKey++,
|
|
73
|
+
name,
|
|
74
|
+
code,
|
|
75
|
+
checked: lambda ? { code, lambda, located: lambda } : undefined,
|
|
76
|
+
type: types[index],
|
|
77
|
+
}));
|
|
78
|
+
if (!this.rows.length) {
|
|
79
|
+
this.rows = [this.newRow()];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** The input's schema, when the input is valid */
|
|
83
|
+
get inputSchema() {
|
|
84
|
+
const { query } = this.editorState.document;
|
|
85
|
+
const [inputId] = query.getInputIds(this.original.id);
|
|
86
|
+
return inputId === undefined
|
|
87
|
+
? undefined
|
|
88
|
+
: this.editorState.analysis.schemas.get(inputId);
|
|
89
|
+
}
|
|
90
|
+
/** A row named `col_<n>`, the first such name no column has, in any case */
|
|
91
|
+
newRow() {
|
|
92
|
+
const taken = new Set([
|
|
93
|
+
...(this.inputSchema?.names() ?? []),
|
|
94
|
+
...(this.rows ?? []).map(({ name }) => name),
|
|
95
|
+
].map(foldColumnName));
|
|
96
|
+
let index = 1;
|
|
97
|
+
while (taken.has(foldColumnName(`col_${index}`))) {
|
|
98
|
+
index += 1;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
key: nextRowKey++,
|
|
102
|
+
name: `col_${index}`,
|
|
103
|
+
code: NEW_EXPRESSION_CODE,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** The columns the rows build: a row's lambda only while its code is the one validated */
|
|
107
|
+
get columns() {
|
|
108
|
+
return this.rows.map(({ name, code, checked }) => ({
|
|
109
|
+
name,
|
|
110
|
+
code,
|
|
111
|
+
lambda: checked?.code === code ? checked.lambda : undefined,
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
/** Every row's code is the one the engine last checked */
|
|
115
|
+
get isValidated() {
|
|
116
|
+
return this.rows.every(({ code, checked }) => checked?.code === code);
|
|
117
|
+
}
|
|
118
|
+
/** Why Apply waits: a validation running, or a code not validated yet */
|
|
119
|
+
get applyDisabledReason() {
|
|
120
|
+
return this.validating
|
|
121
|
+
? EXTEND_APPLY_DISABLED_REASON.VALIDATING
|
|
122
|
+
: this.isValidated
|
|
123
|
+
? undefined
|
|
124
|
+
: EXTEND_APPLY_DISABLED_REASON.NOT_VALIDATED;
|
|
125
|
+
}
|
|
126
|
+
change(rows) {
|
|
127
|
+
this.rows = rows;
|
|
128
|
+
this.touched = true;
|
|
129
|
+
}
|
|
130
|
+
addRow() {
|
|
131
|
+
this.change([...this.rows, this.newRow()]);
|
|
132
|
+
}
|
|
133
|
+
removeRow(key) {
|
|
134
|
+
this.change(this.rows.filter((row) => row.key !== key));
|
|
135
|
+
}
|
|
136
|
+
/** Moves a row up (-1) or down (+1); a later column may use it, so its typing waits */
|
|
137
|
+
moveRow(key, offset) {
|
|
138
|
+
const index = this.rows.findIndex((row) => row.key === key);
|
|
139
|
+
const target = index + offset;
|
|
140
|
+
if (index < 0 || target < 0 || target >= this.rows.length) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const rows = [...this.rows];
|
|
144
|
+
const [moved] = rows.splice(index, 1);
|
|
145
|
+
rows.splice(target, 0, moved);
|
|
146
|
+
this.change(rows);
|
|
147
|
+
}
|
|
148
|
+
setName(key, name) {
|
|
149
|
+
this.change(this.rows.map((row) => row.key === key ? { ...row, name, problem: undefined } : row));
|
|
150
|
+
}
|
|
151
|
+
/** A code edit drops the row's problem and type, until the next Validate */
|
|
152
|
+
setCode(key, code) {
|
|
153
|
+
this.change(this.rows.map((row) => row.key === key && row.code !== code
|
|
154
|
+
? { key: row.key, name: row.name, code, checked: row.checked }
|
|
155
|
+
: row));
|
|
156
|
+
}
|
|
157
|
+
build() {
|
|
158
|
+
if (!this.touched) {
|
|
159
|
+
return this.original;
|
|
160
|
+
}
|
|
161
|
+
return this.original
|
|
162
|
+
.withColumns(this.columns)
|
|
163
|
+
.withTyping(this.typing ?? this.original.typing);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Goes on from an Extend that differs from the original only in its
|
|
167
|
+
* typing, e.g. typed in the background after an Apply, keeping the rows;
|
|
168
|
+
* rows not validated in this draft take the new types
|
|
169
|
+
*/
|
|
170
|
+
follow(node) {
|
|
171
|
+
const { original } = this;
|
|
172
|
+
if (!(node instanceof Extend) ||
|
|
173
|
+
node.id !== original.id ||
|
|
174
|
+
JSON.stringify([node.columns, node.rest]) !==
|
|
175
|
+
JSON.stringify([original.columns, original.rest])) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
this.original = node;
|
|
179
|
+
if (this.typing === undefined) {
|
|
180
|
+
const types = node.typing.kind === 'typed' ? node.typing.types : [];
|
|
181
|
+
this.rows = this.rows.map((row, index) => {
|
|
182
|
+
const column = node.columns[index];
|
|
183
|
+
return column?.name === row.name && column.code === row.code
|
|
184
|
+
? { ...row, type: types[index] }
|
|
185
|
+
: row;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Checks every row with the engine (F10): parses each code changed since
|
|
192
|
+
* the last Validate, then, when every code parses and the input is valid,
|
|
193
|
+
* types the columns after the input, located in their codes, and plans the
|
|
194
|
+
* query up to this node for the cube's database; a plan that fails is
|
|
195
|
+
* planned again column by column to find the first that fails. Each
|
|
196
|
+
* problem goes on its row.
|
|
197
|
+
*/
|
|
198
|
+
*validate() {
|
|
199
|
+
const { editorState } = this;
|
|
200
|
+
const { context } = editorState.document;
|
|
201
|
+
if (this.validating || !context) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
this.validating = true;
|
|
205
|
+
try {
|
|
206
|
+
const nodeId = this.original.id;
|
|
207
|
+
const sourceIdOf = (row) => `${nodeId}:${row.key}`;
|
|
208
|
+
// 1. parse the changed codes
|
|
209
|
+
const parsed = (yield Promise.all(this.rows.map(async (row) => row.checked?.code === row.code
|
|
210
|
+
? row.checked
|
|
211
|
+
: editorState.host.engine
|
|
212
|
+
.parseExpression(row.code, sourceIdOf(row))
|
|
213
|
+
.then((expression) => ({
|
|
214
|
+
code: row.code,
|
|
215
|
+
...expression,
|
|
216
|
+
}), (error) => error instanceof CubeEngineError
|
|
217
|
+
? error
|
|
218
|
+
: new CubeEngineError(CubeEngineErrorKind.NETWORK, error instanceof Error
|
|
219
|
+
? error.message
|
|
220
|
+
: String(error))))));
|
|
221
|
+
const rows = this.rows.map((row, index) => {
|
|
222
|
+
const result = parsed[index];
|
|
223
|
+
return result instanceof CubeEngineError
|
|
224
|
+
? {
|
|
225
|
+
key: row.key,
|
|
226
|
+
name: row.name,
|
|
227
|
+
code: row.code,
|
|
228
|
+
problem: problemOf(result),
|
|
229
|
+
}
|
|
230
|
+
: { key: row.key, name: row.name, code: row.code, checked: result };
|
|
231
|
+
});
|
|
232
|
+
this.rows = rows;
|
|
233
|
+
this.touched = true;
|
|
234
|
+
const input = this.inputSchema;
|
|
235
|
+
if (!input || rows.some((row) => row.checked === undefined)) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
// 2. Cube's own checks of each column, which need no engine: a name
|
|
239
|
+
// the input has, in another case, would otherwise type
|
|
240
|
+
const candidate = this.original.withColumns(this.columns);
|
|
241
|
+
if (this.putCubeProblems(candidate.getColumnProblems(input))) {
|
|
242
|
+
this.typing = UNTYPED;
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// 3. type the columns, located in their codes
|
|
246
|
+
const query = editorState.document.query.replace(candidate);
|
|
247
|
+
const located = rows.map((row) => ({
|
|
248
|
+
name: row.name,
|
|
249
|
+
lambda: row.checked.located,
|
|
250
|
+
}));
|
|
251
|
+
const answers = (yield editorState.host.engine.typeLambdas(context.model, buildCubeExtendTypingLambdas(query, candidate, located, editorState.registry, true)));
|
|
252
|
+
const { typing, error } = readCubeExtendTyping(answers, candidate, input, located, getCubeExtendUpstream(new QueryEmitter(query, editorState.registry), candidate.id, context.model));
|
|
253
|
+
this.typing = typing;
|
|
254
|
+
if (typing.kind !== 'typed') {
|
|
255
|
+
this.putProblem(typing.kind === 'failed' ? typing.column : undefined, error);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
this.rows = this.rows.map((row, index) => ({
|
|
259
|
+
...row,
|
|
260
|
+
type: typing.types[index],
|
|
261
|
+
}));
|
|
262
|
+
// a type Cube can't hold, such as an enumeration's own `Any`
|
|
263
|
+
if (this.putCubeProblems(candidate.getTypeProblems(typing.types))) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
// 4. plan the query up to this node, for the cube's database
|
|
267
|
+
const failure = (yield this.planFrom(query.replace(candidate.withTyping(typing)), candidate, typing, input));
|
|
268
|
+
if (failure) {
|
|
269
|
+
this.putProblem(failure.column, failure.error, true);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
finally {
|
|
273
|
+
this.validating = false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/** Cube's problems, each on its row; whether there was one */
|
|
277
|
+
putCubeProblems(problems) {
|
|
278
|
+
this.rows = this.rows.map((row, index) => {
|
|
279
|
+
const message = problems[index];
|
|
280
|
+
return message === undefined ? row : { ...row, problem: { message } };
|
|
281
|
+
});
|
|
282
|
+
return problems.some((problem) => problem !== undefined);
|
|
283
|
+
}
|
|
284
|
+
/** The problem on its row, or on every row when the engine named none */
|
|
285
|
+
putProblem(column, error, planned = false) {
|
|
286
|
+
if (!error) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
const problem = problemOf(error);
|
|
290
|
+
const shown = planned
|
|
291
|
+
? {
|
|
292
|
+
message: getExtendPlanProblem(this.planDatabaseType, error.firstLine),
|
|
293
|
+
}
|
|
294
|
+
: problem;
|
|
295
|
+
this.rows = this.rows.map((row, index) => column === undefined || index === column
|
|
296
|
+
? { ...row, problem: shown }
|
|
297
|
+
: row);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Plans the query up to the typed candidate, as a run would; when it
|
|
301
|
+
* fails with several columns, the first k columns for every k, to name
|
|
302
|
+
* the column the database can't run
|
|
303
|
+
*/
|
|
304
|
+
async planFrom(query, candidate, typing, input) {
|
|
305
|
+
const { editorState } = this;
|
|
306
|
+
const { context } = editorState.document;
|
|
307
|
+
const runtime = context?.runtime;
|
|
308
|
+
// a cube with no runtime yet can't be planned
|
|
309
|
+
if (!context || runtime === undefined) {
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
await flowResult(editorState.loadModelOutline(context.model));
|
|
313
|
+
this.planDatabaseType = editorState.getRunDatabaseType(query, candidate.id, context.model, runtime);
|
|
314
|
+
const plan = async (count) => {
|
|
315
|
+
const columns = candidate.columns.slice(0, count);
|
|
316
|
+
const prefix = candidate.withColumns(columns).withTyping({
|
|
317
|
+
kind: 'typed',
|
|
318
|
+
signature: getExtendSignature(input, columns),
|
|
319
|
+
types: typing.types.slice(0, count),
|
|
320
|
+
});
|
|
321
|
+
const replaced = query.replace(prefix);
|
|
322
|
+
let lambda;
|
|
323
|
+
try {
|
|
324
|
+
lambda = new QueryEmitter(
|
|
325
|
+
// run up to this node, as Execute would with it selected
|
|
326
|
+
replaced.selected === prefix.id
|
|
327
|
+
? replaced
|
|
328
|
+
: replaced.select(prefix.id), editorState.registry).emitExecutionLambda({
|
|
329
|
+
rowLimit: 1,
|
|
330
|
+
runtime,
|
|
331
|
+
databaseType: this.planDatabaseType,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
// the query up to here can't run, e.g. a node above is invalid
|
|
336
|
+
return new CubeEngineError(CubeEngineErrorKind.COMPILE, error instanceof Error ? error.message : String(error), candidate.id);
|
|
337
|
+
}
|
|
338
|
+
return editorState.host.engine.planLambda(context.model, lambda).then(() => undefined, (error) => error instanceof CubeEngineError
|
|
339
|
+
? error
|
|
340
|
+
: new CubeEngineError(CubeEngineErrorKind.NETWORK, error instanceof Error ? error.message : String(error)));
|
|
341
|
+
};
|
|
342
|
+
const error = await plan(candidate.columns.length);
|
|
343
|
+
if (!error) {
|
|
344
|
+
return undefined;
|
|
345
|
+
}
|
|
346
|
+
if (candidate.columns.length < 2 ||
|
|
347
|
+
error.kind === CubeEngineErrorKind.NETWORK) {
|
|
348
|
+
return { column: candidate.columns.length < 2 ? 0 : undefined, error };
|
|
349
|
+
}
|
|
350
|
+
for (let count = 1; count < candidate.columns.length; count += 1) {
|
|
351
|
+
const failed = await plan(count);
|
|
352
|
+
if (failed) {
|
|
353
|
+
return { column: count - 1, error: failed };
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return { column: candidate.columns.length - 1, error };
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=CubeExtendDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExtendDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeExtendDraft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 ColumnAggregation, type Group, type Schema } from '@finos/legend-cube';
|
|
17
|
+
import { type CubeAggregationRow } from './CubeAggregationRows.js';
|
|
18
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
19
|
+
/** One aggregation row of the Group editor (`CubeAggregationRow`) */
|
|
20
|
+
export type CubeGroupRow = CubeAggregationRow;
|
|
21
|
+
/**
|
|
22
|
+
* Whether a row builds an aggregation of a Group: it has a column, or it is
|
|
23
|
+
* Count rows, or it holds a function this version doesn't know with no column
|
|
24
|
+
* (a newer client's, or a window function such as Rank), kept as saved (Q4).
|
|
25
|
+
* A blank row, or a column function whose column isn't picked yet, is left
|
|
26
|
+
* out.
|
|
27
|
+
*/
|
|
28
|
+
export declare const isBuiltGroupRow: (row: CubeGroupRow) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The Group editor's draft (spec §17.6: a multi-select of keys, then rows of
|
|
31
|
+
* column, function and output name; PLAN §11.5). Picks of keys are stored in
|
|
32
|
+
* the input's order, but a saved order is kept until the picks change (Q2).
|
|
33
|
+
* A row's name follows its column and function until typed (Q3). Picking a
|
|
34
|
+
* column first sets Count; switching to Count rows clears the column, which
|
|
35
|
+
* it can't hold, and back to a column function leaves one to pick. Which
|
|
36
|
+
* rows build is `isBuiltGroupRow`.
|
|
37
|
+
*/
|
|
38
|
+
export declare class CubeGroupDraft extends CubeNodeDraft<Group> {
|
|
39
|
+
columns: readonly string[];
|
|
40
|
+
rows: readonly CubeGroupRow[];
|
|
41
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
42
|
+
private touched;
|
|
43
|
+
constructor(original: Group);
|
|
44
|
+
/** The aggregations the rows build, in order (`isBuiltGroupRow`) */
|
|
45
|
+
get aggregations(): ColumnAggregation[];
|
|
46
|
+
/** Ticks or unticks a key; the keys then follow the input's order (Q2) */
|
|
47
|
+
toggleColumn(name: string, schema: Schema): void;
|
|
48
|
+
/** Unticks every key: one group of all the rows */
|
|
49
|
+
clearColumns(): void;
|
|
50
|
+
addRow(): void;
|
|
51
|
+
removeRow(key: number): void;
|
|
52
|
+
private update;
|
|
53
|
+
/** Picks the row's column; with no function yet, Count */
|
|
54
|
+
setColumn(key: number, column: string): void;
|
|
55
|
+
/** Picks the row's function: Count rows takes no column, the others one */
|
|
56
|
+
setFunction(key: number, fn: string): void;
|
|
57
|
+
/** Types the row's name, kept exactly; the auto-name itself follows again */
|
|
58
|
+
setName(key: number, name: string): void;
|
|
59
|
+
build(): Group;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=CubeGroupDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeGroupDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeGroupDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EACV,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAIL,KAAK,kBAAkB,EAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qEAAqE;AACrE,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,YAAY,KAAG,OACD,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC;IACtD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,KAAK;IAkB3B,oEAAoE;IACpE,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAEtC;IAED,0EAA0E;IAC1E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKhD,mDAAmD;IACnD,YAAY,IAAI,IAAI;IAKpB,MAAM,IAAI,IAAI;IAKd,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,MAAM;IAQd,0DAA0D;IAC1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5C,2EAA2E;IAC3E,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1C,6EAA6E;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,KAAK,IAAI,KAAK;CAQf"}
|