@finos/legend-extension-dsl-data-space-studio 0.1.0
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/LICENSE +201 -0
- package/README.md +3 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.d.ts +17 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.d.ts.map +1 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.js +54 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.js.map +1 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.d.ts +21 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.d.ts.map +1 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.js +22 -0
- package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.js.map +1 -0
- package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts +39 -0
- package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts.map +1 -0
- package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.js +206 -0
- package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.js.map +1 -0
- package/lib/components/DataSpacePreviewAction.d.ts +25 -0
- package/lib/components/DataSpacePreviewAction.d.ts.map +1 -0
- package/lib/components/DataSpacePreviewAction.js +53 -0
- package/lib/components/DataSpacePreviewAction.js.map +1 -0
- package/lib/components/DataSpaceQueryAction.d.ts +24 -0
- package/lib/components/DataSpaceQueryAction.d.ts.map +1 -0
- package/lib/components/DataSpaceQueryAction.js +52 -0
- package/lib/components/DataSpaceQueryAction.js.map +1 -0
- package/lib/components/DataSpaceTemplateQueryPromoteReview.d.ts +19 -0
- package/lib/components/DataSpaceTemplateQueryPromoteReview.d.ts.map +1 -0
- package/lib/components/DataSpaceTemplateQueryPromoteReview.js +81 -0
- package/lib/components/DataSpaceTemplateQueryPromoteReview.js.map +1 -0
- package/lib/index.css +17 -0
- package/lib/index.css.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -0
- package/lib/package.json +75 -0
- package/lib/stores/DataSpacePreviewState.d.ts +33 -0
- package/lib/stores/DataSpacePreviewState.d.ts.map +1 -0
- package/lib/stores/DataSpacePreviewState.js +116 -0
- package/lib/stores/DataSpacePreviewState.js.map +1 -0
- package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.d.ts +61 -0
- package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.d.ts.map +1 -0
- package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.js +406 -0
- package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.js.map +1 -0
- package/package.json +75 -0
- package/src/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.ts +54 -0
- package/src/__lib__/DSL_DataSpace_LegendStudioDocumentation.ts +21 -0
- package/src/components/DSL_DataSpace_LegendStudioApplicationPlugin.tsx +299 -0
- package/src/components/DataSpacePreviewAction.tsx +136 -0
- package/src/components/DataSpaceQueryAction.tsx +100 -0
- package/src/components/DataSpaceTemplateQueryPromoteReview.tsx +292 -0
- package/src/index.ts +17 -0
- package/src/stores/DataSpacePreviewState.ts +199 -0
- package/src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts +636 -0
- package/tsconfig.json +54 -0
- package/tsconfig.package.json +37 -0
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * Copyright (c) 2020-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 LightQuery, type QueryInfo, GraphManagerState } from '@finos/legend-graph';
         | 
| 17 | 
            +
            import { type DepotServerClient, StoreProjectData } from '@finos/legend-server-depot';
         | 
| 18 | 
            +
            import { ActionState, type GeneratorFn } from '@finos/legend-shared';
         | 
| 19 | 
            +
            import { type Entity } from '@finos/legend-storage';
         | 
| 20 | 
            +
            import { type ProjectConfigurationStatus, type LegendStudioApplicationStore, EditorStore } from '@finos/legend-application-studio';
         | 
| 21 | 
            +
            import { type SDLCServerClient, Project, Workspace, ProjectConfiguration } from '@finos/legend-server-sdlc';
         | 
| 22 | 
            +
            import { type DSL_DataSpace_PureGraphManagerExtension } from '@finos/legend-extension-dsl-data-space/graph';
         | 
| 23 | 
            +
            export declare class DataSpaceTemplateQueryPromotionReviewerStore {
         | 
| 24 | 
            +
                readonly applicationStore: LegendStudioApplicationStore;
         | 
| 25 | 
            +
                readonly sdlcServerClient: SDLCServerClient;
         | 
| 26 | 
            +
                readonly depotServerClient: DepotServerClient;
         | 
| 27 | 
            +
                readonly graphManagerState: GraphManagerState;
         | 
| 28 | 
            +
                readonly initState: ActionState;
         | 
| 29 | 
            +
                readonly promoteState: ActionState;
         | 
| 30 | 
            +
                readonly loadQueryState: ActionState;
         | 
| 31 | 
            +
                readonly loadWorkspacesState: ActionState;
         | 
| 32 | 
            +
                editorStore: EditorStore;
         | 
| 33 | 
            +
                graphManagerExtension: DSL_DataSpace_PureGraphManagerExtension;
         | 
| 34 | 
            +
                currentQuery?: LightQuery | undefined;
         | 
| 35 | 
            +
                currentQueryInfo?: QueryInfo | undefined;
         | 
| 36 | 
            +
                currentQueryProject?: StoreProjectData | undefined;
         | 
| 37 | 
            +
                currentProject?: Project | undefined;
         | 
| 38 | 
            +
                currentProjectConfiguration?: ProjectConfiguration;
         | 
| 39 | 
            +
                currentProjectConfigurationStatus?: ProjectConfigurationStatus | undefined;
         | 
| 40 | 
            +
                currentProjectEntities: Entity[];
         | 
| 41 | 
            +
                dependencyEntities: Entity[];
         | 
| 42 | 
            +
                groupWorkspaces: Workspace[];
         | 
| 43 | 
            +
                workspaceName: string;
         | 
| 44 | 
            +
                dataSpacePath: string;
         | 
| 45 | 
            +
                dataSpaceEntity: Entity | undefined;
         | 
| 46 | 
            +
                templateQueryId: string;
         | 
| 47 | 
            +
                templateQueryTitle: string;
         | 
| 48 | 
            +
                templateQueryDescription: string;
         | 
| 49 | 
            +
                constructor(applicationStore: LegendStudioApplicationStore, sdlcServerClient: SDLCServerClient, depotServerClient: DepotServerClient);
         | 
| 50 | 
            +
                setWorkspaceName(val: string): void;
         | 
| 51 | 
            +
                setTemplateQueryId(val: string): void;
         | 
| 52 | 
            +
                setTemplateQueryTitle(val: string): void;
         | 
| 53 | 
            +
                setTemplateQueryDescription(val: string): void;
         | 
| 54 | 
            +
                get isWorkspaceNameValid(): boolean;
         | 
| 55 | 
            +
                get isTemplateQueryIdValid(): boolean;
         | 
| 56 | 
            +
                initialize(queryId: string | undefined, dataSpacePath: string): GeneratorFn<void>;
         | 
| 57 | 
            +
                loadQuery(query: LightQuery): GeneratorFn<void>;
         | 
| 58 | 
            +
                loadProject(project: Project): GeneratorFn<void>;
         | 
| 59 | 
            +
                promoteAsTemplateQuery(): GeneratorFn<void>;
         | 
| 60 | 
            +
            }
         | 
