@jayree/sfdx-plugin-manifest 2.7.3 → 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 +30 -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 +319 -1
  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
@@ -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>;
@@ -1,66 +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 { CliUx } from '@oclif/core';
8
- import fs from 'fs-extra';
9
- import { ensureArray } from '@salesforce/kit';
10
- import { XMLParser, XMLBuilder } from 'fast-xml-parser';
11
- import { XML_DECL, XML_NS_KEY, XML_NS_URL } from '@salesforce/source-deploy-retrieve/lib/src/common/index.js';
12
- function parseManifest(xmlData) {
13
- const parser = new XMLParser({ stopNodes: ['version'], parseTagValue: false });
14
- const { Package: { types, version }, } = parser.parse(xmlData);
15
- const packageTypeMembers = ensureArray(types);
16
- return { packageTypeMembers, version };
17
- }
18
- function js2Manifest(jsData) {
19
- const js2Xml = new XMLBuilder({ format: true, indentBy: ' ', ignoreAttributes: false });
20
- jsData.Package[XML_NS_KEY] = XML_NS_URL;
21
- return XML_DECL.concat(js2Xml.build(jsData));
22
- }
23
- export async function cleanupManifestFile(manifest, ignoreManifest) {
24
- const { packageTypeMembers: manifestTypeMembers, version } = parseManifest(fs.readFileSync(manifest, 'utf8'));
25
- CliUx.ux.log(`apply '${ignoreManifest}' to '${manifest}'`);
26
- const typeMap = new Map();
27
- manifestTypeMembers.forEach((value) => {
28
- typeMap.set(value.name, ensureArray(value.members));
29
- });
30
- const { packageTypeMembers: ignoreTypeMembers } = parseManifest(fs.readFileSync(ignoreManifest, 'utf8'));
31
- ignoreTypeMembers.forEach((types) => {
32
- if (typeMap.get(types.name)) {
33
- const packageTypeMembers = ensureArray(types.members);
34
- if (packageTypeMembers.includes('*') && packageTypeMembers.length > 1) {
35
- const includemembers = packageTypeMembers.slice();
36
- includemembers.splice(includemembers.indexOf('*'), 1);
37
- const includedmembers = typeMap.get(types.name).filter((value) => includemembers.includes(value));
38
- if (includedmembers.length) {
39
- CliUx.ux.log('include only members ' + includedmembers.toString() + ' for type ' + types.name);
40
- typeMap.set(types.name, includedmembers);
41
- }
42
- }
43
- if (packageTypeMembers.includes('*') && packageTypeMembers.length === 1) {
44
- CliUx.ux.log('exclude all members for type ' + types.name);
45
- typeMap.delete(types.name);
46
- }
47
- if (!packageTypeMembers.includes('*')) {
48
- const includedmembers = typeMap.get(types.name).filter((value) => !packageTypeMembers.includes(value));
49
- typeMap.set(types.name, includedmembers);
50
- }
51
- packageTypeMembers.forEach((member) => {
52
- if (member.startsWith('!')) {
53
- typeMap.get(types.name).push(member.substring(1));
54
- }
55
- });
56
- }
57
- });
58
- const typeMembers = [];
59
- for (const [typeName, members] of typeMap.entries()) {
60
- if (members.length) {
61
- typeMembers.push({ name: typeName, members });
62
- }
63
- }
64
- await fs.writeFile(manifest, js2Manifest({ Package: { types: typeMembers, version } }));
65
- }
66
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/utils/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- {
2
- "commandDescription": "create a manifest and destructiveChanges manifest using 'git diff' data\nUse this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.\n\nYou can use all ways to spell <commit> which are valid for 'git diff'.\n(See https://git-scm.com/docs/git-diff)",
3
- "examples": [
4
- "$ sfdx jayree:manifest:git:diff <commit> <commit>\n$ sfdx jayree:manifest:git:diff <commit>..<commit>\nuses the changes between two arbitrary <commit>",
5
- "$ sfdx jayree:manifest:git:diff <commit>...<commit>\nuses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.",
6
- "$ sfdx jayree:manifest:git:diff branchA..branchB\nuses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)",
7
- "$ sfdx jayree:manifest:git:diff branchA...branchB\nuses the diff of what is unique in branchB (REF2)"
8
- ],
9
- "outputdir": "directory to save the created manifest files",
10
- "sourcepath": "comma-separated list of source file paths to limit the diff",
11
- "destructivechangesonly": "create a destructiveChanges manifest only (package.xml will be empty)"
12
- }
@@ -1,6 +0,0 @@
1
- {
2
- "commandDescription": "removes those tags from a manifest file that are present in a second manifest file\nUse this command to remove components or metadata types from a manifes file.\nIf the 'cleanup' manifest file (--file) doesn't exist, a template file is created, which can then be modified.",
3
- "manifestFlagDescription": "path to the manifest file",
4
- "fileFlagDescription": "path to the second 'cleanup' manifest file",
5
- "examples": ["$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml"]
6
- }
@@ -1,16 +0,0 @@
1
- {
2
- "commandDescription": "generate a complete manifest file form the specified org\nUse this command to generate a manifest file based on an existing org.",
3
- "configFlagDescription": "path to config file",
4
- "quickfilterFlagDescription": "csv separated list of metadata type, member or file names to filter on",
5
- "matchCaseFlagDescription": "enable 'match case' for the quickfilter",
6
- "matchWholeWordFlagDescription": "enable 'match whole word' for the quickfilter",
7
- "fileFlagDescription": "write to 'file' instead of stdout",
8
- "excludeManagedFlagDescription": "exclude managed packages from output",
9
- "excludeAllFlagDescription": "exclude all packages from output",
10
- "includeflowversionsDescription": "include flow versions as with api version 43.0",
11
- "examples": [
12
- "$ sfdx jayree:manifest:generate --targetusername myOrg@example.com",
13
- "<?xml version='1.0' encoding='UTF-8'?>",
14
- "<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>"
15
- ]
16
- }