@finos/legend-application-studio 22.1.5 → 22.2.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.
Files changed (95) hide show
  1. package/lib/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts +3 -1
  2. package/lib/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts.map +1 -1
  3. package/lib/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.js +15 -3
  4. package/lib/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.js.map +1 -1
  5. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  6. package/lib/components/editor/edit-panel/GrammarTextEditor.js +8 -0
  7. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  8. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_ExternalFormatConnectionEditor.d.ts +1 -0
  9. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_ExternalFormatConnectionEditor.d.ts.map +1 -1
  10. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_ExternalFormatConnectionEditor.js +4 -0
  11. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_ExternalFormatConnectionEditor.js.map +1 -1
  12. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  13. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js +155 -59
  14. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  15. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  16. package/lib/components/editor/side-bar/CreateNewElementModal.js +28 -23
  17. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  18. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  19. package/lib/components/editor/side-bar/Explorer.js +1 -0
  20. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  21. package/lib/components/editor/side-bar/LocalChanges.d.ts.map +1 -1
  22. package/lib/components/editor/side-bar/LocalChanges.js +16 -3
  23. package/lib/components/editor/side-bar/LocalChanges.js.map +1 -1
  24. package/lib/index.css +2 -2
  25. package/lib/index.css.map +1 -1
  26. package/lib/package.json +3 -3
  27. package/lib/stores/ChangeDetectionState.d.ts +3 -0
  28. package/lib/stores/ChangeDetectionState.d.ts.map +1 -1
  29. package/lib/stores/ChangeDetectionState.js +68 -1
  30. package/lib/stores/ChangeDetectionState.js.map +1 -1
  31. package/lib/stores/DSL_Mapping_LegendStudioApplicationPlugin_Extension.d.ts +15 -1
  32. package/lib/stores/DSL_Mapping_LegendStudioApplicationPlugin_Extension.d.ts.map +1 -1
  33. package/lib/stores/EditorGraphState.d.ts +9 -1
  34. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  35. package/lib/stores/EditorGraphState.js +220 -38
  36. package/lib/stores/EditorGraphState.js.map +1 -1
  37. package/lib/stores/EditorStore.d.ts +2 -1
  38. package/lib/stores/EditorStore.d.ts.map +1 -1
  39. package/lib/stores/EditorStore.js +14 -2
  40. package/lib/stores/EditorStore.js.map +1 -1
  41. package/lib/stores/EditorTabManagerState.d.ts +3 -10
  42. package/lib/stores/EditorTabManagerState.d.ts.map +1 -1
  43. package/lib/stores/EditorTabManagerState.js +33 -37
  44. package/lib/stores/EditorTabManagerState.js.map +1 -1
  45. package/lib/stores/ExplorerTreeState.d.ts +2 -0
  46. package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
  47. package/lib/stores/ExplorerTreeState.js +53 -0
  48. package/lib/stores/ExplorerTreeState.js.map +1 -1
  49. package/lib/stores/LegendStudioRouter.d.ts +1 -1
  50. package/lib/stores/LegendStudioRouter.d.ts.map +1 -1
  51. package/lib/stores/LegendStudioRouter.js.map +1 -1
  52. package/lib/stores/editor/NewElementState.d.ts +14 -9
  53. package/lib/stores/editor/NewElementState.d.ts.map +1 -1
  54. package/lib/stores/editor/NewElementState.js +38 -19
  55. package/lib/stores/editor/NewElementState.js.map +1 -1
  56. package/lib/stores/editor-state/FileGenerationViewerState.d.ts +1 -0
  57. package/lib/stores/editor-state/FileGenerationViewerState.d.ts.map +1 -1
  58. package/lib/stores/editor-state/FileGenerationViewerState.js +4 -0
  59. package/lib/stores/editor-state/FileGenerationViewerState.js.map +1 -1
  60. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  61. package/lib/stores/editor-state/GraphGenerationState.js +4 -1
  62. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  63. package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts +1 -0
  64. package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts.map +1 -1
  65. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js +4 -0
  66. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
  67. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.d.ts +46 -13
  68. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.d.ts.map +1 -1
  69. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +176 -23
  70. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
  71. package/lib/stores/sidebar-state/LocalChangesState.d.ts +14 -2
  72. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  73. package/lib/stores/sidebar-state/LocalChangesState.js +206 -30
  74. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  75. package/package.json +12 -12
  76. package/src/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.tsx +17 -3
  77. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +14 -0
  78. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_ExternalFormatConnectionEditor.tsx +5 -0
  79. package/src/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.tsx +430 -169
  80. package/src/components/editor/side-bar/CreateNewElementModal.tsx +50 -43
  81. package/src/components/editor/side-bar/Explorer.tsx +1 -0
  82. package/src/components/editor/side-bar/LocalChanges.tsx +16 -6
  83. package/src/stores/ChangeDetectionState.ts +119 -0
  84. package/src/stores/DSL_Mapping_LegendStudioApplicationPlugin_Extension.ts +19 -1
  85. package/src/stores/EditorGraphState.ts +321 -44
  86. package/src/stores/EditorStore.ts +22 -2
  87. package/src/stores/EditorTabManagerState.ts +55 -37
  88. package/src/stores/ExplorerTreeState.ts +118 -0
  89. package/src/stores/LegendStudioRouter.ts +1 -1
  90. package/src/stores/editor/NewElementState.ts +57 -28
  91. package/src/stores/editor-state/FileGenerationViewerState.ts +5 -0
  92. package/src/stores/editor-state/GraphGenerationState.ts +9 -0
  93. package/src/stores/editor-state/element-editor-state/ElementEditorState.ts +5 -0
  94. package/src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts +259 -34
  95. package/src/stores/sidebar-state/LocalChangesState.ts +338 -62