| 61 | 
            +
            //# sourceMappingURL=DataSpaceTemplateQueryPromotionReviewerStore.d.ts.map
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"version":3,"file":"DataSpaceTemplateQueryPromotionReviewerStore.d.ts","sourceRoot":"","sources":["../../src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,WAAW,EAIX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,KAAK,0BAA0B,EAI/B,KAAK,4BAA4B,EACjC,WAAW,EAEZ,MAAM,kCAAkC,CAAC;AAc1C,OAAO,EACL,KAAK,gBAAgB,EAErB,OAAO,EAEP,SAAS,EACT,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,uCAAuC,EAC7C,MAAM,8CAA8C,CAAC;AAiBtD,qBAAa,4CAA4C;IACvD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,SAAS,cAAwB;IAC1C,QAAQ,CAAC,YAAY,cAAwB;IAC7C,QAAQ,CAAC,cAAc,cAAwB;IAC/C,QAAQ,CAAC,mBAAmB,cAAwB;IACpD,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,uCAAuC,CAAC;IAC/D,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACzC,mBAAmB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,2BAA2B,CAAC,EAAE,oBAAoB,CAAC;IACnD,iCAAiC,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC3E,sBAAsB,EAAE,MAAM,EAAE,CAAM;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAClC,eAAe,EAAE,SAAS,EAAE,CAAM;IAClC,aAAa,SAAM;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,SAAiB;IAChC,kBAAkB,SAAoB;IACtC,wBAAwB,SAAM;gBAG5B,gBAAgB,EAAE,4BAA4B,EAC9C,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB;IA+CtC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIrC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxC,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9C,IAAI,oBAAoB,IAAI,OAAO,CAIlC;IAED,IAAI,sBAAsB,IAAI,OAAO,CAQpC;IAEA,UAAU,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,EAAE,MAAM,GACpB,WAAW,CAAC,IAAI,CAAC;IAsGnB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;IAwC/C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IA+BhD,sBAAsB,IAAI,WAAW,CAAC,IAAI,CAAC;CAqQ7C"}
         | 
| @@ -0,0 +1,406 @@ | |
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * Copyright (c) 2020-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 { GraphManagerState, } from '@finos/legend-graph';
         | 
| 17 | 
            +
            import { StoreProjectData, ProjectDependencyCoordinates, ProjectVersionEntities, } from '@finos/legend-server-depot';
         | 
| 18 | 
            +
            import { ActionState, assertErrorThrown, guaranteeNonNullable, LogEvent, } from '@finos/legend-shared';
         | 
| 19 | 
            +
            import {} from '@finos/legend-storage';
         | 
| 20 | 
            +
            import { fetchProjectConfigurationStatus, generateEditorRoute, LEGEND_STUDIO_APP_EVENT, EditorStore, generateReviewRoute, } from '@finos/legend-application-studio';
         | 
| 21 | 
            +
            import { DEFAULT_TAB_SIZE, ActionAlertType, ActionAlertActionType, } from '@finos/legend-application';
         | 
| 22 | 
            +
            import { makeObservable, observable, computed, action, flow, flowResult, } from 'mobx';
         | 
| 23 | 
            +
            import { Project, WorkspaceType, Workspace, ProjectConfiguration, EntityChangeType, } from '@finos/legend-server-sdlc';
         | 
| 24 | 
            +
            import { DATA_SPACE_ELEMENT_CLASSIFIER_PATH, DSL_DataSpace_getGraphManagerExtension, } from '@finos/legend-extension-dsl-data-space/graph';
         | 
| 25 | 
            +
            import { generateDataSpaceQuerySetupRoute, generateDataSpaceTemplateQueryPromotionRoute, } from '@finos/legend-extension-dsl-data-space/application';
         | 
| 26 | 
            +
            const projectDependencyToProjectCoordinates = (projectDependency) => new ProjectDependencyCoordinates(guaranteeNonNullable(projectDependency.groupId), guaranteeNonNullable(projectDependency.artifactId), projectDependency.versionId);
         | 
| 27 | 
            +
            const DEFAULT_WORKSPACE_NAME_PREFIX = 'promote-as-template-query';
         | 
