@jayree/sfdx-plugin-manifest 2.7.4 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +83 -66
  3. package/lib/SDR-extra/utils/localGitRepo.js +1 -1
  4. package/lib/SDR-extra/utils/localGitRepo.js.map +1 -1
  5. package/lib/commands/jayree/manifest/beta/git/diff.d.ts +8 -6
  6. package/lib/commands/jayree/manifest/beta/git/diff.js +11 -11
  7. package/lib/commands/jayree/manifest/beta/git/diff.js.map +1 -1
  8. package/lib/commands/jayree/manifest/cleanup.d.ts +11 -9
  9. package/lib/commands/jayree/manifest/cleanup.js +78 -18
  10. package/lib/commands/jayree/manifest/cleanup.js.map +1 -1
  11. package/lib/commands/jayree/manifest/generate.d.ts +18 -11
  12. package/lib/commands/jayree/manifest/generate.js +57 -48
  13. package/lib/commands/jayree/manifest/generate.js.map +1 -1
  14. package/lib/commands/jayree/manifest/git/diff.d.ts +17 -11
  15. package/lib/commands/jayree/manifest/git/diff.js +479 -55
  16. package/lib/commands/jayree/manifest/git/diff.js.map +1 -1
  17. package/messages/{gitdiffbeta.md → gitdiff.md} +7 -0
  18. package/messages/manifestcleanup.md +21 -0
  19. package/messages/manifestgenerate.md +43 -0
  20. package/oclif.manifest.json +121 -262
  21. package/package.json +19 -20
  22. package/lib/jayreeSfdxCommand.d.ts +0 -8
  23. package/lib/jayreeSfdxCommand.js +0 -26
  24. package/lib/jayreeSfdxCommand.js.map +0 -1
  25. package/lib/utils/gitdiff.d.ts +0 -57
  26. package/lib/utils/gitdiff.js +0 -442
  27. package/lib/utils/gitdiff.js.map +0 -1
  28. package/lib/utils/manifest.d.ts +0 -1
  29. package/lib/utils/manifest.js +0 -66
  30. package/lib/utils/manifest.js.map +0 -1
  31. package/messages/gitdiff.json +0 -12
  32. package/messages/manifestcleanup.json +0 -6
  33. package/messages/manifestgenerate.json +0 -16
@@ -4,17 +4,21 @@
4
4
  * Licensed under the BSD 3-Clause license.
5
5
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
6
  */
7
- import os from 'os';
8
- import { join, dirname, resolve } from 'node:path';
7
+ import { join, basename, sep, posix, dirname, relative, resolve } from 'node:path';
9
8
  import { fileURLToPath } from 'node:url';
10
- import { flags } from '@salesforce/command';
11
- import { Messages, SfError } from '@salesforce/core';
9
+ import { format } from 'node:util';
10
+ import { SfCommand, Flags, arrayWithDeprecation } from '@salesforce/sf-plugins-core';
11
+ import { Messages, SfError, SfProject } from '@salesforce/core';
12
+ import { Args } from '@oclif/core';
12
13
  import fs from 'fs-extra';
13
14
  import { Logger, Listr } from 'listr2';
