@marsson/ciutils 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -202
- package/lib/commands/validate/repository/metadata.js +297 -81
- package/lib/commands/validate/repository/metadata.js.map +1 -1
- package/oclif.lock +2494 -2644
- package/oclif.manifest.json +9 -1
- package/package.json +3 -3
@@ -1,8 +1,12 @@
|
|
1
1
|
/* eslint-disable */
|
2
|
-
//Needed as I do not know the fucking structure of deployment warnings...
|
3
|
-
import { spawn } from 'node:child_process';
|
4
2
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
3
|
+
import { ux } from '@oclif/core';
|
5
4
|
import { Messages } from '@salesforce/core';
|
5
|
+
import { promises as fsPromises, statSync } from 'fs';
|
6
|
+
import * as fs from 'fs';
|
7
|
+
import * as path from 'path';
|
8
|
+
//import JSZip from 'jszip';
|
9
|
+
import { MetadataResolver, ComponentSet } from '@salesforce/source-deploy-retrieve';
|
6
10
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
7
11
|
const messages = Messages.loadMessages('@marsson/ciutils', 'validate.repository.metadata');
|
8
12
|
export default class ValidateRepositoryMetadata extends SfCommand {
|
@@ -23,51 +27,76 @@ export default class ValidateRepositoryMetadata extends SfCommand {
|
|
23
27
|
required: true,
|
24
28
|
exists: true,
|
25
29
|
}),
|
30
|
+
debug: Flags.boolean({
|
31
|
+
summary: 'Show debug logs',
|
32
|
+
char: 'd',
|
33
|
+
required: false,
|
34
|
+
default: false,
|
35
|
+
}),
|
26
36
|
};
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
37
|
+
connection;
|
38
|
+
debugMode = false;
|
39
|
+
// Helper method for conditional debug logging
|
40
|
+
debugLog(message) {
|
41
|
+
if (this.debugMode) {
|
42
|
+
this.log(`[DEBUG] ${message}`);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
// Helper method for standardized error handling
|
46
|
+
handleError(context, error, throwError = true) {
|
47
|
+
const errorMessage = `Error in ${context}: ${error.message}`;
|
48
|
+
this.debugLog(errorMessage);
|
49
|
+
this.debugLog(`Error stack: ${error.stack}`);
|
50
|
+
const formattedError = new Error(errorMessage);
|
51
|
+
if (throwError) {
|
52
|
+
throw formattedError;
|
53
|
+
}
|
54
|
+
return formattedError;
|
55
|
+
}
|
56
|
+
getMetadataTypesFromFolder(directory) {
|
57
|
+
this.debugLog(`Starting getMetadataTypesFromDirectory for directory: ${directory}`);
|
58
|
+
const metadataTypes = {};
|
59
|
+
try {
|
60
|
+
const resolver = new MetadataResolver();
|
61
|
+
const components = resolver.getComponentsFromPath(directory);
|
62
|
+
if (components.length > 0) {
|
63
|
+
this.debugLog(`Processing ${components.length} components`);
|
64
|
+
for (const component of components) {
|
65
|
+
const allComponents = [component, ...component.getChildren()];
|
66
|
+
for (const subComponent of allComponents) {
|
67
|
+
const typeName = subComponent.type.name;
|
68
|
+
const fullName = subComponent.fullName;
|
69
|
+
const contentPath = subComponent.content ?? subComponent.xml;
|
70
|
+
const absolutePath = contentPath ? path.resolve(contentPath) : null;
|
71
|
+
const metadataItem = {
|
72
|
+
metadataName: fullName,
|
73
|
+
path: absolutePath,
|
74
|
+
};
|
75
|
+
if (!metadataTypes[typeName]) {
|
76
|
+
metadataTypes[typeName] = {};
|
77
|
+
}
|
78
|
+
if (!metadataTypes[typeName][fullName]) {
|
79
|
+
metadataTypes[typeName][fullName] = metadataItem;
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
this.debugLog(`[DUPLICATE] Skipping duplicate: ${typeName} - ${fullName}`);
|
83
|
+
}
|
84
|
+
}
|
63
85
|
}
|
64
|
-
}
|
65
|
-
|
66
|
-
|
67
|
-
}
|
68
|
-
|
86
|
+
}
|
87
|
+
else {
|
88
|
+
this.debugLog(`No metadata components found in: ${directory}`);
|
89
|
+
}
|
90
|
+
this.debugLog(`Completed scan. Found ${Object.keys(metadataTypes).length} metadata types.`);
|
91
|
+
return metadataTypes;
|
92
|
+
}
|
93
|
+
catch (error) {
|
94
|
+
this.handleError('getMetadataTypesFromDirectory', error);
|
95
|
+
return metadataTypes;
|
96
|
+
}
|
69
97
|
}
|
70
|
-
|
98
|
+
// Compare retrieved metadata with local files
|
99
|
+
async compareMetadata(downloadedMetadataTypes, metadataTypes) {
|
71
100
|
const result = {
|
72
101
|
status: 0,
|
73
102
|
unchanged: [],
|
@@ -75,45 +104,226 @@ export default class ValidateRepositoryMetadata extends SfCommand {
|
|
75
104
|
deleted: [],
|
76
105
|
error: []
|
77
106
|
};
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
if (
|
83
|
-
|
84
|
-
|
85
|
-
|
107
|
+
this.debugLog(`Starting metadata comparison between local and retrieved metadata`);
|
108
|
+
for (const metadataType in metadataTypes) {
|
109
|
+
this.debugLog(`Processing metadata type: ${metadataType}`);
|
110
|
+
const localComponents = metadataTypes[metadataType];
|
111
|
+
if (!downloadedMetadataTypes[metadataType]) {
|
112
|
+
this.debugLog(`Metadata type ${metadataType} not found in retrieved metadata - all components deleted`);
|
113
|
+
for (const componentName in localComponents) {
|
114
|
+
const component = localComponents[componentName];
|
115
|
+
result.deleted.push({
|
116
|
+
changed: false,
|
117
|
+
componentType: metadataType,
|
118
|
+
created: false,
|
119
|
+
createdDate: new Date().toISOString(),
|
120
|
+
deleted: true,
|
121
|
+
fileName: component.path || '',
|
122
|
+
fullName: component.metadataName,
|
123
|
+
success: true,
|
124
|
+
metadataTypeOrigin: metadataType
|
125
|
+
});
|
126
|
+
}
|
127
|
+
continue;
|
86
128
|
}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
129
|
+
const retrievedComponents = downloadedMetadataTypes[metadataType];
|
130
|
+
for (const componentName in localComponents) {
|
131
|
+
const localComponent = localComponents[componentName];
|
132
|
+
const retrievedComponent = retrievedComponents[componentName];
|
133
|
+
this.debugLog(`🔍 Comparing ${metadataType}.${componentName}`);
|
134
|
+
if (!retrievedComponent) {
|
135
|
+
this.debugLog(`Component ${componentName} of type ${metadataType} not found in retrieved metadata - deleted`);
|
136
|
+
result.deleted.push({
|
137
|
+
changed: false,
|
138
|
+
componentType: metadataType,
|
139
|
+
created: false,
|
140
|
+
createdDate: new Date().toISOString(),
|
141
|
+
deleted: true,
|
142
|
+
fileName: localComponent.path || '',
|
143
|
+
fullName: localComponent.metadataName,
|
144
|
+
success: true,
|
145
|
+
metadataTypeOrigin: metadataType
|
146
|
+
});
|
147
|
+
continue;
|
148
|
+
}
|
149
|
+
const areEqual = this.areComponentsEqual(localComponent, retrievedComponent);
|
150
|
+
if (localComponent.path &&
|
151
|
+
retrievedComponent.path &&
|
152
|
+
areEqual === true) {
|
153
|
+
this.debugLog(`✅ Component ${componentName} of type ${metadataType} is unchanged`);
|
154
|
+
}
|
155
|
+
else if (areEqual === false) {
|
156
|
+
this.debugLog(`⚠️ Component ${componentName} of type ${metadataType} has changed`);
|
157
|
+
result.changed.push({
|
158
|
+
changed: true,
|
159
|
+
componentType: metadataType,
|
160
|
+
created: false,
|
161
|
+
createdDate: new Date().toISOString(),
|
162
|
+
deleted: false,
|
163
|
+
fileName: localComponent.path || '',
|
164
|
+
fullName: localComponent.metadataName,
|
165
|
+
success: true,
|
166
|
+
metadataTypeOrigin: metadataType
|
167
|
+
});
|
168
|
+
}
|
169
|
+
else {
|
170
|
+
this.debugLog(`⏭️ Skipping ${componentName} of type ${metadataType} — possibly a directory or unreadable file.`);
|
171
|
+
// Optional: add to result.error if needed
|
172
|
+
}
|
91
173
|
}
|
92
|
-
|
93
|
-
|
94
|
-
ajson.result.details.componentFailures.forEach((component) => {
|
95
|
-
result.error.push(component);
|
174
|
+
}
|
175
|
+
if (result.error.length > 0) {
|
96
176
|
result.status = 3;
|
97
|
-
}
|
177
|
+
}
|
178
|
+
else if (result.changed.length > 0 || result.deleted.length > 0) {
|
179
|
+
result.status = 1;
|
180
|
+
}
|
181
|
+
else {
|
182
|
+
result.status = 0;
|
183
|
+
}
|
184
|
+
this.debugLog(`Metadata comparison completed with status: ${result.status}`);
|
185
|
+
this.debugLog(`Unchanged: ${result.unchanged.length}, Changed: ${result.changed.length}, Deleted: ${result.deleted.length}, Error: ${result.error.length}`);
|
98
186
|
return result;
|
99
187
|
}
|
188
|
+
// Helper method to compare two components
|
189
|
+
areComponentsEqual(localComponent, retrievedComponent) {
|
190
|
+
try {
|
191
|
+
const normalize = (content) => {
|
192
|
+
return content
|
193
|
+
.replace(/\r\n/g, '\n')
|
194
|
+
.replace(/<!--[\s\S]*?-->/g, '') // Remove XML comments
|
195
|
+
.replace(/^\s+|\s+$/gm, '') // Trim each line
|
196
|
+
.replace(/\s+/g, ' ') // Normalize whitespace
|
197
|
+
.trim();
|
198
|
+
};
|
199
|
+
if (!localComponent.path || !retrievedComponent.path) {
|
200
|
+
return false;
|
201
|
+
}
|
202
|
+
const isFile = (p) => {
|
203
|
+
try {
|
204
|
+
return statSync(p).isFile();
|
205
|
+
}
|
206
|
+
catch {
|
207
|
+
return false;
|
208
|
+
}
|
209
|
+
};
|
210
|
+
if (!isFile(localComponent.path) || !isFile(retrievedComponent.path)) {
|
211
|
+
this.debugLog(`[SKIP] One of the components is a directory. Skipping comparison for ${localComponent.metadataName}`);
|
212
|
+
return null;
|
213
|
+
}
|
214
|
+
const localContent = fs.readFileSync(localComponent.path, 'utf8');
|
215
|
+
const retrievedContent = fs.readFileSync(retrievedComponent.path, 'utf8');
|
216
|
+
const normalizedLocal = normalize(localContent);
|
217
|
+
const normalizedRetrieved = normalize(retrievedContent);
|
218
|
+
if (normalizedLocal === normalizedRetrieved) {
|
219
|
+
//this.log(`${localComponent.metadataName} EQUAL`);
|
220
|
+
return true;
|
221
|
+
}
|
222
|
+
//this.log(`${localComponent.metadataName} DIFFERENT`);
|
223
|
+
return false;
|
224
|
+
}
|
225
|
+
catch (error) {
|
226
|
+
//this.log(`${localComponent.metadataName} ERROR`);
|
227
|
+
if (error instanceof Error && 'errno' in error) {
|
228
|
+
this.debugLog(`Error comparing files: ${error.errno}`);
|
229
|
+
if (error.errno === -21) {
|
230
|
+
return null;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
return false;
|
234
|
+
}
|
235
|
+
}
|
236
|
+
// Cache for MetadataResolver instances to improve performance
|
237
|
+
/*
|
238
|
+
private resolverCache = new Map<string, any[]>();
|
239
|
+
*/
|
240
|
+
getComponentSetFromFolder(path) {
|
241
|
+
const resolver = new MetadataResolver();
|
242
|
+
const components = resolver.getComponentsFromPath(path);
|
243
|
+
return new ComponentSet(components);
|
244
|
+
}
|
245
|
+
async retrieveComponents(componentSet, conn) {
|
246
|
+
ux.action.start('Retrieving metadata from org'); // 👈 Starts the spinner
|
247
|
+
try {
|
248
|
+
const outputPath = path.join(process.cwd(), '.output');
|
249
|
+
await fsPromises.rm(outputPath, { recursive: true, force: true });
|
250
|
+
const retrieve = await componentSet.retrieve({
|
251
|
+
usernameOrConnection: conn,
|
252
|
+
output: outputPath,
|
253
|
+
merge: false, // Optional: if true, will merge into local project
|
254
|
+
});
|
255
|
+
// Optionally wait for the result:
|
256
|
+
const result = await retrieve.pollStatus(5000, 300000);
|
257
|
+
if (result.response.status === 'Succeeded') {
|
258
|
+
ux.action.stop('✔️ Retrieve complete'); // 👈 Spinner stops with success message
|
259
|
+
}
|
260
|
+
else {
|
261
|
+
ux.action.stop(`❌ Failed: ${result.response.status}`);
|
262
|
+
}
|
263
|
+
// ✅ Return the actual folder path
|
264
|
+
const entries = fs.readdirSync(outputPath, { withFileTypes: true });
|
265
|
+
const firstFolder = entries.find(entry => entry.isDirectory());
|
266
|
+
return firstFolder ? path.join(outputPath, firstFolder.name) : undefined;
|
267
|
+
}
|
268
|
+
catch (error) {
|
269
|
+
ux.action.stop('❌ Error during retrieve');
|
270
|
+
throw error;
|
271
|
+
}
|
272
|
+
}
|
100
273
|
async run() {
|
101
274
|
const { flags } = await this.parse(ValidateRepositoryMetadata);
|
275
|
+
// Set debug mode based on flag
|
276
|
+
this.debugMode = flags.debug;
|
277
|
+
this.debugLog(`Starting ValidateRepositoryMetadata.run()`);
|
278
|
+
this.debugLog(`Parsing command flags`);
|
102
279
|
const folder = flags.folder;
|
103
|
-
|
104
|
-
|
280
|
+
this.debugLog(`Using folder: ${folder}`);
|
281
|
+
this.debugLog(`Getting connection from target org: ${flags['target-org'].getUsername()}`);
|
282
|
+
this.connection = flags['target-org'].getConnection();
|
283
|
+
this.debugLog(`Connection established to org: ${this.connection.getUsername()}`);
|
105
284
|
try {
|
106
|
-
|
285
|
+
// Get metadata types from the directory
|
286
|
+
this.debugLog(`Step 1: Getting componentSet from directory: ${folder}`);
|
287
|
+
//this.log('Getting componentSet...');
|
288
|
+
const componentSet = this.getComponentSetFromFolder(folder);
|
289
|
+
// Retrieve metadata from the org
|
290
|
+
this.debugLog(`Step 2: Retrieving metadata from org`);
|
291
|
+
this.log('Retrieving metadata from org...');
|
292
|
+
const resultFolder = await this.retrieveComponents(componentSet, this.connection);
|
293
|
+
this.debugLog(`Successfully retrieved metadata from org`);
|
294
|
+
const originalMetadata = this.getMetadataTypesFromFolder(folder);
|
295
|
+
const retrievedMetadata = this.getMetadataTypesFromFolder(resultFolder);
|
296
|
+
// Compare retrieved metadata with local files
|
297
|
+
this.debugLog(`Step 3: Comparing retrieved metadata with local files`);
|
298
|
+
this.log('Comparing metadata with local files...');
|
299
|
+
const comparisonResult = await this.compareMetadata(retrievedMetadata, originalMetadata);
|
300
|
+
this.debugLog(`Comparison completed with status: ${comparisonResult.status}`);
|
301
|
+
// Display the results
|
302
|
+
this.debugLog(`Step 4: Displaying results`);
|
303
|
+
this.createTable(comparisonResult);
|
304
|
+
this.debugLog(`Results displayed to user`);
|
305
|
+
this.debugLog(`ValidateRepositoryMetadata.run() completed successfully`);
|
306
|
+
// return comparisonResult;
|
307
|
+
this.debugLog(`ValidateRepositoryMetadata.run() completed successfully`);
|
308
|
+
return comparisonResult;
|
107
309
|
}
|
108
310
|
catch (error) {
|
109
|
-
|
311
|
+
// Log the error but don't throw it since we're in the main run method
|
312
|
+
const formattedError = this.handleError('ValidateRepositoryMetadata.run', error, false);
|
313
|
+
this.error(`Error: ${formattedError.message}`);
|
314
|
+
// Return a default error result
|
315
|
+
this.debugLog(`Returning default error result`);
|
316
|
+
return {
|
317
|
+
status: 3,
|
318
|
+
unchanged: [],
|
319
|
+
changed: [],
|
320
|
+
deleted: [],
|
321
|
+
error: []
|
322
|
+
};
|
110
323
|
}
|
111
|
-
const validationResult = JSON.parse(jsonString);
|
112
|
-
const result = ValidateRepositoryMetadata.generateResultFromJSON(validationResult);
|
113
|
-
this.createTable(result);
|
114
|
-
return result;
|
115
324
|
}
|
116
325
|
createTable(result) {
|
326
|
+
this.debugLog(`Creating result table with status: ${result.status}`);
|
117
327
|
switch (result.status) {
|
118
328
|
case 0:
|
119
329
|
this.log('\n✅ Result Status: Repo in sync');
|
@@ -124,33 +334,39 @@ export default class ValidateRepositoryMetadata extends SfCommand {
|
|
124
334
|
case 3:
|
125
335
|
this.log('\n❌ Result Status: Error on component validation to ORG:');
|
126
336
|
}
|
337
|
+
// Helper function to create component data for tables
|
338
|
+
const createComponentData = (components) => {
|
339
|
+
return components.map((component) => ({
|
340
|
+
'Component Name': component.fullName,
|
341
|
+
'Type': component.componentType,
|
342
|
+
'Metadata Type Origin': component.metadataTypeOrigin || 'Unknown'
|
343
|
+
}));
|
344
|
+
};
|
127
345
|
if (result.changed.length > 0) {
|
128
346
|
this.log('\n📌 Altered components:');
|
129
347
|
this.table({
|
130
|
-
data: result.changed
|
131
|
-
'Component Name': component.fullName, // Column Name in Table
|
132
|
-
'Type': component.componentType // Column Name in Table
|
133
|
-
}))
|
348
|
+
data: createComponentData(result.changed)
|
134
349
|
});
|
135
350
|
}
|
351
|
+
else {
|
352
|
+
this.debugLog(`No altered components to display`);
|
353
|
+
}
|
136
354
|
if (result.deleted.length > 0) {
|
137
355
|
this.log('\n🧽 Removed components:');
|
138
356
|
this.table({
|
139
|
-
data: result.deleted
|
140
|
-
'Component Name': component.fullName, // Column Name in Table
|
141
|
-
'Type': component.componentType // Column Name in Table
|
142
|
-
}))
|
357
|
+
data: createComponentData(result.deleted)
|
143
358
|
});
|
144
359
|
}
|
145
360
|
if (result.error.length > 0) {
|
146
361
|
this.log('\n❌ Errored out Components:');
|
147
362
|
this.table({
|
148
|
-
data: result.error
|
149
|
-
'Component Name': component.fullName, // Column Name in Table
|
150
|
-
'Type': component.componentType, // Column Name in Table
|
151
|
-
}))
|
363
|
+
data: createComponentData(result.error)
|
152
364
|
});
|
153
365
|
}
|
366
|
+
else {
|
367
|
+
this.debugLog(`No components with errors to display`);
|
368
|
+
}
|
369
|
+
this.debugLog(`Result table creation completed`);
|
154
370
|
}
|
155
371
|
}
|
156
372
|
//# sourceMappingURL=metadata.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/commands/validate/repository/metadata.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/commands/validate/repository/metadata.ts"],"names":[],"mappings":"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"}
|