| 28 | 
            +
            export class DataSpaceTemplateQueryPromotionReviewerStore {
         | 
| 29 | 
            +
                applicationStore;
         | 
| 30 | 
            +
                sdlcServerClient;
         | 
| 31 | 
            +
                depotServerClient;
         | 
| 32 | 
            +
                graphManagerState;
         | 
| 33 | 
            +
                initState = ActionState.create();
         | 
| 34 | 
            +
                promoteState = ActionState.create();
         | 
| 35 | 
            +
                loadQueryState = ActionState.create();
         | 
| 36 | 
            +
                loadWorkspacesState = ActionState.create();
         | 
| 37 | 
            +
                editorStore;
         | 
| 38 | 
            +
                graphManagerExtension;
         | 
| 39 | 
            +
                currentQuery;
         | 
| 40 | 
            +
                currentQueryInfo;
         | 
| 41 | 
            +
                currentQueryProject;
         | 
| 42 | 
            +
                currentProject;
         | 
| 43 | 
            +
                currentProjectConfiguration;
         | 
| 44 | 
            +
                currentProjectConfigurationStatus;
         | 
| 45 | 
            +
                currentProjectEntities = [];
         | 
| 46 | 
            +
                dependencyEntities = [];
         | 
| 47 | 
            +
                groupWorkspaces = [];
         | 
| 48 | 
            +
                workspaceName = '';
         | 
| 49 | 
            +
                dataSpacePath;
         | 
| 50 | 
            +
                dataSpaceEntity;
         | 
| 51 | 
            +
                templateQueryId = 'template_id';
         | 
| 52 | 
            +
                templateQueryTitle = 'template_title';
         | 
| 53 | 
            +
                templateQueryDescription = '';
         | 
| 54 | 
            +
                constructor(applicationStore, sdlcServerClient, depotServerClient) {
         | 
| 55 | 
            +
                    makeObservable(this, {
         | 
| 56 | 
            +
                        editorStore: observable,
         | 
| 57 | 
            +
                        graphManagerExtension: observable,
         | 
| 58 | 
            +
                        currentQuery: observable,
         | 
| 59 | 
            +
                        currentQueryInfo: observable,
         | 
| 60 | 
            +
                        currentQueryProject: observable,
         | 
| 61 | 
            +
                        currentProject: observable,
         | 
| 62 | 
            +
                        currentProjectConfiguration: observable,
         | 
| 63 | 
            +
                        currentProjectConfigurationStatus: observable,
         | 
| 64 | 
            +
                        currentProjectEntities: observable,
         | 
| 65 | 
            +
                        dataSpaceEntity: observable,
         | 
| 66 | 
            +
                        groupWorkspaces: observable,
         | 
| 67 | 
            +
                        workspaceName: observable,
         | 
| 68 | 
            +
                        templateQueryId: observable,
         | 
| 69 | 
            +
                        templateQueryTitle: observable,
         | 
| 70 | 
            +
                        templateQueryDescription: observable,
         | 
| 71 | 
            +
                        isWorkspaceNameValid: computed,
         | 
| 72 | 
            +
                        isTemplateQueryIdValid: computed,
         | 
| 73 | 
            +
                        setWorkspaceName: action,
         | 
| 74 | 
            +
                        setTemplateQueryId: action,
         | 
| 75 | 
            +
                        setTemplateQueryTitle: action,
         | 
| 76 | 
            +
                        setTemplateQueryDescription: action,
         | 
| 77 | 
            +
                        initialize: flow,
         | 
| 78 | 
            +
                        loadQuery: flow,
         | 
| 79 | 
            +
                        loadProject: flow,
         | 
| 80 | 
            +
                        promoteAsTemplateQuery: flow,
         | 
| 81 | 
            +
                    });
         | 
| 82 | 
            +
                    this.applicationStore = applicationStore;
         | 
| 83 | 
            +
                    this.sdlcServerClient = sdlcServerClient;
         | 
| 84 | 
            +
                    this.depotServerClient = depotServerClient;
         | 
| 85 | 
            +
                    this.graphManagerState = new GraphManagerState(applicationStore.pluginManager, applicationStore.logService);
         | 
| 86 | 
            +
                    this.editorStore = new EditorStore(applicationStore, sdlcServerClient, depotServerClient);
         | 
| 87 | 
            +
                    this.graphManagerExtension = DSL_DataSpace_getGraphManagerExtension(this.editorStore.graphManagerState.graphManager);
         | 
| 88 | 
            +
                }
         | 
| 89 | 
            +
                setWorkspaceName(val) {
         | 
| 90 | 
            +
                    this.workspaceName = val;
         | 
| 91 | 
            +
                }
         | 
| 92 | 
            +
                setTemplateQueryId(val) {
         | 
| 93 | 
            +
                    this.templateQueryId = val;
         | 
| 94 | 
            +
                }
         | 
| 95 | 
            +
                setTemplateQueryTitle(val) {
         | 
| 96 | 
            +
                    this.templateQueryTitle = val;
         | 
| 97 | 
            +
                }
         | 
| 98 | 
            +
                setTemplateQueryDescription(val) {
         | 
| 99 | 
            +
                    this.templateQueryDescription = val;
         | 
| 100 | 
            +
                }
         | 
| 101 | 
            +
                get isWorkspaceNameValid() {
         | 
| 102 | 
            +
                    return !this.groupWorkspaces.some((ws) => ws.workspaceId === this.workspaceName);
         | 
| 103 | 
            +
                }
         | 
| 104 | 
            +
                get isTemplateQueryIdValid() {
         | 
| 105 | 
            +
                    if (this.dataSpaceEntity) {
         | 
| 106 | 
            +
                        return this.graphManagerExtension.IsTemplateQueryIdValid(this.dataSpaceEntity, this.templateQueryId);
         | 
| 107 | 
            +
                    }
         | 
| 108 | 
            +
                    return false;
         | 
| 109 | 
            +
                }
         | 
| 110 | 
            +
                *initialize(queryId, dataSpacePath) {
         | 
| 111 | 
            +
                    if (!this.initState.isInInitialState) {
         | 
| 112 | 
            +
                        return;
         | 
| 113 | 
            +
                    }
         | 
| 114 | 
            +
                    try {
         | 
| 115 | 
            +
                        this.initState.inProgress();
         | 
| 116 | 
            +
                        yield this.graphManagerState.graphManager.initialize({
         | 
| 117 | 
            +
                            env: this.applicationStore.config.env,
         | 
| 118 | 
            +
                            tabSize: DEFAULT_TAB_SIZE,
         | 
| 119 | 
            +
                            clientConfig: {
         | 
| 120 | 
            +
                                baseUrl: this.applicationStore.config.engineServerUrl,
         | 
| 121 | 
            +
                                queryBaseUrl: this.applicationStore.config.engineQueryServerUrl,
         | 
| 122 | 
            +
                                enableCompression: true,
         | 
| 123 | 
            +
                            },
         | 
| 124 | 
            +
                        }, {
         | 
| 125 | 
            +
                            tracerService: this.applicationStore.tracerService,
         | 
| 126 | 
            +
                        });
         | 
| 127 | 
            +
                        this.dataSpacePath = dataSpacePath;
         | 
| 128 | 
            +
                        if (queryId) {
         | 
| 129 | 
            +
                            let query;
         | 
| 130 | 
            +
                            try {
         | 
| 131 | 
            +
                                query = (yield this.graphManagerState.graphManager.getLightQuery(queryId));
         | 
| 132 | 
            +
                            }
         | 
| 133 | 
            +
                            catch {
         | 
| 134 | 
            +
                                query = undefined;
         | 
| 135 | 
            +
                            }
         | 
| 136 | 
            +
                            if (query) {
         | 
| 137 | 
            +
                                yield flowResult(this.loadQuery(query));
         | 
| 138 | 
            +
                            }
         | 
| 139 | 
            +
                            else {
         | 
| 140 | 
            +
                                this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceQuerySetupRoute());
         | 
| 141 | 
            +
                            }
         | 
| 142 | 
            +
                        }
         | 
| 143 | 
            +
                        if (this.currentQuery) {
         | 
| 144 | 
            +
                            this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
         | 
| 145 | 
            +
                            const projectData = (yield Promise.all([
         | 
| 146 | 
            +
                                this.depotServerClient.getVersionEntities(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId),
         | 
| 147 | 
            +
                                this.sdlcServerClient.getConfiguration(this.currentQueryProject.projectId, undefined),
         | 
| 148 | 
            +
                            ]));
         | 
| 149 | 
            +
                            const [currentProjectEntities, currentProjectConfiguration] = [
         | 
| 150 | 
            +
                                projectData[0],
         | 
| 151 | 
            +
                                ProjectConfiguration.serialization.fromJson(projectData[1]),
         | 
| 152 | 
            +
                            ];
         | 
| 153 | 
            +
                            this.currentProjectConfiguration = currentProjectConfiguration;
         | 
| 154 | 
            +
                            const dependencyEntities = (yield this.depotServerClient.collectDependencyEntities([
         | 
| 155 | 
            +
                                ...currentProjectConfiguration.projectDependencies,
         | 
| 156 | 
            +
                            ]
         | 
| 157 | 
            +
                                .map(projectDependencyToProjectCoordinates)
         | 
| 158 | 
            +
                                .map((p) => ProjectDependencyCoordinates.serialization.toJson(p)), true, true))
         | 
| 159 | 
            +
                                .map((p) => ProjectVersionEntities.serialization.fromJson(p))
         | 
| 160 | 
            +
                                .flatMap((info) => info.entities);
         | 
| 161 | 
            +
                            this.dependencyEntities = dependencyEntities;
         | 
| 162 | 
            +
                            this.currentProjectEntities = currentProjectEntities;
         | 
| 163 | 
            +
                            this.dataSpaceEntity = guaranteeNonNullable(currentProjectEntities.filter((entity) => entity.path === dataSpacePath &&
         | 
| 164 | 
            +
                                entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0], `Can't find dataSpace entity with path ${this.dataSpaceEntity}`);
         | 
| 165 | 
            +
                            this.initState.pass();
         | 
| 166 | 
            +
                        }
         | 
| 167 | 
            +
                    }
         | 
| 168 | 
            +
                    catch (error) {
         | 
| 169 | 
            +
                        assertErrorThrown(error);
         | 
| 170 | 
            +
                        this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.GENERIC_FAILURE), error);
         | 
