@salesforce/plugin-omnistudio-migration-tool 2.0.0-beta.7 → 2.0.0-rc.10

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 (147) hide show
  1. package/README.md +116 -20
  2. package/lib/commands/omnistudio/migration/assess.d.ts +1 -1
  3. package/lib/commands/omnistudio/migration/assess.js +46 -96
  4. package/lib/commands/omnistudio/migration/assess.js.map +1 -1
  5. package/lib/commands/omnistudio/migration/info.js +2 -3
  6. package/lib/commands/omnistudio/migration/info.js.map +1 -1
  7. package/lib/commands/omnistudio/migration/migrate.d.ts +3 -1
  8. package/lib/commands/omnistudio/migration/migrate.js +126 -42
  9. package/lib/commands/omnistudio/migration/migrate.js.map +1 -1
  10. package/lib/error/errorInterfaces.d.ts +14 -0
  11. package/lib/error/errorInterfaces.js +27 -0
  12. package/lib/error/errorInterfaces.js.map +1 -0
  13. package/lib/javascripts/reportGeneratorUtility.js +1 -3
  14. package/lib/mappings/GlobalAutoNumber.d.ts +10 -0
  15. package/lib/mappings/GlobalAutoNumber.js +14 -0
  16. package/lib/mappings/GlobalAutoNumber.js.map +1 -0
  17. package/lib/migration/base.d.ts +5 -4
  18. package/lib/migration/base.js +28 -7
  19. package/lib/migration/base.js.map +1 -1
  20. package/lib/migration/dataraptor.js +26 -11
  21. package/lib/migration/dataraptor.js.map +1 -1
  22. package/lib/migration/flexcard.d.ts +3 -0
  23. package/lib/migration/flexcard.js +161 -35
  24. package/lib/migration/flexcard.js.map +1 -1
  25. package/lib/migration/globalautonumber.d.ts +60 -0
  26. package/lib/migration/globalautonumber.js +318 -0
  27. package/lib/migration/globalautonumber.js.map +1 -0
  28. package/lib/migration/interfaces.d.ts +89 -0
  29. package/lib/migration/interfaces.js +7 -0
  30. package/lib/migration/interfaces.js.map +1 -1
  31. package/lib/migration/omniscript.d.ts +3 -0
  32. package/lib/migration/omniscript.js +204 -33
  33. package/lib/migration/omniscript.js.map +1 -1
  34. package/lib/migration/postMigrate.d.ts +13 -0
  35. package/lib/migration/postMigrate.js +58 -0
  36. package/lib/migration/postMigrate.js.map +1 -0
  37. package/lib/migration/premigrate.d.ts +12 -0
  38. package/lib/migration/premigrate.js +75 -0
  39. package/lib/migration/premigrate.js.map +1 -0
  40. package/lib/migration/related/ApexMigration.js +23 -15
  41. package/lib/migration/related/ApexMigration.js.map +1 -1
  42. package/lib/migration/related/ExperienceSiteMigration.d.ts +25 -0
  43. package/lib/migration/related/ExperienceSiteMigration.js +286 -0
  44. package/lib/migration/related/ExperienceSiteMigration.js.map +1 -0
  45. package/lib/migration/related/FlexipageMigration.d.ts +84 -0
  46. package/lib/migration/related/FlexipageMigration.js +215 -0
  47. package/lib/migration/related/FlexipageMigration.js.map +1 -0
  48. package/lib/migration/related/LwcMigration.js +13 -13
  49. package/lib/migration/related/LwcMigration.js.map +1 -1
  50. package/lib/migration/related/OmnistudioRelatedObjectMigrationFacade.d.ts +4 -0
  51. package/lib/migration/related/OmnistudioRelatedObjectMigrationFacade.js +34 -27
  52. package/lib/migration/related/OmnistudioRelatedObjectMigrationFacade.js.map +1 -1
  53. package/lib/styles/reportGenerator.css +46 -7
  54. package/lib/templates/assessmentReport.template +53 -33
  55. package/lib/templates/dashboard.template +22 -2
  56. package/lib/templates/migrationReport.template +37 -27
  57. package/lib/utils/OmniGlobalAutoNumberPrefManager.d.ts +40 -0
  58. package/lib/utils/OmniGlobalAutoNumberPrefManager.js +65 -0
  59. package/lib/utils/OmniGlobalAutoNumberPrefManager.js.map +1 -0
  60. package/lib/utils/XMLUtil.d.ts +34 -0
  61. package/lib/utils/XMLUtil.js +171 -0
  62. package/lib/utils/XMLUtil.js.map +1 -0
  63. package/lib/utils/constants/{callToActionMessages.d.ts → documentRegistry.d.ts} +2 -1
  64. package/lib/utils/constants/{callToActionMessages.js → documentRegistry.js} +6 -5
  65. package/lib/utils/constants/documentRegistry.js.map +1 -0
  66. package/lib/utils/constants/stringContants.d.ts +8 -0
  67. package/lib/utils/constants/stringContants.js +8 -0
  68. package/lib/utils/constants/stringContants.js.map +1 -1
  69. package/lib/utils/file/fileUtil.d.ts +3 -0
  70. package/lib/utils/file/fileUtil.js +36 -0
  71. package/lib/utils/file/fileUtil.js.map +1 -1
  72. package/lib/utils/flexipage/flexiPageTransformer.d.ts +17 -0
  73. package/lib/utils/flexipage/flexiPageTransformer.js +138 -0
  74. package/lib/utils/flexipage/flexiPageTransformer.js.map +1 -0
  75. package/lib/utils/generatePackageXml.d.ts +4 -2
  76. package/lib/utils/generatePackageXml.js +23 -1
  77. package/lib/utils/generatePackageXml.js.map +1 -1
  78. package/lib/utils/interfaces.d.ts +71 -0
  79. package/lib/utils/logger.d.ts +2 -2
  80. package/lib/utils/logger.js +4 -3
  81. package/lib/utils/logger.js.map +1 -1
  82. package/lib/utils/lwcparser/fileutils/FileDiffUtil.d.ts +2 -1
  83. package/lib/utils/lwcparser/fileutils/FileDiffUtil.js +92 -47
  84. package/lib/utils/lwcparser/fileutils/FileDiffUtil.js.map +1 -1
  85. package/lib/utils/lwcparser/jsParser/JavaScriptParser.js +1 -1
  86. package/lib/utils/lwcparser/jsParser/JavaScriptParser.js.map +1 -1
  87. package/lib/utils/lwcparser/xmlParser/XmlParser.js +1 -1
  88. package/lib/utils/lwcparser/xmlParser/XmlParser.js.map +1 -1
  89. package/lib/utils/net/index.js +13 -16
  90. package/lib/utils/net/index.js.map +1 -1
  91. package/lib/utils/orgPreferences.d.ts +23 -0
  92. package/lib/utils/orgPreferences.js +73 -0
  93. package/lib/utils/orgPreferences.js.map +1 -1
  94. package/lib/utils/orgUtils/index.js +1 -2
  95. package/lib/utils/orgUtils/index.js.map +1 -1
  96. package/lib/utils/projectPathUtil.d.ts +39 -0
  97. package/lib/utils/projectPathUtil.js +173 -0
  98. package/lib/utils/projectPathUtil.js.map +1 -0
  99. package/lib/utils/promptUtil.d.ts +2 -0
  100. package/lib/utils/promptUtil.js +26 -1
  101. package/lib/utils/promptUtil.js.map +1 -1
  102. package/lib/utils/reportGenerator/reportInterfaces.d.ts +3 -0
  103. package/lib/utils/reportGenerator/reportUtil.d.ts +1 -1
  104. package/lib/utils/reportGenerator/reportUtil.js +5 -1
  105. package/lib/utils/reportGenerator/reportUtil.js.map +1 -1
  106. package/lib/utils/resultsbuilder/ApexAssessmentReporter.js +24 -10
  107. package/lib/utils/resultsbuilder/ApexAssessmentReporter.js.map +1 -1
  108. package/lib/utils/resultsbuilder/DRAssessmentReporter.js +34 -11
  109. package/lib/utils/resultsbuilder/DRAssessmentReporter.js.map +1 -1
  110. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.d.ts +12 -0
  111. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.js +93 -0
  112. package/lib/utils/resultsbuilder/ExperienceSiteAssessmentReporter.js.map +1 -0
  113. package/lib/utils/resultsbuilder/FlexcardAssessmentReporter.js +46 -10
  114. package/lib/utils/resultsbuilder/FlexcardAssessmentReporter.js.map +1 -1
  115. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.d.ts +55 -0
  116. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.js +137 -0
  117. package/lib/utils/resultsbuilder/FlexipageAssessmentReporter.js.map +1 -0
  118. package/lib/utils/resultsbuilder/GlobalAutoNumberAssessmentReporter.d.ts +14 -0
  119. package/lib/utils/resultsbuilder/GlobalAutoNumberAssessmentReporter.js +148 -0
  120. package/lib/utils/resultsbuilder/GlobalAutoNumberAssessmentReporter.js.map +1 -0
  121. package/lib/utils/resultsbuilder/IPAssessmentReporter.js +31 -11
  122. package/lib/utils/resultsbuilder/IPAssessmentReporter.js.map +1 -1
  123. package/lib/utils/resultsbuilder/LWCAssessmentReporter.d.ts +12 -0
  124. package/lib/utils/resultsbuilder/LWCAssessmentReporter.js +114 -139
  125. package/lib/utils/resultsbuilder/LWCAssessmentReporter.js.map +1 -1
  126. package/lib/utils/resultsbuilder/OSAssessmentReporter.js +25 -16
  127. package/lib/utils/resultsbuilder/OSAssessmentReporter.js.map +1 -1
  128. package/lib/utils/resultsbuilder/assessmentReporter.d.ts +5 -1
  129. package/lib/utils/resultsbuilder/assessmentReporter.js +120 -53
  130. package/lib/utils/resultsbuilder/assessmentReporter.js.map +1 -1
  131. package/lib/utils/resultsbuilder/index.d.ts +7 -1
  132. package/lib/utils/resultsbuilder/index.js +318 -48
  133. package/lib/utils/resultsbuilder/index.js.map +1 -1
  134. package/lib/utils/resultsbuilder/reportingHelper.d.ts +4 -2
  135. package/lib/utils/resultsbuilder/reportingHelper.js +22 -4
  136. package/lib/utils/resultsbuilder/reportingHelper.js.map +1 -1
  137. package/lib/utils/storageUtil.d.ts +10 -0
  138. package/lib/utils/storageUtil.js +61 -0
  139. package/lib/utils/storageUtil.js.map +1 -0
  140. package/lib/utils/stringUtils.d.ts +1 -0
  141. package/lib/utils/stringUtils.js +22 -1
  142. package/lib/utils/stringUtils.js.map +1 -1
  143. package/messages/assess.json +102 -28
  144. package/messages/migrate.json +130 -23
  145. package/oclif.manifest.json +1 -1
  146. package/package.json +6 -5
  147. package/lib/utils/constants/callToActionMessages.js.map +0 -1
