@salesforce/plugin-omnistudio-migration-tool 2.0.0-rc.4 → 2.0.0-rc.41

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 (163) hide show
  1. package/README.md +28 -40
  2. package/lib/commands/omnistudio/migration/assess.d.ts +1 -1
  3. package/lib/commands/omnistudio/migration/assess.js +107 -37
  4. package/lib/commands/omnistudio/migration/assess.js.map +1 -1
  5. package/lib/commands/omnistudio/migration/info.js +1 -1
  6. package/lib/commands/omnistudio/migration/info.js.map +1 -1
  7. package/lib/commands/omnistudio/migration/migrate.d.ts +35 -5
  8. package/lib/commands/omnistudio/migration/migrate.js +262 -107
  9. package/lib/commands/omnistudio/migration/migrate.js.map +1 -1
  10. package/lib/javascripts/reportGeneratorUtility.js +100 -19
  11. package/lib/migration/NameMappingRegistry.d.ts +130 -0
  12. package/lib/migration/NameMappingRegistry.js +376 -0
  13. package/lib/migration/NameMappingRegistry.js.map +1 -0
  14. package/lib/migration/base.d.ts +4 -2
  15. package/lib/migration/base.js +8 -1
  16. package/lib/migration/base.js.map +1 -1
  17. package/lib/migration/customLabels.d.ts +49 -0
  18. package/lib/migration/customLabels.js +190 -0
  19. package/lib/migration/customLabels.js.map +1 -0
  20. package/lib/migration/dataraptor.js +63 -14
  21. package/lib/migration/dataraptor.js.map +1 -1
  22. package/lib/migration/deployer.d.ts +11 -0
  23. package/lib/migration/deployer.js +59 -0
  24. package/lib/migration/deployer.js.map +1 -0
  25. package/lib/migration/flexcard.d.ts +44 -2
  26. package/lib/migration/flexcard.js +707 -110
  27. package/lib/migration/flexcard.js.map +1 -1
  28. package/lib/migration/globalautonumber.d.ts +6 -6
  29. package/lib/migration/globalautonumber.js +27 -34
  30. package/lib/migration/globalautonumber.js.map +1 -1
  31. package/lib/migration/interfaces.d.ts +5 -0
  32. package/lib/migration/interfaces.js +7 -0
  33. package/lib/migration/interfaces.js.map +1 -1
  34. package/lib/migration/omniscript.d.ts +42 -2
  35. package/lib/migration/omniscript.js +724 -100
  36. package/lib/migration/omniscript.js.map +1 -1
  37. package/lib/migration/postMigrate.d.ts +22 -3
  38. package/lib/migration/postMigrate.js +147 -12
  39. package/lib/migration/postMigrate.js.map +1 -1
  40. package/lib/migration/premigrate.d.ts +16 -0
  41. package/lib/migration/premigrate.js +122 -0
  42. package/lib/migration/premigrate.js.map +1 -0
  43. package/lib/migration/related/ApexMigration.d.ts +1 -0
  44. package/lib/migration/related/ApexMigration.js +143 -22
  45. package/lib/migration/related/ApexMigration.js.map +1 -1
  46. package/lib/migration/related/ExperienceSiteMigration.d.ts +12 -4
  47. package/lib/migration/related/ExperienceSiteMigration.js +127 -59
  48. package/lib/migration/related/ExperienceSiteMigration.js.map +1 -1
  49. package/lib/migration/related/FlexipageMigration.d.ts +4 -4
  50. package/lib/migration/related/FlexipageMigration.js +31 -30
  51. package/lib/migration/related/FlexipageMigration.js.map +1 -1
  52. package/lib/migration/related/LwcMigration.js +27 -16
  53. package/lib/migration/related/LwcMigration.js.map +1 -1
  54. package/lib/migration/related/OmnistudioRelatedObjectMigrationFacade.js +30 -24
  55. package/lib/migration/related/OmnistudioRelatedObjectMigrationFacade.js.map +1 -1
  56. package/lib/styles/reportGenerator.css +9 -5
  57. package/lib/templates/assessmentReport.template +67 -6
  58. package/lib/templates/migrationReport.template +146 -4
  59. package/lib/utils/OmnistudioSettingsPrefManager.d.ts +12 -0
  60. package/lib/utils/OmnistudioSettingsPrefManager.js +82 -0
  61. package/lib/utils/OmnistudioSettingsPrefManager.js.map +1 -0
  62. package/lib/utils/XMLUtil.js +2 -1
  63. package/lib/utils/XMLUtil.js.map +1 -1
  64. package/lib/utils/apex/parser/apexparser.d.ts +8 -1
  65. package/lib/utils/apex/parser/apexparser.js +63 -10
  66. package/lib/utils/apex/parser/apexparser.js.map +1 -1
  67. package/lib/utils/constants/documentRegistry.d.ts +2 -1
  68. package/lib/utils/constants/documentRegistry.js +4 -3
  69. package/lib/utils/constants/documentRegistry.js.map +1 -1
  70. package/lib/utils/constants/stringContants.d.ts +7 -0
  71. package/lib/utils/constants/stringContants.js +10 -2
  72. package/lib/utils/constants/stringContants.js.map +1 -1
  73. package/lib/utils/customLabels.d.ts +34 -0
  74. package/lib/utils/customLabels.js +97 -0
  75. package/lib/utils/customLabels.js.map +1 -0
  76. package/lib/utils/file/fileUtil.d.ts +3 -1
  77. package/lib/utils/file/fileUtil.js +11 -4
  78. package/lib/utils/file/fileUtil.js.map +1 -1
  79. package/lib/utils/flexipage/flexiPageTransformer.js +14 -10
  80. package/lib/utils/flexipage/flexiPageTransformer.js.map +1 -1
  81. package/lib/utils/generatePackageXml.d.ts +4 -2
  82. package/lib/utils/generatePackageXml.js +17 -23
  83. package/lib/utils/generatePackageXml.js.map +1 -1
  84. package/lib/utils/interfaces.d.ts +36 -3
  85. package/lib/utils/logger.js +3 -1
  86. package/lib/utils/logger.js.map +1 -1
  87. package/lib/utils/lwcparser/fileutils/FileDiffUtil.js +20 -21
  88. package/lib/utils/lwcparser/fileutils/FileDiffUtil.js.map +1 -1
  89. package/lib/utils/lwcparser/xmlParser/XmlParser.js +2 -1
  90. package/lib/utils/lwcparser/xmlParser/XmlParser.js.map +1 -1
  91. package/lib/utils/orgPreferences.d.ts +1 -0
  92. package/lib/utils/orgPreferences.js +11 -8
  93. package/lib/utils/orgPreferences.js.map +1 -1
  94. package/lib/utils/orgUtils/index.d.ts +1 -1
  95. package/lib/utils/orgUtils/index.js +14 -14
  96. package/lib/utils/orgUtils/index.js.map +1 -1
  97. package/lib/utils/promptUtil.d.ts +2 -0
  98. package/lib/utils/promptUtil.js +26 -1
  99. package/lib/utils/promptUtil.js.map +1 -1
  100. package/lib/utils/reportGenerator/reportInterfaces.d.ts +9 -0
  101. package/lib/utils/reportGenerator/reportUtil.d.ts +1 -1
  102. package/lib/utils/reportGenerator/reportUtil.js +6 -3
  103. package/lib/utils/reportGenerator/reportUtil.js.map +1 -1
  104. package/lib/utils/resultsbuilder/ApexAssessmentReporter.d.ts +2 -0
  105. package/lib/utils/resultsbuilder/ApexAssessmentReporter.js +51 -15
  106. package/lib/utils/resultsbuilder/ApexAssessmentReporter.js.map +1 -1
  107. package/lib/utils/resultsbuilder/CustomLabelAssessmentReporter.d.ts +13 -0
  108. package/lib/utils/resultsbuilder/CustomLabelAssessmentReporter.js +178 -0
  109. package/lib/utils/resultsbuilder/CustomLabelAssessmentReporter.js.map +1 -0
  110. package/lib/utils/resultsbuilder/CustomLabelMigrationReporter.d.ts +19 -0
  111. package/lib/utils/resultsbuilder/CustomLabelMigrationReporter.js +239 -0
  112. package/lib/utils/resultsbuilder/CustomLabelMigrationReporter.js.map +1 -0
  113. package/lib/utils/resultsbuilder/DRAssessmentReporter.js +43 -11
  114. package/lib/utils/resultsbuilder/DRAssessmentReporter.js.map +1 -1
  115. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.d.ts +13 -0
  116. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.js +111 -0
  117. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.js.map +1 -0
  118. package/lib/utils/resultsbuilder/FlexcardAssessmentReporter.js +51 -12
  119. package/lib/utils/resultsbuilder/FlexcardAssessmentReporter.js.map +1 -1
  120. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.d.ts +1 -0
  121. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.js +40 -18
  122. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.js.map +1 -1
  123. package/lib/utils/resultsbuilder/GlobalAutoNumberAssessmentReporter.js +21 -14
  124. package/lib/utils/resultsbuilder/GlobalAutoNumberAssessmentReporter.js.map +1 -1
  125. package/lib/utils/resultsbuilder/IPAssessmentReporter.js +47 -12
  126. package/lib/utils/resultsbuilder/IPAssessmentReporter.js.map +1 -1
  127. package/lib/utils/resultsbuilder/LWCAssessmentReporter.d.ts +14 -0
  128. package/lib/utils/resultsbuilder/LWCAssessmentReporter.js +143 -139
  129. package/lib/utils/resultsbuilder/LWCAssessmentReporter.js.map +1 -1
  130. package/lib/utils/resultsbuilder/OSAssessmentReporter.js +31 -18
  131. package/lib/utils/resultsbuilder/OSAssessmentReporter.js.map +1 -1
  132. package/lib/utils/resultsbuilder/assessmentReporter.d.ts +6 -1
  133. package/lib/utils/resultsbuilder/assessmentReporter.js +163 -66
  134. package/lib/utils/resultsbuilder/assessmentReporter.js.map +1 -1
  135. package/lib/utils/resultsbuilder/index.d.ts +12 -1
  136. package/lib/utils/resultsbuilder/index.js +343 -84
  137. package/lib/utils/resultsbuilder/index.js.map +1 -1
  138. package/lib/utils/resultsbuilder/reportingHelper.d.ts +2 -7
  139. package/lib/utils/resultsbuilder/reportingHelper.js +0 -43
  140. package/lib/utils/resultsbuilder/reportingHelper.js.map +1 -1
  141. package/lib/utils/sfcli/project/sfProject.d.ts +4 -0
  142. package/lib/utils/sfcli/project/sfProject.js +56 -1
  143. package/lib/utils/sfcli/project/sfProject.js.map +1 -1
  144. package/lib/utils/shell/cli.js +3 -7
  145. package/lib/utils/shell/cli.js.map +1 -1
  146. package/lib/utils/storageUtil.d.ts +1 -0
  147. package/lib/utils/storageUtil.js +3 -0
  148. package/lib/utils/storageUtil.js.map +1 -1
  149. package/lib/utils/stringUtils.d.ts +9 -0
  150. package/lib/utils/stringUtils.js +38 -7
  151. package/lib/utils/stringUtils.js.map +1 -1
  152. package/lib/utils/templateParser/model/elementNode.js +11 -2
  153. package/lib/utils/templateParser/model/elementNode.js.map +1 -1
  154. package/lib/utils/validatorService.d.ts +13 -0
  155. package/lib/utils/validatorService.js +69 -0
  156. package/lib/utils/validatorService.js.map +1 -0
  157. package/messages/assess.json +125 -55
  158. package/messages/migrate.json +172 -53
  159. package/oclif.manifest.json +1 -1
  160. package/package.json +40 -7
  161. package/lib/utils/OmniGlobalAutoNumberPrefManager.d.ts +0 -40
  162. package/lib/utils/OmniGlobalAutoNumberPrefManager.js +0 -65
  163. package/lib/utils/OmniGlobalAutoNumberPrefManager.js.map +0 -1