| 171 | 
            +
                        this.applicationStore.alertService.setBlockingAlert({
         | 
| 172 | 
            +
                            message: `Can't initialize template query promotion reviewer store`,
         | 
| 173 | 
            +
                        });
         | 
| 174 | 
            +
                        this.initState.fail();
         | 
| 175 | 
            +
                    }
         | 
| 176 | 
            +
                }
         | 
| 177 | 
            +
                *loadQuery(query) {
         | 
| 178 | 
            +
                    this.currentQuery = query;
         | 
| 179 | 
            +
                    this.templateQueryTitle = query.name;
         | 
| 180 | 
            +
                    try {
         | 
| 181 | 
            +
                        this.loadQueryState.inProgress();
         | 
| 182 | 
            +
                        this.currentQueryInfo =
         | 
| 183 | 
            +
                            (yield this.graphManagerState.graphManager.getQueryInfo(query.id));
         | 
| 184 | 
            +
                        this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
         | 
| 185 | 
            +
                        this.setWorkspaceName(`${DEFAULT_WORKSPACE_NAME_PREFIX}-${query.name}`);
         | 
| 186 | 
            +
                        this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceTemplateQueryPromotionRoute(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId, this.dataSpacePath, query.id));
         | 
| 187 | 
            +
                        const currentProject = Project.serialization.fromJson((yield this.sdlcServerClient.getProject(this.currentQueryProject.projectId)));
         | 
| 188 | 
            +
                        yield flowResult(this.loadProject(currentProject));
         | 
| 189 | 
            +
                    }
         | 
| 190 | 
            +
                    catch (error) {
         | 
| 191 | 
            +
                        assertErrorThrown(error);
         | 
| 192 | 
            +
                        this.applicationStore.notificationService.notifyError(error);
         | 
| 193 | 
            +
                    }
         | 
| 194 | 
            +
                    finally {
         | 
| 195 | 
            +
                        this.loadQueryState.complete();
         | 
| 196 | 
            +
                    }
         | 
| 197 | 
            +
                }
         | 
