@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,392 @@
|
|
|
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_CSV_MESSAGE } from '../../__lib__/LegendCubeDirectConnectionLabels.js';
|
|
17
|
+
// A CSV loaded into an in-memory DuckDB connection: the CSV becomes setup SQL
|
|
18
|
+
// (a table, then its rows as inserts), which the engine runs on every
|
|
19
|
+
// connection and the cube saves with its connection. No file reaches the
|
|
20
|
+
// engine's host
|
|
21
|
+
/** The most rows a CSV may have: the cube saves them, and every connection inserts them again */
|
|
22
|
+
export const CUBE_CSV_MAX_ROWS = 10_000;
|
|
23
|
+
/** The most characters a CSV may have */
|
|
24
|
+
export const CUBE_CSV_MAX_LENGTH = 5_000_000;
|
|
25
|
+
/** The schema a CSV's table is created in */
|
|
26
|
+
export const CUBE_CSV_SCHEMA = 'csv';
|
|
27
|
+
/** How many rows one insert statement holds */
|
|
28
|
+
const ROWS_PER_INSERT = 1000;
|
|
29
|
+
/** The DuckDB types a CSV's columns are given, from their values */
|
|
30
|
+
export var CubeCsvColumnType;
|
|
31
|
+
(function (CubeCsvColumnType) {
|
|
32
|
+
CubeCsvColumnType["INTEGER"] = "INTEGER";
|
|
33
|
+
CubeCsvColumnType["BIGINT"] = "BIGINT";
|
|
34
|
+
CubeCsvColumnType["DOUBLE"] = "DOUBLE";
|
|
35
|
+
CubeCsvColumnType["BOOLEAN"] = "BOOLEAN";
|
|
36
|
+
CubeCsvColumnType["DATE"] = "DATE";
|
|
37
|
+
CubeCsvColumnType["TIMESTAMP"] = "TIMESTAMP";
|
|
38
|
+
CubeCsvColumnType["VARCHAR"] = "VARCHAR";
|
|
39
|
+
})(CubeCsvColumnType || (CubeCsvColumnType = {}));
|
|
40
|
+
export class CubeCsvError extends Error {
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The records of a CSV (RFC 4180): fields split on commas, a field in double
|
|
44
|
+
* quotes may hold commas, line breaks and doubled quotes; blank lines are
|
|
45
|
+
* skipped
|
|
46
|
+
*/
|
|
47
|
+
export const parseCubeCsv = (text) => {
|
|
48
|
+
const source = text.startsWith('') ? text.slice(1) : text;
|
|
49
|
+
const records = [];
|
|
50
|
+
let record = [];
|
|
51
|
+
let field = '';
|
|
52
|
+
let quoted = false;
|
|
53
|
+
let wasQuoted = false;
|
|
54
|
+
let line = 1;
|
|
55
|
+
let quoteLine = 1;
|
|
56
|
+
const endField = () => {
|
|
57
|
+
record.push(field);
|
|
58
|
+
field = '';
|
|
59
|
+
wasQuoted = false;
|
|
60
|
+
};
|
|
61
|
+
const endRecord = () => {
|
|
62
|
+
const lastWasQuoted = wasQuoted;
|
|
63
|
+
endField();
|
|
64
|
+
// a blank line is one empty field, never quoted
|
|
65
|
+
if (record.length > 1 || record[0] !== '' || lastWasQuoted) {
|
|
66
|
+
records.push(record);
|
|
67
|
+
}
|
|
68
|
+
record = [];
|
|
69
|
+
};
|
|
70
|
+
for (let index = 0; index < source.length; index++) {
|
|
71
|
+
const char = source.charAt(index);
|
|
72
|
+
if (quoted) {
|
|
73
|
+
if (char === '"') {
|
|
74
|
+
if (source.charAt(index + 1) === '"') {
|
|
75
|
+
field += '"';
|
|
76
|
+
index++;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
quoted = false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
if (char === '\n') {
|
|
84
|
+
line++;
|
|
85
|
+
}
|
|
86
|
+
field += char;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (char === '"' && field === '') {
|
|
90
|
+
quoted = true;
|
|
91
|
+
wasQuoted = true;
|
|
92
|
+
quoteLine = line;
|
|
93
|
+
}
|
|
94
|
+
else if (char === ',') {
|
|
95
|
+
endField();
|
|
96
|
+
}
|
|
97
|
+
else if (char === '\r' || char === '\n') {
|
|
98
|
+
if (char === '\r' && source.charAt(index + 1) === '\n') {
|
|
99
|
+
index++;
|
|
100
|
+
}
|
|
101
|
+
line++;
|
|
102
|
+
endRecord();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
field += char;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (quoted) {
|
|
109
|
+
throw new CubeCsvError(CUBE_CSV_MESSAGE.UNCLOSED_QUOTE(quoteLine));
|
|
110
|
+
}
|
|
111
|
+
if (field !== '' || record.length || wasQuoted) {
|
|
112
|
+
endRecord();
|
|
113
|
+
}
|
|
114
|
+
return records;
|
|
115
|
+
};
|
|
116
|
+
const INTEGER_TEXT = /^[+-]?(?:0|[1-9]\d*)$/u;
|
|
117
|
+
const NUMBER_TEXT = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/u;
|
|
118
|
+
const BOOLEAN_TEXT = /^(?:true|false)$/iu;
|
|
119
|
+
const DATE_TEXT = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
120
|
+
const TIMESTAMP_TEXT = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})[ T](?<hour>\d{2}):(?<minute>\d{2})(?::(?<second>\d{2})(?:\.\d{1,9})?)?$/u;
|
|
121
|
+
const INT32 = { min: -(2n ** 31n), max: 2n ** 31n - 1n };
|
|
122
|
+
const INT64 = { min: -(2n ** 63n), max: 2n ** 63n - 1n };
|
|
123
|
+
const fits = (text, range) => {
|
|
124
|
+
const value = BigInt(text);
|
|
125
|
+
return value >= range.min && value <= range.max;
|
|
126
|
+
};
|
|
127
|
+
/** Whether year, month and day name a real day */
|
|
128
|
+
const isDay = (year, month, day) => {
|
|
129
|
+
const date = new Date(Date.UTC(Number(year), Number(month) - 1, Number(day)));
|
|
130
|
+
return (date.getUTCFullYear() === Number(year) &&
|
|
131
|
+
date.getUTCMonth() === Number(month) - 1 &&
|
|
132
|
+
date.getUTCDate() === Number(day));
|
|
133
|
+
};
|
|
134
|
+
const isDate = (text) => {
|
|
135
|
+
const day = DATE_TEXT.exec(text)?.groups;
|
|
136
|
+
return Boolean(day && isDay(day.year ?? '', day.month ?? '', day.day ?? ''));
|
|
137
|
+
};
|
|
138
|
+
const isTimestamp = (text) => {
|
|
139
|
+
const at = TIMESTAMP_TEXT.exec(text)?.groups;
|
|
140
|
+
return Boolean(at &&
|
|
141
|
+
isDay(at.year ?? '', at.month ?? '', at.day ?? '') &&
|
|
142
|
+
Number(at.hour) < 24 &&
|
|
143
|
+
Number(at.minute) < 60 &&
|
|
144
|
+
Number(at.second ?? '0') < 60);
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* A column's type from its values, empty ones left out: the narrowest type
|
|
148
|
+
* every value fits. Whole numbers with a leading zero (codes, such as
|
|
149
|
+
* `007`) and ones past 64 bits stay text, so no digit is lost; numbers
|
|
150
|
+
* with a fraction are DOUBLE. A column of empty values is text.
|
|
151
|
+
*/
|
|
152
|
+
export const inferCubeCsvColumnType = (values) => {
|
|
153
|
+
const present = values.filter((value) => value !== '');
|
|
154
|
+
if (!present.length) {
|
|
155
|
+
return CubeCsvColumnType.VARCHAR;
|
|
156
|
+
}
|
|
157
|
+
if (present.every((value) => INTEGER_TEXT.test(value))) {
|
|
158
|
+
if (present.every((value) => fits(value, INT32))) {
|
|
159
|
+
return CubeCsvColumnType.INTEGER;
|
|
160
|
+
}
|
|
161
|
+
return present.every((value) => fits(value, INT64))
|
|
162
|
+
? CubeCsvColumnType.BIGINT
|
|
163
|
+
: CubeCsvColumnType.VARCHAR;
|
|
164
|
+
}
|
|
165
|
+
if (present.every((value) => NUMBER_TEXT.test(value)) &&
|
|
166
|
+
// a whole number with a leading zero is a code, not a number
|
|
167
|
+
!present.some((value) => /^[+-]?0\d/u.test(value))) {
|
|
168
|
+
return CubeCsvColumnType.DOUBLE;
|
|
169
|
+
}
|
|
170
|
+
if (present.every((value) => BOOLEAN_TEXT.test(value))) {
|
|
171
|
+
return CubeCsvColumnType.BOOLEAN;
|
|
172
|
+
}
|
|
173
|
+
if (present.every(isDate)) {
|
|
174
|
+
return CubeCsvColumnType.DATE;
|
|
175
|
+
}
|
|
176
|
+
if (present.every((value) => isDate(value) || isTimestamp(value))) {
|
|
177
|
+
return CubeCsvColumnType.TIMESTAMP;
|
|
178
|
+
}
|
|
179
|
+
return CubeCsvColumnType.VARCHAR;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* The keywords that can't name a column or table unquoted: DuckDB's
|
|
183
|
+
* `reserved` and `type_function` ones, as `duckdb_keywords()` lists them on
|
|
184
|
+
* the engine's DuckDB (1.3)
|
|
185
|
+
*/
|
|
186
|
+
const RESERVED_WORDS = new Set([
|
|
187
|
+
'all',
|
|
188
|
+
'analyse',
|
|
189
|
+
'analyze',
|
|
190
|
+
'and',
|
|
191
|
+
'anti',
|
|
192
|
+
'any',
|
|
193
|
+
'array',
|
|
194
|
+
'as',
|
|
195
|
+
'asc',
|
|
196
|
+
'asof',
|
|
197
|
+
'asymmetric',
|
|
198
|
+
'at',
|
|
199
|
+
'authorization',
|
|
200
|
+
'binary',
|
|
201
|
+
'both',
|
|
202
|
+
'case',
|
|
203
|
+
'cast',
|
|
204
|
+
'check',
|
|
205
|
+
'collate',
|
|
206
|
+
'collation',
|
|
207
|
+
'column',
|
|
208
|
+
'columns',
|
|
209
|
+
'concurrently',
|
|
210
|
+
'constraint',
|
|
211
|
+
'create',
|
|
212
|
+
'cross',
|
|
213
|
+
'default',
|
|
214
|
+
'deferrable',
|
|
215
|
+
'desc',
|
|
216
|
+
'describe',
|
|
217
|
+
'distinct',
|
|
218
|
+
'do',
|
|
219
|
+
'else',
|
|
220
|
+
'end',
|
|
221
|
+
'except',
|
|
222
|
+
'false',
|
|
223
|
+
'fetch',
|
|
224
|
+
'for',
|
|
225
|
+
'foreign',
|
|
226
|
+
'freeze',
|
|
227
|
+
'from',
|
|
228
|
+
'full',
|
|
229
|
+
'generated',
|
|
230
|
+
'glob',
|
|
231
|
+
'group',
|
|
232
|
+
'having',
|
|
233
|
+
'ilike',
|
|
234
|
+
'in',
|
|
235
|
+
'initially',
|
|
236
|
+
'inner',
|
|
237
|
+
'intersect',
|
|
238
|
+
'into',
|
|
239
|
+
'is',
|
|
240
|
+
'isnull',
|
|
241
|
+
'join',
|
|
242
|
+
'lambda',
|
|
243
|
+
'lateral',
|
|
244
|
+
'leading',
|
|
245
|
+
'left',
|
|
246
|
+
'like',
|
|
247
|
+
'limit',
|
|
248
|
+
'map',
|
|
249
|
+
'natural',
|
|
250
|
+
'not',
|
|
251
|
+
'notnull',
|
|
252
|
+
'null',
|
|
253
|
+
'offset',
|
|
254
|
+
'on',
|
|
255
|
+
'only',
|
|
256
|
+
'or',
|
|
257
|
+
'order',
|
|
258
|
+
'outer',
|
|
259
|
+
'overlaps',
|
|
260
|
+
'pivot',
|
|
261
|
+
'pivot_longer',
|
|
262
|
+
'pivot_wider',
|
|
263
|
+
'placing',
|
|
264
|
+
'positional',
|
|
265
|
+
'primary',
|
|
266
|
+
'qualify',
|
|
267
|
+
'references',
|
|
268
|
+
'returning',
|
|
269
|
+
'right',
|
|
270
|
+
'select',
|
|
271
|
+
'semi',
|
|
272
|
+
'show',
|
|
273
|
+
'similar',
|
|
274
|
+
'some',
|
|
275
|
+
'struct',
|
|
276
|
+
'summarize',
|
|
277
|
+
'symmetric',
|
|
278
|
+
'table',
|
|
279
|
+
'tablesample',
|
|
280
|
+
'then',
|
|
281
|
+
'to',
|
|
282
|
+
'trailing',
|
|
283
|
+
'true',
|
|
284
|
+
'try_cast',
|
|
285
|
+
'union',
|
|
286
|
+
'unique',
|
|
287
|
+
'unpack',
|
|
288
|
+
'unpivot',
|
|
289
|
+
'using',
|
|
290
|
+
'variadic',
|
|
291
|
+
'verbose',
|
|
292
|
+
'when',
|
|
293
|
+
'where',
|
|
294
|
+
'window',
|
|
295
|
+
'with',
|
|
296
|
+
]);
|
|
297
|
+
/**
|
|
298
|
+
* A name the database takes unquoted: letters, digits and underscores, not
|
|
299
|
+
* starting with a digit, and no reserved word (one gets a trailing
|
|
300
|
+
* underscore)
|
|
301
|
+
*/
|
|
302
|
+
export const toCubeCsvName = (text, fallback) => {
|
|
303
|
+
const name = text.trim().replace(/[^A-Za-z0-9_]+/gu, '_');
|
|
304
|
+
const safe = !name || /^_*$/u.test(name) ? fallback : name;
|
|
305
|
+
const start = /^[0-9]/u.test(safe) ? `_${safe}` : safe;
|
|
306
|
+
return RESERVED_WORDS.has(start.toLowerCase()) ? `${start}_` : start;
|
|
307
|
+
};
|
|
308
|
+
/** The header's names made safe, and distinct whatever their case */
|
|
309
|
+
const toColumnNames = (header) => {
|
|
310
|
+
const used = new Set();
|
|
311
|
+
return header.map((text, index) => {
|
|
312
|
+
const base = toCubeCsvName(text, `column_${index + 1}`);
|
|
313
|
+
let name = base;
|
|
314
|
+
for (let suffix = 2; used.has(name.toLowerCase()); suffix++) {
|
|
315
|
+
name = `${base}_${suffix}`;
|
|
316
|
+
}
|
|
317
|
+
used.add(name.toLowerCase());
|
|
318
|
+
return name;
|
|
319
|
+
});
|
|
320
|
+
};
|
|
321
|
+
/** A string literal: quotes doubled, line breaks as chr(10), so no line of the setup SQL ends inside it */
|
|
322
|
+
const quote = (value) => `'${value
|
|
323
|
+
.replace(/'/gu, "''")
|
|
324
|
+
.split(/\r\n|\r|\n/u)
|
|
325
|
+
.join("' || chr(10) || '")}'`;
|
|
326
|
+
const toLiteral = (value, type) => {
|
|
327
|
+
if (value === '') {
|
|
328
|
+
return 'NULL';
|
|
329
|
+
}
|
|
330
|
+
switch (type) {
|
|
331
|
+
case CubeCsvColumnType.INTEGER:
|
|
332
|
+
case CubeCsvColumnType.BIGINT:
|
|
333
|
+
case CubeCsvColumnType.DOUBLE:
|
|
334
|
+
return value;
|
|
335
|
+
case CubeCsvColumnType.BOOLEAN:
|
|
336
|
+
return value.toLowerCase();
|
|
337
|
+
case CubeCsvColumnType.DATE:
|
|
338
|
+
return `DATE '${value}'`;
|
|
339
|
+
case CubeCsvColumnType.TIMESTAMP:
|
|
340
|
+
return `TIMESTAMP '${value.replace('T', ' ')}'`;
|
|
341
|
+
default:
|
|
342
|
+
return quote(value);
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* A CSV, with a header row, as a table of the `csv` schema: setup SQL that
|
|
347
|
+
* creates the schema if needed, drops and creates the table, then inserts
|
|
348
|
+
* the rows. Refuses an empty CSV, a record whose values don't match the
|
|
349
|
+
* header, and one past the limits.
|
|
350
|
+
*/
|
|
351
|
+
export const buildCubeCsvTable = (text, tableName) => {
|
|
352
|
+
if (text.length > CUBE_CSV_MAX_LENGTH) {
|
|
353
|
+
throw new CubeCsvError(CUBE_CSV_MESSAGE.TOO_LONG(CUBE_CSV_MAX_LENGTH));
|
|
354
|
+
}
|
|
355
|
+
const [header, ...rows] = parseCubeCsv(text);
|
|
356
|
+
if (!header) {
|
|
357
|
+
throw new CubeCsvError(CUBE_CSV_MESSAGE.EMPTY);
|
|
358
|
+
}
|
|
359
|
+
if (rows.length > CUBE_CSV_MAX_ROWS) {
|
|
360
|
+
throw new CubeCsvError(CUBE_CSV_MESSAGE.TOO_MANY_ROWS(rows.length, CUBE_CSV_MAX_ROWS));
|
|
361
|
+
}
|
|
362
|
+
rows.forEach((row, index) => {
|
|
363
|
+
if (row.length !== header.length) {
|
|
364
|
+
throw new CubeCsvError(CUBE_CSV_MESSAGE.RAGGED_ROW(index + 1, row.length, header.length));
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
const table = toCubeCsvName(tableName, 'csv_data');
|
|
368
|
+
const names = toColumnNames(header);
|
|
369
|
+
const columns = names.map((name, index) => ({
|
|
370
|
+
name,
|
|
371
|
+
type: inferCubeCsvColumnType(rows.map((row) => row[index] ?? '')),
|
|
372
|
+
}));
|
|
373
|
+
const qualified = `${CUBE_CSV_SCHEMA}.${table}`;
|
|
374
|
+
const statements = [
|
|
375
|
+
`create schema if not exists ${CUBE_CSV_SCHEMA};`,
|
|
376
|
+
`drop table if exists ${qualified};`,
|
|
377
|
+
`create table ${qualified} (${columns
|
|
378
|
+
.map((column) => `${column.name} ${column.type}`)
|
|
379
|
+
.join(', ')});`,
|
|
380
|
+
];
|
|
381
|
+
for (let start = 0; start < rows.length; start += ROWS_PER_INSERT) {
|
|
382
|
+
const chunk = rows.slice(start, start + ROWS_PER_INSERT);
|
|
383
|
+
statements.push([
|
|
384
|
+
`insert into ${qualified} values`,
|
|
385
|
+
...chunk.map((row, index) => `(${row
|
|
386
|
+
.map((value, column) => toLiteral(value, columns[column]?.type ?? CubeCsvColumnType.VARCHAR))
|
|
387
|
+
.join(', ')})${index === chunk.length - 1 ? ';' : ','}`),
|
|
388
|
+
].join('\n'));
|
|
389
|
+
}
|
|
390
|
+
return { table, columns, rowCount: rows.length, sql: statements.join('\n') };
|
|
391
|
+
};
|
|
392
|
+
//# sourceMappingURL=CubeCsvSetupSql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeCsvSetupSql.js","sourceRoot":"","sources":["../../../src/stores/source-picker/CubeCsvSetupSql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
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 CubeContext } from '@finos/legend-cube';
|
|
17
|
+
import { type GeneratorFn } from '@finos/legend-shared';
|
|
18
|
+
import { type CubeDataProductProject, CubeDataProductEnvironmentType } from '../../graph-manager/CubeDataProduct.js';
|
|
19
|
+
import { type CubeAccessPoint, type CubeAccessPointGroupAccess, CubeDataProductCandidate, type CubeDataProductCatalog, type CubeDataProductDescription } from '../../graph-manager/CubeDataProductCatalog.js';
|
|
20
|
+
import type { CubeEditorState } from '../CubeEditorState.js';
|
|
21
|
+
import { type CubeSourcePickerTab, CubeSourcePickerTabKey } from './CubeSourcePickerTab.js';
|
|
22
|
+
/** An error as the tab shows it: its first line, with the rest on demand */
|
|
23
|
+
export interface CubeDataProductTabError {
|
|
24
|
+
readonly message: string;
|
|
25
|
+
readonly detail?: string | undefined;
|
|
26
|
+
}
|
|
27
|
+
export declare const CUBE_DATA_PRODUCT_TAB_MESSAGE: {
|
|
28
|
+
readonly CUBE_CHANGED: "The cube changed while the access point was being added; pick it again.";
|
|
29
|
+
readonly TRUNCATED: "Too many matching items; list truncated.";
|
|
30
|
+
readonly OTHER_PROJECT: (groupId: string, artifactId: string) => string;
|
|
31
|
+
readonly OTHER_VERSION: (versionId: string) => string;
|
|
32
|
+
readonly OTHER_ENVIRONMENT: "Deployed to another environment";
|
|
33
|
+
readonly NONE_IN_PROJECT: "No data product of the cube's project matches; Search all shows the others.";
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* The source dialog's Data product tab (PLAN §6.8), as Data Cube's selection
|
|
37
|
+
* goes: a deployment class, then a deployed data product, then one of its
|
|
38
|
+
* access points, then the warehouse, filled in with the default. The access
|
|
39
|
+
* point's columns come from the product's deployed artifact, so Add calls no
|
|
40
|
+
* engine. The first access point saves the product's project, its version,
|
|
41
|
+
* the class and the warehouse as the cube's model; after that the tab offers
|
|
42
|
+
* only that project's products, at that version, and reopens on the cube's
|
|
43
|
+
* data product, already expanded. A catalog that searches on a server is
|
|
44
|
+
* searched as the viewer types, and a cube with no search shows its own
|
|
45
|
+
* products, which a page of the server's matches may miss.
|
|
46
|
+
*/
|
|
47
|
+
export declare class CubeDataProductTabState implements CubeSourcePickerTab {
|
|
48
|
+
readonly key = CubeSourcePickerTabKey.DATA_PRODUCT;
|
|
49
|
+
readonly label = "Data Product";
|
|
50
|
+
readonly editorState: CubeEditorState;
|
|
51
|
+
environmentType: CubeDataProductEnvironmentType;
|
|
52
|
+
search: string;
|
|
53
|
+
/** On a cube with a project, whether the list shows other projects' products too, greyed */
|
|
54
|
+
showAllProjects: boolean;
|
|
55
|
+
/** The class's deployed products; none until listed */
|
|
56
|
+
candidates: readonly CubeDataProductCandidate[] | undefined;
|
|
57
|
+
/** The class the products were listed for */
|
|
58
|
+
private listedEnvironmentType;
|
|
59
|
+
/** The text the products were searched for on a server; '' for a whole list */
|
|
60
|
+
private listedText;
|
|
61
|
+
/** What the cube's own products listed were built from; none for a catalog's list */
|
|
62
|
+
private listedOwnKey;
|
|
63
|
+
/** Whether the server's matches listed leave out some */
|
|
64
|
+
private listedCutShort;
|
|
65
|
+
candidate: CubeDataProductCandidate | undefined;
|
|
66
|
+
description: CubeDataProductDescription | undefined;
|
|
67
|
+
/** The viewer's access to each group of the picked product; none until read, or when it can't be */
|
|
68
|
+
access: ReadonlyMap<string, CubeAccessPointGroupAccess> | undefined;
|
|
69
|
+
/** The picked access point, by group and id */
|
|
70
|
+
accessPointKey: {
|
|
71
|
+
readonly group: string;
|
|
72
|
+
readonly id: string;
|
|
73
|
+
} | undefined;
|
|
74
|
+
warehouse: string;
|
|
75
|
+
isListing: boolean;
|
|
76
|
+
isDescribing: boolean;
|
|
77
|
+
isAdding: boolean;
|
|
78
|
+
/** Why the products couldn't be listed, with its own retry */
|
|
79
|
+
listError: CubeDataProductTabError | undefined;
|
|
80
|
+
/** Why a product couldn't be read or its access point added */
|
|
81
|
+
error: CubeDataProductTabError | undefined;
|
|
82
|
+
/** The warehouse field shows a cube's own, not one the viewer typed */
|
|
83
|
+
private warehouseFromProject;
|
|
84
|
+
/** Stops the listing under way: a new listing or closing the dialog drops it */
|
|
85
|
+
private listAbort;
|
|
86
|
+
/** Each counts its calls: a new call or closing the dialog drops a late answer */
|
|
87
|
+
private listRequest;
|
|
88
|
+
private describeRequest;
|
|
89
|
+
private accessRequest;
|
|
90
|
+
private confirmRequest;
|
|
91
|
+
/** Searches the typed text on the server once typing pauses */
|
|
92
|
+
private readonly searchSoon;
|
|
93
|
+
constructor(editorState: CubeEditorState);
|
|
94
|
+
get catalog(): CubeDataProductCatalog | undefined;
|
|
95
|
+
/** Hosts without a data product catalog have no data products */
|
|
96
|
+
get isAvailable(): boolean;
|
|
97
|
+
/** Whether the catalog searches the text on a server, rather than the tab filtering its list */
|
|
98
|
+
get searchesOnServer(): boolean;
|
|
99
|
+
ownsContext(context: CubeContext): boolean;
|
|
100
|
+
/** The cube's project, once its first access point is added: every other comes from it */
|
|
101
|
+
get fixedProject(): CubeDataProductProject | undefined;
|
|
102
|
+
/** Whether the cube's project, or else the picked product, is at a moving SNAPSHOT version */
|
|
103
|
+
get isSnapshot(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* The picked product's page in the host's marketplace, on the picked
|
|
106
|
+
* access point's group once there is one; built from the listed product,
|
|
107
|
+
* whose id and deployment the marketplace knows
|
|
108
|
+
*/
|
|
109
|
+
get marketplaceLink(): string | undefined;
|
|
110
|
+
/** The cube's first data product, which the tab reopens on */
|
|
111
|
+
get fixedDataProductPath(): string | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* The listed products matching the search, from the cube's project once it
|
|
114
|
+
* has one; a server's matches as it gave them
|
|
115
|
+
*/
|
|
116
|
+
get visibleCandidates(): readonly CubeDataProductCandidate[];
|
|
117
|
+
/**
|
|
118
|
+
* The products the list shows: on a cube with a project, its project's
|
|
119
|
+
* only, unless Search all shows every listed product of the class, those
|
|
120
|
+
* of other projects or versions greyed
|
|
121
|
+
*/
|
|
122
|
+
get shownCandidates(): readonly CubeDataProductCandidate[];
|
|
123
|
+
/** Why a listed product can't be picked on this cube: it isn't of the cube's project, version or class */
|
|
124
|
+
getCandidateDisabledReason(candidate: CubeDataProductCandidate): string | undefined;
|
|
125
|
+
setShowAllProjects(showAllProjects: boolean): void;
|
|
126
|
+
/** Whether a server's matches listed may be cut short */
|
|
127
|
+
get isTruncated(): boolean;
|
|
128
|
+
get accessPoint(): CubeAccessPoint | undefined;
|
|
129
|
+
get isBusy(): boolean;
|
|
130
|
+
get canConfirm(): boolean;
|
|
131
|
+
setEnvironmentType(environmentType: CubeDataProductEnvironmentType): void;
|
|
132
|
+
/** Filters the listed products; searching on a server, searches again once typing pauses */
|
|
133
|
+
setSearch(search: string): void;
|
|
134
|
+
/** Picks a product and reads its access points; picking it again reads them again after a failure */
|
|
135
|
+
selectCandidate(candidate: CubeDataProductCandidate | undefined): void;
|
|
136
|
+
selectAccessPoint(group: string, id: string): void;
|
|
137
|
+
/** The warehouse of a cube without one yet; a saved cube's is kept */
|
|
138
|
+
setWarehouse(warehouse: string): void;
|
|
139
|
+
/**
|
|
140
|
+
* When the dialog opens on the tab: on a cube with a project, on its class
|
|
141
|
+
* and warehouse, and then on its data product, expanded; otherwise on the
|
|
142
|
+
* warehouse the viewer last picked, else the default
|
|
143
|
+
*/
|
|
144
|
+
open(): void;
|
|
145
|
+
close(): void;
|
|
146
|
+
/** Lists the products again after a failed listing */
|
|
147
|
+
retryListing(): void;
|
|
148
|
+
/**
|
|
149
|
+
* Lists the class's deployed products; searching on a server, the ones
|
|
150
|
+
* matching the search, or a cube's own when there is no search
|
|
151
|
+
*/
|
|
152
|
+
listCandidates(): GeneratorFn<void>;
|
|
153
|
+
/** Reads a product's access points */
|
|
154
|
+
describeCandidate(candidate: CubeDataProductCandidate): GeneratorFn<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Reads the viewer's access to the picked product's groups, once its
|
|
157
|
+
* access points are shown. A failure shows no access and never stops an
|
|
158
|
+
* Add; an answer for a product no longer picked is dropped
|
|
159
|
+
*/
|
|
160
|
+
readAccess(candidate: CubeDataProductCandidate): GeneratorFn<void>;
|
|
161
|
+
/** A group of the picked product in the host's marketplace, where access is asked for */
|
|
162
|
+
getAccessPointGroupLink(groupId: string): string | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* Adds the picked access point, typed by the product's deployed artifact.
|
|
165
|
+
* The first saves the product's project, version and class and the
|
|
166
|
+
* warehouse as the cube's model, in the same undo step, and remembers the
|
|
167
|
+
* warehouse for the viewer's next cubes. Gives whether it was added
|
|
168
|
+
*/
|
|
169
|
+
confirm(): GeneratorFn<boolean>;
|
|
170
|
+
/**
|
|
171
|
+
* The cube's own products, from its sources, at the cube's project; none
|
|
172
|
+
* on a cube without one. The picked product stays the one picked
|
|
173
|
+
*/
|
|
174
|
+
private getOwnProducts;
|
|
175
|
+
/**
|
|
176
|
+
* What the tab lists the cube's own products from, when it does: searching
|
|
177
|
+
* on a server, on a cube with sources and no search. None otherwise
|
|
178
|
+
*/
|
|
179
|
+
private getOwnProductsKey;
|
|
180
|
+
/** Whether the catalog's answer leaves out matches, as it says, else as long as one search gives */
|
|
181
|
+
private isCutShort;
|
|
182
|
+
/** On a cube with a data product, picks that product from the list, expanded */
|
|
183
|
+
private expandCubeDataProduct;
|
|
184
|
+
private resetCandidate;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=CubeDataProductTabState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDataProductTabState.d.ts","sourceRoot":"","sources":["../../../src/stores/source-picker/CubeDataProductTabState.ts"],"names":[],"mappings":"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"}
|