@@ -14,38 +14,95 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { flow, observable, makeObservable, flowResult, action } from 'mobx';
17
- import { ActionState, assertErrorThrown, LogEvent, } from '@finos/legend-shared';
18
- import { buildConflictsPaths, buildDependencyReport, ProjectDependencyCoordinates, RawProjectDependencyReport, } from '@finos/legend-server-depot';
17
+ import { ActionState, assertErrorThrown, LogEvent, isNonNullable, uuid, } from '@finos/legend-shared';
18
+ import { ProjectDependencyCoordinates, buildConflictsPaths, buildDependencyReport, RawProjectDependencyReport, } from '@finos/legend-server-depot';
19
19
  import { LEGEND_STUDIO_APP_EVENT } from '../../LegendStudioAppEvent.js';
20
- export class DependencyTreeNodeData {
21
- value;
20
+ export class ProjectDependencyConflictTreeNodeData {
22
21
  id;
23
22
  label;
24
23
  childrenIds;
25
- constructor(id, value) {
24
+ isSelected;
25
+ isOpen;
26
+ constructor(id) {
26
27
  this.id = id;
28
+ this.label = id;
29
+ }
30
+ }
31
+ export class ConflictTreeNodeData extends ProjectDependencyConflictTreeNodeData {
32
+ conflict;
33
+ constructor(conflict) {
34
+ super(`${conflict.groupId}:${conflict.artifactId}`);
35
+ this.conflict = conflict;
36
+ }
37
+ get description() {
38
+ return this.id;
39
+ }
40
+ }
41
+ export class ConflictVersionNodeData extends ProjectDependencyConflictTreeNodeData {
42
+ versionConflict;
43
+ constructor(conflict) {
44
+ super(`${conflict.version.groupId}:${conflict.version.artifactId}.${conflict.version.versionId}`);
45
+ this.versionConflict = conflict;
46
+ this.label = this.versionConflict.version.versionId;
47
+ }
48
+ get description() {
49
+ return this.id;
50
+ }
51
+ }
52
+ export class ProjectDependencyTreeNodeData extends ProjectDependencyConflictTreeNodeData {
53
+ value;
54
+ constructor(id, value) {
55
+ super(id);
27
56
  this.value = value;
28
- this.label = value.id;
57
+ this.label = value.artifactId;
58
+ }
59
+ get description() {
60
+ return `${this.value.groupId}:${this.value.artifactId}:${this.value.versionId}`;
29
61
  }
30
- isSelected;
31
- isOpen;
32
62
  }
33
63
  export const buildDependencyNodeChildren = (parentNode, treeNodes) => {
34
64
  if (!parentNode.childrenIds) {
35
65
  const value = parentNode.value;
36
66
  const childrenNodes = value.dependencies.map((projectVersion) => {
37
67
  const childId = `${parentNode.id}.${projectVersion.id}`;
38
- const childNode = new DependencyTreeNodeData(childId, projectVersion);
68
+ const childNode = new ProjectDependencyTreeNodeData(childId, projectVersion);
39
69
  treeNodes.set(childId, childNode);
40
70
  return childNode;
41
71
  });
42
72
  parentNode.childrenIds = childrenNodes.map((c) => c.id);
43
73
  }
44
74
  };
75
+ const findRootNode = (versionNode, treeData) => {
76
+ if (!treeData.rootIds.includes(versionNode.id)) {
77
+ return undefined;
78
+ }
79
+ return Array.from(treeData.nodes.values()).find((node) => node.id === versionNode.id && node.value === versionNode);
80
+ };
81
+ const walkNode = (node, visited, treeData) => {
82
+ if (!visited.has(node.value)) {
83
+ node.isOpen = true;
84
+ buildDependencyNodeChildren(node, treeData.nodes);
85
+ visited.add(node.value);
86
+ node.childrenIds
87
+ ?.map((nodeId) => treeData.nodes.get(nodeId))
88
+ .filter(isNonNullable)
89
+ .forEach((n) => walkNode(n, visited, treeData));
90
+ }
91
+ else {
92
+ buildDependencyNodeChildren(node, treeData.nodes);
93
+ }
94
+ };
95
+ export const openAllDependencyNodesInTree = (treeData, graph) => {
96
+ const visited = new Set();
97
+ graph.rootNodes
98
+ .map((node) => findRootNode(node, treeData))
99
+ .filter(isNonNullable)
100
+ .forEach((node) => walkNode(node, visited, treeData));
101
+ };
45
102
  const buildDependencyTreeData = (report) => {
46
103
  const nodes = new Map();
47
104
  const rootNodes = report.graph.rootNodes.map((versionNode) => {
48
- const node = new DependencyTreeNodeData(versionNode.id, versionNode);
105
+ const node = new ProjectDependencyTreeNodeData(versionNode.id, versionNode);
49
106
  nodes.set(node.id, node);
50
107
  buildDependencyNodeChildren(node, nodes);
51
108
  return node;
@@ -58,49 +115,142 @@ const buildFlattenDependencyTreeData = (report) => {
58
115
  const rootIds = [];
59
116
  Array.from(report.graph.nodes.entries()).forEach(([key, value]) => {
60
117
  const id = value.id;
61
- const node = new DependencyTreeNodeData(id, value);
118
+ const node = new ProjectDependencyTreeNodeData(id, value);
62
119
  nodes.set(id, node);
63
120
  rootIds.push(id);
64
121
  buildDependencyNodeChildren(node, nodes);
65
122
  });
66
123
  return { rootIds, nodes };
67
124
  };
125
+ export var DEPENDENCY_REPORT_TAB;
126
+ (function (DEPENDENCY_REPORT_TAB) {
127
+ DEPENDENCY_REPORT_TAB["EXPLORER"] = "EXPLORER";
128
+ DEPENDENCY_REPORT_TAB["CONFLICTS"] = "CONFLICTS";
129
+ })(DEPENDENCY_REPORT_TAB = DEPENDENCY_REPORT_TAB || (DEPENDENCY_REPORT_TAB = {}));
130
+ const buildTreeDataFromConflictVersion = (conflictVersionNode, nodes) => conflictVersionNode.versionConflict.pathsToVersion
131
+ .map((path, idx) => {
132
+ if (!path.length) {
133
+ return undefined;
134
+ }
135
+ const pathIterator = path.values();
136
+ let rootNode;
137
+ let parentNode;
138
+ let currentVersion;
139
+ while ((currentVersion = pathIterator.next().value)) {
140
+ const id = parentNode
141
+ ? `${parentNode.id}.${currentVersion.id}`
142
+ : `path${idx}_${currentVersion.id}`;
143
+ const node = new ProjectDependencyTreeNodeData(id, currentVersion);
144
+ node.childrenIds = [];
145
+ nodes.set(id, node);
146
+ if (parentNode) {
147
+ parentNode.childrenIds = [node.id];
148
+ }
149
+ else {
150
+ rootNode = node;
151
+ }
152
+ parentNode = node;
153
+ }
154
+ return rootNode;
155
+ })
156
+ .filter(isNonNullable);
157
+ const buildTreeDataFromConflict = (conflict, paths) => {
158
+ const rootNode = new ConflictTreeNodeData(conflict);
159
+ const rootIds = [rootNode.id];
160
+ const nodes = new Map();
161
+ nodes.set(rootNode.id, rootNode);
162
+ const versionConflictNodes = paths.map((versionConflict) => {
163
+ const projectVersionNode = new ConflictVersionNodeData(versionConflict);
164
+ nodes.set(projectVersionNode.id, projectVersionNode);
165
+ const pathNodes = buildTreeDataFromConflictVersion(projectVersionNode, nodes);
166
+ projectVersionNode.childrenIds = pathNodes.map((n) => n.id);
167
+ return projectVersionNode;
168
+ });
169
+ rootNode.childrenIds = versionConflictNodes.map((n) => n.id);
170
+ return { rootIds, nodes };
171
+ };
172
+ export class ProjectDependencyConflictState {
173
+ uuid = uuid();
174
+ report;
175
+ conflict;
176
+ paths;
177
+ treeData;
178
+ constructor(report, conflict, paths) {
179
+ makeObservable(this, {
180
+ treeData: observable.ref,
181
+ });
182
+ this.report = report;
183
+ this.conflict = conflict;
184
+ this.paths = paths;
185
+ this.treeData = buildTreeDataFromConflict(conflict, paths);
186
+ }
187
+ setTreeData(treeData) {
188
+ this.treeData = treeData;
189
+ }
190
+ get versionNodes() {
191
+ return this.paths.map((e) => e.version);
192
+ }
193
+ }
68
194
  export class ProjectDependencyEditorState {
69
195
  configState;
70
196
  editorStore;
71
197
  isReadOnly;
72
- dependencyTreeReportModal = false;
73
- dependencyConflictModal = false;
198
+ reportTab;
74
199
  fetchingDependencyInfoState = ActionState.create();
75
200
  dependencyReport;
76
201
  dependencyTreeData;
77
202
  flattenDependencyTreeData;
203
+ conflictStates = [];
204
+ expandConflictsState = ActionState.create();
78
205
  constructor(configState, editorStore) {
79
206
  makeObservable(this, {
80
207
  dependencyReport: observable,
81
- dependencyTreeReportModal: observable,
82
208
  fetchingDependencyInfoState: observable,
83
- dependencyConflictModal: observable,
84
209
  dependencyTreeData: observable.ref,
85
210
  flattenDependencyTreeData: observable.ref,
86
- setDependencyConflictModal: action,
211
+ conflictStates: observable,
212
+ reportTab: observable,
213
+ expandConflictsState: observable,
214
+ setDependencyReport: action,
215
+ expandAllConflicts: action,
216
+ setFlattenDependencyTreeData: action,
87
217
  clearTrees: action,
88
- setDependencyTreeReportModal: action,
218
+ setTreeData: action,
89
219
  setDependencyTreeData: action,
220
+ setConflictStates: action,
90
221
  fetchDependencyReport: flow,
91
222
  });
92
223
  this.configState = configState;
93
224
  this.editorStore = editorStore;
94
225
  this.isReadOnly = editorStore.isInViewerMode;
95
226
  }
227
+ expandAllConflicts() {
228
+ this.expandConflictsState.inProgress();
229
+ this.conflictStates.forEach((c) => {
230
+ const treeData = c.treeData;
231
+ Array.from(treeData.nodes.values()).forEach((n) => (n.isOpen = true));
232
+ });
233
+ this.conflictStates.forEach((c) => {
234
+ c.setTreeData({ ...c.treeData });
235
+ });
236
+ this.expandConflictsState.complete();
237
+ }
238
+ setTreeData(treeData, flattenView) {
239
+ if (flattenView) {
240
+ this.setFlattenDependencyTreeData(treeData);
241
+ }
242
+ else {
243
+ this.setDependencyTreeData(treeData);
244
+ }
245
+ }
246
+ setDependencyReport(tab) {
247
+ this.reportTab = tab;
248
+ }
96
249
  setDependencyTreeData(tree) {
97
250
  this.dependencyTreeData = tree;
98
251
  }
99
- setDependencyConflictModal(showModal) {
100
- this.dependencyConflictModal = showModal;
101
- }
102
- setDependencyTreeReportModal(showModal) {
103
- this.dependencyTreeReportModal = showModal;
252
+ setConflictStates(val) {
253
+ this.conflictStates = val;
104
254
  }
105
255
  setFlattenDependencyTreeData(tree) {
106
256
  this.flattenDependencyTreeData = tree;
@@ -133,8 +283,11 @@ export class ProjectDependencyEditorState {
133
283
  processReport(report) {
134
284
  this.setDependencyTreeData(buildDependencyTreeData(report));
135
285
  this.setFlattenDependencyTreeData(buildFlattenDependencyTreeData(report));
286
+ this.setConflictStates([]);
136
287
  try {
137
- report.conflictPaths = buildConflictsPaths(report);
288
+ report.conflictInfo = buildConflictsPaths(report);
289
+ const conflictStates = Array.from(report.conflictInfo.entries()).map(([conflict, paths]) => new ProjectDependencyConflictState(report, conflict, paths));
290
+ this.setConflictStates(conflictStates);
138
291
  }
139
292
  catch (error) {
140
293
  assertErrorThrown(error);
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDependencyEditorState.js","sourceRoot":"","sources":["../../../../src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectDependencyEditorState.js","sourceRoot":"","sources":["../../../../src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ declare class PatchLoaderState {
36
36
  loadPatchFile(file: File): GeneratorFn<void>;
37
37
  applyChanges(): GeneratorFn<void>;
38
38
  }
39
- export declare class LocalChangesState {
39
+ export declare abstract class LocalChangesState {
40
40
  readonly editorStore: EditorStore;
41
41
  readonly sdlcState: EditorSDLCState;
42
42
  readonly workspaceSyncState: WorkspaceSyncState;
@@ -48,11 +48,23 @@ export declare class LocalChangesState {
48
48
  get hasUnpushedChanges(): boolean;
49
49
  downloadLocalChanges(): void;
50
50
  alertUnsavedChanges(onProceed: () => void): void;
51
+ refreshWorkspaceSyncStatus(): GeneratorFn<void>;
52
+ abstract refreshLocalChanges(): GeneratorFn<void>;
53
+ abstract pushLocalChanges(pushMessage?: string): GeneratorFn<void>;
54
+ }
55
+ export declare class FormLocalChangesState extends LocalChangesState {
56
+ constructor(editorStore: EditorStore, sdlcState: EditorSDLCState);
51
57
  openLocalChange(diff: EntityDiff): void;
52
58
  openWorkspacePullChange(diff: EntityDiff): void;
53
59
  openPotentialWorkspacePullConflict(conflict: EntityChangeConflict): void;
54
60
  refreshLocalChanges(): GeneratorFn<void>;
55
- refreshWorkspaceSyncStatus(): GeneratorFn<void>;
61
+ pushLocalChanges(pushMessage?: string): GeneratorFn<void>;
62
+ }
63
+ export declare class TextLocalChangesState extends LocalChangesState {
64
+ localChanges: EntityChange[];
65
+ constructor(editorStore: EditorStore, sdlcState: EditorSDLCState);
66
+ setLocalChanges(val: EntityChange[]): void;
67
+ refreshLocalChanges(): GeneratorFn<void>;
56
68
  pushLocalChanges(pushMessage?: string): GeneratorFn<void>;
57
69
  }
58
70
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LocalChangesState.d.ts","sourceRoot":"","sources":["../../../src/stores/sidebar-state/LocalChangesState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,KAAK,WAAW,EAYhB,WAAW,EAEZ,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EACL,KAAK,oBAAoB,EACzB,UAAU,EACV,YAAY,EAEb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,cAAM,gBAAgB;IACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,YAAY,EAAE,CAAM;IACpC,gBAAgB,UAAS;IACzB,SAAS,UAAS;IAClB,YAAY,UAAS;gBAET,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe;IAqBhE,IAAI,iBAAiB,IAAI,YAAY,EAAE,CAStC;IAED,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI;IAK7C,UAAU,IAAI,IAAI;IAMlB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAInC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,IAAI;IAI1D,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAMvC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAyB5C,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC;CAmBnC;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,cAAwB;IACjD,QAAQ,CAAC,gCAAgC,cAAwB;IACjE,QAAQ,CAAC,+BAA+B,cAAwB;IAChE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBAEhC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe;IAehE,IAAI,kBAAkB,IAAI,OAAO,CAKhC;IAED,oBAAoB,IAAI,IAAI;IAgB5B,mBAAmB,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,IAAI;IAwBhD,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IA0DvC,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAgD/C,kCAAkC,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IA+CvE,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC;IA8BxC,0BAA0B,IAAI,WAAW,CAAC,IAAI,CAAC;IA4D/C,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;CA0O3D"}
1
+ {"version":3,"file":"LocalChangesState.d.ts","sourceRoot":"","sources":["../../../src/stores/sidebar-state/LocalChangesState.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,6 @@ export class LocalChangesState {
119
119
  constructor(editorStore, sdlcState) {
120
120
  makeObservable(this, {
121
121
  hasUnpushedChanges: computed,
122
- openPotentialWorkspacePullConflict: action,
123
122
  refreshWorkspaceSyncStatus: flow,
124
123
  refreshLocalChanges: flow,
125
124
  pushLocalChanges: flow,
@@ -165,6 +164,43 @@ export class LocalChangesState {
165
164
  onProceed();
166
165
  }
167
166
  }
167
+ *refreshWorkspaceSyncStatus() {
168
+ try {
169
+ this.refreshWorkspaceSyncStatusState.inProgress();
170
+ const currentRemoteRevision = this.sdlcState.activeRemoteWorkspaceRevision;
171
+ yield flowResult(this.sdlcState.fetchRemoteWorkspaceRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace));
172
+ if (currentRemoteRevision.id !==
173
+ this.sdlcState.activeRemoteWorkspaceRevision.id) {
174
+ if (this.sdlcState.isWorkspaceOutOfSync) {
175
+ this.editorStore.localChangesState.workspaceSyncState.fetchIncomingRevisions();
176
+ const remoteWorkspaceEntities = (yield this.editorStore.sdlcServerClient.getEntitiesByRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, this.sdlcState.activeRemoteWorkspaceRevision.id));
177
+ this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.setEntities(remoteWorkspaceEntities);
178
+ yield flowResult(this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.buildEntityHashesIndex(remoteWorkspaceEntities, LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_LOCAL_HASHES_INDEX_BUILT)));
179
+ yield flowResult(this.editorStore.changeDetectionState.computeAggregatedWorkspaceRemoteChanges());
180
+ }
181
+ else {
182
+ this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.setEntities([]);
183
+ this.editorStore.changeDetectionState.setPotentialWorkspacePullConflicts([]);
184
+ this.editorStore.changeDetectionState.setAggregatedWorkspaceRemoteChanges([]);
185
+ }
186
+ }
187
+ }
188
+ catch (error) {
189
+ assertErrorThrown(error);
190
+ this.editorStore.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
191
+ }
192
+ finally {
193
+ this.refreshWorkspaceSyncStatusState.complete();
194
+ }
195
+ }
196
+ }
197
+ export class FormLocalChangesState extends LocalChangesState {
198
+ constructor(editorStore, sdlcState) {
199
+ super(editorStore, sdlcState);
200
+ makeObservable(this, {
201
+ openPotentialWorkspacePullConflict: action,
202
+ });
203
+ }
168
204
  openLocalChange(diff) {
169
205
  const fromEntityGetter = (entityPath) => {
170
206
  if (entityPath) {
@@ -254,35 +290,6 @@ export class LocalChangesState {
254
290
  this.refreshLocalChangesDetectorState.complete();
255
291
  }
256
292
  }
257
- *refreshWorkspaceSyncStatus() {
258
- try {
259
- this.refreshWorkspaceSyncStatusState.inProgress();
260
- const currentRemoteRevision = this.sdlcState.activeRemoteWorkspaceRevision;
261
- yield flowResult(this.sdlcState.fetchRemoteWorkspaceRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace));
262
- if (currentRemoteRevision.id !==
263
- this.sdlcState.activeRemoteWorkspaceRevision.id) {
264
- if (this.sdlcState.isWorkspaceOutOfSync) {
265
- this.editorStore.localChangesState.workspaceSyncState.fetchIncomingRevisions();
266
- const remoteWorkspaceEntities = (yield this.editorStore.sdlcServerClient.getEntitiesByRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, this.sdlcState.activeRemoteWorkspaceRevision.id));
267
- this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.setEntities(remoteWorkspaceEntities);
268
- yield flowResult(this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.buildEntityHashesIndex(remoteWorkspaceEntities, LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_LOCAL_HASHES_INDEX_BUILT)));
269
- yield flowResult(this.editorStore.changeDetectionState.computeAggregatedWorkspaceRemoteChanges());
270
- }
271
- else {
272
- this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.setEntities([]);
273
- this.editorStore.changeDetectionState.setPotentialWorkspacePullConflicts([]);
274
- this.editorStore.changeDetectionState.setAggregatedWorkspaceRemoteChanges([]);
275
- }
276
- }
277
- }
278
- catch (error) {
279
- assertErrorThrown(error);
280
- this.editorStore.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
281
- }
282
- finally {
283
- this.refreshWorkspaceSyncStatusState.complete();
284
- }
285
- }
286
293
  *pushLocalChanges(pushMessage) {
287
294
  if (this.pushChangesState.isInProgress ||
288
295
  this.editorStore.workspaceUpdaterState.isUpdatingWorkspace) {
@@ -435,4 +442,173 @@ export class LocalChangesState {
435
442
  }
436
443
  }
437
444
  }
445
+ export class TextLocalChangesState extends LocalChangesState {
446
+ localChanges = [];
447
+ constructor(editorStore, sdlcState) {
448
+ super(editorStore, sdlcState);
449
+ makeObservable(this, {
450
+ setLocalChanges: action,
451
+ });
452
+ }
453
+ setLocalChanges(val) {
454
+ this.localChanges = val;
455
+ }
456
+ *refreshLocalChanges() {
457
+ const startTime = Date.now();
458
+ this.refreshLocalChangesDetectorState.inProgress();
459
+ try {
460
+ // ======= (RE)START CHANGE DETECTION =======
461
+ yield Promise.all([
462
+ this.sdlcState.buildWorkspaceLatestRevisionEntityHashesIndex(),
463
+ this.editorStore.changeDetectionState.preComputeGraphElementHashes(),
464
+ ]);
465
+ this.editorStore.changeDetectionState.computeLocalChangesInTextMode(this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState
466
+ .entities);
467
+ this.editorStore.applicationStore.log.info(LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_RESTARTED), Date.now() - startTime, 'ms');
468
+ // ======= FINISHED (RE)START CHANGE DETECTION =======
469
+ }
470
+ catch (error) {
471
+ assertErrorThrown(error);
472
+ this.editorStore.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
473
+ this.editorStore.applicationStore.notifyError(error);
474
+ this.sdlcState.handleChangeDetectionRefreshIssue(error);
475
+ }
476
+ finally {
477
+ this.refreshLocalChangesDetectorState.complete();
478
+ }
479
+ }
480
+ *pushLocalChanges(pushMessage) {
481
+ if (this.pushChangesState.isInProgress ||
482
+ this.editorStore.workspaceUpdaterState.isUpdatingWorkspace) {
483
+ return;
484
+ }
485
+ this.pushChangesState.inProgress();
486
+ const startTime = Date.now();
487
+ if (!this.localChanges.length) {
488
+ this.pushChangesState.complete();
489
+ return;
490
+ }
491
+ yield flowResult(this.sdlcState.fetchRemoteWorkspaceRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace));
492
+ if (this.sdlcState.isWorkspaceOutOfSync) {
493
+ // ensure changes have been computed for latest remote version
494
+ const remoteWorkspaceEntities = (yield this.editorStore.sdlcServerClient.getEntitiesByRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, this.sdlcState.activeRemoteWorkspaceRevision.id));
495
+ this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.setEntities(remoteWorkspaceEntities);
496
+ yield flowResult(this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.buildEntityHashesIndex(remoteWorkspaceEntities, LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_LOCAL_HASHES_INDEX_BUILT)));
497
+ yield flowResult(this.editorStore.changeDetectionState.computeAggregatedWorkspaceRemoteChanges());
498
+ this.editorStore.applicationStore.setActionAlertInfo({
499
+ message: 'Local workspace is out-of-sync',
500
+ prompt: 'Please pull remote changes before pushing your local changes',
501
+ type: ActionAlertType.CAUTION,
502
+ actions: [
503
+ {
504
+ label: 'Pull remote changes',
505
+ type: ActionAlertActionType.STANDARD,
506
+ default: true,
507
+ handler: () => {
508
+ this.editorStore.setActiveActivity(ACTIVITY_MODE.LOCAL_CHANGES);
509
+ flowResult(this.editorStore.localChangesState.workspaceSyncState.pullChanges()).catch(this.editorStore.applicationStore.alertUnhandledError);
510
+ },
511
+ },
512
+ {
513
+ label: 'Cancel',
514
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
515
+ },
516
+ ],
517
+ });
518
+ this.pushChangesState.complete();
519
+ return;
520
+ }
521
+ const currentHashesIndex = this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState
522
+ .currentEntityHashesIndex;
523
+ try {
524
+ const nullableRevisionChange = (yield this.editorStore.sdlcServerClient.performEntityChanges(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, {
525
+ message: pushMessage ??
526
+ `pushed new changes from ${this.editorStore.applicationStore.config.appName} [potentially affected ${this.localChanges.length === 1
527
+ ? '1 entity'
528
+ : `${this.localChanges.length} entities`}]`,
529
+ entityChanges: this.localChanges,
530
+ revisionId: this.sdlcState.activeRevision.id,
531
+ }));
532
+ const revisionChange = guaranteeNonNullable(nullableRevisionChange, `Can't push an empty change set. This may be due to an error with change detection`);
533
+ const latestRevision = Revision.serialization.fromJson(revisionChange);
534
+ this.sdlcState.setCurrentRevision(latestRevision); // update current revision to the latest
535
+ this.sdlcState.setWorkspaceLatestRevision(latestRevision);
536
+ const syncFinishedTime = Date.now();
537
+ this.editorStore.applicationStore.log.info(LogEvent.create(LEGEND_STUDIO_APP_EVENT.WORKSPACE_LOCAL_CHANGES_PUSHED), syncFinishedTime - startTime, 'ms');
538
+ this.localChanges = [];
539
+ // ======= (RE)START CHANGE DETECTION =======
540
+ try {
541
+ /**
542
+ * Here we try to rebuild local hash index. If failed, we will use local hash index, but for veracity, it's best to use entities
543
+ * coming from the server.
544
+ */
545
+ const entities = (yield this.editorStore.sdlcServerClient.getEntitiesByRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, latestRevision.id));
546
+ this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.setEntities(entities);
547
+ yield flowResult(this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.buildEntityHashesIndex(entities, LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_LOCAL_HASHES_INDEX_BUILT)));
548
+ this.editorStore.tabManagerState.refreshCurrentEntityDiffViewer();
549
+ }
550
+ catch (error) {
551
+ assertErrorThrown(error);
552
+ /**
553
+ * NOTE: there is a known problem with the SDLC server where if we try to fetch the entities right after syncing, there is a chance
554
+ * that we get entities from the older commit (i.e. potentially some caching issue). As such, to account for this case, we will
555
+ * not try to get entities for the workspace HEAD, but for the revision returned from the syncing call (i.e. this must be the latest revision)
556
+ * if we get a 404, we will do a refresh and warn user about this. Otherwise, if we get other types of error, we will assume this is a network
557
+ * failure and use local workspace hashes index
558
+ */
559
+ if (error instanceof NetworkClientError) {
560
+ if (error.response.status === HttpStatus.NOT_FOUND) {
561
+ this.editorStore.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), `Can't fetch entities for the latest workspace revision immediately after syncing`, error);
562
+ }
563
+ this.editorStore.applicationStore.setActionAlertInfo({
564
+ message: `Change detection engine failed to build hashes index for workspace after syncing`,
565
+ prompt: 'To fix this, you can either try to keep refreshing local changes until success or trust and reuse current workspace hashes index',
566
+ type: ActionAlertType.CAUTION,
567
+ actions: [
568
+ {
569
+ label: 'Use local hashes index',
570
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
571
+ handler: () => {
572
+ this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.setEntityHashesIndex(currentHashesIndex);
573
+ this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.setIsBuildingEntityHashesIndex(false);
574
+ },
575
+ },
576
+ {
577
+ label: 'Refresh changes',
578
+ type: ActionAlertActionType.STANDARD,
579
+ default: true,
580
+ handler: this.editorStore.applicationStore.guardUnhandledError(() => flowResult(this.refreshLocalChanges())),
581
+ },
582
+ ],
583
+ });
584
+ }
585
+ else {
586
+ throw error;
587
+ }
588
+ }
589
+ // compute the changes in text mode
590
+ this.editorStore.changeDetectionState.computeLocalChangesInTextMode(this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState
591
+ .entities);
592
+ this.editorStore.applicationStore.log.info(LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_RESTARTED), Date.now() - syncFinishedTime, 'ms');
593
+ // ======= FINISHED (RE)START CHANGE DETECTION =======
594
+ }
595
+ catch (error) {
596
+ assertErrorThrown(error);
597
+ this.editorStore.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
598
+ if (error instanceof NetworkClientError &&
599
+ error.response.status === HttpStatus.CONFLICT) {
600
+ // NOTE: a confict here indicates that the reference revision ID sent along with update call
601
+ // does not match the HEAD of the workspace, therefore, we need to prompt user to refresh the application
602
+ this.editorStore.applicationStore.notifyWarning('Syncing failed. Current workspace revision is not the latest. Please backup your work and refresh the application');
603
+ // TODO: maybe we should do more here, e.g. prompt the user to download the patch, but that is for later
604
+ }
605
+ else {
606
+ this.editorStore.applicationStore.notifyError(error);
607
+ }
608
+ }
609
+ finally {
610
+ this.pushChangesState.complete();
611
+ }
612
+ }
613
+ }
438
614
  //# sourceMappingURL=LocalChangesState.js.map