@finos/legend-application-studio 28.21.3 → 28.21.5
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/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js +3 -3
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.d.ts +3 -0
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js +72 -52
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js +22 -1
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.d.ts +23 -0
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.d.ts.map +1 -0
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js +267 -0
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js.map +1 -0
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js +113 -75
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +39 -5
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
- package/lib/components/editor/side-bar/DevMetadataPanel.d.ts.map +1 -1
- package/lib/components/editor/side-bar/DevMetadataPanel.js +37 -6
- package/lib/components/editor/side-bar/DevMetadataPanel.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts +17 -2
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js +56 -49
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.d.ts +4 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js +4 -0
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts +113 -0
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js +647 -0
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts +18 -4
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js +214 -53
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts +17 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js +46 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.d.ts +9 -0
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.js +55 -0
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.js.map +1 -1
- package/package.json +16 -16
- package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +3 -0
- package/src/components/editor/editor-group/data-editor/RelationElementsDataEditor.tsx +331 -231
- package/src/components/editor/editor-group/dataProduct/DataProductEditor.tsx +32 -0
- package/src/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.tsx +935 -0
- package/src/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.tsx +425 -308
- package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +160 -15
- package/src/components/editor/side-bar/DevMetadataPanel.tsx +194 -10
- package/src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts +82 -51
- package/src/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.ts +4 -0
- package/src/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.ts +927 -0
- package/src/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.ts +303 -72
- package/src/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.ts +66 -0
- package/src/stores/editor/sidebar-state/dev-metadata/DevMetadataState.ts +76 -0
- package/tsconfig.json +2 -0
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
assertNonNullable,
|
|
21
21
|
assertTrue,
|
|
22
22
|
type GeneratorFn,
|
|
23
|
+
type PlainObject,
|
|
23
24
|
} from '@finos/legend-shared';
|
|
24
25
|
import type { EditorStore } from '../../EditorStore.js';
|
|
25
26
|
import { action, flow, makeObservable, observable } from 'mobx';
|
|
@@ -27,14 +28,24 @@ import {
|
|
|
27
28
|
type DeployProjectResponse,
|
|
28
29
|
MetadataRequestOptions,
|
|
29
30
|
} from '@finos/legend-graph';
|
|
31
|
+
import type { Entity } from '@finos/legend-storage';
|
|
30
32
|
import { LegendStudioTelemetryHelper } from '../../../../__lib__/LegendStudioTelemetryHelper.js';
|
|
31
33
|
|
|
34
|
+
export const DEV_SNAPSHOT_VERSION = '1.0.0-SNAPSHOT';
|
|
35
|
+
|
|
32
36
|
export class DevMetadataState {
|
|
33
37
|
readonly editorStore: EditorStore;
|
|
34
38
|
result: DeployProjectResponse | undefined;
|
|
35
39
|
options: MetadataRequestOptions = new MetadataRequestOptions();
|
|
36
40
|
pushState = ActionState.create();
|
|
37
41
|
|
|
42
|
+
// Compare-with-dev state
|
|
43
|
+
compareState = ActionState.create();
|
|
44
|
+
currentWorkspaceCode: string | undefined;
|
|
45
|
+
snapshotCode: string | undefined;
|
|
46
|
+
snapshotNotAvailable = false;
|
|
47
|
+
isCompareModalOpen = false;
|
|
48
|
+
|
|
38
49
|
constructor(editorStore: EditorStore) {
|
|
39
50
|
this.editorStore = editorStore;
|
|
40
51
|
|
|
@@ -43,6 +54,14 @@ export class DevMetadataState {
|
|
|
43
54
|
push: flow,
|
|
44
55
|
options: observable,
|
|
45
56
|
setOptions: action,
|
|
57
|
+
compareState: observable,
|
|
58
|
+
currentWorkspaceCode: observable,
|
|
59
|
+
snapshotCode: observable,
|
|
60
|
+
snapshotNotAvailable: observable,
|
|
61
|
+
isCompareModalOpen: observable,
|
|
62
|
+
openCompareModal: action,
|
|
63
|
+
closeCompareModal: action,
|
|
64
|
+
compareWithSnapshot: flow,
|
|
46
65
|
});
|
|
47
66
|
}
|
|
48
67
|
|
|
@@ -50,6 +69,14 @@ export class DevMetadataState {
|
|
|
50
69
|
this.options = options;
|
|
51
70
|
}
|
|
52
71
|
|
|
72
|
+
openCompareModal(): void {
|
|
73
|
+
this.isCompareModalOpen = true;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
closeCompareModal(): void {
|
|
77
|
+
this.isCompareModalOpen = false;
|
|
78
|
+
}
|
|
79
|
+
|
|
53
80
|
get projectGAV(): { groupId: string; artifactId: string } | undefined {
|
|
54
81
|
const currentProjectConfiguration =
|
|
55
82
|
this.editorStore.projectConfigurationEditorState.projectConfiguration;
|
|
@@ -62,6 +89,55 @@ export class DevMetadataState {
|
|
|
62
89
|
return undefined;
|
|
63
90
|
}
|
|
64
91
|
|
|
92
|
+
*compareWithSnapshot(): GeneratorFn<void> {
|
|
93
|
+
try {
|
|
94
|
+
this.compareState.inProgress();
|
|
95
|
+
this.snapshotNotAvailable = false;
|
|
96
|
+
this.currentWorkspaceCode = undefined;
|
|
97
|
+
this.snapshotCode = undefined;
|
|
98
|
+
const gav = this.projectGAV;
|
|
99
|
+
assertNonNullable(gav, 'Project configuration is required to compare');
|
|
100
|
+
const graphManager = this.editorStore.graphManagerState.graphManager;
|
|
101
|
+
|
|
102
|
+
// 1) Current workspace -> Pure code (same as toggling to text mode)
|
|
103
|
+
const currentCode = (yield graphManager.graphToPureCode(
|
|
104
|
+
this.editorStore.graphManagerState.graph,
|
|
105
|
+
{ pretty: true, excludeUnknown: true },
|
|
106
|
+
)) as string;
|
|
107
|
+
this.currentWorkspaceCode = currentCode;
|
|
108
|
+
|
|
109
|
+
// 2) Snapshot from depot -> Pure code; if the call fails we treat
|
|
110
|
+
// it as "nothing deployed yet"
|
|
111
|
+
let snapshotEntities: Entity[] | undefined;
|
|
112
|
+
try {
|
|
113
|
+
const entitiesJson =
|
|
114
|
+
(yield this.editorStore.depotServerClient.getVersionEntities(
|
|
115
|
+
gav.groupId,
|
|
116
|
+
gav.artifactId,
|
|
117
|
+
DEV_SNAPSHOT_VERSION,
|
|
118
|
+
)) as PlainObject<Entity>[];
|
|
119
|
+
snapshotEntities = entitiesJson as unknown as Entity[];
|
|
120
|
+
} catch {
|
|
121
|
+
this.snapshotNotAvailable = true;
|
|
122
|
+
this.compareState.complete();
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const snapshotCode = (yield graphManager.entitiesToPureCode(
|
|
127
|
+
snapshotEntities,
|
|
128
|
+
{ pretty: true },
|
|
129
|
+
)) as string;
|
|
130
|
+
this.snapshotCode = snapshotCode;
|
|
131
|
+
this.compareState.complete();
|
|
132
|
+
} catch (error) {
|
|
133
|
+
assertErrorThrown(error);
|
|
134
|
+
this.editorStore.applicationStore.notificationService.notifyError(
|
|
135
|
+
`Error comparing with dev snapshot: ${error.message}`,
|
|
136
|
+
);
|
|
137
|
+
this.compareState.fail();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
65
141
|
*push(): GeneratorFn<void> {
|
|
66
142
|
try {
|
|
67
143
|
this.result = undefined;
|
package/tsconfig.json
CHANGED
|
@@ -133,6 +133,7 @@
|
|
|
133
133
|
"./src/stores/editor/editor-state/element-editor-state/data/DataEditorState.ts",
|
|
134
134
|
"./src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts",
|
|
135
135
|
"./src/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.ts",
|
|
136
|
+
"./src/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.ts",
|
|
136
137
|
"./src/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_BindingEditorState.ts",
|
|
137
138
|
"./src/stores/editor/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.ts",
|
|
138
139
|
"./src/stores/editor/editor-state/element-editor-state/function-activator/HostedServiceFunctionActivatorEditorState.ts",
|
|
@@ -264,6 +265,7 @@
|
|
|
264
265
|
"./src/components/editor/editor-group/data-editor/RelationElementsDataEditor.tsx",
|
|
265
266
|
"./src/components/editor/editor-group/data-editor/RelationalCSVDataEditor.tsx",
|
|
266
267
|
"./src/components/editor/editor-group/dataProduct/DataProductEditor.tsx",
|
|
268
|
+
"./src/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.tsx",
|
|
267
269
|
"./src/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.tsx",
|
|
268
270
|
"./src/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.tsx",
|
|
269
271
|
"./src/components/editor/editor-group/database-editor/DatabaseEditor.tsx",
|