@jayree/sfdx-plugin-manifest 2.7.4 → 2.8.0

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 +19 -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 +14 -15
  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
package/package.json CHANGED
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "name": "@jayree/sfdx-plugin-manifest",
3
3
  "description": "A Salesforce CLI plugin containing commands for creating manifest files from Salesforce orgs or git commits of sfdx projects.",
4
- "version": "2.7.4",
4
+ "version": "2.8.0",
5
5
  "author": "jayree",
6
6
  "type": "module",
7
7
  "bugs": "https://github.com/jayree/sfdx-plugin-manifest/issues",
8
8
  "dependencies": {
9
- "@oclif/core": "^1.24.0",
10
- "@salesforce/command": "^5.2.42",
11
- "@salesforce/kit": "^1.8.3",
12
- "@salesforce/sf-plugins-core": "^1.22.2",
13
- "@salesforce/source-deploy-retrieve": "^7.7.5",
14
- "@salesforce/ts-types": "^1.7.2",
9
+ "@oclif/core": "^2.0.7",
10
+ "@salesforce/kit": "^1.8.4",
11
+ "@salesforce/sf-plugins-core": "^2.0.1",
12
+ "@salesforce/source-deploy-retrieve": "^7.7.6",
13
+ "@salesforce/ts-types": "^1.7.3",
15
14
  "debug": "^4.3.4",
16
15
  "fast-deep-equal": "^3.1.3",
17
16
  "fast-xml-parser": "^4.0.15",
@@ -27,12 +26,12 @@
27
26
  "devDependencies": {
28
27
  "@commitlint/cli": "^17.4.2",
29
28
  "@commitlint/config-conventional": "^17.4.2",
30
- "@oclif/plugin-command-snapshot": "^3.3.1",
31
- "@oclif/plugin-help": "^5.2.1",
29
+ "@oclif/plugin-command-snapshot": "^3.3.2",
30
+ "@oclif/plugin-help": "^5.2.2",
32
31
  "@salesforce/dev-config": "^3.1.0",
33
- "@salesforce/dev-scripts": "^3.1.0",
32
+ "@salesforce/dev-scripts": "^3.1.1",
34
33
  "@salesforce/prettier-config": "^0.0.2",
35
- "@salesforce/ts-sinon": "^1.4.4",
34
+ "@salesforce/ts-sinon": "^1.4.5",
36
35
  "@types/chai": "^4.3.4",
37
36
  "@types/debug": "^4.1.7",
38
37
  "@types/fs-extra": "^11.0.1",
@@ -45,16 +44,16 @@
45
44
  "@typescript-eslint/eslint-plugin": "^5.49.0",
46
45
  "@typescript-eslint/parser": "^5.49.0",
47
46
  "chai": "^4.3.7",
48
- "eslint": "^8.32.0",
47
+ "eslint": "^8.33.0",
49
48
  "eslint-config-oclif": "^4.0",
50
49
  "eslint-config-prettier": "^8.6.0",
51
- "eslint-config-salesforce": "^1.1.0",
50
+ "eslint-config-salesforce": "^1.1.1",
52
51
  "eslint-config-salesforce-typescript": "^1.1.1",
53
52
  "eslint-plugin-header": "^3.1.1",
54
53
  "eslint-plugin-import": "2.27.5",
55
- "eslint-plugin-jsdoc": "^39.6.8",
54
+ "eslint-plugin-jsdoc": "^39.7.4",
56
55
  "eslint-plugin-prettier": "^4.2.1",
57
- "eslint-plugin-sf-plugin": "^1.7.0",
56
+ "eslint-plugin-sf-plugin": "^1.8.0",
58
57
  "husky": "^8.0.3",
59
58
  "is-ci": "^3.0.1",
60
59
  "mocha": "^10.2.0",
@@ -1,8 +0,0 @@
1
- import { SfdxCommand } from '@salesforce/command';
2
- import { Optional } from '@salesforce/ts-types';
3
- export declare abstract class JayreeSfdxCommand extends SfdxCommand {
4
- protected warnIfRunByAlias(aliases: string[], id: string): void;
5
- protected getFlag<T>(flagName: string, defaultVal?: unknown): T;
6
- protected isJsonOutput(): boolean;
7
- protected getSourceApiVersion(): Promise<Optional<string>>;
8
- }
@@ -1,26 +0,0 @@
1
- /*
2
- * Copyright (c) 2022, jayree
3
- * All rights reserved.
4
- * Licensed under the BSD 3-Clause license.
5
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
- */
7
- import { SfdxCommand } from '@salesforce/command';
8
- import { get, getBoolean, getString } from '@salesforce/ts-types';
9
- export class JayreeSfdxCommand extends SfdxCommand {
10
- warnIfRunByAlias(aliases, id) {
11
- if (aliases.some((r) => process.argv.includes(r))) {
12
- this.ux.warn(`You are using a deprecated alias of the command: ${id}`);
13
- }
14
- }
15
- getFlag(flagName, defaultVal) {
16
- return get(this.flags, flagName, defaultVal);
17
- }
18
- isJsonOutput() {
19
- return getBoolean(this.flags, 'json', false);
20
- }
21
- async getSourceApiVersion() {
22
- const projectConfig = await this.project.resolveProjectConfig();
23
- return getString(projectConfig, 'sourceApiVersion');
24
- }
25
- }
26
- //# sourceMappingURL=jayreeSfdxCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jayreeSfdxCommand.js","sourceRoot":"","sources":["../src/jayreeSfdxCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAE5E,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAC/C,gBAAgB,CAAC,OAAiB,EAAE,EAAU;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;IAES,OAAO,CAAI,QAAgB,EAAE,UAAoB;QACzD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAM,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,mBAAmB;QACjC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,57 +0,0 @@
1
- import { ComponentSet, VirtualTreeContainer, SourceComponent, NodeFSTreeContainer as FSTreeContainer } from '@salesforce/source-deploy-retrieve';
2
- import Debug from 'debug';
3
- import git from 'isomorphic-git';
4
- export declare const debug: Debug.Debugger;
5
- type gitResults = {
6
- manifest: ComponentSet;
7
- output: {
8
- unchanged: string[];
9
- ignored: {
10
- ref1: string[];
11
- ref2: string[];
12
- };
13
- counts: {
14
- added: number;
15
- deleted: number;
16
- modified: number;
17
- unchanged: number;
18
- ignored: number;
19
- error: number;
20
- };
21
- errors: string[];
22
- };
23
- };
24
- type git = {
25
- ref1: string;
26
- ref2: string;
27
- refString: string;
28
- };
29
- export type gitLines = Array<{
30
- path: string;
31
- status: string;
32
- }>;
33
- export declare function resolveRef(refOrig: string, dir: string): Promise<string>;
34
- export declare function getGitArgsFromArgv(ref1: string, ref2: string, argv: string[], dir: string): Promise<git>;
35
- export declare function ensureOSPath(path: string): string;
36
- export declare function ensureGitRelPath(dir: string, path: string): string;
37
- export declare function createVirtualTreeContainer(ref: string, dir: string, modifiedFiles: string[]): Promise<VirtualTreeContainer>;
38
- export declare function analyzeFile(path: string, ref1VirtualTreeContainer: VirtualTreeContainer, ref2VirtualTreeContainer: VirtualTreeContainer | FSTreeContainer): Promise<{
39
- path: string;
40
- status: number;
41
- toManifest?: SourceComponent[];
42
- toDestructiveChanges?: SourceComponent[];
43
- }>;
44
- export declare function getUniqueIdentifier(component: SourceComponent): string;
45
- export declare function getFileStateChanges(commitHash1: string, commitHash2: string, dir: string): Promise<[
46
- {
47
- path: string;
48
- status: string;
49
- }
50
- ]>;
51
- export declare function getGitDiff(ref1: string, ref2: string, dir: string): Promise<{
52
- gitlines: gitLines;
53
- warnings: string[];
54
- }>;
55
- export declare function getGitResults(gitLines: gitLines, ref1VirtualTreeContainer: VirtualTreeContainer, ref2VirtualTreeContainer: VirtualTreeContainer | FSTreeContainer, destructiveChangesOnly: boolean, fsPaths: string[]): Promise<gitResults>;
56
- export declare function fixComponentSetChilds(cs: ComponentSet): ComponentSet;
57
- export {};
@@ -1,442 +0,0 @@
1
- /*
2
- * Copyright (c) 2022, jayree
3
- * All rights reserved.
4
- * Licensed under the BSD 3-Clause license.
5
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
- */
7
- import { join, basename, sep, posix, dirname, relative } from 'node:path';
8
- import util from 'util';
9
- import { resolve } from 'node:path';
10
- import fs from 'fs-extra';
11
- import equal from 'fast-deep-equal';
12
- import { ComponentSet, RegistryAccess, registry, VirtualTreeContainer, MetadataResolver, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
13
- import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
14
- import Debug from 'debug';
15
- import git from 'isomorphic-git';
16
- import { SfProject } from '@salesforce/core';
17
- export const debug = Debug('jayree:manifest:git:diff');
18
- const registryAccess = new RegistryAccess();
19
- export async function resolveRef(refOrig, dir) {
20
- if (refOrig === '') {
21
- return '';
22
- }
23
- const getCommitLog = async (ref) => {
24
- try {
25
- const [log] = await git.log({
26
- fs,
27
- dir,
28
- ref,
29
- depth: 1,
30
- });
31
- return { oid: log.oid, parents: log.commit.parent };
32
- }
33
- catch (error) {
34
- throw new Error(`ambiguous argument '${ref}': unknown revision or path not in the working tree.
35
- See more help with --help`);
36
- }
37
- };
38
- if (!['~', '^'].some((el) => refOrig.includes(el))) {
39
- return (await getCommitLog(refOrig)).oid;
40
- }
41
- const firstIndex = [refOrig.indexOf('^'), refOrig.indexOf('~')]
42
- .filter((a) => a >= 0)
43
- .reduce((a, b) => Math.min(a, b));
44
- let path = refOrig.substring(firstIndex);
45
- let ref = refOrig.substring(0, firstIndex);
46
- while (path.length && ref !== undefined) {
47
- if (path.startsWith('^')) {
48
- path = path.substring(1);
49
- let next = Number(path.substring(0, 1));
50
- path = next ? path.substring(1) : path;
51
- next = next ? next : 1;
52
- // eslint-disable-next-line no-await-in-loop
53
- ref = (await getCommitLog(ref)).parents[next - 1];
54
- }
55
- else if (path.startsWith('~')) {
56
- path = path.substring(1);
57
- let next = Number(path.substring(0, 1));
58
- path = next ? path.substring(1) : path;
59
- next = next ? next : 1;
60
- for (let index = 0; index <= next - 1; index++) {
61
- // eslint-disable-next-line no-await-in-loop
62
- ref = (await getCommitLog(ref)).parents[0];
63
- }
64
- }
65
- else {
66
- ref = undefined;
67
- }
68
- }
69
- if (ref === undefined) {
70
- throw new Error(`ambiguous argument '${refOrig}': unknown revision or path not in the working tree.`);
71
- }
72
- return ref;
73
- }
74
- export async function getGitArgsFromArgv(ref1, ref2, argv, dir) {
75
- const newArgv = [];
76
- while (argv.length) {
77
- let [e] = argv.splice(0, 1);
78
- if (e.includes('=')) {
79
- // skip parameter=value
80
- }
81
- else if (e.includes('-')) {
82
- // remove value
83
- if (argv[0] && !argv[0].includes('-') && ![ref1, ref2].includes(argv[0])) {
84
- [e] = argv.splice(0, 1);
85
- }
86
- }
87
- else {
88
- newArgv.push(e);
89
- }
90
- }
91
- argv = newArgv;
92
- let refString = ref1;
93
- const a = argv.join('.').split('.');
94
- if ((a.length === 3 || a.length === 4) && typeof ref2 === 'undefined') {
95
- ref1 = a[0];
96
- ref2 = a[a.length - 1];
97
- }
98
- else if (a.length === 2 && typeof ref2 !== 'undefined') {
99
- refString = `${ref1}..${ref2}`;
100
- }
101
- else if (a.length === 1) {
102
- ref2 = '';
103
- }
104
- else {
105
- throw new Error(`Ambiguous ${util.format('argument%s', argv.length === 1 ? '' : 's')}: ${argv.join(', ')}
106
- See more help with --help`);
107
- }
108
- ref1 = await resolveRef(ref1, dir);
109
- ref2 = await resolveRef(ref2, dir);
110
- if (a.length === 4) {
111
- ref1 = (await git.findMergeBase({
112
- fs,
113
- dir,
114
- oids: [ref2, ref1],
115
- }))[0];
116
- }
117
- return { ref1, ref2, refString };
118
- }
119
- export function ensureOSPath(path) {
120
- return path.split(posix.sep).join(sep);
121
- }
122
- export function ensureGitRelPath(dir, path) {
123
- return relative(dir, path).split(sep).join(posix.sep);
124
- }
125
- export async function createVirtualTreeContainer(ref, dir, modifiedFiles) {
126
- const paths = (await git.listFiles({ fs, dir, ref })).map((p) => join(dir, ensureOSPath(p)));
127
- const oid = ref ? await git.resolveRef({ fs, dir, ref }) : '';
128
- const virtualDirectoryByFullPath = new Map();
129
- for await (const filename of paths) {
130
- let dirPath = dirname(filename);
131
- virtualDirectoryByFullPath.set(dirPath, {
132
- dirPath,
133
- children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add({
134
- name: basename(filename),
135
- data: parseMetadataXml(filename) && modifiedFiles.includes(filename)
136
- ? oid
137
- ? Buffer.from((await git.readBlob({ fs, dir, oid, filepath: ensureGitRelPath(dir, filename) })).blob)
138
- : await fs.readFile(ensureOSPath(filename))
139
- : Buffer.from(''),
140
- })),
141
- });
142
- const splits = filename.split(sep);
143
- for (let i = 1; i < splits.length - 1; i++) {
144
- dirPath = splits.slice(0, i + 1).join(sep);
145
- virtualDirectoryByFullPath.set(dirPath, {
146
- dirPath,
147
- children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add(splits[i + 1])),
148
- });
149
- }
150
- }
151
- return new VirtualTreeContainer(Array.from(virtualDirectoryByFullPath.values()));
152
- }
153
- export async function analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer) {
154
- if (!parseMetadataXml(path)) {
155
- return { path, status: 0 };
156
- }
157
- const ref2resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
158
- const [ref2Component] = ref2resolver.getComponentsFromPath(path); // git path only conaints files
159
- const ref1resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
160
- const [ref1Component] = ref1resolver.getComponentsFromPath(path); // git path only conaints files
161
- if (ref1resolver.forceIgnoredPaths.has(path) || ref2resolver.forceIgnoredPaths.has(path)) {
162
- return { path, status: -2 };
163
- }
164
- if (equal(await ref1Component.parseXml(), await ref2Component.parseXml())) {
165
- return { path, status: -1 };
166
- }
167
- if (ref1Component.type.strictDirectoryName === true || !ref1Component.type.children) {
168
- return { path, status: 0 };
169
- }
170
- const ref2ChildUniqueIdArray = ref2Component
171
- .getChildren()
172
- .map((childComponent) => getUniqueIdentifier(childComponent));
173
- const ref1ChildUniqueIdArray = ref1Component
174
- .getChildren()
175
- .map((childComponent) => getUniqueIdentifier(childComponent));
176
- const childComponentsNotInRef2 = ref1Component
177
- .getChildren()
178
- .filter((childComponent) => !ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // deleted
179
- const childComponentsNotInRef1 = ref2Component
180
- .getChildren()
181
- .filter((childComponent) => !ref1ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // added
182
- const childComponentsInRef1AndRef2 = ref1Component
183
- .getChildren()
184
- .filter((childComponent) => ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // modified?
185
- debug({ childComponentsNotInRef2, childComponentsNotInRef1, childComponentsInRef1AndRef2 });
186
- for await (const childComponentRef1 of childComponentsInRef1AndRef2) {
187
- const [childComponentRef2] = ref2Component
188
- .getChildren()
189
- .filter((childComponent) => getUniqueIdentifier(childComponentRef1) === getUniqueIdentifier(childComponent));
190
- if (!equal(await childComponentRef1.parseXml(), await childComponentRef2.parseXml())) {
191
- childComponentsNotInRef1.push(childComponentRef2); // modified! -> add to added
192
- }
193
- }
194
- debug({ childComponentsNotInRef1 });
195
- return {
196
- path,
197
- status: 1 + childComponentsNotInRef2.length + childComponentsNotInRef1.length,
198
- toManifest: childComponentsNotInRef1,
199
- toDestructiveChanges: childComponentsNotInRef2,
200
- };
201
- }
202
- export function getUniqueIdentifier(component) {
203
- return `${component.type.name}#${component[component.type.uniqueIdElement]}`;
204
- }
205
- export async function getFileStateChanges(commitHash1, commitHash2, dir) {
206
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
207
- return git.walk({
208
- fs,
209
- dir,
210
- trees: [git.TREE({ ref: commitHash1 }), git.TREE({ ref: commitHash2 })],
211
- async map(filepath, [A, B]) {
212
- if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
213
- return;
214
- }
215
- const Aoid = await A?.oid();
216
- const Boid = await B?.oid();
217
- let type = 'EQ';
218
- if (Aoid !== Boid) {
219
- type = 'M';
220
- }
221
- if (Aoid === undefined) {
222
- type = 'A';
223
- }
224
- if (Boid === undefined) {
225
- type = 'D';
226
- }
227
- if (type !== 'EQ') {
228
- return {
229
- path: join(dir, ensureOSPath(filepath)),
230
- status: type,
231
- };
232
- }
233
- },
234
- });
235
- }
236
- async function getStatusMatrix(dir, ref) {
237
- const getStatus = (row) => {
238
- if ([
239
- [0, 2, 2],
240
- [0, 2, 3], // added, staged, with unstaged changes
241
- ].some((a) => a.every((val, index) => val === row[index]))) {
242
- return 'A';
243
- }
244
- if ([
245
- [1, 0, 0],
246
- [1, 0, 1],
247
- [1, 1, 0],
248
- [1, 2, 0],
249
- [1, 0, 3], // modified, staged, with unstaged deletion
250
- ].some((a) => a.every((val, index) => val === row[index]))) {
251
- return 'D';
252
- }
253
- if ([
254
- [1, 2, 1],
255
- [1, 2, 2],
256
- [1, 2, 3], // modified, staged, with unstaged changes
257
- ].some((a) => a.every((val, index) => val === row[index]))) {
258
- return 'M';
259
- }
260
- };
261
- const statusMatrix = await git.statusMatrix({ fs, dir, ref });
262
- const warnings = statusMatrix
263
- .filter((row) => [
264
- [0, 2, 0],
265
- [0, 0, 3],
266
- [0, 2, 3],
267
- [1, 2, 1],
268
- [1, 0, 3],
269
- [1, 1, 3],
270
- [1, 2, 3],
271
- [1, 1, 0],
272
- [1, 2, 0],
273
- [1, 0, 1], // deleted, unstaged
274
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
275
- .map((row) => join(dir, ensureOSPath(row[0])));
276
- const gitlines = statusMatrix
277
- .filter((row) => ![
278
- [0, 0, 0],
279
- [1, 1, 1],
280
- [0, 0, 3],
281
- [0, 2, 0],
282
- [1, 1, 3], // modified, staged, with unstaged original file
283
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
284
- .map((row) => ({
285
- path: join(dir, ensureOSPath(row[0])),
286
- status: getStatus(row.slice(1)),
287
- }));
288
- return { warnings, lines: gitlines };
289
- }
290
- export async function getGitDiff(ref1, ref2, dir) {
291
- let gitlines;
292
- let warnings;
293
- const proj = await SfProject.resolve();
294
- const resolveSourcePaths = proj.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
295
- if (ref2) {
296
- gitlines = (await getFileStateChanges(ref1, ref2, dir)).filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
297
- }
298
- else {
299
- const { warnings: warn, lines } = await getStatusMatrix(dir, ref1);
300
- warnings = warn.filter((l) => resolveSourcePaths.some((f) => l.startsWith(f)));
301
- gitlines = lines.filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
302
- }
303
- gitlines = gitlines.filter((line) => {
304
- if (line.status === 'D') {
305
- for (const sourcePath of resolveSourcePaths) {
306
- const defaultFolder = join(sourcePath, 'main', 'default');
307
- const filePath = line.path.replace(line.path.startsWith(defaultFolder) ? defaultFolder : sourcePath, '');
308
- const target = gitlines.find((t) => t.path.endsWith(filePath) && t.status === 'A');
309
- if (target) {
310
- debug(`rename: ${line.path} -> ${target.path}`);
311
- return false;
312
- }
313
- }
314
- }
315
- return true;
316
- });
317
- debug({ gitlines, warnings });
318
- return { gitlines, warnings };
319
- }
320
- // eslint-disable-next-line complexity
321
- export async function getGitResults(gitLines, ref1VirtualTreeContainer, ref2VirtualTreeContainer, destructiveChangesOnly, fsPaths) {
322
- const results = {
323
- manifest: new ComponentSet(undefined, registryAccess),
324
- output: {
325
- unchanged: [],
326
- ignored: { ref1: [], ref2: [] },
327
- counts: { added: 0, deleted: 0, modified: 0, unchanged: 0, ignored: 0, error: 0 },
328
- errors: [],
329
- },
330
- };
331
- const ref1Resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
332
- const ref2Resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
333
- const getComponentsFromPath = (resolver, path) => {
334
- let result = [];
335
- try {
336
- result = resolver.getComponentsFromPath(path);
337
- }
338
- catch (error) {
339
- results.output.counts.error++;
340
- results.output.errors.push(error);
341
- }
342
- return result;
343
- };
344
- const analyzedFilesPromises = [];
345
- for (const [, { status, path }] of gitLines.entries()) {
346
- if (!fsPaths || fsPaths.some((fsPath) => resolve(path).startsWith(fsPath))) {
347
- if (status === 'D') {
348
- for (const c of getComponentsFromPath(ref1Resolver, path)) {
349
- if (c.xml === path || gitLines.find((x) => x.path === c.xml)) {
350
- results.manifest.add(c, DestructiveChangesType.POST);
351
- results.output.counts.deleted++;
352
- }
353
- else {
354
- try {
355
- // in case a binary source file of a bundle was deleted, check if the bundle ist still valid and update instead of delete
356
- ref2Resolver.getComponentsFromPath(c.xml);
357
- if (!destructiveChangesOnly) {
358
- results.manifest.add(c);
359
- results.output.counts.added++;
360
- }
361
- }
362
- catch (error) {
363
- results.output.counts.error++;
364
- results.output.errors.push(error);
365
- }
366
- }
367
- }
368
- }
369
- else if (status === 'A') {
370
- if (!destructiveChangesOnly) {
371
- for (const c of getComponentsFromPath(ref2Resolver, path)) {
372
- results.manifest.add(c);
373
- results.output.counts.added++;
374
- }
375
- }
376
- }
377
- else {
378
- analyzedFilesPromises.push(analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer));
379
- }
380
- }
381
- else {
382
- debug(`${path} not included in sourcepath`);
383
- }
384
- }
385
- for await (const check of analyzedFilesPromises) {
386
- if (check.status === 0) {
387
- if (!destructiveChangesOnly) {
388
- for (const c of getComponentsFromPath(ref2Resolver, check.path)) {
389
- results.manifest.add(c);
390
- results.output.counts.modified++;
391
- }
392
- }
393
- }
394
- else if (check.status === -1) {
395
- results.output.unchanged.push(check.path);
396
- results.output.counts.unchanged++;
397
- }
398
- else if (check.status === -2) {
399
- results.output.counts.ignored++;
400
- results.output.ignored.ref2.push(check.path);
401
- }
402
- else {
403
- if (check.toDestructiveChanges.length > 0 || (check.toManifest.length > 0 && !destructiveChangesOnly)) {
404
- results.output.counts.modified++;
405
- }
406
- for (const c of check.toDestructiveChanges) {
407
- results.manifest.add(c, DestructiveChangesType.POST);
408
- }
409
- if (!destructiveChangesOnly) {
410
- for (const c of check.toManifest) {
411
- results.manifest.add(c);
412
- }
413
- }
414
- }
415
- }
416
- results.output.ignored = {
417
- ref1: Array.from(ref1Resolver.forceIgnoredPaths),
418
- ref2: results.output.ignored.ref2.concat(Array.from(ref2Resolver.forceIgnoredPaths)),
419
- };
420
- results.output.counts.ignored =
421
- results.output.counts.ignored + ref1Resolver.forceIgnoredPaths.size + ref2Resolver.forceIgnoredPaths.size;
422
- return results;
423
- }
424
- export function fixComponentSetChilds(cs) {
425
- let sourceComponents = cs.getSourceComponents();
426
- // SDR library is more strict and avoids fixes like this
427
- const childsTobeReplacedByParent = [
428
- ...Object.keys(registry.types.workflow.children.types),
429
- ...Object.keys(registry.types.sharingrules.children.types),
430
- ...Object.keys(registry.types.customobjecttranslation.children.types),
431
- ...Object.keys(registry.types.bot.children.types),
432
- ];
433
- sourceComponents = sourceComponents.map((component) => {
434
- if (!component.isMarkedForDelete() && childsTobeReplacedByParent.includes(component.type.id)) {
435
- debug(`replace: ${component.type.name}:${component.fullName} -> ${component.parent.type.name}:${component.parent.fullName}`);
436
- return component.parent;
437
- }
438
- return component;
439
- });
440
- return new ComponentSet(sourceComponents, registryAccess);
441
- }
442
- //# sourceMappingURL=gitdiff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitdiff.js","sourceRoot":"","sources":["../../src/utils/gitdiff.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function cleanupManifestFile(manifest: string, ignoreManifest: string): Promise<void>;