@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,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { PrimitiveType, Schema, SchemaColumn } from '@finos/legend-cube';
|
|
18
|
+
import { CubeDataProductEnvironmentType } from '../graph-manager/CubeDataProduct.js';
|
|
19
|
+
import { CubeAccessPoint, CubeAccessPointGroup, CubeAccessPointGroupAccess, CubeDataProductCandidate, CubeDataProductDescription, } from '../graph-manager/CubeDataProductCatalog.js';
|
|
20
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
21
|
+
// A data product catalog for jsdom tests: canned products, no network. Each
|
|
22
|
+
// method is a jest.fn, so tests can read its calls or change its answer
|
|
23
|
+
const { PRODUCTION, PRODUCTION_PARALLEL } = CubeDataProductEnvironmentType;
|
|
24
|
+
const column = (name, path, params = []) => new SchemaColumn(name, PrimitiveType.get(path, params), false);
|
|
25
|
+
/** The orders product's daily access point */
|
|
26
|
+
export const FAKE_DAILY_ORDERS_SCHEMA = new Schema([
|
|
27
|
+
column('ORDER_ID', 'meta::pure::precisePrimitives::BigInt'),
|
|
28
|
+
column('CUSTOMER_ID', 'meta::pure::precisePrimitives::Varchar', [10]),
|
|
29
|
+
column('REGION', 'meta::pure::precisePrimitives::Varchar', [20]),
|
|
30
|
+
column('AMOUNT', 'meta::pure::precisePrimitives::Numeric', [10, 2]),
|
|
31
|
+
]);
|
|
32
|
+
export const FAKE_CUSTOMERS_SCHEMA = new Schema([
|
|
33
|
+
column('CUSTOMER_ID', 'meta::pure::precisePrimitives::Varchar', [10]),
|
|
34
|
+
column('COUNTRY', 'meta::pure::precisePrimitives::Varchar', [40]),
|
|
35
|
+
]);
|
|
36
|
+
const candidate = (id, title, environmentType, versionId = '1.4.0') => new CubeDataProductCandidate({
|
|
37
|
+
id,
|
|
38
|
+
deploymentId: `deployment-${id.toLowerCase()}`,
|
|
39
|
+
dataProductPath: `sales::products::${title.replace(/\s/gu, '')}`,
|
|
40
|
+
title,
|
|
41
|
+
description: `${title}, for tests`,
|
|
42
|
+
groupId: 'com.example.sales',
|
|
43
|
+
artifactId: 'orders-products',
|
|
44
|
+
versionId,
|
|
45
|
+
environmentType,
|
|
46
|
+
producerEnvironmentName: 'sales-producer',
|
|
47
|
+
});
|
|
48
|
+
/** Products of each class Cube lists, one deployed from a moving version */
|
|
49
|
+
export const FAKE_DATA_PRODUCT_CANDIDATES = [
|
|
50
|
+
candidate('ORDERS_PRODUCT', 'Orders Product', PRODUCTION),
|
|
51
|
+
candidate('RETURNS_PRODUCT', 'Returns Product', PRODUCTION, 'feature-returns-SNAPSHOT'),
|
|
52
|
+
candidate('ORDERS_PRODUCT', 'Orders Product', PRODUCTION_PARALLEL),
|
|
53
|
+
];
|
|
54
|
+
/** Two groups: one with a pickable access point, and two that can't be picked */
|
|
55
|
+
export const fakeDescriptionOf = (product) => new CubeDataProductDescription(product, [
|
|
56
|
+
new CubeAccessPointGroup({
|
|
57
|
+
id: 'core',
|
|
58
|
+
title: 'Core',
|
|
59
|
+
accessPoints: [
|
|
60
|
+
new CubeAccessPoint({
|
|
61
|
+
id: 'daily_orders',
|
|
62
|
+
title: 'Daily orders',
|
|
63
|
+
description: 'One row per order',
|
|
64
|
+
schema: FAKE_DAILY_ORDERS_SCHEMA,
|
|
65
|
+
sampleRows: [['1', 'ALFKI', 'EMEA', '12.34']],
|
|
66
|
+
}),
|
|
67
|
+
new CubeAccessPoint({
|
|
68
|
+
id: 'orders_as_of',
|
|
69
|
+
title: 'Orders as of a date',
|
|
70
|
+
schema: FAKE_DAILY_ORDERS_SCHEMA,
|
|
71
|
+
disabledReason: 'It takes parameters, which Cube does not support yet',
|
|
72
|
+
}),
|
|
73
|
+
],
|
|
74
|
+
}),
|
|
75
|
+
new CubeAccessPointGroup({
|
|
76
|
+
id: 'reference',
|
|
77
|
+
title: 'Reference',
|
|
78
|
+
accessPoints: [
|
|
79
|
+
new CubeAccessPoint({ id: 'customers', schema: FAKE_CUSTOMERS_SCHEMA }),
|
|
80
|
+
new CubeAccessPoint({
|
|
81
|
+
id: 'raw_feed',
|
|
82
|
+
disabledReason: 'Its columns are not in the deployed artifact',
|
|
83
|
+
}),
|
|
84
|
+
],
|
|
85
|
+
}),
|
|
86
|
+
]);
|
|
87
|
+
const SCHEMAS = new Map([
|
|
88
|
+
['daily_orders', FAKE_DAILY_ORDERS_SCHEMA],
|
|
89
|
+
['customers', FAKE_CUSTOMERS_SCHEMA],
|
|
90
|
+
]);
|
|
91
|
+
/**
|
|
92
|
+
* A fresh fake: build one per test, since jest.fn keeps its calls across
|
|
93
|
+
* tests. One that searches on a server answers with its matches, as the
|
|
94
|
+
* lakehouse's list is answered, but read anew on each search, as a server's
|
|
95
|
+
* answer is
|
|
96
|
+
*/
|
|
97
|
+
export const createFakeCubeDataProductCatalog = (candidates = FAKE_DATA_PRODUCT_CANDIDATES, options) => {
|
|
98
|
+
const search = jest.fn(async ({ text, environmentType }) => Promise.resolve(candidates
|
|
99
|
+
.filter((product) => product.environmentType === environmentType &&
|
|
100
|
+
`${product.title} ${product.id}`
|
|
101
|
+
.toLowerCase()
|
|
102
|
+
.includes(text.trim().toLowerCase()))
|
|
103
|
+
.map((product) => options?.searchesOnServer
|
|
104
|
+
? new CubeDataProductCandidate({ ...product })
|
|
105
|
+
: product)));
|
|
106
|
+
const describe = jest.fn(async (product) => Promise.resolve(fakeDescriptionOf(product)));
|
|
107
|
+
const resolveSchemas = jest.fn(async (_project, sources) => Promise.resolve(new Map([...sources].map(([nodeId, source]) => [
|
|
108
|
+
nodeId,
|
|
109
|
+
SCHEMAS.get(source.accessPoint) ??
|
|
110
|
+
new CubeEngineError(CubeEngineErrorKind.COMPILE, `The access point "${source.accessPoint}" can't be found`, nodeId),
|
|
111
|
+
]))));
|
|
112
|
+
const getMarketplaceLink = jest.fn((target) => `https://marketplace.test/dataProduct/deployed/${target.dataProductId}/${target.deploymentId}${target.accessPointGroup ? `#${target.accessPointGroup}` : ''}`);
|
|
113
|
+
// the viewer is entitled to the core group, and has never asked for the reference one
|
|
114
|
+
const getAccess = jest.fn(async () => Promise.resolve(new Map([
|
|
115
|
+
['core', CubeAccessPointGroupAccess.APPROVED],
|
|
116
|
+
['reference', CubeAccessPointGroupAccess.NO_ACCESS],
|
|
117
|
+
])));
|
|
118
|
+
return {
|
|
119
|
+
catalog: {
|
|
120
|
+
environmentTypes: [PRODUCTION, PRODUCTION_PARALLEL],
|
|
121
|
+
searchesOnServer: options?.searchesOnServer,
|
|
122
|
+
searchLimit: options?.searchLimit,
|
|
123
|
+
isCutShort: options?.isCutShort,
|
|
124
|
+
search,
|
|
125
|
+
describe,
|
|
126
|
+
resolveSchemas,
|
|
127
|
+
getMarketplaceLink,
|
|
128
|
+
getAccess,
|
|
129
|
+
},
|
|
130
|
+
search,
|
|
131
|
+
describe,
|
|
132
|
+
resolveSchemas,
|
|
133
|
+
getMarketplaceLink,
|
|
134
|
+
getAccess,
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=FakeCubeDataProductCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeDataProductCatalog.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeDataProductCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAE1B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,4EAA4E;AAC5E,wEAAwE;AAExE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,8BAA8B,CAAC;AAE3E,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,SAAmB,EAAE,EAAE,EAAE,CACnE,IAAI,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AAEjE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,uCAAuC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,QAAQ,EAAE,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,wCAAwC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CACpE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC;IAC9C,MAAM,CAAC,aAAa,EAAE,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAChB,EAAU,EACV,KAAa,EACb,eAA+C,EAC/C,SAAS,GAAG,OAAO,EACO,EAAE,CAC5B,IAAI,wBAAwB,CAAC;IAC3B,EAAE;IACF,YAAY,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE;IAC9C,eAAe,EAAE,oBAAoB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;IAChE,KAAK;IACL,WAAW,EAAE,GAAG,KAAK,aAAa;IAClC,OAAO,EAAE,mBAAmB;IAC5B,UAAU,EAAE,iBAAiB;IAC7B,SAAS;IACT,eAAe;IACf,uBAAuB,EAAE,gBAAgB;CAC1C,CAAC,CAAC;AAEL,4EAA4E;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GACvC;IACE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;IACzD,SAAS,CACP,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,0BAA0B,CAC3B;IACD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;CACnE,CAAC;AAEJ,iFAAiF;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAiC,EACL,EAAE,CAC9B,IAAI,0BAA0B,CAAC,OAAO,EAAE;IACtC,IAAI,oBAAoB,CAAC;QACvB,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,YAAY,EAAE;YACZ,IAAI,eAAe,CAAC;gBAClB,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,cAAc;gBACrB,WAAW,EAAE,mBAAmB;gBAChC,MAAM,EAAE,wBAAwB;gBAChC,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;aAC9C,CAAC;YACF,IAAI,eAAe,CAAC;gBAClB,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,wBAAwB;gBAChC,cAAc,EACZ,sDAAsD;aACzD,CAAC;SACH;KACF,CAAC;IACF,IAAI,oBAAoB,CAAC;QACvB,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE;YACZ,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;YACvE,IAAI,eAAe,CAAC;gBAClB,EAAE,EAAE,UAAU;gBACd,cAAc,EAAE,8CAA8C;aAC/D,CAAC;SACH;KACF,CAAC;CACH,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAC1C,CAAC,WAAW,EAAE,qBAAqB,CAAC;CACrC,CAAC,CAAC;AAeH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,aAAkD,4BAA4B,EAC9E,OAIC,EAC2B,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CACpB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAClC,OAAO,CAAC,OAAO,CACb,UAAU;SACP,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,eAAe,KAAK,eAAe;QAC3C,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,EAAE;aAC7B,WAAW,EAAE;aACb,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACzC;SACA,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,OAAO,EAAE,gBAAgB;QACvB,CAAC,CAAC,IAAI,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC,OAAO,CACZ,CACJ,CACJ,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CACtB,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAC1B,OAAO,CAAC,OAAO,CACb,IAAI,GAAG,CACL,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;YAC7B,IAAI,eAAe,CACjB,mBAAmB,CAAC,OAAO,EAC3B,qBAAqB,MAAM,CAAC,WAAW,kBAAkB,EACzD,MAAM,CACP;KACJ,CAAC,CACH,CACF,CACJ,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAGhC,CAAC,MAAM,EAAE,EAAE,CACT,iDAAiD,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChK,CAAC;IACF,sFAAsF;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CACvB,KAAK,IAAI,EAAE,CACT,OAAO,CAAC,OAAO,CACb,IAAI,GAAG,CAAC;QACN,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;QAC7C,CAAC,WAAW,EAAE,0BAA0B,CAAC,SAAS,CAAC;KACpD,CAAC,CACH,CACJ,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP,gBAAgB,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC;YACnD,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;YAC3C,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,MAAM;YACN,QAAQ;YACR,cAAc;YACd,kBAAkB;YAClB,SAAS;SACV;QACD,MAAM;QACN,QAAQ;QACR,cAAc;QACd,kBAAkB;QAClB,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -35,6 +35,8 @@ export interface FakeCubeEngine {
|
|
|
35
35
|
readonly typeLambdas: jest.Mock<CubeEngine['typeLambdas']>;
|
|
36
36
|
readonly execute: jest.Mock<CubeEngine['execute']>;
|
|
37
37
|
readonly renderPure: jest.Mock<CubeEngine['renderPure']>;
|
|
38
|
+
readonly parseExpression: jest.Mock<CubeEngine['parseExpression']>;
|
|
39
|
+
readonly planLambda: jest.Mock<CubeEngine['planLambda']>;
|
|
38
40
|
}
|
|
39
41
|
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
40
42
|
export declare const createFakeCubeEngine: (answers?: FakeCubeEngineAnswers) => FakeCubeEngine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCubeEngine.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,gCAAgC,CAAC;AAYxC,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,EAAE,gBAkCpC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,UAK/B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,GAC/B,UAAS,qBAA0B,KAClC,
|
|
1
|
+
{"version":3,"file":"FakeCubeEngine.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,gCAAgC,CAAC;AAYxC,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,EAAE,gBAkCpC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,UAK/B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,GAC/B,UAAS,qBAA0B,KAClC,cA4DF,CAAC"}
|
|
@@ -79,13 +79,26 @@ export const createFakeCubeEngine = (answers = {}) => {
|
|
|
79
79
|
const typeLambdas = jest.fn(async () => Promise.resolve(new Map()));
|
|
80
80
|
const execute = jest.fn(async () => Promise.resolve(answers.result ?? EMPTY_CUBE_RESULT));
|
|
81
81
|
const renderPure = jest.fn(async () => Promise.resolve(answers.pure ?? ''));
|
|
82
|
+
// a test that types expressions says how; by default, each parses to nothing
|
|
83
|
+
const parseExpression = jest.fn(async () => Promise.reject(new CubeEngineError(CubeEngineErrorKind.COMPILE, 'The fake engine parses no expression')));
|
|
84
|
+
const planLambda = jest.fn(async () => Promise.resolve());
|
|
82
85
|
return {
|
|
83
|
-
engine: {
|
|
86
|
+
engine: {
|
|
87
|
+
loadModel,
|
|
88
|
+
resolveSchemas,
|
|
89
|
+
typeLambdas,
|
|
90
|
+
execute,
|
|
91
|
+
renderPure,
|
|
92
|
+
parseExpression,
|
|
93
|
+
planLambda,
|
|
94
|
+
},
|
|
84
95
|
loadModel,
|
|
85
96
|
resolveSchemas,
|
|
86
97
|
typeLambdas,
|
|
87
98
|
execute,
|
|
88
99
|
renderPure,
|
|
100
|
+
parseExpression,
|
|
101
|
+
planLambda,
|
|
89
102
|
};
|
|
90
103
|
};
|
|
91
104
|
//# sourceMappingURL=FakeCubeEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCubeEngine.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAEL,eAAe,EACf,mBAAmB,GAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,+EAA+E;AAC/E,2EAA2E;AAC3E,8BAA8B;AAE9B,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,QAAQ;4BACd,MAAM,EAAE,KAAK;4BACb,WAAW,EAAE,cAAc,CAAC,MAAM;4BAClC,KAAK,EAAE,EAAE;4BACT,cAAc,EAAE,EAAE;yBACnB;wBACD;4BACE,IAAI,EAAE,WAAW;4BACjB,MAAM,EAAE,KAAK;4BACb,WAAW,EAAE,iBAAiB,CAAC,MAAM;4BACrC,KAAK,EAAE,EAAE;4BACT,cAAc,EAAE,EAAE;yBACnB;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;YAChC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACrE;KACF;CACF,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IACzE,CAAC,kBAAkB,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,qBAAqB,EAAE,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,UAAU,EAAE,CAAC;CACd,CAAC;
|
|
1
|
+
{"version":3,"file":"FakeCubeEngine.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { Schema } from '@finos/legend-cube';
|
|
18
|
+
import { CubeDataProductEnvironmentType } from '../graph-manager/CubeDataProduct.js';
|
|
19
|
+
import { type CubeIngestCatalog } from '../graph-manager/CubeIngestCatalog.js';
|
|
20
|
+
export declare const FAKE_INGEST_ORDERS = "sales::ingest::OrdersIngest";
|
|
21
|
+
export declare const FAKE_INGEST_DESKS = "sales::ingest::DesksIngest";
|
|
22
|
+
export declare const fakeIngestUrnOf: (definition: string, environmentType?: CubeDataProductEnvironmentType) => string;
|
|
23
|
+
export declare const FAKE_INGEST_TRADES_SCHEMA: Schema;
|
|
24
|
+
export declare const FAKE_INGEST_DESKS_SCHEMA: Schema;
|
|
25
|
+
export interface FakeCubeIngestCatalog {
|
|
26
|
+
catalog: CubeIngestCatalog;
|
|
27
|
+
resolveEnvironment: jest.Mock<CubeIngestCatalog['resolveEnvironment']>;
|
|
28
|
+
listProducers: jest.Mock<CubeIngestCatalog['listProducers']>;
|
|
29
|
+
listDefinitions: jest.Mock<CubeIngestCatalog['listDefinitions']>;
|
|
30
|
+
describe: jest.Mock<CubeIngestCatalog['describe']>;
|
|
31
|
+
resolveSchemas: jest.Mock<CubeIngestCatalog['resolveSchemas']>;
|
|
32
|
+
}
|
|
33
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
34
|
+
export declare const createFakeCubeIngestCatalog: () => FakeCubeIngestCatalog;
|
|
35
|
+
//# sourceMappingURL=FakeCubeIngestCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeIngestCatalog.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeIngestCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAiB,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAKrF,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,uCAAuC,CAAC;AAQ/C,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAChE,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,EAClB,gDAA4B,KAC3B,MACuI,CAAC;AAE3I,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAEnC,CAAC;AAgCH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACvE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7D,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;CAChE;AAED,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,QAAO,qBAgF9C,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { PrimitiveType, Schema, SchemaColumn } from '@finos/legend-cube';
|
|
18
|
+
import { CubeDataProductEnvironmentType } from '../graph-manager/CubeDataProduct.js';
|
|
19
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../graph-manager/CubeEngine.js';
|
|
20
|
+
import { CubeIngestDataSet, CubeIngestDefinitionCandidate, CubeIngestEnvironment, CubeIngestProducer, } from '../graph-manager/CubeIngestCatalog.js';
|
|
21
|
+
// A fake of the deployed ingest definitions, for the Ingest tab's and the
|
|
22
|
+
// editor's tests: producer deployment 1234 deploys two definitions from
|
|
23
|
+
// com.example:sales, 5678 none
|
|
24
|
+
const { PRODUCTION, PRODUCTION_PARALLEL } = CubeDataProductEnvironmentType;
|
|
25
|
+
export const FAKE_INGEST_ORDERS = 'sales::ingest::OrdersIngest';
|
|
26
|
+
export const FAKE_INGEST_DESKS = 'sales::ingest::DesksIngest';
|
|
27
|
+
export const fakeIngestUrnOf = (definition, environmentType = PRODUCTION) => `urn:lakehouse:${environmentType === PRODUCTION ? 'prod' : 'prod-parallel'}:ingest:definition:alloy-git:com.example~sales~${definition}`;
|
|
28
|
+
export const FAKE_INGEST_TRADES_SCHEMA = new Schema([
|
|
29
|
+
new SchemaColumn('TRADE_ID', PrimitiveType.get('Integer'), false),
|
|
30
|
+
new SchemaColumn('DESK', PrimitiveType.get('meta::pure::precisePrimitives::Varchar', [20]), true),
|
|
31
|
+
]);
|
|
32
|
+
export const FAKE_INGEST_DESKS_SCHEMA = new Schema([
|
|
33
|
+
new SchemaColumn('DESK', PrimitiveType.get('String'), false),
|
|
34
|
+
]);
|
|
35
|
+
const DATA_SETS = new Map([
|
|
36
|
+
[
|
|
37
|
+
FAKE_INGEST_ORDERS,
|
|
38
|
+
[
|
|
39
|
+
new CubeIngestDataSet({
|
|
40
|
+
name: 'TRADES',
|
|
41
|
+
schema: FAKE_INGEST_TRADES_SCHEMA,
|
|
42
|
+
primaryKey: ['TRADE_ID'],
|
|
43
|
+
}),
|
|
44
|
+
new CubeIngestDataSet({
|
|
45
|
+
name: 'DAILY',
|
|
46
|
+
disabledReason: 'It is a materialized view, which Cube does not support yet',
|
|
47
|
+
}),
|
|
48
|
+
],
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
FAKE_INGEST_DESKS,
|
|
52
|
+
[
|
|
53
|
+
new CubeIngestDataSet({
|
|
54
|
+
name: 'DESKS',
|
|
55
|
+
schema: FAKE_INGEST_DESKS_SCHEMA,
|
|
56
|
+
}),
|
|
57
|
+
],
|
|
58
|
+
],
|
|
59
|
+
]);
|
|
60
|
+
const definitionOf = (urn) => urn.slice(urn.lastIndexOf('~') + 1);
|
|
61
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
62
|
+
export const createFakeCubeIngestCatalog = () => {
|
|
63
|
+
const resolveEnvironment = jest.fn(async (environmentType) => Promise.resolve(new CubeIngestEnvironment({
|
|
64
|
+
environmentType,
|
|
65
|
+
name: 'env-a',
|
|
66
|
+
runtimeEnvironment: environmentType === PRODUCTION_PARALLEL
|
|
67
|
+
? 'lakehouse-ingest-env-a-pp'
|
|
68
|
+
: 'lakehouse-ingest-env-a',
|
|
69
|
+
})));
|
|
70
|
+
const listProducers = jest.fn(async () => Promise.resolve(['1234', '5678'].map((deploymentId) => new CubeIngestProducer({
|
|
71
|
+
deploymentId,
|
|
72
|
+
urn: `urn:lakehouse:prod:producer:deployment:${deploymentId}`,
|
|
73
|
+
}))));
|
|
74
|
+
const listDefinitions = jest.fn(async (environmentType, producerDeploymentId) => Promise.resolve(producerDeploymentId === '1234'
|
|
75
|
+
? {
|
|
76
|
+
candidates: [FAKE_INGEST_ORDERS, FAKE_INGEST_DESKS].map((definition) => new CubeIngestDefinitionCandidate({
|
|
77
|
+
urn: fakeIngestUrnOf(definition, environmentType),
|
|
78
|
+
definition,
|
|
79
|
+
groupId: 'com.example',
|
|
80
|
+
artifactId: 'sales',
|
|
81
|
+
})),
|
|
82
|
+
droppedCount: 1,
|
|
83
|
+
}
|
|
84
|
+
: { candidates: [], droppedCount: 0 }));
|
|
85
|
+
const describe = jest.fn(async (urn) => Promise.resolve(DATA_SETS.get(definitionOf(urn)) ?? []));
|
|
86
|
+
const resolveSchemas = jest.fn(async (_environmentType, sources) => Promise.resolve(new Map([...sources].map(([nodeId, source]) => [
|
|
87
|
+
nodeId,
|
|
88
|
+
DATA_SETS.get(source.ingestDefinition)?.find((dataSet) => dataSet.name === source.dataSet)?.schema ??
|
|
89
|
+
new CubeEngineError(CubeEngineErrorKind.COMPILE, `Ingest definition ${source.ingestDefinition} has no data set ${source.dataSet}`, nodeId),
|
|
90
|
+
]))));
|
|
91
|
+
return {
|
|
92
|
+
catalog: {
|
|
93
|
+
environmentTypes: [PRODUCTION, PRODUCTION_PARALLEL],
|
|
94
|
+
resolveEnvironment,
|
|
95
|
+
listProducers,
|
|
96
|
+
listDefinitions,
|
|
97
|
+
describe,
|
|
98
|
+
resolveSchemas,
|
|
99
|
+
},
|
|
100
|
+
resolveEnvironment,
|
|
101
|
+
listProducers,
|
|
102
|
+
listDefinitions,
|
|
103
|
+
describe,
|
|
104
|
+
resolveSchemas,
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=FakeCubeIngestCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeIngestCatalog.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeIngestCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import type { CubeModelOutline } from '../graph-manager/CubeEngine.js';
|
|
18
|
+
import type { CubeProjectCatalog } from '../graph-manager/CubeProjectCatalog.js';
|
|
19
|
+
export declare const FAKE_PROJECT_GROUP = "com.example";
|
|
20
|
+
export declare const FAKE_PLANNED_DATABASE = "sales::store::PlannedDb";
|
|
21
|
+
export declare const FAKE_SALES_OUTLINE: CubeModelOutline;
|
|
22
|
+
export interface FakeCubeProjectCatalog {
|
|
23
|
+
readonly catalog: CubeProjectCatalog;
|
|
24
|
+
readonly listProjects: jest.Mock<CubeProjectCatalog['listProjects']>;
|
|
25
|
+
readonly listVersions: jest.Mock<CubeProjectCatalog['listVersions']>;
|
|
26
|
+
readonly loadOutline: jest.Mock<CubeProjectCatalog['loadOutline']>;
|
|
27
|
+
}
|
|
28
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
29
|
+
export declare const createFakeCubeProjectCatalog: () => FakeCubeProjectCatalog;
|
|
30
|
+
//# sourceMappingURL=FakeCubeProjectCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeProjectCatalog.d.ts","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeProjectCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAQjF,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAE/D,eAAO,MAAM,kBAAkB,EAAE,gBAsBhC,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;CACpE;AAED,mFAAmF;AACnF,eAAO,MAAM,4BAA4B,QAAO,sBA2B/C,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { jest } from '@jest/globals';
|
|
17
|
+
import { FAKE_NORTHWIND_OUTLINE } from './FakeCubeEngine.js';
|
|
18
|
+
// A fake of the depot's published projects, for the Project tab's and the
|
|
19
|
+
// editor's tests: com.example:sales at 1.10.0 and 1.9.0 holds the fake
|
|
20
|
+
// engine's Northwind Database (so the fake types its tables) and a Database
|
|
21
|
+
// no runtime connects to; com.example:reference has one version
|
|
22
|
+
export const FAKE_PROJECT_GROUP = 'com.example';
|
|
23
|
+
export const FAKE_PLANNED_DATABASE = 'sales::store::PlannedDb';
|
|
24
|
+
export const FAKE_SALES_OUTLINE = {
|
|
25
|
+
databases: [
|
|
26
|
+
...FAKE_NORTHWIND_OUTLINE.databases,
|
|
27
|
+
{
|
|
28
|
+
path: FAKE_PLANNED_DATABASE,
|
|
29
|
+
schemas: [
|
|
30
|
+
{
|
|
31
|
+
name: 'PLANNED',
|
|
32
|
+
tables: [
|
|
33
|
+
{
|
|
34
|
+
name: 'FORECASTS',
|
|
35
|
+
isView: false,
|
|
36
|
+
columnCount: 2,
|
|
37
|
+
flags: [],
|
|
38
|
+
untypedColumns: [],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
runtimes: FAKE_NORTHWIND_OUTLINE.runtimes,
|
|
46
|
+
};
|
|
47
|
+
/** A fresh fake: build one per test, since jest.fn keeps its calls across tests */
|
|
48
|
+
export const createFakeCubeProjectCatalog = () => {
|
|
49
|
+
const listProjects = jest.fn(async () => Promise.resolve([
|
|
50
|
+
{ groupId: FAKE_PROJECT_GROUP, artifactId: 'reference' },
|
|
51
|
+
{ groupId: FAKE_PROJECT_GROUP, artifactId: 'sales' },
|
|
52
|
+
]));
|
|
53
|
+
const listVersions = jest.fn(async (project) => Promise.resolve(project.artifactId === 'sales' ? ['1.10.0', '1.9.0'] : ['2.0.0']));
|
|
54
|
+
const loadOutline = jest.fn(async (project) => Promise.resolve(project.artifactId === 'sales'
|
|
55
|
+
? FAKE_SALES_OUTLINE
|
|
56
|
+
: { databases: [], runtimes: [] }));
|
|
57
|
+
return {
|
|
58
|
+
catalog: { listProjects, listVersions, loadOutline },
|
|
59
|
+
listProjects,
|
|
60
|
+
listVersions,
|
|
61
|
+
loadOutline,
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=FakeCubeProjectCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCubeProjectCatalog.js","sourceRoot":"","sources":["../../src/__test-utils__/FakeCubeProjectCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,0EAA0E;AAC1E,uEAAuE;AACvE,4EAA4E;AAC5E,gEAAgE;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,SAAS,EAAE;QACT,GAAG,sBAAsB,CAAC,SAAS;QACnC;YACE,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,WAAW;4BACjB,MAAM,EAAE,KAAK;4BACb,WAAW,EAAE,CAAC;4BACd,KAAK,EAAE,EAAE;4BACT,cAAc,EAAE,EAAE;yBACnB;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE,sBAAsB,CAAC,QAAQ;CAC1C,CAAC;AASF,mFAAmF;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAA2B,EAAE;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAqC,KAAK,IAAI,EAAE,CAC1E,OAAO,CAAC,OAAO,CAAC;QACd,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE;QACxD,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE;KACrD,CAAC,CACH,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAC1B,KAAK,EAAE,OAAO,EAAE,EAAE,CAChB,OAAO,CAAC,OAAO,CACb,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CACjE,CACJ,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CACzB,KAAK,EAAE,OAAO,EAAE,EAAE,CAChB,OAAO,CAAC,OAAO,CACb,OAAO,CAAC,UAAU,KAAK,OAAO;QAC5B,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACpC,CACJ,CAAC;IACF,OAAO;QACL,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE;QACpD,YAAY;QACZ,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { CubeEditorState } from '../stores/CubeEditorState.js';
|
|
17
|
+
/** The items, as the canvas's context menu lists them (spec §17.4) */
|
|
18
|
+
export declare const CubeAddMenuItems: ((props: {
|
|
19
|
+
editorState: CubeEditorState;
|
|
20
|
+
nodeId?: string | undefined;
|
|
21
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
22
|
+
displayName: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* 'Add Items ▾' in the graph's header (spec §17.1, QUESTIONS.md U3(a)): the
|
|
26
|
+
* palette's items, a transform added after the selected node, a source
|
|
27
|
+
* through the source dialog. It opens no node editor. Its menu takes the
|
|
28
|
+
* arrow keys, Enter and Escape, and gives the focus back to its button.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CubeAddItemsMenu: ((props: {
|
|
31
|
+
editorState: CubeEditorState;
|
|
32
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
33
|
+
displayName: string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=CubeAddItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeAddItems.d.ts","sourceRoot":"","sources":["../../src/components/CubeAddItems.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AA4CpE,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,WACnB;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;CA0BtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,WACnB;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CA+DzC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { CaretDownIcon, clsx, DropdownMenu, DropdownMenuItem, MenuContentDivider, MenuContentItem, MenuContentItemIcon, MenuContentItemLabel, useDropdownMenu, } from '@finos/legend-art';
|
|
18
|
+
import { observer } from 'mobx-react-lite';
|
|
19
|
+
import { OTHER_SOURCE_KIND_TITLE, READ_ONLY_CUBE_TITLE, } from '../__lib__/LegendCubeLabels.js';
|
|
20
|
+
import { addCubeNode, canAddCubeNode } from '../stores/CubeAddPlacement.js';
|
|
21
|
+
import { CubeNodeIcon } from './CubeNodeIcon.js';
|
|
22
|
+
/**
|
|
23
|
+
* The items that add a node, as the palette lists them (spec §17.2): the
|
|
24
|
+
* sources the cube can take, then the transforms. Each adds where the
|
|
25
|
+
* placement rule puts it (PLAN §11.8): after `nodeId` when given, else after
|
|
26
|
+
* the selected node; a source opens the source dialog on its tab. An item
|
|
27
|
+
* that can't be added is listed, disabled; a source says why. Read in an
|
|
28
|
+
* observer's render.
|
|
29
|
+
*/
|
|
30
|
+
const getCubeAddItems = (editorState, nodeId) => {
|
|
31
|
+
const item = (definition) => {
|
|
32
|
+
const disabled = !canAddCubeNode(editorState, definition.type, nodeId);
|
|
33
|
+
return {
|
|
34
|
+
definition,
|
|
35
|
+
label: `${definition.label}${definition.beta ? ' (BETA)' : ''}`,
|
|
36
|
+
disabled,
|
|
37
|
+
title: disabled && definition.kind === 'source'
|
|
38
|
+
? (editorState.sourcePicker.disabledReason ?? OTHER_SOURCE_KIND_TITLE)
|
|
39
|
+
: undefined,
|
|
40
|
+
add: () => addCubeNode(editorState, definition.type, nodeId),
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
sources: editorState.offeredSources.map(item),
|
|
45
|
+
transforms: editorState.registry.transforms.map(item),
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
/** The items, as the canvas's context menu lists them (spec §17.4) */
|
|
49
|
+
export const CubeAddMenuItems = observer((props) => {
|
|
50
|
+
const { sources, transforms } = getCubeAddItems(props.editorState, props.nodeId);
|
|
51
|
+
const menuItem = (item) => (_jsxs(MenuContentItem, { disabled: item.disabled, title: item.title, onClick: item.add, children: [_jsx(MenuContentItemIcon, { children: _jsx(CubeNodeIcon, { icon: item.definition.icon }) }), _jsx(MenuContentItemLabel, { children: item.label })] }, item.definition.type));
|
|
52
|
+
return (_jsxs(_Fragment, { children: [sources.map(menuItem), _jsx(MenuContentDivider, {}), transforms.map(menuItem)] }));
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* 'Add Items ▾' in the graph's header (spec §17.1, QUESTIONS.md U3(a)): the
|
|
56
|
+
* palette's items, a transform added after the selected node, a source
|
|
57
|
+
* through the source dialog. It opens no node editor. Its menu takes the
|
|
58
|
+
* arrow keys, Enter and Escape, and gives the focus back to its button.
|
|
59
|
+
*/
|
|
60
|
+
export const CubeAddItemsMenu = observer((props) => {
|
|
61
|
+
const { editorState } = props;
|
|
62
|
+
const { readOnly } = editorState;
|
|
63
|
+
const [openMenu, closeMenu, menuProps, isOpen] = useDropdownMenu();
|
|
64
|
+
const { sources, transforms } = getCubeAddItems(editorState);
|
|
65
|
+
const menuItem = (item) => (_jsxs(DropdownMenuItem, { className: clsx('flex items-center gap-2 px-2 text-base', item.disabled && '!cursor-not-allowed opacity-50'), "aria-disabled": item.disabled, title: item.title, onClick: () => {
|
|
66
|
+
if (!item.disabled) {
|
|
67
|
+
closeMenu();
|
|
68
|
+
item.add();
|
|
69
|
+
}
|
|
70
|
+
}, children: [_jsx(CubeNodeIcon, { icon: item.definition.icon }), _jsx("span", { children: item.label })] }, item.definition.type));
|
|
71
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "flex h-6 shrink-0 items-center gap-1 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] px-2 text-base text-[var(--color-text-primary)] enabled:cursor-pointer enabled:hover:bg-[var(--color-bg-hover)] disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]", disabled: readOnly, title: readOnly
|
|
72
|
+
? READ_ONLY_CUBE_TITLE
|
|
73
|
+
: 'Add a source, or a step after the selected node', "aria-haspopup": "menu", "aria-expanded": isOpen, onClick: openMenu, children: ["Add Items", _jsx(CaretDownIcon, { "aria-hidden": true })] }), _jsxs(DropdownMenu, { ...menuProps, menuProps: {
|
|
74
|
+
elevation: 7,
|
|
75
|
+
slotProps: {
|
|
76
|
+
root: { slotProps: { backdrop: { invisible: true } } },
|
|
77
|
+
// the keyboard reaches a disabled source too, to read why
|
|
78
|
+
list: { disabledItemsFocusable: true },
|
|
79
|
+
},
|
|
80
|
+
}, children: [sources.map(menuItem), _jsx(MenuContentDivider, {}), transforms.map(menuItem)] })] }));
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=CubeAddItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeAddItems.js","sourceRoot":"","sources":["../../src/components/CubeAddItems.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import type { CubeDocument } from '@finos/legend-cube';
|
|
17
|
+
import { type CubeEntrySource } from '../stores/CubeEntrySource.js';
|
|
17
18
|
import type { CubeHost } from '../stores/CubeHost.js';
|
|
18
19
|
/**
|
|
19
20
|
* The Legend Cube page: the query above, its results below, both always
|
|
20
|
-
* shown (PLAN §7.1); hiding the graph leaves its header.
|
|
21
|
+
* shown (PLAN §7.1); hiding the graph leaves its header. A node's editor
|
|
22
|
+
* floats below the node (PLAN §11.8). The host gives it
|
|
21
23
|
* the engine, the models and the application store; the page's state lives
|
|
22
24
|
* as long as the page.
|
|
23
25
|
*/
|
|
@@ -25,6 +27,8 @@ export declare const CubeEditor: ((props: {
|
|
|
25
27
|
host: CubeHost;
|
|
26
28
|
/** The cube to open; an empty one by default */
|
|
27
29
|
initialDocument?: CubeDocument | undefined;
|
|
30
|
+
/** A source a link asks the page to start with, on an empty cube (spec §17.15) */
|
|
31
|
+
initialSource?: CubeEntrySource | undefined;
|
|
28
32
|
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
29
33
|
displayName: string;
|
|
30
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeEditor.d.ts","sourceRoot":"","sources":["../../src/components/CubeEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAavD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CubeEditor.d.ts","sourceRoot":"","sources":["../../src/components/CubeEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAavD,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAmKtD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,WACb;IACN,IAAI,EAAE,QAAQ,CAAC;IACf,gDAAgD;IAChD,eAAe,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC3C,kFAAkF;IAClF,aAAa,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC7C;;CAiDF,CAAC"}
|