| 198 | 
            +
                *loadProject(project) {
         | 
| 199 | 
            +
                    this.currentProject = project;
         | 
| 200 | 
            +
                    this.currentProjectConfigurationStatus = undefined;
         | 
| 201 | 
            +
                    this.loadWorkspacesState.inProgress();
         | 
| 202 | 
            +
                    try {
         | 
| 203 | 
            +
                        this.currentProjectConfigurationStatus =
         | 
| 204 | 
            +
                            (yield fetchProjectConfigurationStatus(project.projectId, undefined, this.applicationStore, this.sdlcServerClient));
         | 
| 205 | 
            +
                        this.groupWorkspaces = (yield this.sdlcServerClient.getGroupWorkspaces(project.projectId))
         | 
| 206 | 
            +
                            .map((v) => Workspace.serialization.fromJson(v))
         | 
| 207 | 
            +
                            .filter((workspace) => workspace.workspaceType === WorkspaceType.GROUP);
         | 
| 208 | 
            +
                        this.loadWorkspacesState.pass();
         | 
| 209 | 
            +
                    }
         | 
| 210 | 
            +
                    catch (error) {
         | 
| 211 | 
            +
                        assertErrorThrown(error);
         | 
| 212 | 
            +
                        this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
         | 
| 213 | 
            +
                        this.applicationStore.notificationService.notifyError(error);
         | 
| 214 | 
            +
                        this.loadWorkspacesState.fail();
         | 
| 215 | 
            +
                    }
         | 
| 216 | 
            +
                }
         | 
