@finos/legend-cube-builder 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -1
- package/docs/adding-an-operation.md +181 -0
- package/docs/hosting.md +157 -0
- package/docs/testing.md +188 -0
- package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
- package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeCommand.js +5 -0
- package/lib/__lib__/LegendCubeCommand.js.map +1 -1
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeHelpText.js +21 -3
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
- package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
- package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeLabels.d.ts +95 -3
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +121 -4
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
- package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
- package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +1 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts +18 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +51 -0
- package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +67 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubePageTestUtils.js +25 -1
- package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.js +9 -1
- package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.js +21 -2
- package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
- package/lib/components/CubeAddItems.d.ts +35 -0
- package/lib/components/CubeAddItems.d.ts.map +1 -0
- package/lib/components/CubeAddItems.js +82 -0
- package/lib/components/CubeAddItems.js.map +1 -0
- package/lib/components/CubeEditor.d.ts +5 -1
- package/lib/components/CubeEditor.d.ts.map +1 -1
- package/lib/components/CubeEditor.js +33 -13
- package/lib/components/CubeEditor.js.map +1 -1
- package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
- package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
- package/lib/components/CubeEntrySourceBanner.js +32 -0
- package/lib/components/CubeEntrySourceBanner.js.map +1 -0
- package/lib/components/CubeNodeIcon.d.ts.map +1 -1
- package/lib/components/CubeNodeIcon.js +19 -2
- package/lib/components/CubeNodeIcon.js.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
- package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
- package/lib/components/CubeSchemaColumnsTable.js +6 -0
- package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
- package/lib/components/canvas/CubeCanvas.d.ts +4 -3
- package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvas.js +33 -12
- package/lib/components/canvas/CubeCanvas.js.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
- package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
- package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.js +14 -9
- package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts +2 -0
- package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +8 -4
- package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.js +30 -17
- package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
- package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.js +41 -0
- package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
- package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
- package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnPicker.js +9 -4
- package/lib/components/editors/CubeColumnPicker.js.map +1 -1
- package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
- package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeConcatEditor.js +147 -0
- package/lib/components/editors/CubeConcatEditor.js.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.js +29 -0
- package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.js +24 -0
- package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExtendEditor.js +86 -0
- package/lib/components/editors/CubeExtendEditor.js.map +1 -0
- package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeFilterEditor.js +3 -3
- package/lib/components/editors/CubeFilterEditor.js.map +1 -1
- package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
- package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeGroupEditor.js +70 -0
- package/lib/components/editors/CubeGroupEditor.js.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
- package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeIntegerField.d.ts +29 -0
- package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
- package/lib/components/editors/CubeIntegerField.js +30 -0
- package/lib/components/editors/CubeIntegerField.js.map +1 -0
- package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +15 -37
- package/lib/components/editors/CubeJoinEditor.js.map +1 -1
- package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
- package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
- package/lib/components/editors/CubeJoinKeyRows.js +65 -0
- package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
- package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
- package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
- package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
- package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
- package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
- package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
- package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
- package/lib/components/editors/CubePartitionEditor.js +93 -0
- package/lib/components/editors/CubePartitionEditor.js.map +1 -0
- package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
- package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRenameEditor.js +60 -0
- package/lib/components/editors/CubeRenameEditor.js.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.js +23 -0
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.js +38 -0
- package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
- package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
- package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSliceEditor.js +40 -0
- package/lib/components/editors/CubeSliceEditor.js.map +1 -0
- package/lib/components/editors/CubeSortEditor.d.ts +27 -0
- package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortEditor.js +45 -0
- package/lib/components/editors/CubeSortEditor.js.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.js +62 -0
- package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
- package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeSourceEditor.js +18 -6
- package/lib/components/editors/CubeSourceEditor.js.map +1 -1
- package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeValueEditor.js +2 -1
- package/lib/components/editors/CubeValueEditor.js.map +1 -1
- package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
- package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
- package/lib/components/editors/CubeWarehouseControl.js +44 -0
- package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.js +68 -0
- package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
- package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
- package/lib/components/grid/CubeGridRegion.js +20 -9
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +16 -0
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +44 -0
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeResultGrid.d.ts +14 -1
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +55 -7
- package/lib/components/grid/CubeResultGrid.js.map +1 -1
- package/lib/components/palette/CubePalette.d.ts.map +1 -1
- package/lib/components/palette/CubePalette.js +23 -12
- package/lib/components/palette/CubePalette.js.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDataProductTab.js +102 -0
- package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.js +66 -0
- package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
- package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
- package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
- package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
- package/lib/components/source-picker/CubePickerStep.js +23 -0
- package/lib/components/source-picker/CubePickerStep.js.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.js +50 -0
- package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
- package/lib/components/source-picker/CubeSourcePicker.js +20 -58
- package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
- package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
- package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
- package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
- package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProduct.js +102 -0
- package/lib/graph-manager/CubeDataProduct.js.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
- package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.js +48 -0
- package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/CubeEngine.d.ts +50 -2
- package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/CubeEngine.js +4 -1
- package/lib/graph-manager/CubeEngine.js.map +1 -1
- package/lib/graph-manager/CubeIngest.d.ts +50 -0
- package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngest.js +88 -0
- package/lib/graph-manager/CubeIngest.js.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.js +80 -0
- package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
- package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
- package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
- package/lib/graph-manager/CubeProject.d.ts +41 -0
- package/lib/graph-manager/CubeProject.d.ts.map +1 -0
- package/lib/graph-manager/CubeProject.js +84 -0
- package/lib/graph-manager/CubeProject.js.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.js +17 -0
- package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +56 -3
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +11 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/CubeAddPlacement.d.ts +32 -0
- package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
- package/lib/stores/CubeAddPlacement.js +40 -0
- package/lib/stores/CubeAddPlacement.js.map +1 -0
- package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
- package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRecheck.js +54 -0
- package/lib/stores/CubeDataProductRecheck.js.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.js +190 -0
- package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.js +25 -0
- package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
- package/lib/stores/CubeEditorState.d.ts +133 -19
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +433 -52
- package/lib/stores/CubeEditorState.js.map +1 -1
- package/lib/stores/CubeEntrySource.d.ts +78 -0
- package/lib/stores/CubeEntrySource.d.ts.map +1 -0
- package/lib/stores/CubeEntrySource.js +200 -0
- package/lib/stores/CubeEntrySource.js.map +1 -0
- package/lib/stores/CubeExamples.d.ts +43 -0
- package/lib/stores/CubeExamples.d.ts.map +1 -0
- package/lib/stores/CubeExamples.js +296 -0
- package/lib/stores/CubeExamples.js.map +1 -0
- package/lib/stores/CubeExamplesState.d.ts +45 -0
- package/lib/stores/CubeExamplesState.d.ts.map +1 -0
- package/lib/stores/CubeExamplesState.js +81 -0
- package/lib/stores/CubeExamplesState.js.map +1 -0
- package/lib/stores/CubeExecutionState.d.ts +6 -2
- package/lib/stores/CubeExecutionState.d.ts.map +1 -1
- package/lib/stores/CubeExecutionState.js +34 -8
- package/lib/stores/CubeExecutionState.js.map +1 -1
- package/lib/stores/CubeExtendTyping.d.ts +72 -0
- package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
- package/lib/stores/CubeExtendTyping.js +176 -0
- package/lib/stores/CubeExtendTyping.js.map +1 -0
- package/lib/stores/CubeGridQuickActions.d.ts +48 -0
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
- package/lib/stores/CubeGridQuickActions.js +124 -0
- package/lib/stores/CubeGridQuickActions.js.map +1 -0
- package/lib/stores/CubeHost.d.ts +32 -1
- package/lib/stores/CubeHost.d.ts.map +1 -1
- package/lib/stores/CubeHost.js +21 -1
- package/lib/stores/CubeHost.js.map +1 -1
- package/lib/stores/CubeIngestRecheck.d.ts +26 -0
- package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
- package/lib/stores/CubeIngestRecheck.js +53 -0
- package/lib/stores/CubeIngestRecheck.js.map +1 -0
- package/lib/stores/CubeNodeEditorState.d.ts +120 -6
- package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeNodeEditorState.js +275 -9
- package/lib/stores/CubeNodeEditorState.js.map +1 -1
- package/lib/stores/CubeShowPureState.d.ts +9 -3
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +28 -8
- package/lib/stores/CubeShowPureState.js.map +1 -1
- package/lib/stores/CubeSourcePickerState.d.ts +54 -65
- package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
- package/lib/stores/CubeSourcePickerState.js +155 -276
- package/lib/stores/CubeSourcePickerState.js.map +1 -1
- package/lib/stores/CubeSpecTransferState.d.ts +2 -2
- package/lib/stores/CubeSpecTransferState.js +2 -2
- package/lib/stores/LocalModelCatalog.d.ts +2 -0
- package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
- package/lib/stores/LocalModelCatalog.js +17 -3
- package/lib/stores/LocalModelCatalog.js.map +1 -1
- package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
- package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeAggregationRows.js +164 -0
- package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.js +44 -0
- package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
- package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.js +359 -0
- package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.js +106 -0
- package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
- package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
- package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
- package/lib/stores/editors/CubeIntegerText.js +33 -0
- package/lib/stores/editors/CubeIntegerText.js.map +1 -0
- package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
- package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeJoinDraft.js +109 -29
- package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
- package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
- package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraft.js +23 -5
- package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
- package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
- package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubePartitionDraft.js +154 -0
- package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.js +79 -0
- package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.js +73 -0
- package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.js +55 -0
- package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.js +72 -0
- package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
- package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortDraft.js +73 -0
- package/lib/stores/editors/CubeSortDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortRows.d.ts +34 -0
- package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortRows.js +50 -0
- package/lib/stores/editors/CubeSortRows.js.map +1 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
- package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
- package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
- package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
- package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSampleSql.js +64 -0
- package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.js +158 -0
- package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.js +197 -0
- package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
- package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
- package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
- package/package.json +12 -8
- package/src/__lib__/LegendCubeCommand.ts +5 -0
- package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
- package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
- package/src/__lib__/LegendCubeHelpText.ts +46 -2
- package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
- package/src/__lib__/LegendCubeLabels.ts +192 -4
- package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
- package/src/__lib__/LegendCubeTesting.ts +1 -0
- package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
- package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
- package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
- package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
- package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
- package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
- package/src/__test-utils__/CubeTestApplication.ts +21 -2
- package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
- package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
- package/src/__test-utils__/FakeCubeEngine.ts +32 -2
- package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
- package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
- package/src/components/CubeAddItems.tsx +179 -0
- package/src/components/CubeEditor.tsx +73 -44
- package/src/components/CubeEntrySourceBanner.tsx +64 -0
- package/src/components/CubeNodeIcon.tsx +31 -1
- package/src/components/CubeSchemaColumnsTable.tsx +49 -0
- package/src/components/canvas/CubeCanvas.tsx +51 -14
- package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
- package/src/components/canvas/CubeCanvasDnd.ts +16 -9
- package/src/components/canvas/CubeCanvasElements.ts +12 -3
- package/src/components/canvas/CubeCanvasNode.tsx +62 -36
- package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
- package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
- package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
- package/src/components/editors/CubeColumnChecklist.tsx +130 -0
- package/src/components/editors/CubeColumnPicker.tsx +36 -12
- package/src/components/editors/CubeConcatEditor.tsx +374 -0
- package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
- package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
- package/src/components/editors/CubeDistinctEditor.tsx +28 -0
- package/src/components/editors/CubeExtendEditor.tsx +271 -0
- package/src/components/editors/CubeFilterEditor.tsx +7 -0
- package/src/components/editors/CubeGroupEditor.tsx +135 -0
- package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
- package/src/components/editors/CubeIntegerField.tsx +51 -0
- package/src/components/editors/CubeJoinEditor.tsx +34 -131
- package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
- package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
- package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
- package/src/components/editors/CubePartitionEditor.tsx +208 -0
- package/src/components/editors/CubeRenameEditor.tsx +148 -0
- package/src/components/editors/CubeRestrictEditor.tsx +103 -0
- package/src/components/editors/CubeRowCountEditor.tsx +53 -0
- package/src/components/editors/CubeSliceEditor.tsx +69 -0
- package/src/components/editors/CubeSortEditor.tsx +84 -0
- package/src/components/editors/CubeSortRowEditor.tsx +176 -0
- package/src/components/editors/CubeSourceEditor.tsx +42 -40
- package/src/components/editors/CubeValueEditor.tsx +2 -1
- package/src/components/editors/CubeWarehouseControl.tsx +113 -0
- package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
- package/src/components/examples/CubeExamplesDialog.tsx +199 -0
- package/src/components/grid/CubeGridRegion.tsx +49 -10
- package/src/components/grid/CubeGridValues.ts +55 -0
- package/src/components/grid/CubeResultGrid.tsx +83 -13
- package/src/components/palette/CubePalette.tsx +33 -15
- package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
- package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
- package/src/components/source-picker/CubeIngestTab.tsx +232 -0
- package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
- package/src/components/source-picker/CubePickerStep.tsx +49 -0
- package/src/components/source-picker/CubeProjectTab.tsx +114 -0
- package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
- package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
- package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
- package/src/graph-manager/CubeDataProduct.ts +150 -0
- package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
- package/src/graph-manager/CubeDirectConnection.ts +67 -0
- package/src/graph-manager/CubeEngine.ts +57 -1
- package/src/graph-manager/CubeIngest.ts +144 -0
- package/src/graph-manager/CubeIngestCatalog.ts +169 -0
- package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
- package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
- package/src/graph-manager/CubeProject.ts +117 -0
- package/src/graph-manager/CubeProjectCatalog.ts +40 -0
- package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
- package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
- package/src/index.ts +20 -0
- package/src/stores/CubeAddPlacement.ts +67 -0
- package/src/stores/CubeDataProductRecheck.ts +93 -0
- package/src/stores/CubeDataProductRuntimeState.ts +256 -0
- package/src/stores/CubeDataProductWarehouse.ts +40 -0
- package/src/stores/CubeEditorState.ts +621 -68
- package/src/stores/CubeEntrySource.ts +278 -0
- package/src/stores/CubeExamples.ts +457 -0
- package/src/stores/CubeExamplesState.ts +108 -0
- package/src/stores/CubeExecutionState.ts +60 -8
- package/src/stores/CubeExtendTyping.ts +291 -0
- package/src/stores/CubeGridQuickActions.ts +184 -0
- package/src/stores/CubeHost.ts +71 -1
- package/src/stores/CubeIngestRecheck.ts +92 -0
- package/src/stores/CubeNodeEditorState.ts +348 -10
- package/src/stores/CubeShowPureState.ts +33 -8
- package/src/stores/CubeSourcePickerState.ts +160 -330
- package/src/stores/CubeSpecTransferState.ts +2 -2
- package/src/stores/LocalModelCatalog.ts +22 -3
- package/src/stores/editors/CubeAggregationRows.ts +299 -0
- package/src/stores/editors/CubeConcatDraft.ts +49 -0
- package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
- package/src/stores/editors/CubeExtendDraft.ts +532 -0
- package/src/stores/editors/CubeGroupDraft.ts +145 -0
- package/src/stores/editors/CubeIntegerText.ts +34 -0
- package/src/stores/editors/CubeJoinDraft.ts +170 -54
- package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
- package/src/stores/editors/CubeNodeDraft.ts +26 -6
- package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
- package/src/stores/editors/CubePartitionDraft.ts +214 -0
- package/src/stores/editors/CubeRenameDraft.ts +110 -0
- package/src/stores/editors/CubeRestrictDraft.ts +83 -0
- package/src/stores/editors/CubeRowCountDraft.ts +69 -0
- package/src/stores/editors/CubeSliceDraft.ts +87 -0
- package/src/stores/editors/CubeSortDraft.ts +98 -0
- package/src/stores/editors/CubeSortRows.ts +84 -0
- package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
- package/src/stores/fixtures/CubeSampleSql.ts +85 -0
- package/src/stores/fixtures/CubeSportsModel.ts +182 -0
- package/src/stores/fixtures/CubeTradesModel.ts +241 -0
- package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
- package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
- package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
- package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
- package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
- package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
- package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
- package/tsconfig.json +104 -0
|
@@ -0,0 +1,246 @@
|
|
|
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 { CubeConnectionDatasourceKind, CubeDirectDatabaseType, } from '../../../CubeConnectionExplorer.js';
|
|
17
|
+
// A direct connection's protocol JSON (PLAN §6.8), read and written as plain
|
|
18
|
+
// JSON. legend-graph's connection serializers are not used: they drop a DuckDB
|
|
19
|
+
// connection's setup SQL and an H2 one's identifier setting, and a saved
|
|
20
|
+
// connection must reach the engine exactly as it was saved. A connection is
|
|
21
|
+
// checked against what Cube supports, and anything else is refused, never
|
|
22
|
+
// dropped, since an imported cube is saved again unchanged
|
|
23
|
+
const CONNECTION_TYPE = 'RelationalDatabaseConnection';
|
|
24
|
+
const H2_DATASOURCE_TYPE = 'h2Local';
|
|
25
|
+
const DUCKDB_DATASOURCE_TYPE = 'duckDB';
|
|
26
|
+
const H2_DEFAULT_AUTHENTICATION_TYPE = 'h2Default';
|
|
27
|
+
const TEST_AUTHENTICATION_TYPE = 'test';
|
|
28
|
+
/** Where the engine records source positions: kept, and ignored when comparing */
|
|
29
|
+
const SOURCE_INFORMATION_KEYS = [
|
|
30
|
+
'sourceInformation',
|
|
31
|
+
'elementSourceInformation',
|
|
32
|
+
];
|
|
33
|
+
/** The store the connection is bound to: set only in the model built for each call */
|
|
34
|
+
const ELEMENT_KEY = 'element';
|
|
35
|
+
/** The authentication strategies, as the engine names them, each database allows */
|
|
36
|
+
const AUTHENTICATION_TYPES = {
|
|
37
|
+
[CubeDirectDatabaseType.H2]: [
|
|
38
|
+
H2_DEFAULT_AUTHENTICATION_TYPE,
|
|
39
|
+
TEST_AUTHENTICATION_TYPE,
|
|
40
|
+
],
|
|
41
|
+
[CubeDirectDatabaseType.DUCKDB]: [TEST_AUTHENTICATION_TYPE],
|
|
42
|
+
};
|
|
43
|
+
const isEmptyList = (value) => value === undefined ||
|
|
44
|
+
value === null ||
|
|
45
|
+
(Array.isArray(value) && value.length === 0);
|
|
46
|
+
/**
|
|
47
|
+
* Connection settings Cube doesn't support yet, accepted only at the engine's
|
|
48
|
+
* default value: each changes how a query runs, in ways Cube doesn't show
|
|
49
|
+
*/
|
|
50
|
+
const UNSUPPORTED_SETTINGS = {
|
|
51
|
+
localMode: (value) => value === undefined || value === null || value === false,
|
|
52
|
+
quoteIdentifiers: (value) => value === undefined || value === null || value === false,
|
|
53
|
+
timeZone: (value) => value === undefined || value === null,
|
|
54
|
+
queryTimeOutInSeconds: (value) => value === undefined || value === null,
|
|
55
|
+
queryGenerationConfigs: (value) => isEmptyList(value),
|
|
56
|
+
// a schema mapper ran a query on another schema with no error
|
|
57
|
+
postProcessors: (value) => isEmptyList(value),
|
|
58
|
+
postProcessorWithParameter: (value) => isEmptyList(value),
|
|
59
|
+
};
|
|
60
|
+
const isObject = (value) => Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
61
|
+
const isDatabaseType = (value) => Object.values(CubeDirectDatabaseType).includes(value);
|
|
62
|
+
const isStatementList = (value) => Array.isArray(value) &&
|
|
63
|
+
value.every((statement) => typeof statement === 'string');
|
|
64
|
+
/** The keys of an object that are neither expected nor source information */
|
|
65
|
+
const unexpectedKeys = (object, expected) => Object.keys(object).filter((key) => !expected.includes(key) && !SOURCE_INFORMATION_KEYS.includes(key));
|
|
66
|
+
const checkDatasource = (databaseType, datasource) => {
|
|
67
|
+
const problems = [];
|
|
68
|
+
// a CSV setup is the engine's own SQL generation, which lost rows in tests
|
|
69
|
+
if (datasource.testDataSetupCsv !== undefined &&
|
|
70
|
+
datasource.testDataSetupCsv !== null &&
|
|
71
|
+
datasource.testDataSetupCsv !== '') {
|
|
72
|
+
problems.push("The connection sets up its data from CSV, which Cube doesn't support: use setup SQL statements");
|
|
73
|
+
}
|
|
74
|
+
if (databaseType === CubeDirectDatabaseType.H2) {
|
|
75
|
+
if (datasource._type !== H2_DATASOURCE_TYPE) {
|
|
76
|
+
problems.push('An H2 connection must use a local H2 database, created by its setup SQL');
|
|
77
|
+
return problems;
|
|
78
|
+
}
|
|
79
|
+
if (datasource.disableDatabaseToUpper !== undefined &&
|
|
80
|
+
datasource.disableDatabaseToUpper !== null &&
|
|
81
|
+
datasource.disableDatabaseToUpper !== false) {
|
|
82
|
+
problems.push("The connection keeps H2 from upper-casing names, which Cube doesn't support");
|
|
83
|
+
}
|
|
84
|
+
if (!isStatementList(datasource.testDataSetupSqls) ||
|
|
85
|
+
datasource.testDataSetupSqls.length === 0) {
|
|
86
|
+
// without setup SQL the engine connects to an H2 server that isn't there
|
|
87
|
+
problems.push('An H2 connection needs at least one setup SQL statement');
|
|
88
|
+
}
|
|
89
|
+
unexpectedKeys(datasource, [
|
|
90
|
+
'_type',
|
|
91
|
+
'testDataSetupSqls',
|
|
92
|
+
'testDataSetupCsv',
|
|
93
|
+
'disableDatabaseToUpper',
|
|
94
|
+
]).forEach((key) => problems.push(`The connection's database has a property Cube doesn't know: "${key}"`));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
if (datasource._type !== DUCKDB_DATASOURCE_TYPE) {
|
|
98
|
+
problems.push('A DuckDB connection must name a DuckDB database file, or none for an in-memory database');
|
|
99
|
+
return problems;
|
|
100
|
+
}
|
|
101
|
+
if (typeof datasource.path !== 'string') {
|
|
102
|
+
problems.push('A DuckDB connection must name a database file, or none for an in-memory database');
|
|
103
|
+
}
|
|
104
|
+
if (datasource.testDataSetupSqls !== undefined &&
|
|
105
|
+
!isStatementList(datasource.testDataSetupSqls)) {
|
|
106
|
+
problems.push("The connection's setup SQL must be a list of statements");
|
|
107
|
+
}
|
|
108
|
+
unexpectedKeys(datasource, [
|
|
109
|
+
'_type',
|
|
110
|
+
'path',
|
|
111
|
+
'testDataSetupSqls',
|
|
112
|
+
'testDataSetupCsv',
|
|
113
|
+
]).forEach((key) => problems.push(`The connection's database has a property Cube doesn't know: "${key}"`));
|
|
114
|
+
}
|
|
115
|
+
return problems;
|
|
116
|
+
};
|
|
117
|
+
const checkAuthentication = (databaseType, authentication) => {
|
|
118
|
+
const allowed = AUTHENTICATION_TYPES[databaseType];
|
|
119
|
+
if (!allowed.includes(authentication._type)) {
|
|
120
|
+
return [
|
|
121
|
+
`${databaseType === CubeDirectDatabaseType.H2 ? 'An' : 'A'} ${databaseType} connection's authentication must be ${allowed
|
|
122
|
+
.map((type) => `"${type}"`)
|
|
123
|
+
.join(' or ')}`,
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
// these strategies take no settings, so no secret can be saved with them
|
|
127
|
+
return unexpectedKeys(authentication, ['_type']).map((key) => `The connection's authentication has a property Cube doesn't know: "${key}"`);
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* What keeps Cube from using a connection, in words a user can act on: none
|
|
131
|
+
* when the connection is one Cube supports. Values are never repeated, only
|
|
132
|
+
* the names of properties, since a property Cube doesn't know could hold a
|
|
133
|
+
* secret
|
|
134
|
+
*/
|
|
135
|
+
export const V1_checkCubeDirectConnection = (connection) => {
|
|
136
|
+
if (!isObject(connection) || connection._type !== CONNECTION_TYPE) {
|
|
137
|
+
return ['The connection is not a relational database connection'];
|
|
138
|
+
}
|
|
139
|
+
const { type, databaseType } = connection;
|
|
140
|
+
if (!isDatabaseType(databaseType)) {
|
|
141
|
+
return [
|
|
142
|
+
`Cube connects to H2 and DuckDB databases only, not to "${String(databaseType)}"`,
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
const problems = [];
|
|
146
|
+
if (type !== databaseType) {
|
|
147
|
+
problems.push("The connection's type and database type must be the same database");
|
|
148
|
+
}
|
|
149
|
+
Object.entries(UNSUPPORTED_SETTINGS).forEach(([key, isDefault]) => {
|
|
150
|
+
if (!isDefault(connection[key])) {
|
|
151
|
+
problems.push(`The connection sets "${key}", which Cube doesn't support`);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
unexpectedKeys(connection, [
|
|
155
|
+
'_type',
|
|
156
|
+
'type',
|
|
157
|
+
'databaseType',
|
|
158
|
+
'datasourceSpecification',
|
|
159
|
+
'authenticationStrategy',
|
|
160
|
+
ELEMENT_KEY,
|
|
161
|
+
...Object.keys(UNSUPPORTED_SETTINGS),
|
|
162
|
+
]).forEach((key) => problems.push(`The connection has a property Cube doesn't know: "${key}"`));
|
|
163
|
+
if (isObject(connection.datasourceSpecification)) {
|
|
164
|
+
problems.push(...checkDatasource(databaseType, connection.datasourceSpecification));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
problems.push("The connection doesn't say how to reach its database");
|
|
168
|
+
}
|
|
169
|
+
if (isObject(connection.authenticationStrategy)) {
|
|
170
|
+
problems.push(...checkAuthentication(databaseType, connection.authenticationStrategy));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
problems.push("The connection doesn't say how to authenticate");
|
|
174
|
+
}
|
|
175
|
+
return problems;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* The connection the form describes, as the engine reads it. It names no
|
|
179
|
+
* store: each call binds it to the Database built for that call
|
|
180
|
+
*/
|
|
181
|
+
export const V1_buildCubeDirectConnection = (draft) => {
|
|
182
|
+
const setupSqls = [...draft.setupSqls];
|
|
183
|
+
return draft.databaseType === CubeDirectDatabaseType.H2
|
|
184
|
+
? {
|
|
185
|
+
_type: CONNECTION_TYPE,
|
|
186
|
+
type: CubeDirectDatabaseType.H2,
|
|
187
|
+
databaseType: CubeDirectDatabaseType.H2,
|
|
188
|
+
datasourceSpecification: {
|
|
189
|
+
_type: H2_DATASOURCE_TYPE,
|
|
190
|
+
testDataSetupSqls: setupSqls,
|
|
191
|
+
},
|
|
192
|
+
authenticationStrategy: { _type: H2_DEFAULT_AUTHENTICATION_TYPE },
|
|
193
|
+
}
|
|
194
|
+
: {
|
|
195
|
+
_type: CONNECTION_TYPE,
|
|
196
|
+
type: CubeDirectDatabaseType.DUCKDB,
|
|
197
|
+
databaseType: CubeDirectDatabaseType.DUCKDB,
|
|
198
|
+
datasourceSpecification: {
|
|
199
|
+
_type: DUCKDB_DATASOURCE_TYPE,
|
|
200
|
+
path: draft.path ?? '',
|
|
201
|
+
...(setupSqls.length ? { testDataSetupSqls: setupSqls } : {}),
|
|
202
|
+
},
|
|
203
|
+
authenticationStrategy: { _type: TEST_AUTHENTICATION_TYPE },
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* What the page shows of a connection Cube supports (see
|
|
208
|
+
* `V1_checkCubeDirectConnection`): never its setup SQL
|
|
209
|
+
*/
|
|
210
|
+
export const V1_summarizeCubeDirectConnection = (connection) => {
|
|
211
|
+
const databaseType = connection.databaseType;
|
|
212
|
+
const datasource = connection.datasourceSpecification;
|
|
213
|
+
const authentication = connection.authenticationStrategy;
|
|
214
|
+
const path = typeof datasource.path === 'string' ? datasource.path : '';
|
|
215
|
+
const setupSqls = datasource.testDataSetupSqls;
|
|
216
|
+
return {
|
|
217
|
+
databaseType,
|
|
218
|
+
datasourceKind: databaseType === CubeDirectDatabaseType.H2
|
|
219
|
+
? CubeConnectionDatasourceKind.LOCAL_H2
|
|
220
|
+
: path
|
|
221
|
+
? CubeConnectionDatasourceKind.DUCKDB_FILE
|
|
222
|
+
: CubeConnectionDatasourceKind.DUCKDB_IN_MEMORY,
|
|
223
|
+
path: databaseType === CubeDirectDatabaseType.DUCKDB && path ? path : undefined,
|
|
224
|
+
setupSqlCount: Array.isArray(setupSqls) ? setupSqls.length : 0,
|
|
225
|
+
authenticationKind: String(authentication._type),
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
const canonicalValue = (value) => {
|
|
229
|
+
if (Array.isArray(value)) {
|
|
230
|
+
return value.map(canonicalValue);
|
|
231
|
+
}
|
|
232
|
+
if (isObject(value)) {
|
|
233
|
+
return Object.fromEntries(Object.keys(value)
|
|
234
|
+
.filter((key) => key !== ELEMENT_KEY && !SOURCE_INFORMATION_KEYS.includes(key))
|
|
235
|
+
.sort()
|
|
236
|
+
.map((key) => [key, canonicalValue(value[key])]));
|
|
237
|
+
}
|
|
238
|
+
return value;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* A connection as text that two connections share exactly when they reach the
|
|
242
|
+
* same database the same way: key order, the bound store and source
|
|
243
|
+
* positions don't count. Used to compare connections and to key caches
|
|
244
|
+
*/
|
|
245
|
+
export const V1_canonicalCubeDirectConnection = (connection) => JSON.stringify(canonicalValue(connection));
|
|
246
|
+
//# sourceMappingURL=V1_CubeDirectConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeDirectConnection.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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 { IR } from '@finos/legend-cube';
|
|
17
|
+
import type { PlainObject } from '@finos/legend-shared';
|
|
18
|
+
import type { CubeDirectConnection } from '../../../CubeConnectionExplorer.js';
|
|
19
|
+
import type { AccessorPath } from '../../../CubeEngine.js';
|
|
20
|
+
import { type V1_CubeExploredTablePath } from './V1_CubeSchemaExploration.js';
|
|
21
|
+
/** A table of the built Database, as read from the connection's database */
|
|
22
|
+
export interface V1_CubeDirectTable {
|
|
23
|
+
/** As the database stores them */
|
|
24
|
+
path: V1_CubeExploredTablePath;
|
|
25
|
+
/** The table's definition, every name quoted, without the columns Cube hides */
|
|
26
|
+
definition: PlainObject;
|
|
27
|
+
}
|
|
28
|
+
/** The built Database's package and name, which schema exploration takes */
|
|
29
|
+
export declare const V1_CUBE_DIRECT_DATABASE: {
|
|
30
|
+
package: string;
|
|
31
|
+
name: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The store accessors of a lambda, each once: found anywhere in it, so a new
|
|
35
|
+
* kind of IR node needs nothing here
|
|
36
|
+
*/
|
|
37
|
+
export declare const V1_collectCubeStoreAccessors: (ir: IR) => readonly AccessorPath[];
|
|
38
|
+
/**
|
|
39
|
+
* The model of one call: the tables in a fixed order (by schema, then table),
|
|
40
|
+
* so the same tables always give the same model
|
|
41
|
+
*/
|
|
42
|
+
export declare const V1_buildCubeDirectModelContext: (connection: CubeDirectConnection, tables: readonly V1_CubeDirectTable[]) => PlainObject;
|
|
43
|
+
//# sourceMappingURL=V1_CubeDirectModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeDirectModel.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAM/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,+BAA+B,CAAC;AAQvC,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,gFAAgF;IAChF,UAAU,EAAE,WAAW,CAAC;CACzB;AAUD,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB;aATS,MAAM;UAAQ,MAAM;CASU,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,IAAI,EAAE,KACL,SAAS,YAAY,EAuBvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,YAAY,oBAAoB,EAChC,QAAQ,SAAS,kBAAkB,EAAE,KACpC,WAyDF,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { CUBE_DIRECT_CONNECTION_PATH, CUBE_DIRECT_DATABASE_PATH, CUBE_DIRECT_RUNTIME_PATH, } from '../../../CubeDirectConnection.js';
|
|
17
|
+
import { V1_quoteCubeName, } from './V1_CubeSchemaExploration.js';
|
|
18
|
+
const splitPath = (path) => {
|
|
19
|
+
const index = path.lastIndexOf('::');
|
|
20
|
+
return { package: path.slice(0, index), name: path.slice(index + 2) };
|
|
21
|
+
};
|
|
22
|
+
/** By code point, the same in every locale */
|
|
23
|
+
const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
|
|
24
|
+
/** The built Database's package and name, which schema exploration takes */
|
|
25
|
+
export const V1_CUBE_DIRECT_DATABASE = splitPath(CUBE_DIRECT_DATABASE_PATH);
|
|
26
|
+
/**
|
|
27
|
+
* The store accessors of a lambda, each once: found anywhere in it, so a new
|
|
28
|
+
* kind of IR node needs nothing here
|
|
29
|
+
*/
|
|
30
|
+
export const V1_collectCubeStoreAccessors = (ir) => {
|
|
31
|
+
const found = new Map();
|
|
32
|
+
const visit = (value) => {
|
|
33
|
+
if (Array.isArray(value)) {
|
|
34
|
+
value.forEach(visit);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (!value || typeof value !== 'object') {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const node = value;
|
|
41
|
+
if (node.k === 'storeAccessor' && Array.isArray(node.path)) {
|
|
42
|
+
const path = node.path;
|
|
43
|
+
found.set(JSON.stringify(path), path);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (node.k === 'raw') {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
Object.values(node).forEach(visit);
|
|
50
|
+
};
|
|
51
|
+
visit(ir);
|
|
52
|
+
return [...found.values()];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* The model of one call: the tables in a fixed order (by schema, then table),
|
|
56
|
+
* so the same tables always give the same model
|
|
57
|
+
*/
|
|
58
|
+
export const V1_buildCubeDirectModelContext = (connection, tables) => {
|
|
59
|
+
const schemas = new Map();
|
|
60
|
+
[...tables]
|
|
61
|
+
.sort((a, b) => compare(a.path[0], b.path[0]) || compare(a.path[1], b.path[1]))
|
|
62
|
+
.forEach(({ path: [schema], definition }) => schemas.set(schema, [...(schemas.get(schema) ?? []), definition]));
|
|
63
|
+
return {
|
|
64
|
+
_type: 'data',
|
|
65
|
+
elements: [
|
|
66
|
+
{
|
|
67
|
+
_type: 'relational',
|
|
68
|
+
...splitPath(CUBE_DIRECT_DATABASE_PATH),
|
|
69
|
+
includedStores: [],
|
|
70
|
+
filters: [],
|
|
71
|
+
joins: [],
|
|
72
|
+
stereotypes: [],
|
|
73
|
+
schemas: [...schemas.entries()].map(([schema, definitions]) => ({
|
|
74
|
+
name: V1_quoteCubeName(schema),
|
|
75
|
+
tables: definitions,
|
|
76
|
+
views: [],
|
|
77
|
+
tabularFunctions: [],
|
|
78
|
+
})),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
_type: 'connection',
|
|
82
|
+
...splitPath(CUBE_DIRECT_CONNECTION_PATH),
|
|
83
|
+
// bound to the built Database: the engine needs the store it serves
|
|
84
|
+
connectionValue: { ...connection, element: CUBE_DIRECT_DATABASE_PATH },
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
_type: 'runtime',
|
|
88
|
+
...splitPath(CUBE_DIRECT_RUNTIME_PATH),
|
|
89
|
+
runtimeValue: {
|
|
90
|
+
_type: 'engineRuntime',
|
|
91
|
+
mappings: [],
|
|
92
|
+
connectionStores: [],
|
|
93
|
+
connections: [
|
|
94
|
+
{
|
|
95
|
+
store: { type: 'STORE', path: CUBE_DIRECT_DATABASE_PATH },
|
|
96
|
+
storeConnections: [
|
|
97
|
+
{
|
|
98
|
+
id: 'connection',
|
|
99
|
+
connection: {
|
|
100
|
+
_type: 'connectionPointer',
|
|
101
|
+
connection: CUBE_DIRECT_CONNECTION_PATH,
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=V1_CubeDirectModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeDirectModel.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V1_CubeEngineErrors.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,eAAe,EACf,mBAAmB,
|
|
1
|
+
{"version":3,"file":"V1_CubeEngineErrors.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,eAAe,EACf,mBAAmB,EAEnB,KAAK,MAAM,EACZ,MAAM,wBAAwB,CAAC;AAuEhC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,OAAO,EAChB,gBAAgB,MAAM,GAAG,SAAS,EAClC,MAAM,mBAAmB,KACxB,eAAe,GAAG,SAepB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,OAAO,EACd,gBAAgB,MAAM,GAAG,SAAS,EAClC,MAAM,mBAAmB,KACxB,eAuBF,CAAC"}
|
|
@@ -21,6 +21,26 @@ import { V1_parseCubeSourceId } from './V1_CubeLambdaSerializer.js';
|
|
|
21
21
|
// that node; plan-time, database and network errors carry no stamp, so they
|
|
22
22
|
// go on the node being typed or run.
|
|
23
23
|
const COMPILATION_ERROR_TYPES = new Set(['COMPILATION', 'PARSER']);
|
|
24
|
+
/**
|
|
25
|
+
* The engine's message when it can't fetch a pointer's project, e.g. a depot
|
|
26
|
+
* that is down or a version it doesn't have: HTML, with the URL it tried
|
|
27
|
+
*/
|
|
28
|
+
const DEPOT_FAILURE = /unable to load information from the Pure SDLC(?: using: <a href='(?<url>[^']*)')?/u;
|
|
29
|
+
/** Where the source information says the error is, when it gives every line and column */
|
|
30
|
+
const readLocation = (sourceInformation) => {
|
|
31
|
+
const { sourceId, startLine, startColumn, endLine, endColumn } = sourceInformation;
|
|
32
|
+
const lines = [startLine, startColumn, endLine, endColumn];
|
|
33
|
+
return typeof sourceId === 'string' &&
|
|
34
|
+
lines.every((value) => Number.isInteger(Number(value)) && Number(value) > 0)
|
|
35
|
+
? {
|
|
36
|
+
sourceId,
|
|
37
|
+
startLine: Number(startLine),
|
|
38
|
+
startColumn: Number(startColumn),
|
|
39
|
+
endLine: Number(endLine),
|
|
40
|
+
endColumn: Number(endColumn),
|
|
41
|
+
}
|
|
42
|
+
: undefined;
|
|
43
|
+
};
|
|
24
44
|
/** The engine's error payload: `{message, errorType?, sourceInformation?, trace?}` */
|
|
25
45
|
const readPayload = (payload) => {
|
|
26
46
|
if (!payload || typeof payload !== 'object') {
|
|
@@ -30,13 +50,19 @@ const readPayload = (payload) => {
|
|
|
30
50
|
if (typeof message !== 'string' || !message.trim()) {
|
|
31
51
|
return undefined;
|
|
32
52
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
53
|
+
const depotFailure = DEPOT_FAILURE.exec(message);
|
|
54
|
+
const located = sourceInformation && typeof sourceInformation === 'object'
|
|
55
|
+
? sourceInformation
|
|
35
56
|
: undefined;
|
|
57
|
+
const sourceId = located?.sourceId;
|
|
58
|
+
const location = located ? readLocation(located) : undefined;
|
|
36
59
|
return {
|
|
37
|
-
message
|
|
60
|
+
message: depotFailure
|
|
61
|
+
? `The engine couldn't load the cube's project from its depot${depotFailure.groups?.url ? ` (${depotFailure.groups.url})` : ''}: check that the version is published and the depot can be reached`
|
|
62
|
+
: message,
|
|
38
63
|
...(typeof errorType === 'string' ? { errorType } : {}),
|
|
39
64
|
...(typeof sourceId === 'string' ? { sourceId } : {}),
|
|
65
|
+
...(location ? { location } : {}),
|
|
40
66
|
};
|
|
41
67
|
};
|
|
42
68
|
/**
|
|
@@ -51,7 +77,7 @@ export const V1_buildCubeEngineError = (payload, fallbackNodeId, kind) => {
|
|
|
51
77
|
const origin = V1_parseCubeSourceId(read.sourceId);
|
|
52
78
|
return new CubeEngineError(read.errorType && COMPILATION_ERROR_TYPES.has(read.errorType)
|
|
53
79
|
? CubeEngineErrorKind.COMPILE
|
|
54
|
-
: kind, read.message, origin?.nodeId ?? fallbackNodeId, origin?.role);
|
|
80
|
+
: kind, read.message, origin?.nodeId ?? fallbackNodeId, origin?.role, read.location);
|
|
55
81
|
};
|
|
56
82
|
/**
|
|
57
83
|
* The error of a failed engine call: the engine's own message when it sent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V1_CubeEngineErrors.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,kBAAkB,EAAoB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,mBAAmB,
|
|
1
|
+
{"version":3,"file":"V1_CubeEngineErrors.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 { CubeParsedExpression } from '../../../CubeEngine.js';
|
|
17
|
+
/**
|
|
18
|
+
* An expression as the engine's lossless JSON gives it: located, as parsed,
|
|
19
|
+
* and as a column stores it, without source information. Anything but an
|
|
20
|
+
* object is the engine's mistake.
|
|
21
|
+
*/
|
|
22
|
+
export declare const V1_readCubeExpression: (json: unknown) => CubeParsedExpression;
|
|
23
|
+
//# sourceMappingURL=V1_CubeExpression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeExpression.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqDnE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,OAAO,KAAG,oBASrD,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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 { isJsonObject, } from '@finos/legend-cube';
|
|
17
|
+
// An Extend column's expression (PLAN §11.7) as the engine parses it, read
|
|
18
|
+
// losslessly: number literals keep their digits as strings, as Cube keeps
|
|
19
|
+
// literal values (PLAN §4.9), and the serializer writes them back as numbers.
|
|
20
|
+
const NUMBER_LITERAL_TYPES = [
|
|
21
|
+
'integer',
|
|
22
|
+
'float',
|
|
23
|
+
'decimal',
|
|
24
|
+
];
|
|
25
|
+
const isLosslessNumber = (value) => typeof value === 'object' &&
|
|
26
|
+
value !== null &&
|
|
27
|
+
value.isLosslessNumber === true;
|
|
28
|
+
/** The JSON with every lossless number a JS number, but a number literal's value its digit string */
|
|
29
|
+
const read = (json, inLiteral) => {
|
|
30
|
+
if (isLosslessNumber(json)) {
|
|
31
|
+
return inLiteral ? json.value : Number(json.value);
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(json)) {
|
|
34
|
+
return json.map((item) => read(item, false));
|
|
35
|
+
}
|
|
36
|
+
if (typeof json === 'object' && json !== null) {
|
|
37
|
+
const literal = NUMBER_LITERAL_TYPES.includes(json._type);
|
|
38
|
+
return Object.fromEntries(Object.entries(json).map(([key, value]) => [
|
|
39
|
+
key,
|
|
40
|
+
read(value, literal && key === 'value'),
|
|
41
|
+
]));
|
|
42
|
+
}
|
|
43
|
+
return json;
|
|
44
|
+
};
|
|
45
|
+
/** The JSON without any source information, at every depth */
|
|
46
|
+
const withoutSourceInformation = (json) => Array.isArray(json)
|
|
47
|
+
? json.map(withoutSourceInformation)
|
|
48
|
+
: isJsonObject(json)
|
|
49
|
+
? Object.fromEntries(Object.entries(json)
|
|
50
|
+
.filter(([key]) => key !== 'sourceInformation')
|
|
51
|
+
.map(([key, value]) => [key, withoutSourceInformation(value)]))
|
|
52
|
+
: json;
|
|
53
|
+
/**
|
|
54
|
+
* An expression as the engine's lossless JSON gives it: located, as parsed,
|
|
55
|
+
* and as a column stores it, without source information. Anything but an
|
|
56
|
+
* object is the engine's mistake.
|
|
57
|
+
*/
|
|
58
|
+
export const V1_readCubeExpression = (json) => {
|
|
59
|
+
const located = read(json, false);
|
|
60
|
+
if (!isJsonObject(located)) {
|
|
61
|
+
throw new Error(`The engine parsed the expression as no object`);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
located,
|
|
65
|
+
lambda: withoutSourceInformation(located),
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=V1_CubeExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeExpression.js","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAG5B,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAE9E,MAAM,oBAAoB,GAAuB;IAC/C,SAAS;IACT,OAAO;IACP,SAAS;CACV,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,KAAc,EACsC,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACb,KAAwC,CAAC,gBAAgB,KAAK,IAAI,CAAC;AAEtE,qGAAqG;AACrG,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,SAAkB,EAAa,EAAE;IAC5D,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAC1C,IAA4B,CAAC,KAAK,CACpC,CAAC;QACF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACzC,GAAG;YACH,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,GAAG,KAAK,OAAO,CAAC;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,IAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,wBAAwB,GAAG,CAAC,IAAe,EAAa,EAAE,CAC9D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACpC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CACjE;QACH,CAAC,CAAC,IAAI,CAAC;AAEb;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAa,EAAwB,EAAE;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAe;KACxD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -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 type { PlainObject } from '@finos/legend-shared';
|
|
17
|
+
import { CubeIngestDataSet } from '../../../CubeIngestCatalog.js';
|
|
18
|
+
/** Why a data set can't be picked */
|
|
19
|
+
export declare const V1_CUBE_INGEST_DATA_SET_REASON: {
|
|
20
|
+
readonly MATERIALIZED_VIEW: "It is a materialized view, which Cube does not support yet";
|
|
21
|
+
readonly NO_COLUMNS: "It declares no columns";
|
|
22
|
+
readonly BAD_MULTIPLICITY: (column: string) => string;
|
|
23
|
+
readonly UNKNOWN_TYPE: (column: string, type: string) => string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The data sets of an ingest definition's content (its protocol JSON), in
|
|
27
|
+
* order. Throws when the content can't be read at all.
|
|
28
|
+
*/
|
|
29
|
+
export declare const V1_readCubeIngestDataSets: (content: PlainObject) => CubeIngestDataSet[];
|
|
30
|
+
//# sourceMappingURL=V1_CubeIngestDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V1_CubeIngestDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAWlE,qCAAqC;AACrC,eAAO,MAAM,8BAA8B;;;wCAId,MAAM,KAAG,MAAM;oCAEnB,MAAM,QAAQ,MAAM,KAAG,MAAM;CAE5C,CAAC;AA6HX;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,WAAW,KACnB,iBAAiB,EAYnB,CAAC"}
|