14
- import kit from '@salesforce/kit';
15
- import { DestructiveChangesType } from '@salesforce/source-deploy-retrieve';
16
- import { JayreeSfdxCommand } from '../../../../jayreeSfdxCommand.js';
17
- import { getGitResults, createVirtualTreeContainer, fixComponentSetChilds, getGitDiff, debug, getGitArgsFromArgv, } from '../../../../utils/gitdiff.js';
15
+ import { env } from '@salesforce/kit';
16
+ import { getString } from '@salesforce/ts-types';
17
+ import equal from 'fast-deep-equal';
18
+ import { ComponentSet, RegistryAccess, registry, VirtualTreeContainer, MetadataResolver, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
19
+ import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
20
+ import Debug from 'debug';
21
+ import git from 'isomorphic-git';
18
22
  // eslint-disable-next-line no-underscore-dangle
19
23
  const __filename = fileURLToPath(import.meta.url);
20
24
  // eslint-disable-next-line no-underscore-dangle
@@ -22,30 +26,25 @@ const __dirname = dirname(__filename);
22
26
  Messages.importMessagesDirectory(__dirname);
23
27
  const messages = Messages.loadMessages('@jayree/sfdx-plugin-manifest', 'gitdiff');
24
28
  const logger = new Logger({ useIcons: false });
25
- // eslint-disable-next-line @typescript-eslint/require-await
26
- const unexpectedArgument = async (input) => {
27
- if (input.includes('-')) {
28
- throw new Error(`Unexpected argument: ${input}
29
- See more help with --help`);
30
- }
31
- return input;
32
- };
33
- export default class GitDiff extends JayreeSfdxCommand {
29
+ const debug = Debug('jayree:manifest:git:diff');
30
+ const registryAccess = new RegistryAccess();
31
+ export default class GitDiff extends SfCommand {
34
32
  async run() {
35
- const sourcepath = this.getFlag('sourcepath');
36
- this.destructiveChangesOnly = this.getFlag('destructivechangesonly');
37
- this.outputDir = this.getFlag('outputdir');
33
+ const { flags, args } = await this.parse(GitDiff);
34
+ const sourcepath = flags['source-dir'];
35
+ this.destructiveChangesOnly = flags['destructive-changes-only'];
36
+ this.outputDir = flags['output-dir'];
38
37
  this.projectRoot = this.project.getPath();
39
- this.sourceApiVersion = (await this.project.retrieveSfProjectJson()).getContents().sourceApiVersion;
38
+ this.sourceApiVersion = await this.getSourceApiVersion();
40
39
  this.destructiveChanges = join(this.outputDir, 'destructiveChanges.xml');
41
40
  this.manifest = join(this.outputDir, 'package.xml');
42
41
  debug({
43
42
  outputDir: this.outputDir,
44
43
  projectRoot: this.projectRoot,
45
44
  });
46
- const isContentTypeJSON = kit.env.getString('SFDX_CONTENT_TYPE', '').toUpperCase() === 'JSON';
45
+ const isContentTypeJSON = env.getString('SFDX_CONTENT_TYPE', '').toUpperCase() === 'JSON';
47
46
  this.isOutputEnabled = !(this.argv.find((arg) => arg === '--json') || isContentTypeJSON);
48
- const gitArgs = await getGitArgsFromArgv(this.args.ref1, this.args.ref2, this.argv, this.projectRoot);
47
+ const gitArgs = await getGitArgsFromArgv(args.ref1, args.ref2, this.argv, this.projectRoot);
49
48
  debug({ gitArgs });
50
49
  const tasks = new Listr([
51
50
  {
@@ -82,7 +81,7 @@ export default class GitDiff extends JayreeSfdxCommand {
82
81
  },
83
82
  },
84
83
  {
85
- title: gitArgs.ref2 !== '' ? `ref2: ${gitArgs.ref2}` : `ref2: (staging area)`,
84
+ title: gitArgs.ref2 !== '' ? `ref2: ${gitArgs.ref2}` : 'ref2: (staging area)',
86
85
  task: async () => {
87
86
  this.ref2VirtualTreeContainer = await createVirtualTreeContainer(gitArgs.ref2, this.projectRoot, this.gitLines.filter((l) => l.status === 'M').map((l) => l.path));
88
87
  },
@@ -169,42 +168,467 @@ export default class GitDiff extends JayreeSfdxCommand {
169
168
  throw e;
170
169
  }
171
170
  }
171
+ async getSourceApiVersion() {
172
+ const projectConfig = await this.project.resolveProjectConfig();
173
+ return getString(projectConfig, 'sourceApiVersion');
174
+ }
172
175
  }
173
- GitDiff.description = messages.getMessage('commandDescription');
174
- GitDiff.examples = messages.getMessage('examples').split(os.EOL);
175
- GitDiff.args = [
176
- {
177
- name: 'ref1',
176
+ GitDiff.summary = messages.getMessage('summary');
177
+ GitDiff.description = messages.getMessage('description');
178
+ GitDiff.examples = messages.getMessages('examples');
179
+ GitDiff.args = {
180
+ ref1: Args.string({
178
181
  required: true,
179
- description: 'base commit or branch',
180
- parse: unexpectedArgument,
181
- hidden: false,
182
- },
183
- {
184
- name: 'ref2',
185
- required: false,
186
- description: 'commit or branch to compare to the base commit',
187
- parse: unexpectedArgument,
188
- hidden: false,
189
- },
190
- ];
191
- GitDiff.flagsConfig = {
192
- sourcepath: flags.array({
193
- char: 'p',
194
- description: messages.getMessage('sourcepath'),
182
+ description: messages.getMessage('args.ref1.description'),
195
183
  }),
196
- outputdir: flags.string({
197
- char: 'o',
198
- description: messages.getMessage('outputdir'),
199
- default: '',
184
+ ref2: Args.string({
185
+ description: messages.getMessage('args.ref2.description'),
200
186
  }),
201
- destructivechangesonly: flags.boolean({
187
+ };
188
+ GitDiff.requiresProject = true;
189
+ GitDiff.flags = {
190
+ 'source-dir': arrayWithDeprecation({
202
191
  char: 'd',
203
- description: messages.getMessage('destructivechangesonly'),
204
- default: false,
192
+ summary: messages.getMessage('flags.source-dir.summary'),
193
+ description: messages.getMessage('flags.source-dir.description'),
194
+ deprecateAliases: true,
195
+ aliases: ['sourcepath', 'p'],
196
+ }),
197
+ 'output-dir': Flags.directory({
198
+ summary: messages.getMessage('flags.output-dir.summary'),
199
+ description: messages.getMessage('flags.output-dir.description'),
200
+ default: '',
201
+ deprecateAliases: true,
202
+ aliases: ['outputdir', 'o'],
203
+ }),
204
+ 'destructive-changes-only': Flags.boolean({
205
+ summary: messages.getMessage('flags.destructive-changes-only.summary'),
206
+ description: messages.getMessage('flags.destructive-changes-only.description'),
207
+ deprecateAliases: true,
208
+ aliases: ['destructivechangesonly'],
205
209
  }),
206
210
  };
207
- GitDiff.requiresUsername = false;
208
- GitDiff.supportsDevhubUsername = false;
209
- GitDiff.requiresProject = true;
211
+ async function resolveRef(refOrig, dir) {
212
+ if (refOrig === '') {
213
+ return '';
214
+ }
215
+ const getCommitLog = async (ref) => {
216
+ try {
217
+ const [log] = await git.log({
218
+ fs,
219
+ dir,
220
+ ref,
221
+ depth: 1,
222
+ });
223
+ return { oid: log.oid, parents: log.commit.parent };
224
+ }
225
+ catch (error) {
226
+ throw new Error(`ambiguous argument '${ref}': unknown revision or path not in the working tree.
227
+ See more help with --help`);
228
+ }
229
+ };
230
+ if (!['~', '^'].some((el) => refOrig.includes(el))) {
231
+ return (await getCommitLog(refOrig)).oid;
232
+ }
233
+ const firstIndex = [refOrig.indexOf('^'), refOrig.indexOf('~')]
234
+ .filter((a) => a >= 0)
235
+ .reduce((a, b) => Math.min(a, b));
236
+ let path = refOrig.substring(firstIndex);
237
+ let ref = refOrig.substring(0, firstIndex);
238
+ while (path.length && ref !== undefined) {
239
+ if (path.startsWith('^')) {
240
+ path = path.substring(1);
241
+ let next = Number(path.substring(0, 1));
242
+ path = next ? path.substring(1) : path;
243
+ next = next ? next : 1;
244
+ // eslint-disable-next-line no-await-in-loop
245
+ ref = (await getCommitLog(ref)).parents[next - 1];
246
+ }
247
+ else if (path.startsWith('~')) {
248
+ path = path.substring(1);
249
+ let next = Number(path.substring(0, 1));
250
+ path = next ? path.substring(1) : path;
251
+ next = next ? next : 1;
252
+ for (let index = 0; index <= next - 1; index++) {
253
+ // eslint-disable-next-line no-await-in-loop
254
+ ref = (await getCommitLog(ref)).parents[0];
255
+ }
256
+ }
257
+ else {
258
+ ref = undefined;
259
+ }
260
+ }
261
+ if (ref === undefined) {
262
+ throw new Error(`ambiguous argument '${refOrig}': unknown revision or path not in the working tree.`);
263
+ }
264
+ return ref;
265
+ }
266
+ async function getGitArgsFromArgv(ref1, ref2, argv, dir) {
267
+ const newArgv = [];
268
+ while (argv.length) {
269
+ let [e] = argv.splice(0, 1);
270
+ if (e.includes('=')) {
271
+ // skip parameter=value
272
+ }
273
+ else if (e.includes('-')) {
274
+ // remove value
275
+ if (argv[0] && !argv[0].includes('-') && ![ref1, ref2].includes(argv[0])) {
276
+ [e] = argv.splice(0, 1);
277
+ }
278
+ }
279
+ else {
280
+ newArgv.push(e);
281
+ }
282
+ }
283
+ argv = newArgv;
284
+ let refString = ref1;
285
+ const a = argv.join('.').split('.');
286
+ if ((a.length === 3 || a.length === 4) && typeof ref2 === 'undefined') {
287
+ ref1 = a[0];
288
+ ref2 = a[a.length - 1];
289
+ }
290
+ else if (a.length === 2 && typeof ref2 !== 'undefined') {
291
+ refString = `${ref1}..${ref2}`;
292
+ }
293
+ else if (a.length === 1) {
294
+ ref2 = '';
295
+ }
296
+ else {
297
+ throw new Error(`Ambiguous ${format('argument%s', argv.length === 1 ? '' : 's')}: ${argv.join(', ')}
298
+ See more help with --help`);
299
+ }
300
+ ref1 = await resolveRef(ref1, dir);
301
+ ref2 = await resolveRef(ref2, dir);
302
+ if (a.length === 4) {
303
+ ref1 = (await git.findMergeBase({
304
+ fs,
305
+ dir,
306
+ oids: [ref2, ref1],
307
+ }))[0];
308
+ }
309
+ return { ref1, ref2, refString };
310
+ }
311
+ function ensureOSPath(path) {
312
+ return path.split(posix.sep).join(sep);
313
+ }
314
+ function ensureGitRelPath(dir, path) {
315
+ return relative(dir, path).split(sep).join(posix.sep);
316
+ }
317
+ async function createVirtualTreeContainer(ref, dir, modifiedFiles) {
318
+ const paths = (await git.listFiles({ fs, dir, ref })).map((p) => join(dir, ensureOSPath(p)));
319
+ const oid = ref ? await git.resolveRef({ fs, dir, ref }) : '';
320
+ const virtualDirectoryByFullPath = new Map();
321
+ for await (const filename of paths) {
322
+ let dirPath = dirname(filename);
323
+ virtualDirectoryByFullPath.set(dirPath, {
324
+ dirPath,
325
+ children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add({
326
+ name: basename(filename),
327
+ data: parseMetadataXml(filename) && modifiedFiles.includes(filename)
328
+ ? oid
329
+ ? Buffer.from((await git.readBlob({ fs, dir, oid, filepath: ensureGitRelPath(dir, filename) })).blob)
330
+ : await fs.readFile(ensureOSPath(filename))
331
+ : Buffer.from(''),
332
+ })),
333
+ });
334
+ const splits = filename.split(sep);
335
+ for (let i = 1; i < splits.length - 1; i++) {
336
+ dirPath = splits.slice(0, i + 1).join(sep);
337
+ virtualDirectoryByFullPath.set(dirPath, {
338
+ dirPath,
339
+ children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add(splits[i + 1])),
340
+ });
341
+ }
342
+ }
343
+ return new VirtualTreeContainer(Array.from(virtualDirectoryByFullPath.values()));
344
+ }
345
+ async function analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer) {
346
+ if (!parseMetadataXml(path)) {
347
+ return { path, status: 0 };
348
+ }
349
+ const ref2resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
350
+ const [ref2Component] = ref2resolver.getComponentsFromPath(path); // git path only conaints files
351
+ const ref1resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
352
+ const [ref1Component] = ref1resolver.getComponentsFromPath(path); // git path only conaints files
353
+ if (ref1resolver.forceIgnoredPaths.has(path) || ref2resolver.forceIgnoredPaths.has(path)) {
354
+ return { path, status: -2 };
355
+ }
356
+ if (equal(await ref1Component.parseXml(), await ref2Component.parseXml())) {
357
+ return { path, status: -1 };
358
+ }
359
+ if (ref1Component.type.strictDirectoryName === true || !ref1Component.type.children) {
360
+ return { path, status: 0 };
361
+ }
362
+ const ref2ChildUniqueIdArray = ref2Component
363
+ .getChildren()
364
+ .map((childComponent) => getUniqueIdentifier(childComponent));
365
+ const ref1ChildUniqueIdArray = ref1Component
366
+ .getChildren()
367
+ .map((childComponent) => getUniqueIdentifier(childComponent));
368
+ const childComponentsNotInRef2 = ref1Component
369
+ .getChildren()
370
+ .filter((childComponent) => !ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // deleted
371
+ const childComponentsNotInRef1 = ref2Component
372
+ .getChildren()
373
+ .filter((childComponent) => !ref1ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // added
374
+ const childComponentsInRef1AndRef2 = ref1Component
375
+ .getChildren()
376
+ .filter((childComponent) => ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // modified?
377
+ debug({ childComponentsNotInRef2, childComponentsNotInRef1, childComponentsInRef1AndRef2 });
378
+ for await (const childComponentRef1 of childComponentsInRef1AndRef2) {
379
+ const [childComponentRef2] = ref2Component
380
+ .getChildren()
381
+ .filter((childComponent) => getUniqueIdentifier(childComponentRef1) === getUniqueIdentifier(childComponent));
382
+ if (!equal(await childComponentRef1.parseXml(), await childComponentRef2.parseXml())) {
383
+ childComponentsNotInRef1.push(childComponentRef2); // modified! -> add to added
384
+ }
385
+ }
386
+ debug({ childComponentsNotInRef1 });
387
+ return {
388
+ path,
389
+ status: 1 + childComponentsNotInRef2.length + childComponentsNotInRef1.length,
390
+ toManifest: childComponentsNotInRef1,
391
+ toDestructiveChanges: childComponentsNotInRef2,
392
+ };
393
+ }
394
+ function getUniqueIdentifier(component) {
395
+ return `${component.type.name}#${component[component.type.uniqueIdElement]}`;
396
+ }
397
+ async function getFileStateChanges(commitHash1, commitHash2, dir) {
398
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
399
+ return git.walk({
400
+ fs,
401
+ dir,
402
+ trees: [git.TREE({ ref: commitHash1 }), git.TREE({ ref: commitHash2 })],
403
+ async map(filepath, [A, B]) {
404
+ if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
405
+ return;
406
+ }
407
+ const Aoid = await A?.oid();
408
+ const Boid = await B?.oid();
409
+ let type = 'EQ';
410
+ if (Aoid !== Boid) {
411
+ type = 'M';
412
+ }
413
+ if (Aoid === undefined) {
414
+ type = 'A';
415
+ }
416
+ if (Boid === undefined) {
417
+ type = 'D';
418
+ }
419
+ if (type !== 'EQ') {
420
+ return {
421
+ path: join(dir, ensureOSPath(filepath)),
422
+ status: type,
423
+ };
424
+ }
425
+ },
426
+ });
427
+ }
428
+ async function getStatusMatrix(dir, ref) {
429
+ const getStatus = (row) => {
430
+ if ([
431
+ [0, 2, 2],
432
+ [0, 2, 3], // added, staged, with unstaged changes
433
+ ].some((a) => a.every((val, index) => val === row[index]))) {
434
+ return 'A';
435
+ }
436
+ if ([
437
+ [1, 0, 0],
438
+ [1, 0, 1],
439
+ [1, 1, 0],
440
+ [1, 2, 0],
441
+ [1, 0, 3], // modified, staged, with unstaged deletion
442
+ ].some((a) => a.every((val, index) => val === row[index]))) {
443
+ return 'D';
444
+ }
445
+ if ([
446
+ [1, 2, 1],
447
+ [1, 2, 2],
448
+ [1, 2, 3], // modified, staged, with unstaged changes
449
+ ].some((a) => a.every((val, index) => val === row[index]))) {
450
+ return 'M';
451
+ }
452
+ };
453
+ const statusMatrix = await git.statusMatrix({ fs, dir, ref });
454
+ const warnings = statusMatrix
455
+ .filter((row) => [
456
+ [0, 2, 0],
457
+ [0, 0, 3],
458
+ [0, 2, 3],
459
+ [1, 2, 1],
460
+ [1, 0, 3],
461
+ [1, 1, 3],
462
+ [1, 2, 3],
463
+ [1, 1, 0],
464
+ [1, 2, 0],
465
+ [1, 0, 1], // deleted, unstaged
466
+ ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
467
+ .map((row) => join(dir, ensureOSPath(row[0])));
468
+ const gitlines = statusMatrix
469
+ .filter((row) => ![
470
+ [0, 0, 0],
471
+ [1, 1, 1],
472
+ [0, 0, 3],
473
+ [0, 2, 0],
474
+ [1, 1, 3], // modified, staged, with unstaged original file
475
+ ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
476
+ .map((row) => ({
477
+ path: join(dir, ensureOSPath(row[0])),
478
+ status: getStatus(row.slice(1)),
479
+ }));
480
+ return { warnings, lines: gitlines };
481
+ }
482
+ async function getGitDiff(ref1, ref2, dir) {
483
+ let gitlines;
484
+ let warnings;
485
+ const proj = await SfProject.resolve();
486
+ const resolveSourcePaths = proj.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
487
+ if (ref2) {
488
+ gitlines = (await getFileStateChanges(ref1, ref2, dir)).filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
489
+ }
490
+ else {
491
+ const { warnings: warn, lines } = await getStatusMatrix(dir, ref1);
492
+ warnings = warn.filter((l) => resolveSourcePaths.some((f) => l.startsWith(f)));
493
+ gitlines = lines.filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
494
+ }
495
+ gitlines = gitlines.filter((line) => {
496
+ if (line.status === 'D') {
497
+ for (const sourcePath of resolveSourcePaths) {
498
+ const defaultFolder = join(sourcePath, 'main', 'default');
499
+ const filePath = line.path.replace(line.path.startsWith(defaultFolder) ? defaultFolder : sourcePath, '');
500
+ const target = gitlines.find((t) => t.path.endsWith(filePath) && t.status === 'A');
501
+ if (target) {
502
+ debug(`rename: ${line.path} -> ${target.path}`);
503
+ return false;
504
+ }
505
+ }
506
+ }
507
+ return true;
508
+ });
509
+ debug({ gitlines, warnings });
510
+ return { gitlines, warnings };
511
+ }
512
+ // eslint-disable-next-line complexity
513
+ async function getGitResults(gitLines, ref1VirtualTreeContainer, ref2VirtualTreeContainer, destructiveChangesOnly, fsPaths) {
514
+ const results = {
515
+ manifest: new ComponentSet(undefined, registryAccess),
516
+ output: {
517
+ unchanged: [],
518
+ ignored: { ref1: [], ref2: [] },
519
+ counts: { added: 0, deleted: 0, modified: 0, unchanged: 0, ignored: 0, error: 0 },
520
+ errors: [],
521
+ },
522
+ };
523
+ const ref1Resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
524
+ const ref2Resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
525
+ const getComponentsFromPath = (resolver, path) => {
526
+ let result = [];
527
+ try {
528
+ result = resolver.getComponentsFromPath(path);
529
+ }
530
+ catch (error) {
531
+ results.output.counts.error++;
532
+ results.output.errors.push(error);
533
+ }
534
+ return result;
535
+ };
536
+ const analyzedFilesPromises = [];
537
+ for (const [, { status, path }] of gitLines.entries()) {
538
+ if (!fsPaths || fsPaths.some((fsPath) => resolve(path).startsWith(fsPath))) {
539
+ if (status === 'D') {
540
+ for (const c of getComponentsFromPath(ref1Resolver, path)) {
541
+ if (c.xml === path || gitLines.find((x) => x.path === c.xml)) {
542
+ results.manifest.add(c, DestructiveChangesType.POST);
543
+ results.output.counts.deleted++;
544
+ }
545
+ else {
546
+ try {
547
+ // in case a binary source file of a bundle was deleted, check if the bundle ist still valid and update instead of delete
548
+ ref2Resolver.getComponentsFromPath(c.xml);
549
+ if (!destructiveChangesOnly) {
550
+ results.manifest.add(c);
551
+ results.output.counts.added++;
552
+ }
553
+ }
554
+ catch (error) {
555
+ results.output.counts.error++;
556
+ results.output.errors.push(error);
557
+ }
558
+ }
559
+ }
560
+ }
561
+ else if (status === 'A') {
562
+ if (!destructiveChangesOnly) {
563
+ for (const c of getComponentsFromPath(ref2Resolver, path)) {
564
+ results.manifest.add(c);
565
+ results.output.counts.added++;
566
+ }
567
+ }
568
+ }
569
+ else {
570
+ analyzedFilesPromises.push(analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer));
571
+ }
572
+ }
573
+ else {
574
+ debug(`${path} not included in sourcepath`);
575
+ }
576
+ }
577
+ for await (const check of analyzedFilesPromises) {
578
+ if (check.status === 0) {
579
+ if (!destructiveChangesOnly) {
580
+ for (const c of getComponentsFromPath(ref2Resolver, check.path)) {
581
+ results.manifest.add(c);
582
+ results.output.counts.modified++;
583
+ }
584
+ }
585
+ }
586
+ else if (check.status === -1) {
587
+ results.output.unchanged.push(check.path);
588
+ results.output.counts.unchanged++;
589
+ }
590
+ else if (check.status === -2) {
591
+ results.output.counts.ignored++;
592
+ results.output.ignored.ref2.push(check.path);
593
+ }
594
+ else {
595
+ if (check.toDestructiveChanges.length > 0 || (check.toManifest.length > 0 && !destructiveChangesOnly)) {
596
+ results.output.counts.modified++;
597
+ }
598
+ for (const c of check.toDestructiveChanges) {
599
+ results.manifest.add(c, DestructiveChangesType.POST);
600
+ }
601
+ if (!destructiveChangesOnly) {
602
+ for (const c of check.toManifest) {
603
+ results.manifest.add(c);
604
+ }
605
+ }
606
+ }
607
+ }
608
+ results.output.ignored = {
609
+ ref1: Array.from(ref1Resolver.forceIgnoredPaths),
610
+ ref2: results.output.ignored.ref2.concat(Array.from(ref2Resolver.forceIgnoredPaths)),
611
+ };
612
+ results.output.counts.ignored =
613
+ results.output.counts.ignored + ref1Resolver.forceIgnoredPaths.size + ref2Resolver.forceIgnoredPaths.size;
614
+ return results;
615
+ }
616
+ function fixComponentSetChilds(cs) {
617
+ let sourceComponents = cs.getSourceComponents();
618
+ // SDR library is more strict and avoids fixes like this
619
+ const childsTobeReplacedByParent = [
620
+ ...Object.keys(registry.types.workflow.children.types),
621
+ ...Object.keys(registry.types.sharingrules.children.types),
622
+ ...Object.keys(registry.types.customobjecttranslation.children.types),
623
+ ...Object.keys(registry.types.bot.children.types),
624
+ ];
625
+ sourceComponents = sourceComponents.map((component) => {
626
+ if (!component.isMarkedForDelete() && childsTobeReplacedByParent.includes(component.type.id)) {
627
+ debug(`replace: ${component.type.name}:${component.fullName} -> ${component.parent.type.name}:${component.parent.fullName}`);
628
+ return component.parent;
629
+ }
630
+ return component;
631
+ });
632
+ return new ComponentSet(sourceComponents, registryAccess);
633
+ }
210
634
  //# sourceMappingURL=diff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../src/commands/jayree/manifest/git/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../src/commands/jayree/manifest/git/diff.ts"],"names":[],"mappings":"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"}