| 217 | 
            +
                *promoteAsTemplateQuery() {
         | 
| 218 | 
            +
                    const query = this.currentQuery;
         | 
| 219 | 
            +
                    const project = this.currentProject;
         | 
| 220 | 
            +
                    if (this.promoteState.isInProgress ||
         | 
| 221 | 
            +
                        !query ||
         | 
| 222 | 
            +
                        !this.currentQueryInfo ||
         | 
| 223 | 
            +
                        !this.currentProjectConfiguration ||
         | 
| 224 | 
            +
                        !project ||
         | 
| 225 | 
            +
                        !this.workspaceName ||
         | 
| 226 | 
            +
                        !this.templateQueryTitle ||
         | 
| 227 | 
            +
                        !this.dataSpaceEntity ||
         | 
| 228 | 
            +
                        !this.isWorkspaceNameValid ||
         | 
| 229 | 
            +
                        !this.isTemplateQueryIdValid) {
         | 
| 230 | 
            +
                        return;
         | 
| 231 | 
            +
                    }
         | 
| 232 | 
            +
                    try {
         | 
| 233 | 
            +
                        this.promoteState.inProgress();
         | 
| 234 | 
            +
                        // 1. prepare project entities
         | 
| 235 | 
            +
                        this.applicationStore.alertService.setBlockingAlert({
         | 
| 236 | 
            +
                            message: `Fetching and updating project...`,
         | 
| 237 | 
            +
                            prompt: 'Please do not close the application',
         | 
| 238 | 
            +
                            showLoading: true,
         | 
| 239 | 
            +
                        });
         | 
| 240 | 
            +
                        // update datasapce entity
         | 
| 241 | 
            +
                        const updatedDataSpaceEntity = (yield this.graphManagerExtension.addNewExecutableToDataSpaceEntity(this.dataSpaceEntity, {
         | 
| 242 | 
            +
                            id: this.templateQueryId,
         | 
| 243 | 
            +
                            title: this.templateQueryTitle,
         | 
| 244 | 
            +
                            mapping: guaranteeNonNullable(this.currentQueryInfo).mapping,
         | 
| 245 | 
            +
                            runtime: guaranteeNonNullable(this.currentQueryInfo).runtime,
         | 
| 246 | 
            +
                            query: (yield this.graphManagerState.graphManager.pureCodeToLambda(this.currentQueryInfo.content)),
         | 
| 247 | 
            +
                            description: this.templateQueryDescription,
         | 
| 248 | 
            +
                        }));
         | 
| 249 | 
            +
                        guaranteeNonNullable(this.currentProjectEntities.filter((entity) => entity.path === this.dataSpacePath &&
         | 
| 250 | 
            +
                            entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0]).content = updatedDataSpaceEntity.content;
         | 
| 251 | 
            +
                        // 2. check if the graph compiles properly
         | 
| 252 | 
            +
                        this.applicationStore.alertService.setBlockingAlert({
         | 
| 253 | 
            +
                            message: `Checking workspace compilation status...`,
         | 
| 254 | 
            +
                            prompt: 'Please do not close the application',
         | 
| 255 | 
            +
                            showLoading: true,
         | 
| 256 | 
            +
                        });
         | 
| 257 | 
            +
                        let compilationFailed = false;
         | 
| 258 | 
            +
                        try {
         | 
| 259 | 
            +
                            yield this.graphManagerState.graphManager.compileEntities([
         | 
| 260 | 
            +
                                ...this.dependencyEntities,
         | 
| 261 | 
            +
                                ...this.currentProjectEntities,
         | 
| 262 | 
            +
                            ]);
         | 
| 263 | 
            +
                        }
         | 
| 264 | 
            +
                        catch {
         | 
| 265 | 
            +
                            compilationFailed = true;
         | 
| 266 | 
            +
                        }
         | 
| 267 | 
            +
                        // 3. proceed to setup the workspace
         | 
| 268 | 
            +
                        const setupWorkspace = async () => {
         | 
| 269 | 
            +
                            let workspace;
         | 
| 270 | 
            +
                            try {
         | 
| 271 | 
            +
                                this.applicationStore.alertService.setBlockingAlert({
         | 
| 272 | 
            +
                                    message: `Creating workspace...`,
         | 
| 273 | 
            +
                                    prompt: 'Please do not close the application',
         | 
| 274 | 
            +
                                    showLoading: true,
         | 
| 275 | 
            +
                                });
         | 
| 276 | 
            +
                                // i. create workspace
         | 
| 277 | 
            +
                                workspace = Workspace.serialization.fromJson(await this.sdlcServerClient.createWorkspace(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
         | 
| 278 | 
            +
                                // ii. update dataspace
         | 
| 279 | 
            +
                                this.applicationStore.alertService.setBlockingAlert({
         | 
| 280 | 
            +
                                    message: `Generating code commit...`,
         | 
| 281 | 
            +
                                    prompt: 'Please do not close the application',
         | 
| 282 | 
            +
                                    showLoading: true,
         | 
| 283 | 
            +
                                });
         | 
| 284 | 
            +
                                await this.sdlcServerClient.performEntityChanges(project.projectId, workspace, {
         | 
| 285 | 
            +
                                    message: 'promote-as-template-query: promote query as a template query to dataspace',
         | 
| 286 | 
            +
                                    entityChanges: [
         | 
| 287 | 
            +
                                        {
         | 
| 288 | 
            +
                                            classifierPath: updatedDataSpaceEntity.classifierPath,
         | 
| 289 | 
            +
                                            entityPath: updatedDataSpaceEntity.path,
         | 
| 290 | 
            +
                                            content: updatedDataSpaceEntity.content,
         | 
| 291 | 
            +
                                            type: EntityChangeType.MODIFY,
         | 
| 292 | 
            +
                                        },
         | 
| 293 | 
            +
                                    ],
         | 
| 294 | 
            +
                                });
         | 
| 295 | 
            +
                                // iii create review
         | 
| 296 | 
            +
                                this.applicationStore.alertService.setBlockingAlert({
         | 
| 297 | 
            +
                                    message: `Generating code review...`,
         | 
| 298 | 
            +
                                    prompt: 'Please do not close the application',
         | 
| 299 | 
            +
                                    showLoading: true,
         | 
| 300 | 
            +
                                });
         | 
| 301 | 
            +
                                await flowResult(this.editorStore.initialize(project.projectId, undefined, workspace.workspaceId, workspace.workspaceType));
         | 
| 302 | 
            +
                                const workspaceReviewState = this.editorStore.workspaceReviewState;
         | 
| 303 | 
            +
                                const workspaceContainsSnapshotDependencies = this.editorStore.projectConfigurationEditorState
         | 
| 304 | 
            +
                                    .containsSnapshotDependencies;
         | 
| 305 | 
            +
                                const isCreateReviewDisabled = Boolean(workspaceReviewState.workspaceReview) ||
         | 
| 306 | 
            +
                                    workspaceContainsSnapshotDependencies ||
         | 
| 307 | 
            +
                                    !workspaceReviewState.canCreateReview ||
         | 
| 308 | 
            +
                                    workspaceReviewState.sdlcState.isActiveProjectSandbox;
         | 
| 309 | 
            +
                                workspaceReviewState.reviewTitle =
         | 
| 310 | 
            +
                                    'code review - promote query as a template query to dataspace';
         | 
| 311 | 
            +
                                if (!isCreateReviewDisabled) {
         | 
| 312 | 
            +
                                    await flowResult(workspaceReviewState.createWorkspaceReview(workspaceReviewState.reviewTitle));
         | 
| 313 | 
            +
                                }
         | 
| 314 | 
            +
                                else {
         | 
| 315 | 
            +
                                    this.applicationStore.notificationService.notifyError(`Can't create code review`);
         | 
| 316 | 
            +
                                }
         | 
| 317 | 
            +
                                // iv. complete, redirect user to the service query editor screen
         | 
| 318 | 
            +
                                this.applicationStore.alertService.setBlockingAlert(undefined);
         | 
| 319 | 
            +
                                this.promoteState.pass();
         | 
| 320 | 
            +
                                this.applicationStore.alertService.setActionAlertInfo({
         | 
| 321 | 
            +
                                    message: `Successfully promoted query into dataspace '${this.dataSpacePath}'. Now your template query can be found in workspace '${this.workspaceName}' of project '${project.name}' (${project.projectId})`,
         | 
| 322 | 
            +
                                    prompt: compilationFailed
         | 
| 323 | 
            +
                                        ? `The workspace might not compile at the moment, please make sure to fix the issue and submit a review to make the dataspace part of the project to complete template query promotion`
         | 
| 324 | 
            +
                                        : `Please make sure to get the generated code-review reviewed and approved`,
         | 
| 325 | 
            +
                                    type: ActionAlertType.STANDARD,
         | 
| 326 | 
            +
                                    actions: compilationFailed
         | 
| 327 | 
            +
                                        ? [
         | 
| 328 | 
            +
                                            {
         | 
| 329 | 
            +
                                                label: 'Open Workspace',
         | 
| 330 | 
            +
                                                type: ActionAlertActionType.PROCEED,
         | 
| 331 | 
            +
                                                handler: () => {
         | 
| 332 | 
            +
                                                    this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
         | 
| 333 | 
            +
                                                },
         | 
| 334 | 
            +
                                                default: true,
         | 
| 335 | 
            +
                                            },
         | 
| 336 | 
            +
                                        ]
         | 
| 337 | 
            +
                                        : [
         | 
| 338 | 
            +
                                            {
         | 
| 339 | 
            +
                                                label: 'Open Code Review',
         | 
| 340 | 
            +
                                                type: ActionAlertActionType.PROCEED,
         | 
| 341 | 
            +
                                                handler: () => {
         | 
| 342 | 
            +
                                                    if (workspaceReviewState.workspaceReview) {
         | 
| 343 | 
            +
                                                        this.applicationStore.navigationService.navigator.visitAddress(this.applicationStore.navigationService.navigator.generateAddress(generateReviewRoute(workspaceReviewState.workspaceReview.projectId, workspaceReviewState.workspaceReview.id)));
         | 
| 344 | 
            +
                                                    }
         | 
| 345 | 
            +
                                                },
         | 
| 346 | 
            +
                                                default: true,
         | 
| 347 | 
            +
                                            },
         | 
| 348 | 
            +
                                            {
         | 
| 349 | 
            +
                                                label: 'Open Workspace',
         | 
| 350 | 
            +
                                                type: ActionAlertActionType.PROCEED,
         | 
| 351 | 
            +
                                                handler: () => {
         | 
| 352 | 
            +
                                                    this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
         | 
| 353 | 
            +
                                                },
         | 
| 354 | 
            +
                                            },
         | 
| 355 | 
            +
                                        ],
         | 
| 356 | 
            +
                                });
         | 
| 357 | 
            +
                            }
         | 
| 358 | 
            +
                            catch (error) {
         | 
| 359 | 
            +
                                assertErrorThrown(error);
         | 
| 360 | 
            +
                                this.applicationStore.alertService.setBlockingAlert(undefined);
         | 
| 361 | 
            +
                                this.applicationStore.notificationService.notifyError(`Can't set up workspace: ${error.message}`);
         | 
| 362 | 
            +
                                if (workspace) {
         | 
| 363 | 
            +
                                    await this.sdlcServerClient.deleteWorkspace(project.projectId, workspace);
         | 
| 364 | 
            +
                                }
         | 
| 365 | 
            +
                                this.promoteState.fail();
         | 
| 366 | 
            +
                            }
         | 
| 367 | 
            +
                        };
         | 
| 368 | 
            +
                        this.applicationStore.alertService.setBlockingAlert(undefined);
         | 
| 369 | 
            +
                        if (compilationFailed) {
         | 
| 370 | 
            +
                            this.applicationStore.alertService.setActionAlertInfo({
         | 
| 371 | 
            +
                                message: `We have found compilation issues with the workspace. Your query can still be promoted, but you would need to fix compilation issues afterwards`,
         | 
| 372 | 
            +
                                prompt: `Do you still want to proceed to promote the query as a template query?`,
         | 
| 373 | 
            +
                                type: ActionAlertType.STANDARD,
         | 
| 374 | 
            +
                                actions: [
         | 
| 375 | 
            +
                                    {
         | 
| 376 | 
            +
                                        label: `Proceed`,
         | 
| 377 | 
            +
                                        type: ActionAlertActionType.PROCEED_WITH_CAUTION,
         | 
| 378 | 
            +
                                        handler: () => {
         | 
| 379 | 
            +
                                            setupWorkspace().catch(this.applicationStore.alertUnhandledError);
         | 
| 380 | 
            +
                                        },
         | 
| 381 | 
            +
                                    },
         | 
| 382 | 
            +
                                    {
         | 
| 383 | 
            +
                                        label: 'Abort',
         | 
| 384 | 
            +
                                        type: ActionAlertActionType.PROCEED,
         | 
| 385 | 
            +
                                        handler: () => {
         | 
| 386 | 
            +
                                            this.promoteState.fail();
         | 
| 387 | 
            +
                                        },
         | 
| 388 | 
            +
                                        default: true,
         | 
| 389 | 
            +
                                    },
         | 
| 390 | 
            +
                                ],
         | 
| 391 | 
            +
                            });
         | 
| 392 | 
            +
                        }
         | 
| 393 | 
            +
                        else {
         | 
| 394 | 
            +
                            yield setupWorkspace();
         | 
| 395 | 
            +
                        }
         | 
| 396 | 
            +
                        this.promoteState.pass();
         | 
| 397 | 
            +
                    }
         | 
| 398 | 
            +
                    catch (error) {
         | 
| 399 | 
            +
                        assertErrorThrown(error);
         | 
| 400 | 
            +
                        this.applicationStore.alertService.setBlockingAlert(undefined);
         | 
| 401 | 
            +
                        this.applicationStore.notificationService.notifyError(error);
         | 
| 402 | 
            +
                        this.promoteState.fail();
         | 
| 403 | 
            +
                    }
         | 
| 404 | 
            +
                }
         | 
| 405 | 
            +
            }
         | 
| 406 | 
            +
            //# sourceMappingURL=DataSpaceTemplateQueryPromotionReviewerStore.js.map
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"version":3,"file":"DataSpaceTemplateQueryPromotionReviewerStore.js","sourceRoot":"","sources":["../../src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts"],"names":[],"mappings":"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"}
         | 
    
        package/package.json
    ADDED
    
    | @@ -0,0 +1,75 @@ | |