@@ -256,28 +256,34 @@ html {
256
256
  background-color: #fff;
257
257
  margin: auto;
258
258
  padding: 20px;
259
+ padding-top: 20px;
259
260
  width: 60%;
260
- height: 60%;
261
+ max-height: 80%;
261
262
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
262
263
  border-radius: 4px;
263
264
  text-align: left;
264
265
  position: relative;
266
+ overflow-y: auto;
267
+ overflow-x: auto;
268
+ display: flex;
269
+ flex-direction: column;
265
270
  }
266
271
 
267
272
  .closeButton {
268
273
  color: #222121;
269
- height: 30px;
270
- width: 30px;
274
+ height: 40px;
275
+ width: 40px;
271
276
  position: absolute;
272
- background-color: #fff;
273
- top: -35px;
274
- right: 0;
275
- font-size: 25px;
277
+ top: 0px;
278
+ right: 0px;
279
+ font-size: 30px;
276
280
  cursor: pointer;
277
281
  display: flex;
278
282
  align-items: center;
279
283
  justify-content: center;
284
+ z-index: 1050;
280
285
  border-radius: 3px;
286
+ padding-right: 0;
281
287
  }
282
288
 
283
289
  .modalHeader {
@@ -289,6 +295,11 @@ html {
289
295
  }
290
296
 
291
297
  .modalContent {
298
+ overflow: auto;
299
+ }
300
+
301
+ .modalContent p {
302
+ margin: 0;
292
303
  margin-top: 20px;
293
304
  }
294
305
 
@@ -527,3 +538,31 @@ td {
527
538
  opacity: 1;
528
539
  visibility: visible;
529
540
  }
541
+
542
+ .invalid-icon {
543
+ position: relative;
544
+ padding-left: 24px; /* space for icon */
545
+ }
546
+
547
+ .invalid-icon::before {
548
+ content: '';
549
+ position: absolute;
550
+ left: 6px;
551
+ top: 50%;
552
+ width: 14px;
553
+ height: 14px;
554
+ border: 2px solid red;
555
+ border-radius: 50%;
556
+ transform: translateY(-50%);
557
+ }
558
+
559
+ .invalid-icon::after {
560
+ content: '';
561
+ position: absolute;
562
+ left: 9px;
563
+ top: 50%;
564
+ width: 10px;
565
+ height: 2px;
566
+ background-color: red;
567
+ transform: translateY(-50%) rotate(45deg);
568
+ }
@@ -12,13 +12,13 @@
12
12
  <div style="margin: 20px">
13
13
  <div class="report-wrapper">
14
14
  <div id="scrollable-wrapper" class="scrollable-wrapper">
15
- <c:if exp={$callToAction.length > 0}>
15
+ <c:if exp={$callToAction.length> 0}>
16
16
  <!-- Call To Action Button -->
17
17
  <button class="cta-button" onclick="toggleCtaPanel()">Call To Action</button>
18
-
18
+
19
19
  <!-- Overlay -->
20
20
  <div class="overlay" id="overlay" onclick="closeCtaPanel()"></div>
21
-
21
+
22
22
  <!-- Call To Action Panel -->
23
23
  <div class="cta-panel" id="ctaPanel">
24
24
  <div class="cta-panel-header">
@@ -26,7 +26,7 @@
26
26
  <button class="cta-panel-close" onclick="closeCtaPanel()">&times;</button>
27
27
  </div>
28
28
  <div class="cta-panel-content">
29
- <ul>
29
+ <ul class="slds-list_dotted">
30
30
  <c:for items=(callToAction) var="cta">
31
31
  <li> {{cta.message}}: &nbsp <a href="(cta.link)" target="_blank">See More</a></li>
32
32
  </c:for>
@@ -39,7 +39,6 @@
39
39
  <div class="report-page-header">
40
40
  <div class="slds-text-heading_large">
41
41
  <span>{{heading}}</span>
42
- <span>&nbsp;Assessment Report</span>
43
42
  </div>
44
43
  </div>
45
44
 
@@ -91,7 +90,7 @@
91
90
  <path
92
91
  d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z" />
93
92
  </svg>
94
- <input type="text" id="name-search-input" class="search-input" placeholder="Search by Name"
93
+ <input type="text" id="name-search-input" class="search-input" placeholder="Search Name"
95
94
  oninput="filterAndSearchTable('report-table')" />
96
95
  </div>
97
96
  <c:if exp={$filterGroups.length>0}>
@@ -152,23 +151,27 @@
152
151
  <c:for items=(row.data) var="cell">
153
152
  <c:if exp={!$cell.isHref}>
154
153
  <c:if exp={$cell.searchable}>
155
- <td data-name="(cell.value)" rowspan="(cell.rowspan)" colspan="(cell.colspan)"
156
- key="(cell.key)" value="(cell.value)">
154
+ <td class="(cell.customClass)" data-name="(cell.value)" rowspan="(cell.rowspan)"
155
+ colspan="(cell.colspan)" key="(cell.key)" value="(cell.value)">
157
156
  <c:if exp={Array.isArray($cell.title)}>
158
- <c:for items=(cell.title) var="value">
159
- <div>{{value}}</div>
160
- </c:for>
157
+ <ul class="slds-list_dotted">
158
+ <c:for items=(cell.title) var="value">
159
+ <li>{{value}}</li>
160
+ </c:for>
161
+ </ul>
161
162
  </c:if>
162
163
  <c:if exp={!Array.isArray($cell.title)}> {{cell.title}} </c:if>
163
164
  </td>
164
165
  </c:if>
165
166
  <c:if exp={!$cell.searchable}>
166
- <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" key="(cell.key)"
167
- value="(cell.value)">
167
+ <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" class="(cell.customClass)"
168
+ key="(cell.key)" value="(cell.value)">
168
169
  <c:if exp={Array.isArray($cell.title)}>
169
- <c:for items=(cell.title) var="value">
170
- <div>{{value}}</div>
171
- </c:for>
170
+ <ul class="slds-list_dotted">
171
+ <c:for items=(cell.title) var="value">
172
+ <li>{{value}}</li>
173
+ </c:for>
174
+ </ul>
172
175
  </c:if>
173
176
  <c:if exp={!Array.isArray($cell.title)}> {{cell.title}} </c:if>
174
177
  </td>
@@ -177,24 +180,28 @@
177
180
  <c:if exp={$cell.isHref}>
178
181
  <c:if exp={$cell.searchable}>
179
182
  <td data-name="(cell.value)" rowspan="(cell.rowspan)" colspan="(cell.colspan)"
180
- key="(cell.key)" value="(cell.value)">
183
+ class="(cell.customClass)" key="(cell.key)" value="(cell.value)">
181
184
  <c:if exp={Array.isArray($cell.title)}>
182
- <c:for items=(cell.title) var="value">
183
- <div><a href="(cell.uri)">{{value}}</a></div>
184
- </c:for>
185
+ <ul class="slds-list_dotted">
186
+ <c:for items=(cell.title) var="value">
187
+ <li><a href="(cell.uri)" target="_blank">{{value}}</a></li>
188
+ </c:for>
189
+ </ul>
185
190
  </c:if>
186
191
  <c:if exp={!Array.isArray($cell.title)}>
187
- <a href="(cell.uri)">{{cell.title}}</a>
192
+ <a href="(cell.uri)" target="_blank">{{cell.title}}</a>
188
193
  </c:if>
189
194
  </td>
190
195
  </c:if>
191
196
  <c:if exp={!$cell.searchable}>
192
- <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" key="(cell.key)"
193
- value="(cell.value)">
197
+ <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" class="(cell.customClass)"
198
+ key="(cell.key)" value="(cell.value)">
194
199
  <c:if exp={Array.isArray($cell.title)}>
195
- <c:for items=(cell.title) var="value">
196
- <div><a href="(cell.uri)">{{value}}</a></div>
197
- </c:for>
200
+ <ul class="slds-list_dotted">
201
+ <c:for items=(cell.title) var="value">
202
+ <li><a href="(cell.uri)">{{value}}</a></li>
203
+ </c:for>
204
+ </ul>
198
205
  </c:if>
199
206
  <c:if exp={!Array.isArray($cell.title)}>
200
207
  <a href="(cell.uri)">{{cell.title}}</a>
@@ -212,6 +219,17 @@
212
219
  </tr>
213
220
  </tbody>
214
221
  </table>
222
+ <c:if exp={Array.isArray($actionItems) && $actionItems.length > 0}>
223
+ <div class="slds-box slds-theme_default slds-m-top_medium">
224
+ <div class="slds-text-heading_medium slds-m-bottom_small">User Action Required</div>
225
+ <div class="slds-m-bottom_small">
226
+ <p class="slds-m-bottom_x-small">Action Items</p>
227
+ <ul class="slds-list_dotted">
228
+ <c:for items=(actionItems) var="actionItem">
229
+ <li class="slds-item slds-text-color_destructive">{{actionItem}}</li>
230
+ </c:for>
231
+ </ul>
232
+ </c:if>
215
233
  </div>
216
234
  </div>
217
235
  <div id="cta-summary-panel" class="cta-summary-panel hidden">
@@ -234,19 +252,21 @@
234
252
  <div class="line-separator"></div>
235
253
  <c:if exp={Array.isArray($rollbackFlags)}>
236
254
  <div class="slds-box" style="background-color: white; margin-top: 20px">
237
- <div class="slds-text-heading_medium">Rollback Flags Disabled</div>
255
+ <div class="migration-message">
256
+ <svg fill="#8c4c00" width="20px" height="20px" viewBox="-3.2 -3.2 38.40 38.40"
257
+ xmlns="http://www.w3.org/2000/svg" stroke="#8c4c00" stroke-width="0.0032">
258
+ <path
259
+ d="M31.082 27.5l-13.999-24.249c-0.237-0.352-0.633-0.58-1.083-0.58s-0.846 0.228-1.080 0.575l-0.003 0.005-14 24.249c-0.105 0.179-0.167 0.395-0.167 0.625 0 0.69 0.56 1.25 1.25 1.25h28c0.69 0 1.249-0.56 1.249-1.25 0-0.23-0.062-0.446-0.171-0.631zM4.165 26.875l11.835-20.499 11.834 20.499zM14.75 12v8.994c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25V12c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25zM15.12 23.619c-0.124 0.106-0.22 0.24-0.278 0.394-0.051 0.143-0.08 0.308-0.08 0.48s0.029 0.337 0.083 0.491c0.144 0.3 0.38 0.536 0.671 0.676 0.143 0.051 0.308 0.080 0.48 0.080s0.337-0.029 0.49-0.083c0.156-0.071 0.288-0.166 0.4-0.281 0.224-0.225 0.363-0.536 0.363-0.878 0-0.687-0.557-1.244-1.244-1.244-0.343 0-0.653 0.139-0.878 0.363z" />
260
+ </svg>
261
+ <span>Just a heads-up...</span>
262
+ </div>
238
263
  <div style="margin-block: 15px">
239
- <p>The following rollback flag(s) will be disabled during migration:</p>
264
+ <p>These rollback flags are not supported and will be disabled after migration</p>
240
265
  <ul class="slds-list_dotted">
241
266
  <c:for items=(rollbackFlags) var="flag">
242
267
  <li class="slds-item slds-text-color_destructive">{{flag}}</li>
243
268
  </c:for>
244
269
  </ul>
245
- <p>
246
- <strong>Note:</strong>
247
- Following flag(s) will no longer be supported after migration. For assistance, please contact
248
- support.
249
- </p>
250
270
  </div>
251
271
  </div>
252
272
  </c:if>
@@ -18,7 +18,7 @@
18
18
  </div>
19
19
 
20
20
  <div class="org-details-section">
21
- <div class="label-key">Org Id</div>
21
+ <div class="label-key">Org ID</div>
22
22
  <div class="label-value">{{org.id}}</div>
23
23
  </div>
24
24
 
@@ -33,7 +33,12 @@
33
33
  </div>
34
34
 
35
35
  <div class="org-details-section">
36
- <div class="label-key">Assessment Date and Time</div>
36
+ <c:if exp={$mode == 'assess'}>
37
+ <div class="label-key">Assessment Date and Time</div>
38
+ </c:if>
39
+ <c:if exp={$mode == 'migrate'}>
40
+ <div class="label-key">Migration Date and Time</div>
41
+ </c:if>
37
42
  <div class="label-value">{{assessmentDate}}</div>
38
43
  </div>
39
44
  </div>
@@ -62,6 +67,21 @@
62
67
  </div>
63
68
  </c:for>
64
69
  </div>
70
+ <div>
71
+ <c:if exp={Array.isArray($actionItems) && $actionItems.length > 0}>
72
+ <div class="slds-box slds-theme_default slds-m-top_medium">
73
+ <div class="slds-text-heading_medium slds-m-bottom_small">User Action Required</div>
74
+ <div class="slds-m-bottom_small">
75
+ <p class="slds-m-bottom_x-small">Action Items</p>
76
+ <ul class="slds-list_dotted">
77
+ <c:for items=(actionItems) var="actionItem">
78
+ <li class="slds-item slds-text-color_destructive">{{actionItem}}</li>
79
+ </c:for>
80
+ </ul>
81
+ </div>
82
+ </div>
83
+ </c:if>
84
+ </div>
65
85
  </div>
66
86
  </body>
67
87
 
@@ -12,7 +12,6 @@
12
12
  <div class="slds-m-around_medium">
13
13
  <div class="slds-text-heading_large">
14
14
  <span>{{heading}}</span>
15
- <span>&nbsp;Migration Report</span>
16
15
  </div>
17
16
 
18
17
  <div class="rpt-table-container" id="report-table">
@@ -38,7 +37,7 @@
38
37
  </div>
39
38
 
40
39
  <div class="org-details-section">
41
- <div class="label-key">Assessment Date and Time</div>
40
+ <div class="label-key">Migration Date and Time</div>
42
41
  <div class="label-value">{{assessmentDate}}</div>
43
42
  </div>
44
43
  </div>
@@ -56,7 +55,7 @@
56
55
  <path
57
56
  d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z" />
58
57
  </svg>
59
- <input type="text" id="name-search-input" class="search-input" placeholder="Search by Name"
58
+ <input type="text" id="name-search-input" class="search-input" placeholder="Search Name"
60
59
  oninput="filterAndSearchTable('report-table')" />
61
60
  </div>
62
61
 
@@ -116,23 +115,27 @@
116
115
  <c:for items=(row.data) var="cell">
117
116
  <c:if exp={!$cell.isHref}>
118
117
  <c:if exp={$cell.searchable}>
119
- <td data-name="(cell.value)" rowspan="(cell.rowspan)" colspan="(cell.colspan)"
120
- key="(cell.key)" value="(cell.value)">
118
+ <td class="(cell.customClass)" data-name="(cell.value)" rowspan="(cell.rowspan)"
119
+ colspan="(cell.colspan)" key="(cell.key)" value="(cell.value)">
121
120
  <c:if exp={Array.isArray($cell.title)}>
122
- <c:for items=(cell.title) var="value">
123
- <div>{{value}}</div>
124
- </c:for>
121
+ <ul class="slds-list_dotted">
122
+ <c:for items=(cell.title) var="value">
123
+ <li>{{value}}</li>
124
+ </c:for>
125
+ </ul>
125
126
  </c:if>
126
127
  <c:if exp={!Array.isArray($cell.title)}> {{cell.title}} </c:if>
127
128
  </td>
128
129
  </c:if>
129
130
  <c:if exp={!$cell.searchable}>
130
- <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" key="(cell.key)"
131
+ <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" class="(cell.customClass)" key="(cell.key)"
131
132
  value="(cell.value)">
132
133
  <c:if exp={Array.isArray($cell.title)}>
133
- <c:for items=(cell.title) var="value">
134
- <div>{{value}}</div>
135
- </c:for>
134
+ <ul class="slds-list_dotted">
135
+ <c:for items=(cell.title) var="value">
136
+ <li>{{value}}</li>
137
+ </c:for>
138
+ </ul>
136
139
  </c:if>
137
140
  <c:if exp={!Array.isArray($cell.title)}> {{cell.title}} </c:if>
138
141
  </td>
@@ -140,12 +143,14 @@
140
143
  </c:if>
141
144
  <c:if exp={$cell.isHref}>
142
145
  <c:if exp={$cell.searchable}>
143
- <td data-name="(cell.value)" rowspan="(cell.rowspan)" colspan="(cell.colspan)"
144
- key="(cell.key)" value="(cell.value)">
146
+ <td class="(cell.customClass)" data-name="(cell.value)" rowspan="(cell.rowspan)"
147
+ colspan="(cell.colspan)" key="(cell.key)" value="(cell.value)">
145
148
  <c:if exp={Array.isArray($cell.title)}>
146
- <c:for items=(cell.title) var="value">
147
- <div><a href="(cell.uri)">{{value}}</a></div>
148
- </c:for>
149
+ <ul class="slds-list_dotted">
150
+ <c:for items=(cell.title) var="value">
151
+ <li><a href="(cell.uri)">{{value}}</a></li>
152
+ </c:for>
153
+ </ul>
149
154
  </c:if>
150
155
  <c:if exp={!Array.isArray($cell.title)}>
151
156
  <a href="(cell.uri)">{{cell.title}}</a>
@@ -153,12 +158,14 @@
153
158
  </td>
154
159
  </c:if>
155
160
  <c:if exp={!$cell.searchable}>
156
- <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" key="(cell.key)"
161
+ <td rowspan="(cell.rowspan)" colspan="(cell.colspan)" class="(cell.customClass)" key="(cell.key)"
157
162
  value="(cell.value)">
158
163
  <c:if exp={Array.isArray($cell.title)}>
159
- <c:for items=(cell.title) var="value">
160
- <div><a href="(cell.uri)">{{value}}</a></div>
161
- </c:for>
164
+ <ul class="slds-list_dotted">
165
+ <c:for items=(cell.title) var="value">
166
+ <li><a href="(cell.uri)">{{value}}</a></li>
167
+ </c:for>
168
+ </ul>
162
169
  </c:if>
163
170
  <c:if exp={!Array.isArray($cell.title)}>
164
171
  <a href="(cell.uri)">{{cell.title}}</a>
@@ -179,18 +186,21 @@
179
186
  </div>
180
187
  <c:if exp={Array.isArray($rollbackFlags)}>
181
188
  <div class="slds-box" style="background-color: white; margin-top: 20px">
182
- <div class="slds-text-heading_medium">Rollback Flags Disabled</div>
189
+ <div class="migration-message">
190
+ <svg fill="#8c4c00" width="20px" height="20px" viewBox="-3.2 -3.2 38.40 38.40"
191
+ xmlns="http://www.w3.org/2000/svg" stroke="#8c4c00" stroke-width="0.0032">
192
+ <path
193
+ d="M31.082 27.5l-13.999-24.249c-0.237-0.352-0.633-0.58-1.083-0.58s-0.846 0.228-1.080 0.575l-0.003 0.005-14 24.249c-0.105 0.179-0.167 0.395-0.167 0.625 0 0.69 0.56 1.25 1.25 1.25h28c0.69 0 1.249-0.56 1.249-1.25 0-0.23-0.062-0.446-0.171-0.631zM4.165 26.875l11.835-20.499 11.834 20.499zM14.75 12v8.994c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25V12c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25zM15.12 23.619c-0.124 0.106-0.22 0.24-0.278 0.394-0.051 0.143-0.08 0.308-0.08 0.48s0.029 0.337 0.083 0.491c0.144 0.3 0.38 0.536 0.671 0.676 0.143 0.051 0.308 0.080 0.48 0.080s0.337-0.029 0.49-0.083c0.156-0.071 0.288-0.166 0.4-0.281 0.224-0.225 0.363-0.536 0.363-0.878 0-0.687-0.557-1.244-1.244-1.244-0.343 0-0.653 0.139-0.878 0.363z" />
194
+ </svg>
195
+ <span>Just a heads-up...</span>
196
+ </div>
183
197
  <div style="margin-block: 15px">
184
- <p>The following rollback flag(s) were disabled during migration:</p>
198
+ <p>These rollback flags are not supported and will be disabled after migration</p>
185
199
  <ul class="slds-list_dotted">
186
200
  <c:for items=(rollbackFlags) var="flag">
187
201
  <li class="slds-item slds-text-color_destructive">{{flag}}</li>
188
202
  </c:for>
189
203
  </ul>
190
- <p>
191
- <strong>Note:</strong>
192
- Following flag(s) are no longer supported after migration. For assistance, please contact support.
193
- </p>
194
204
  </div>
195
205
  </div>
196
206
  </c:if>
@@ -0,0 +1,40 @@
1
+ import { Connection, Messages } from '@salesforce/core';
2
+ /**
3
+ * Manager class for handling OmniGlobalAutoNumberPref org preference operations.
4
+ *
5
+ * Provides functionality to check and enable the Global Auto Number preference in Salesforce orgs.
6
+ * Uses metadata API to read and update OmniStudioSettings metadata.
7
+ * Controls whether the new Global Auto Number functionality is available in the org.
8
+ *
9
+ */
10
+ export declare class OmniGlobalAutoNumberPrefManager {
11
+ private connection;
12
+ private messages;
13
+ constructor(connection: Connection, messages: Messages);
14
+ /**
15
+ * Checks if the Global Auto Number preference is enabled in the current org.
16
+ *
17
+ * Queries the OmniStudioSettings metadata to determine the current state of the preference.
18
+ * Reads the enableOmniGlobalAutoNumberPref setting from metadata API.
19
+ * Determines whether the Global Auto Number functionality is already active.
20
+ *
21
+ * @returns {Promise<boolean>} True if the preference is enabled, false otherwise
22
+ *
23
+ * @throws {Error} When metadata read operation fails (logged and returns false)
24
+ *
25
+ */
26
+ isEnabled(): Promise<boolean>;
27
+ /**
28
+ * Enables the Global Auto Number preference in the current org.
29
+ *
30
+ * Updates the OmniStudioSettings metadata to enable the Global Auto Number functionality.
31
+ * Uses metadata API to set enableOmniGlobalAutoNumberPref to 'true'.
32
+ * Activates the new Global Auto Number functionality after migration is complete.
33
+ *
34
+ * @returns {Promise<any>} Metadata update result containing success status and any errors
35
+ *
36
+ * @throws {Error} When metadata update operation fails
37
+ *
38
+ */
39
+ enable(): Promise<any>;
40
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OmniGlobalAutoNumberPrefManager = void 0;
4
+ const logger_1 = require("./logger");
5
+ /**
6
+ * Manager class for handling OmniGlobalAutoNumberPref org preference operations.
7
+ *
8
+ * Provides functionality to check and enable the Global Auto Number preference in Salesforce orgs.
9
+ * Uses metadata API to read and update OmniStudioSettings metadata.
10
+ * Controls whether the new Global Auto Number functionality is available in the org.
11
+ *
12
+ */
13
+ class OmniGlobalAutoNumberPrefManager {
14
+ constructor(connection, messages) {
15
+ this.connection = connection;
16
+ this.messages = messages;
17
+ }
18
+ /**
19
+ * Checks if the Global Auto Number preference is enabled in the current org.
20
+ *
21
+ * Queries the OmniStudioSettings metadata to determine the current state of the preference.
22
+ * Reads the enableOmniGlobalAutoNumberPref setting from metadata API.
23
+ * Determines whether the Global Auto Number functionality is already active.
24
+ *
25
+ * @returns {Promise<boolean>} True if the preference is enabled, false otherwise
26
+ *
27
+ * @throws {Error} When metadata read operation fails (logged and returns false)
28
+ *
29
+ */
30
+ async isEnabled() {
31
+ try {
32
+ const result = (await this.connection.metadata.read('OmniStudioSettings', ['OmniStudio']));
33
+ return (result === null || result === void 0 ? void 0 : result.enableOmniGlobalAutoNumberPref) === 'true' || false;
34
+ }
35
+ catch (error) {
36
+ const errMsg = error instanceof Error ? error.message : String(error);
37
+ logger_1.Logger.error(this.messages.getMessage('errorCheckingGlobalAutoNumber', [errMsg]));
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * Enables the Global Auto Number preference in the current org.
43
+ *
44
+ * Updates the OmniStudioSettings metadata to enable the Global Auto Number functionality.
45
+ * Uses metadata API to set enableOmniGlobalAutoNumberPref to 'true'.
46
+ * Activates the new Global Auto Number functionality after migration is complete.
47
+ *
48
+ * @returns {Promise<any>} Metadata update result containing success status and any errors
49
+ *
50
+ * @throws {Error} When metadata update operation fails
51
+ *
52
+ */
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ async enable() {
55
+ const result = await this.connection.metadata.update('OmniStudioSettings', [
56
+ {
57
+ fullName: 'OmniStudio',
58
+ enableOmniGlobalAutoNumberPref: 'true',
59
+ },
60
+ ]);
61
+ return result;
62
+ }
63
+ }
64
+ exports.OmniGlobalAutoNumberPrefManager = OmniGlobalAutoNumberPrefManager;
65
+ //# sourceMappingURL=OmniGlobalAutoNumberPrefManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OmniGlobalAutoNumberPrefManager.js","sourceRoot":"","sources":["../../src/utils/OmniGlobalAutoNumberPrefManager.ts"],"names":[],"mappings":";;;AAEA,qCAAkC;AAElC;;;;;;;GAOG;AACH,MAAa,+BAA+B;IAI1C,YAAmB,UAAsB,EAAE,QAAkB;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,SAAS;QACpB,IAAI;YACF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAiB,CAAC;YAC3G,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,8BAA8B,MAAK,MAAM,IAAI,KAAK,CAAC;SACnE;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,8DAA8D;IACvD,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE;YACzE;gBACE,QAAQ,EAAE,YAAY;gBACtB,8BAA8B,EAAE,MAAM;aACvB;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAtDD,0EAsDC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * XMLUtil provides XML parsing and building functionality using the xmldom library.
3
+ *
4
+ * This class handles:
5
+ * - Parsing XML strings into JavaScript objects
6
+ * - Building XML strings from JavaScript objects
7
+ * - Configuring parser options for Salesforce metadata XML structures
8
+ * - Handling arrays for specific FlexiPage elements
9
+ */
10
+ export declare class XMLUtil {
11
+ /** XML parser instance configured for Salesforce metadata */
12
+ private parser;
13
+ /** XML serializer instance configured for formatted output */
14
+ private serializer;
15
+ private alwaysArray;
16
+ private xmlHeader;
17
+ /**
18
+ * Initializes the XMLUtil with configured parser and serializer instances.
19
+ *
20
+ * The parser is configured to:
21
+ * - Parse XML strings into DOM Document objects
22
+ * - Handle Salesforce metadata XML structures
23
+ *
24
+ * The serializer is configured to:
25
+ * - Format output with proper indentation
26
+ * - Preserve XML structure and attributes
27
+ */
28
+ constructor(alwaysArray?: string[]);
29
+ parse(xmlString: string): any;
30
+ build(jsonObject: any, rootElement?: string): string;
31
+ private xmlToJson;
32
+ private jsonToXml;
33
+ private prettyPrintXml;
34
+ }