@@ -33,164 +33,231 @@ const logger_1 = require("../../utils/logger");
33
33
  const stringContants_1 = require("../../utils/constants/stringContants");
34
34
  const FileDiffUtil_1 = require("../../utils/lwcparser/fileutils/FileDiffUtil");
35
35
  const storageUtil_1 = require("../../utils/storageUtil");
36
+ const base_1 = require("../base");
36
37
  const BaseRealtedObjectMigration_1 = require("./BaseRealtedObjectMigration");
37
38
  core_1.Messages.importMessagesDirectory(__dirname);
38
- const TARGET_COMPONENT_NAME_OS = 'runtime_omnistudio_omniscript';
39
- const TARGET_COMPONENT_NAME_FC = 'runtime_omnisctudio_flexcard';
39
+ const TARGET_COMPONENT_NAME_OS = 'runtime_omnistudio:omniscript';
40
+ const TARGET_COMPONENT_NAME_FC = 'runtime_omnistudio:flexcard';
40
41
  const FLEXCARD_PREFIX = 'cf';
41
42
  class ExperienceSiteMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectMigration {
42
- constructor(projectPath, namespace, org) {
43
+ constructor(projectPath, namespace, org, messages) {
43
44
  super(projectPath, namespace, org);
45
+ this.MIGRATE = 'Migrate';
46
+ this.ASSESS = 'Assess';
47
+ this.messages = messages;
44
48
  }
45
49
  processObjectType() {
46
50
  return stringContants_1.Constants.ExpSites;
47
51
  }
52
+ assess() {
53
+ return this.process(this.ASSESS);
54
+ }
48
55
  migrate() {
49
- logger_1.Logger.logVerbose('Starting experience sites migration');
56
+ return this.process(this.MIGRATE);
57
+ }
58
+ process(type) {
59
+ logger_1.Logger.logVerbose(this.messages.getMessage('processingExperienceSites', [type]));
50
60
  const pwd = shell.pwd();
51
61
  shell.cd(this.projectPath);
52
62
  this.EXPERIENCE_SITES_PATH = path.join(this.projectPath, 'force-app', 'main', 'default', 'experiences');
53
- logger_1.Logger.logVerbose('Started processing the experience sites');
54
- const experienceSiteInfo = this.processExperienceSites(this.EXPERIENCE_SITES_PATH, 'migration');
55
- logger_1.Logger.info('Successfully processed experience sites for migration');
63
+ logger_1.Logger.logVerbose(this.messages.getMessage('experienceSitesProcessingStarted'));
64
+ const experienceSiteInfo = this.processExperienceSites(this.EXPERIENCE_SITES_PATH, type);
65
+ logger_1.Logger.info(this.messages.getMessage('experienceSiteSuccessfullyProcessed', [type]));
56
66
  shell.cd(pwd);
57
67
  return experienceSiteInfo;
58
68
  }
59
- processExperienceSites(dir, type = 'migration') {
60
- logger_1.Logger.logVerbose('Started reading the files');
61
- const directoryMap = fileUtil_1.FileUtil.getAllFilesInsideDirectory(dir);
69
+ processExperienceSites(dir, type) {
70
+ logger_1.Logger.logVerbose(this.messages.getMessage('readingFile'));
71
+ const count = { total: 0 };
72
+ const directoryMap = fileUtil_1.FileUtil.getAllFilesInsideDirectory(dir, count, '.json');
73
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
74
+ logger_1.Logger.logVerbose(this.messages.getMessage('totalFileCount', [count.total]));
62
75
  // TODO - IF directory is empty
76
+ let progressCounter = 0;
77
+ const progressBar = (0, base_1.createProgressBar)(type, 'ExperienceSites');
78
+ progressBar.start(count.total, progressCounter);
63
79
  const experienceSitesAssessmentInfo = [];
80
+ logger_1.Logger.logVerbose('The namespace for expsites processing is ' + this.namespace);
64
81
  for (const directory of directoryMap.keys()) {
65
82
  const fileArray = directoryMap.get(directory);
83
+ if (!fileArray) {
84
+ continue;
85
+ }
66
86
  for (const file of fileArray) {
87
+ progressBar.update(++progressCounter);
67
88
  if (file.ext !== '.json') {
68
- logger_1.Logger.logVerbose('Skipping non-JSON file - ' + file.name);
89
+ logger_1.Logger.logVerbose(this.messages.getMessage('skipNonJsonFile ', [file.name]));
69
90
  continue;
70
91
  }
71
92
  try {
72
93
  const experienceSiteInfo = this.processExperienceSite(file, type);
73
94
  if ((experienceSiteInfo === null || experienceSiteInfo === void 0 ? void 0 : experienceSiteInfo.hasOmnistudioContent) === true) {
74
- logger_1.Logger.logVerbose('Successfully processed experience site file having vlocity wrapper');
95
+ logger_1.Logger.logVerbose(this.messages.getMessage('experienceSiteWithOmniWrapperSuccessfullyProcessed'));
75
96
  experienceSitesAssessmentInfo.push(experienceSiteInfo);
76
97
  }
77
98
  else {
78
- logger_1.Logger.logVerbose('File does not contain omnistudio wrapper');
99
+ logger_1.Logger.logVerbose(this.messages.getMessage('fileNotHavingWrapper'));
79
100
  }
80
101
  }
81
102
  catch (err) {
82
- logger_1.Logger.error('Error processing experience site file' + file.name);
103
+ this.populateExceptionInfo(file, experienceSitesAssessmentInfo);
104
+ logger_1.Logger.error(this.messages.getMessage('errorProcessingExperienceSite', [file.name]));
83
105
  logger_1.Logger.error(JSON.stringify(err));
84
106
  }
85
107
  }
86
108
  }
109
+ logger_1.Logger.logVerbose(this.messages.getMessage('experienceSiteReportingDetails'));
110
+ progressBar.stop();
87
111
  return experienceSitesAssessmentInfo;
88
112
  }
89
- processExperienceSite(file, type = 'migration') {
90
- logger_1.Logger.logVerbose('Processing for file ' + file.name);
113
+ processExperienceSite(file, type) {
114
+ logger_1.Logger.logVerbose(this.messages.getMessage('processingFile', [file.name]));
91
115
  const experienceSiteAssessmentInfo = {
92
116
  name: file.name,
93
117
  warnings: [],
118
+ errors: [],
94
119
  infos: [],
95
120
  path: file.location,
96
121
  diff: JSON.stringify([]),
97
122
  hasOmnistudioContent: false,
123
+ status: type === this.ASSESS ? 'Ready for migration' : 'Successfully migrated',
98
124
  };
99
125
  const lookupComponentName = `${this.namespace}:vlocityLWCOmniWrapper`;
100
126
  const fileContent = fs.readFileSync(file.location, 'utf8');
101
127
  // TODO - undefined check here
102
128
  const experienceSiteParsedJSON = JSON.parse(fileContent);
103
129
  const normalizedOriginalFileContent = JSON.stringify(experienceSiteParsedJSON, null, 2);
104
- const regions = experienceSiteParsedJSON['regions'];
130
+ const regions = experienceSiteParsedJSON.regions;
105
131
  // TODO - When will it be Flexcard
106
132
  if (regions === undefined) {
107
133
  experienceSiteAssessmentInfo.hasOmnistudioContent = false;
108
134
  return experienceSiteAssessmentInfo;
109
135
  }
110
- const storage = storageUtil_1.StorageUtil.getOmnistudioMigrationStorage();
136
+ let storage;
137
+ if (type === this.MIGRATE) {
138
+ storage = storageUtil_1.StorageUtil.getOmnistudioMigrationStorage();
139
+ }
140
+ else {
141
+ storage = storageUtil_1.StorageUtil.getOmnistudioAssessmentStorage();
142
+ }
111
143
  for (const region of regions) {
112
- logger_1.Logger.logVerbose('The current region being processed is' + JSON.stringify(region));
113
- const regionComponents = region['components'];
114
- if (regionComponents === undefined) {
115
- continue;
116
- }
117
- if (Array.isArray(regionComponents)) {
118
- for (const component of regionComponents) {
119
- if (component === undefined || component === null) {
120
- continue;
121
- }
122
- logger_1.Logger.logVerbose('The current component being processed is ' + JSON.stringify(component));
123
- if (component.componentName === lookupComponentName) {
124
- logger_1.Logger.logVerbose('Omnistudio wrapper component found');
125
- experienceSiteAssessmentInfo.hasOmnistudioContent = true;
126
- this.updateComponentAndItsAttributes(component, component.componentAttributes, experienceSiteAssessmentInfo, storage);
127
- }
128
- }
129
- }
144
+ this.processRegion(region, experienceSiteAssessmentInfo, storage, lookupComponentName, type);
130
145
  }
131
- logger_1.Logger.logVerbose('Now printing the updated object' + JSON.stringify(experienceSiteParsedJSON));
146
+ logger_1.Logger.logVerbose(this.messages.getMessage('printUpdatedObject', [JSON.stringify(experienceSiteParsedJSON)]));
132
147
  const noarmalizeUpdatedFileContent = JSON.stringify(experienceSiteParsedJSON, null, 2); // Pretty-print with 2 spaces
133
148
  const difference = new FileDiffUtil_1.FileDiffUtil().getFileDiff(file.name, normalizedOriginalFileContent, noarmalizeUpdatedFileContent);
134
- logger_1.Logger.logVerbose('Printing the difference' + JSON.stringify(difference));
135
- if (normalizedOriginalFileContent !== noarmalizeUpdatedFileContent) {
136
- logger_1.Logger.logVerbose('Updating the file content');
149
+ logger_1.Logger.logVerbose(this.messages.getMessage('printDifference', [JSON.stringify(difference)]));
150
+ if (type === this.MIGRATE && normalizedOriginalFileContent !== noarmalizeUpdatedFileContent) {
151
+ logger_1.Logger.logVerbose(this.messages.getMessage('updatingFile'));
137
152
  fs.writeFileSync(file.location, noarmalizeUpdatedFileContent, 'utf8');
138
153
  }
139
154
  experienceSiteAssessmentInfo.diff = JSON.stringify(difference);
140
155
  return experienceSiteAssessmentInfo;
141
156
  }
142
- updateComponentAndItsAttributes(component, currentAttribute, experienceSiteAssessmentInfo, storage) {
157
+ populateExceptionInfo(file, experienceSiteAssessmentInfos) {
158
+ try {
159
+ const experienceSiteAssessmentInfo = {
160
+ name: file.name,
161
+ warnings: ['Unknown error occurred'],
162
+ errors: [''],
163
+ infos: [],
164
+ path: file.location,
165
+ diff: JSON.stringify([]),
166
+ hasOmnistudioContent: false,
167
+ status: 'Failed',
168
+ };
169
+ experienceSiteAssessmentInfos.push(experienceSiteAssessmentInfo);
170
+ }
171
+ catch {
172
+ logger_1.Logger.error(this.messages.getMessage('experienceSiteException'));
173
+ }
174
+ }
175
+ processRegion(region, experienceSiteAssessmentInfo, storage, lookupComponentName, type) {
176
+ logger_1.Logger.logVerbose(this.messages.getMessage('currentRegionOfExperienceSite', [JSON.stringify(region)]));
177
+ const regionComponents = region.components;
178
+ if (regionComponents === undefined) {
179
+ return;
180
+ }
181
+ if (Array.isArray(regionComponents)) {
182
+ for (const component of regionComponents) {
183
+ this.processComponent(component, experienceSiteAssessmentInfo, storage, lookupComponentName, type);
184
+ }
185
+ }
186
+ }
187
+ processComponent(component, experienceSiteAssessmentInfo, storage, lookupComponentName, type) {
188
+ if (component === undefined || component === null) {
189
+ return;
190
+ }
191
+ if (component.componentName === lookupComponentName) {
192
+ logger_1.Logger.logVerbose(this.messages.getMessage('omniWrapperFound'));
193
+ experienceSiteAssessmentInfo.hasOmnistudioContent = true;
194
+ this.updateComponentAndItsAttributes(component, component.componentAttributes, experienceSiteAssessmentInfo, storage, type);
195
+ return;
196
+ }
197
+ const regionsInsideComponent = component.regions;
198
+ if (Array.isArray(regionsInsideComponent)) {
199
+ for (const region of regionsInsideComponent) {
200
+ this.processRegion(region, experienceSiteAssessmentInfo, storage, lookupComponentName, type);
201
+ }
202
+ }
203
+ }
204
+ updateComponentAndItsAttributes(component, currentAttribute, experienceSiteAssessmentInfo, storage, type) {
143
205
  if (component === undefined || currentAttribute === undefined) {
144
206
  return;
145
207
  }
146
208
  if (currentAttribute.target === undefined || currentAttribute.target === '') {
147
- experienceSiteAssessmentInfo.warnings.push('Target exists as empty string. Please check experience site configuration');
209
+ experienceSiteAssessmentInfo.warnings.push(this.messages.getMessage('emptyTargetData'));
210
+ experienceSiteAssessmentInfo.status = type === this.ASSESS ? 'Needs Manual Intervention' : 'Skipped';
148
211
  return;
149
212
  }
150
213
  const targetName = currentAttribute.target.substring(currentAttribute.target.indexOf(':') + 1); // c:ABCD -> ABCD
151
214
  if (targetName.startsWith(FLEXCARD_PREFIX)) {
152
- this.processFCComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage);
215
+ this.processFCComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage, type);
153
216
  }
154
217
  else {
155
- this.processOSComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage);
218
+ this.processOSComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage, type);
156
219
  }
157
220
  logger_1.Logger.logVerbose('updatedComponentAttribute = ' + JSON.stringify(currentAttribute));
158
221
  }
159
- processFCComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage) {
160
- logger_1.Logger.logVerbose(`Started processing FC component + ${JSON.stringify(component)} `);
222
+ processFCComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage, type) {
223
+ logger_1.Logger.logVerbose(this.messages.getMessage('processingFlexcardComponent', [JSON.stringify(component)]));
161
224
  const flexcardName = targetName.substring(2); // cfCardName -> CardName
162
- const targetDataFromStorageFC = storage.fcStorage.get(flexcardName);
163
- logger_1.Logger.logVerbose('The target data is ' + JSON.stringify(targetDataFromStorageFC));
225
+ const targetDataFromStorageFC = storage.fcStorage.get(flexcardName.toLowerCase());
226
+ logger_1.Logger.logVerbose(this.messages.getMessage('targetData', [JSON.stringify(targetDataFromStorageFC)]));
164
227
  // Remove later
165
228
  if (this.shouldAddWarning(targetDataFromStorageFC)) {
166
229
  const warningMsg = this.getWarningMessage(flexcardName, targetDataFromStorageFC);
167
230
  experienceSiteAssessmentInfo.warnings.push(warningMsg);
231
+ experienceSiteAssessmentInfo.status = type === this.ASSESS ? 'Needs Manual Intervention' : 'Skipped';
168
232
  }
169
233
  else {
170
234
  component.componentName = TARGET_COMPONENT_NAME_FC;
235
+ const keysToDelete = ['target', 'layout', 'params', 'standalone'];
236
+ keysToDelete.forEach((key) => delete currentAttribute[key]);
171
237
  currentAttribute['flexcardName'] = targetDataFromStorageFC.name;
172
238
  currentAttribute['objectApiName'] = '{!objectApiName}';
173
239
  currentAttribute['recordId'] = '{!recordId}';
174
240
  }
175
241
  }
176
- processOSComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage) {
177
- logger_1.Logger.logVerbose(`Started processing OS component + ${JSON.stringify(component)} `);
242
+ processOSComponent(targetName, component, currentAttribute, experienceSiteAssessmentInfo, storage, type) {
243
+ logger_1.Logger.logVerbose(this.messages.getMessage('processingOmniscriptComponent', [JSON.stringify(component)]));
178
244
  // Use storage to find the updated properties
179
- const targetDataFromStorage = storage.osStorage.get(targetName);
180
- logger_1.Logger.logVerbose('The target data is ' + JSON.stringify(targetDataFromStorage));
245
+ const targetDataFromStorage = storage.osStorage.get(targetName.toLowerCase());
246
+ logger_1.Logger.logVerbose(this.messages.getMessage('targetData', [JSON.stringify(targetDataFromStorage)]));
181
247
  if (this.shouldAddWarning(targetDataFromStorage)) {
182
248
  const warningMsg = this.getWarningMessage(targetName, targetDataFromStorage);
183
249
  experienceSiteAssessmentInfo.warnings.push(warningMsg);
250
+ experienceSiteAssessmentInfo.status = type === this.ASSESS ? 'Needs Manual Intervention' : 'Skipped';
184
251
  }
185
252
  else {
186
253
  component.componentName = TARGET_COMPONENT_NAME_OS;
187
254
  // Preserve the layout value before clearing
188
255
  const originalLayout = currentAttribute['layout'];
189
- // define an array and delete those keys
190
- // Clear existing properties and set new ones
191
- Object.keys(currentAttribute).forEach((key) => delete currentAttribute[key]);
256
+ // Clear existing properties more safely - preserve any properties we don't want to delete
257
+ const keysToDelete = ['layout', 'params', 'standAlone', 'target'];
258
+ keysToDelete.forEach((key) => delete currentAttribute[key]);
192
259
  currentAttribute['direction'] = 'ltr';
193
- currentAttribute['display'] = 'Display button to open Omniscript';
260
+ currentAttribute['display'] = 'Display OmniScript on page';
194
261
  currentAttribute['inlineVariant'] = 'brand';
195
262
  currentAttribute['language'] =
196
263
  targetDataFromStorage.language === undefined ? 'English' : targetDataFromStorage.language;
@@ -204,13 +271,14 @@ class ExperienceSiteMigration extends BaseRealtedObjectMigration_1.BaseRelatedOb
204
271
  }
205
272
  getWarningMessage(oldTypeSubtypeLanguage, targetDataFromStorage) {
206
273
  if (targetDataFromStorage === undefined) {
207
- return `${oldTypeSubtypeLanguage} needs manual intervention as the migrated key does not exist`;
274
+ // Add log verbose
275
+ return this.messages.getMessage('manualInterventionForExperienceSite', [oldTypeSubtypeLanguage]);
208
276
  }
209
277
  else if (targetDataFromStorage.migrationSuccess === false) {
210
- return `${oldTypeSubtypeLanguage} needs manual intervention as migration failed`;
278
+ return this.messages.getMessage('manualInterventionForExperienceSiteAsFailure', [oldTypeSubtypeLanguage]);
211
279
  }
212
280
  else {
213
- return `${oldTypeSubtypeLanguage} needs manual intervention as duplicated key found in storage`;
281
+ return this.messages.getMessage('manualInterventionForExperienceSiteAsDuplicateKey', [oldTypeSubtypeLanguage]);
214
282
  }
215
283
  }
216
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExperienceSiteMigration.js","sourceRoot":"","sources":["../../../src/migration/related/ExperienceSiteMigration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExperienceSiteMigration.js","sourceRoot":"","sources":["../../../src/migration/related/ExperienceSiteMigration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,2CAAiD;AACjD,wDAA2D;AAC3D,+CAA4C;AAC5C,yEAAiE;AAWjE,+EAA4E;AAE5E,yDAAsD;AACtD,kCAA4C;AAC5C,6EAA0E;AAE1E,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAE5C,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACjE,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;AAC/D,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAa,uBAAwB,SAAQ,uDAA0B;IAMrE,YAAmB,WAAmB,EAAE,SAAiB,EAAE,GAAQ,EAAE,QAAkB;QACrF,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAL7B,YAAO,GAAG,SAAS,CAAC;QACpB,WAAM,GAAG,QAAQ,CAAC;QAKxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,iBAAiB;QACtB,OAAO,0BAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAExG,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACzF,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,qCAAqC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEM,sBAAsB,CAAC,GAAW,EAAE,IAAY;QACrD,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAwB,mBAAQ,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnG,qEAAqE;QACrE,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7E,+BAA+B;QAC/B,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC/D,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAEhD,MAAM,6BAA6B,GAAmC,EAAE,CAAC;QACzE,eAAM,CAAC,UAAU,CAAC,2CAA2C,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS;aACV;YACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;gBAC5B,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,EAAE;oBACxB,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7E,SAAS;iBACV;gBACD,IAAI;oBACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAClE,IAAI,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,oBAAoB,MAAK,IAAI,EAAE;wBACrD,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,oDAAoD,CAAC,CAAC,CAAC;wBAClG,6BAA6B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;qBACxD;yBAAM;wBACL,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;qBACrE;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;oBAChE,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrF,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnC;aACF;SACF;QAED,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC9E,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAEM,qBAAqB,CAAC,IAAU,EAAE,IAAY;QACnD,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,4BAA4B,GAAiC;YACjE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,oBAAoB,EAAE,KAAK;YAC3B,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB;SAC/E,CAAC;QAEF,MAAM,mBAAmB,GAAG,GAAG,IAAI,CAAC,SAAS,wBAAwB,CAAC;QACtE,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,8BAA8B;QAC9B,MAAM,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAoB,CAAC;QAC5E,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAoB,wBAAwB,CAAC,OAAO,CAAC;QAElE,kCAAkC;QAElC,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,4BAA4B,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAC1D,OAAO,4BAA4B,CAAC;SACrC;QAED,IAAI,OAAyB,CAAC;QAE9B,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE;YACzB,OAAO,GAAG,yBAAW,CAAC,6BAA6B,EAAE,CAAC;SACvD;aAAM;YACL,OAAO,GAAG,yBAAW,CAAC,8BAA8B,EAAE,CAAC;SACxD;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;SAC9F;QAED,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9G,MAAM,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,6BAA6B;QACrH,MAAM,UAAU,GAAG,IAAI,2BAAY,EAAE,CAAC,WAAW,CAC/C,IAAI,CAAC,IAAI,EACT,6BAA6B,EAC7B,4BAA4B,CAC7B,CAAC;QAEF,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,6BAA6B,KAAK,4BAA4B,EAAE;YAC3F,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,EAAE,MAAM,CAAC,CAAC;SACvE;QAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/D,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAEO,qBAAqB,CAAC,IAAU,EAAE,6BAA6D;QACrG,IAAI;YACF,MAAM,4BAA4B,GAAiC;gBACjE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,CAAC,wBAAwB,CAAC;gBACpC,MAAM,EAAE,CAAC,EAAE,CAAC;gBACZ,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,oBAAoB,EAAE,KAAK;gBAC3B,MAAM,EAAE,QAAQ;aACjB,CAAC;YAEF,6BAA6B,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAClE;QAAC,MAAM;YACN,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC;SACnE;IACH,CAAC;IAEO,aAAa,CACnB,MAAqB,EACrB,4BAA0D,EAC1D,OAAyB,EACzB,mBAA2B,EAC3B,IAAY;QAEZ,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvG,MAAM,gBAAgB,GAAuB,MAAM,CAAC,UAAU,CAAC;QAE/D,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,OAAO;SACR;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACnC,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;gBACxC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;aACpG;SACF;IACH,CAAC;IAEO,gBAAgB,CACtB,SAA2B,EAC3B,4BAA0D,EAC1D,OAAyB,EACzB,mBAA2B,EAC3B,IAAY;QAEZ,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE;YACjD,OAAO;SACR;QAED,IAAI,SAAS,CAAC,aAAa,KAAK,mBAAmB,EAAE;YACnD,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChE,4BAA4B,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAEzD,IAAI,CAAC,+BAA+B,CAClC,SAAS,EACT,SAAS,CAAC,mBAAmB,EAC7B,4BAA4B,EAC5B,OAAO,EACP,IAAI,CACL,CAAC;YAEF,OAAO;SACR;QAED,MAAM,sBAAsB,GAAoB,SAAS,CAAC,OAAO,CAAC;QAElE,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE;YACzC,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE;gBAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;aAC9F;SACF;IACH,CAAC;IAEO,+BAA+B,CACrC,SAA2B,EAC3B,gBAA4C,EAC5C,4BAA0D,EAC1D,OAAyB,EACzB,IAAY;QAEZ,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAC7D,OAAO;SACR;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE;YAC3E,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACxF,4BAA4B,CAAC,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;YACrG,OAAO;SACR;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAEjH,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YAC1C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/G;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/G;QACD,eAAM,CAAC,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvF,CAAC;IAEO,kBAAkB,CACxB,UAAkB,EAClB,SAA2B,EAC3B,gBAA4C,EAC5C,4BAA0D,EAC1D,OAAyB,EACzB,IAAY;QAEZ,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACvE,MAAM,uBAAuB,GAAoB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QAEnG,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,eAAe;QACf,IAAI,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;YAClD,MAAM,UAAU,GAAW,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;YACzF,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,4BAA4B,CAAC,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;SACtG;aAAM;YACL,SAAS,CAAC,aAAa,GAAG,wBAAwB,CAAC;YAEnD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAElE,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5D,gBAAgB,CAAC,cAAc,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC;YAChE,gBAAgB,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAC;YACvD,gBAAgB,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;SAC9C;IACH,CAAC;IAEO,kBAAkB,CACxB,UAAkB,EAClB,SAA2B,EAC3B,gBAA4C,EAC5C,4BAA0D,EAC1D,OAAyB,EACzB,IAAY;QAEZ,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,6CAA6C;QAC7C,MAAM,qBAAqB,GAAsB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACjG,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,IAAI,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE;YAChD,MAAM,UAAU,GAAW,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;YACrF,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,4BAA4B,CAAC,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;SACtG;aAAM;YACL,SAAS,CAAC,aAAa,GAAG,wBAAwB,CAAC;YAEnD,4CAA4C;YAC5C,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAElD,0FAA0F;YAC1F,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAClE,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5D,gBAAgB,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YACtC,gBAAgB,CAAC,SAAS,CAAC,GAAG,4BAA4B,CAAC;YAC3D,gBAAgB,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;YAC5C,gBAAgB,CAAC,UAAU,CAAC;gBAC1B,qBAAqB,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YAC5F,gBAAgB,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC;YAC5D,gBAAgB,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;YAC3C,gBAAgB,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC;SACvD;IACH,CAAC;IAEO,gBAAgB,CAAC,UAAmB;QAC1C,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,gBAAgB,KAAK,KAAK,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC;IAC9G,CAAC;IAEO,iBAAiB,CAAC,sBAA8B,EAAE,qBAA8B;QACtF,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,kBAAkB;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,qCAAqC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAClG;aAAM,IAAI,qBAAqB,CAAC,gBAAgB,KAAK,KAAK,EAAE;YAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,8CAA8C,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAC3G;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mDAAmD,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAChH;IACH,CAAC;CACF;AA1UD,0DA0UC"}
@@ -51,7 +51,7 @@ export declare class FlexipageMigration extends BaseRelatedObjectMigration {
51
51
  */
52
52
  migrate(): FlexiPageAssessmentInfo[];
53
53
  /**
54
- * Processes FlexiPage files in either assessment or migration mode.
54
+ * Processes FlexiPages in either assessment or migration mode.
55
55
  *
56
56
  * This method:
57
57
  * - Retrieves FlexiPage metadata from the Salesforce org
@@ -65,7 +65,7 @@ export declare class FlexipageMigration extends BaseRelatedObjectMigration {
65
65
  */
66
66
  private process;
67
67
  /**
68
- * Processes a single FlexiPage file for assessment or migration.
68
+ * Processes a single FlexiPage for assessment or migration.
69
69
  *
70
70
  * This method:
71
71
  * - Reads the FlexiPage XML file content
@@ -75,8 +75,8 @@ export declare class FlexipageMigration extends BaseRelatedObjectMigration {
75
75
  * - Writes transformed content back to file in migration mode
76
76
  * - Handles errors and provides detailed error information
77
77
  *
78
- * @param fileName - The name of the FlexiPage file
79
- * @param filePath - The full path to the FlexiPage file
78
+ * @param fileName - The name of the FlexiPage
79
+ * @param filePath - The full path to the FlexiPage
80
80
  * @param mode - The processing mode: 'assess' or 'migrate'
81
81
  * @returns FlexiPage assessment information with status and error details
82
82
  */
@@ -32,8 +32,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.FlexipageMigration = void 0;
33
33
  const fs = __importStar(require("fs"));
34
34
  const path = __importStar(require("path"));
35
- const shell = __importStar(require("shelljs"));
36
- const sfProject_1 = require("../../utils/sfcli/project/sfProject");
37
35
  const logger_1 = require("../../utils/logger");
38
36
  const stringContants_1 = require("../../utils/constants/stringContants");
39
37
  const base_1 = require("../base");
@@ -101,7 +99,7 @@ class FlexipageMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectM
101
99
  return this.process('migrate');
102
100
  }
103
101
  /**
104
- * Processes FlexiPage files in either assessment or migration mode.
102
+ * Processes FlexiPages in either assessment or migration mode.
105
103
  *
106
104
  * This method:
107
105
  * - Retrieves FlexiPage metadata from the Salesforce org
@@ -114,20 +112,22 @@ class FlexipageMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectM
114
112
  * @returns Array of FlexiPage assessment information
115
113
  */
116
114
  process(mode) {
117
- logger_1.Logger.logVerbose(this.messages.getMessage('retrievingFlexiPages'));
118
- shell.cd(this.projectPath);
119
- sfProject_1.sfProject.retrieve(stringContants_1.Constants.FlexiPage, this.org.getUsername());
120
115
  const flexiPageDir = path.join(this.projectPath, 'force-app', 'main', 'default', 'flexipages');
121
116
  const files = fs.readdirSync(flexiPageDir).filter((file) => file.endsWith('.xml'));
122
- logger_1.Logger.logVerbose(this.messages.getMessage('successfullyRetrievedFlexiPages', [files.length]));
123
- const progressBar = (0, base_1.createProgressBar)('Migrating', 'Flexipage');
124
- progressBar.setTotal(files.length);
117
+ logger_1.Logger.logVerbose(this.messages.getMessage('foundFlexiPages', [files.length]));
118
+ const progressBar = (0, base_1.createProgressBar)(mode === 'assess' ? 'Assessing' : 'Migrating', 'Flexipage');
119
+ progressBar.start(files.length, 0);
125
120
  const flexPageAssessmentInfos = [];
121
+ const errors = new Set();
126
122
  for (const file of files) {
127
123
  logger_1.Logger.logVerbose(this.messages.getMessage('processingFlexiPage', [file]));
128
124
  const filePath = path.join(flexiPageDir, file);
129
125
  try {
130
126
  const flexPageAssessmentInfo = this.processFlexiPage(file, filePath, mode);
127
+ if (!flexPageAssessmentInfo) {
128
+ progressBar.increment();
129
+ continue;
130
+ }
131
131
  flexPageAssessmentInfos.push(flexPageAssessmentInfo);
132
132
  logger_1.Logger.logVerbose(this.messages.getMessage('completedProcessingFlexiPage', [
133
133
  file,
@@ -135,37 +135,43 @@ class FlexipageMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectM
135
135
  ]));
136
136
  }
137
137
  catch (error) {
138
+ let status = 'Failed';
138
139
  if (error instanceof errorInterfaces_1.KeyNotFoundInStorageError) {
139
- logger_1.Logger.error(`${error.componentType} ${error.key} can't be migrated`);
140
+ errors.add(`${error.componentType} ${error.key} can't be migrated`);
141
+ status = mode === 'assess' ? 'Needs Manual Intervention' : 'Skipped';
140
142
  }
141
143
  else if (error instanceof errorInterfaces_1.TargetPropertyNotFoundError) {
142
- logger_1.Logger.error(error.message);
144
+ errors.add(error.message);
145
+ status = mode === 'assess' ? 'Needs Manual Intervention' : 'Skipped';
143
146
  }
144
147
  else if (error instanceof errorInterfaces_1.DuplicateKeyError) {
145
- logger_1.Logger.error(`${error.componentType} ${error.key} is duplicate`);
148
+ errors.add(`${error.componentType} ${error.key} is duplicate`);
149
+ status = mode === 'assess' ? 'Needs Manual Intervention' : 'Skipped';
146
150
  }
147
151
  else {
148
- logger_1.Logger.error(this.messages.getMessage('errorProcessingFlexiPage', [file, error]));
149
- logger_1.Logger.error(error);
152
+ errors.add(this.messages.getMessage('errorProcessingFlexiPage', [file, error]));
153
+ status = 'Failed';
150
154
  }
151
155
  flexPageAssessmentInfos.push({
152
156
  name: file,
153
157
  errors: [error instanceof Error ? error.message : JSON.stringify(error)],
154
158
  path: filePath,
155
159
  diff: '',
156
- status: mode === 'assess' ? 'Errors' : 'Failed',
160
+ status,
157
161
  });
158
162
  }
159
163
  progressBar.increment();
160
164
  }
161
165
  progressBar.stop();
166
+ if (errors.size > 0) {
167
+ errors.forEach((error) => logger_1.Logger.error(error));
168
+ }
162
169
  logger_1.Logger.logVerbose(this.messages.getMessage('completedProcessingAllFlexiPages', [flexPageAssessmentInfos.length]));
163
- const filteredResults = flexPageAssessmentInfos.filter((flexPageAssessmentInfo) => flexPageAssessmentInfo.status !== 'No Changes');
164
- logger_1.Logger.log(this.messages.getMessage('flexipagesWithChanges', [filteredResults.length]));
165
- return filteredResults;
170
+ logger_1.Logger.log(this.messages.getMessage('flexipagesWithChanges', [flexPageAssessmentInfos.length]));
171
+ return flexPageAssessmentInfos;
166
172
  }
167
173
  /**
168
- * Processes a single FlexiPage file for assessment or migration.
174
+ * Processes a single FlexiPage for assessment or migration.
169
175
  *
170
176
  * This method:
171
177
  * - Reads the FlexiPage XML file content
@@ -175,8 +181,8 @@ class FlexipageMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectM
175
181
  * - Writes transformed content back to file in migration mode
176
182
  * - Handles errors and provides detailed error information
177
183
  *
178
- * @param fileName - The name of the FlexiPage file
179
- * @param filePath - The full path to the FlexiPage file
184
+ * @param fileName - The name of the FlexiPage
185
+ * @param filePath - The full path to the FlexiPage
180
186
  * @param mode - The processing mode: 'assess' or 'migrate'
181
187
  * @returns FlexiPage assessment information with status and error details
182
188
  */
@@ -187,27 +193,22 @@ class FlexipageMigration extends BaseRealtedObjectMigration_1.BaseRelatedObjectM
187
193
  const json = this.xmlUtil.parse(fileContent);
188
194
  const transformedFlexiPage = (0, flexiPageTransformer_1.transformFlexipageBundle)(json, this.namespace, mode);
189
195
  if (transformedFlexiPage === false) {
190
- return {
191
- name: fileName,
192
- errors: [],
193
- path: filePath,
194
- diff: '',
195
- status: 'No Changes',
196
- };
196
+ logger_1.Logger.logVerbose(`No transformation needed on ${fileName}`);
197
+ return null;
197
198
  }
198
199
  const modifiedContent = this.xmlUtil.build(transformedFlexiPage, 'FlexiPage');
199
200
  if (mode === 'migrate') {
200
201
  fs.writeFileSync(filePath, modifiedContent);
201
202
  logger_1.Logger.logVerbose(this.messages.getMessage('updatedModifiedContent', [filePath]));
202
203
  }
203
- const diff = new FileDiffUtil_1.FileDiffUtil().getFileDiff(fileName, fileContent, modifiedContent);
204
+ const diff = new FileDiffUtil_1.FileDiffUtil().getXMLDiff(fileContent, modifiedContent);
204
205
  logger_1.Logger.logVerbose(this.messages.getMessage('generatedDiffForFile', [fileName]));
205
206
  return {
206
207
  path: filePath,
207
208
  name: fileName,
208
209
  diff: JSON.stringify(diff),
209
210
  errors: [],
210
- status: mode === 'assess' ? 'Can be Automated' : 'Complete',
211
+ status: mode === 'assess' ? 'Ready for migration' : 'Successfully migrated',
211
212
  };
212
213
  }
213
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlexipageMigration.js","sourceRoot":"","sources":["../../../src/migration/related/FlexipageMigration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlexipageMigration.js","sourceRoot":"","sources":["../../../src/migration/related/FlexipageMigration.ts"],"names":[],"mappings":"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"}