| 1 | 
            +
            {
         | 
| 2 | 
            +
              "name": "@finos/legend-extension-dsl-data-space-studio",
         | 
| 3 | 
            +
              "version": "0.1.0",
         | 
| 4 | 
            +
              "description": "Legend extension for Data Space DSL - Studio",
         | 
| 5 | 
            +
              "keywords": [
         | 
| 6 | 
            +
                "legend",
         | 
| 7 | 
            +
                "legend-extension",
         | 
| 8 | 
            +
                "dsl",
         | 
| 9 | 
            +
                "dsl-data-space",
         | 
| 10 | 
            +
                "studio"
         | 
| 11 | 
            +
              ],
         | 
| 12 | 
            +
              "homepage": "https://github.com/finos/legend-studio/tree/master/packages/legend-extension-dsl-data-space-studio",
         | 
| 13 | 
            +
              "bugs": {
         | 
| 14 | 
            +
                "url": "https://github.com/finos/legend-studio/issues"
         | 
| 15 | 
            +
              },
         | 
| 16 | 
            +
              "repository": {
         | 
| 17 | 
            +
                "type": "git",
         | 
| 18 | 
            +
                "url": "https://github.com/finos/legend-studio.git",
         | 
| 19 | 
            +
                "directory": "packages/legend-extension-dsl-data-space-studio"
         | 
| 20 | 
            +
              },
         | 
| 21 | 
            +
              "license": "Apache-2.0",
         | 
| 22 | 
            +
              "sideEffects": false,
         | 
| 23 | 
            +
              "type": "module",
         | 
| 24 | 
            +
              "exports": {
         | 
| 25 | 
            +
                ".": "./lib/index.js",
         | 
| 26 | 
            +
                "./lib/index.css": "./lib/index.css"
         | 
| 27 | 
            +
              },
         | 
| 28 | 
            +
              "scripts": {
         | 
| 29 | 
            +
                "build": "yarn clean && yarn build:sass && yarn build:ts",
         | 
| 30 | 
            +
                "build:sass": "cross-env INIT_CWD=$INIT_CWD node ../../scripts/workflow/buildSass.js",
         | 
| 31 | 
            +
                "build:ts": "tsc --project ./tsconfig.build.json",
         | 
| 32 | 
            +
                "clean": "npm-run-all clean:cache clean:lib",
         | 
| 33 | 
            +
                "clean:cache": "rimraf \"build\"",
         | 
| 34 | 
            +
                "clean:lib": "rimraf \"lib\"",
         | 
| 35 | 
            +
                "dev": "npm-run-all --parallel dev:sass dev:ts",
         | 
| 36 | 
            +
                "dev:sass": "sass style:lib --watch --load-path=../../node_modules/@finos/legend-art/scss",
         | 
| 37 | 
            +
                "dev:ts": "tsc --watch --preserveWatchOutput",
         | 
| 38 | 
            +
                "lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location ./build/.eslintcache --report-unused-disable-directives --parser-options=project:\"./tsconfig.json\" \"./src/**/*.{js,ts,tsx}\"",
         | 
| 39 | 
            +
                "publish:prepare": "node ../../scripts/release/preparePublishContent.js",
         | 
| 40 | 
            +
                "publish:snapshot": "node ../../scripts/release/publishDevSnapshot.js",
         | 
| 41 | 
            +
                "test": "jest",
         | 
| 42 | 
            +
                "test:watch": "jest --watch"
         | 
| 43 | 
            +
              },
         | 
| 44 | 
            +
              "dependencies": {
         | 
| 45 | 
            +
                "@finos/legend-application": "15.0.74",
         | 
| 46 | 
            +
                "@finos/legend-application-studio": "28.16.12",
         | 
| 47 | 
            +
                "@finos/legend-art": "7.1.26",
         | 
| 48 | 
            +
                "@finos/legend-extension-dsl-data-space": "10.3.0",
         | 
| 49 | 
            +
                "@finos/legend-server-depot": "6.0.39",
         | 
| 50 | 
            +
                "@finos/legend-server-sdlc": "5.3.10",
         | 
| 51 | 
            +
                "@finos/legend-shared": "10.0.34",
         | 
| 52 | 
            +
                "mobx": "6.10.2",
         | 
| 53 | 
            +
                "mobx-react-lite": "4.0.5"
         | 
| 54 | 
            +
              },
         | 
| 55 | 
            +
              "devDependencies": {
         | 
| 56 | 
            +
                "@finos/legend-dev-utils": "2.1.3",
         | 
| 57 | 
            +
                "@jest/globals": "29.7.0",
         | 
| 58 | 
            +
                "cross-env": "7.0.3",
         | 
| 59 | 
            +
                "eslint": "8.52.0",
         | 
| 60 | 
            +
                "jest": "29.7.0",
         | 
| 61 | 
            +
                "npm-run-all": "4.1.5",
         | 
| 62 | 
            +
                "rimraf": "5.0.5",
         | 
| 63 | 
            +
                "sass": "1.69.4",
         | 
| 64 | 
            +
                "typescript": "5.2.2"
         | 
| 65 | 
            +
              },
         | 
| 66 | 
            +
              "peerDependencies": {
         | 
| 67 | 
            +
                "react": "^18.0.0"
         | 
| 68 | 
            +
              },
         | 
| 69 | 
            +
              "publishConfig": {
         | 
| 70 | 
            +
                "directory": "build/publishContent"
         | 
| 71 | 
            +
              },
         | 
| 72 | 
            +
              "extensions": {
         | 
| 73 | 
            +
                "applicationStudioPlugin": "@finos/legend-application-studio-plugin-dsl-data-space"
         | 
| 74 | 
            +
              }
         | 
| 75 | 
            +
            }
         | 
| @@ -0,0 +1,54 @@ | |
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * Copyright (c) 2020-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 | 
            +
             | 
| 17 | 
            +
            export const SIMPLE_DATA_SPACE_SNIPPET = `DataSpace \${1:model::NewDataSpace}
         | 
| 18 | 
            +
            {
         | 
| 19 | 
            +
              executionContexts:
         | 
| 20 | 
            +
              [
         | 
| 21 | 
            +
                {
         | 
| 22 | 
            +
                  name: '\${5:Some Context}';
         | 
| 23 | 
            +
                  title: 'New Execution Context';
         | 
| 24 | 
            +
                  description: 'some information about the execution context';
         | 
| 25 | 
            +
                  mapping: \${6:model::SomeMapping};
         | 
| 26 | 
            +
                  defaultRuntime: \${7:model::SomeRuntime};
         | 
| 27 | 
            +
                }
         | 
| 28 | 
            +
              ];
         | 
| 29 | 
            +
              defaultExecutionContext: '\${5:Some Context}';
         | 
| 30 | 
            +
              // description: 'description of the data models';
         | 
| 31 | 
            +
              // diagrams:
         | 
| 32 | 
            +
              // [
         | 
| 33 | 
            +
              //   {
         | 
| 34 | 
            +
              //     title: 'Some Diagram';
         | 
| 35 | 
            +
              //     description: 'some diagram';
         | 
| 36 | 
            +
              //     diagram: model::SomeDiagram;
         | 
| 37 | 
            +
              //   }
         | 
| 38 | 
            +
              // ];
         | 
| 39 | 
            +
              // elements:
         | 
| 40 | 
            +
              // [
         | 
| 41 | 
            +
              //   model::SomeClass,
         | 
| 42 | 
            +
              // ];
         | 
| 43 | 
            +
              // executables:
         | 
| 44 | 
            +
              // [
         | 
| 45 | 
            +
              //   {
         | 
| 46 | 
            +
              //     title: 'Some Executable';
         | 
| 47 | 
            +
              //     description: 'some executable';
         | 
| 48 | 
            +
              //     executable: model::SomeExecutable;
         | 
| 49 | 
            +
              //   }
         | 
| 50 | 
            +
              // ];
         | 
| 51 | 
            +
              // supportInfo: Email {
         | 
| 52 | 
            +
              //   address: 'someEmail@test.org';
         | 
| 53 | 
            +
              // };
         | 
| 54 | 
            +
            }`;
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * Copyright (c) 2020-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 | 
            +
             | 
| 17 | 
            +
            export enum DSL_DATA_SPACE_LEGEND_STUDIO_DOCUMENTATION_KEY {
         | 
| 18 | 
            +
              GRAMMAR_PARSER = 'dsl-dataspace.grammar.parser',
         | 
| 19 | 
            +
              CONCEPT_ELEMENT_DATA_SPACE = 'dsl-dataspace.concept.element.data-space',
         | 
| 20 | 
            +
              CURATED_TEMPLATE_QUERY = 'dsl-dataspace.curated-template-query',
         | 
| 21 | 
            +
            }
         |