@jayree/sfdx-plugin-manifest 2.6.4 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +48 -53
  3. package/lib/SDR-extra/collections/componentSetExtra.d.ts +2 -3
  4. package/lib/SDR-extra/collections/componentSetExtra.js +27 -17
  5. package/lib/SDR-extra/collections/componentSetExtra.js.map +1 -1
  6. package/lib/SDR-extra/collections/index.d.ts +1 -0
  7. package/lib/SDR-extra/collections/index.js +8 -0
  8. package/lib/SDR-extra/collections/index.js.map +1 -0
  9. package/lib/SDR-extra/index.d.ts +3 -0
  10. package/lib/SDR-extra/index.js +10 -0
  11. package/lib/SDR-extra/index.js.map +1 -0
  12. package/lib/SDR-extra/resolve/gitDiffResolver.d.ts +3 -6
  13. package/lib/SDR-extra/resolve/gitDiffResolver.js +21 -17
  14. package/lib/SDR-extra/resolve/gitDiffResolver.js.map +1 -1
  15. package/lib/SDR-extra/resolve/index.d.ts +2 -0
  16. package/lib/SDR-extra/resolve/index.js +9 -0
  17. package/lib/SDR-extra/resolve/index.js.map +1 -0
  18. package/lib/SDR-extra/resolve/treeContainersExtra.d.ts +1 -1
  19. package/lib/SDR-extra/resolve/treeContainersExtra.js +8 -7
  20. package/lib/SDR-extra/resolve/treeContainersExtra.js.map +1 -1
  21. package/lib/SDR-extra/utils/index.d.ts +1 -0
  22. package/lib/SDR-extra/utils/index.js +8 -0
  23. package/lib/SDR-extra/utils/index.js.map +1 -0
  24. package/lib/SDR-extra/utils/localGitRepo.d.ts +39 -0
  25. package/lib/SDR-extra/utils/localGitRepo.js +239 -0
  26. package/lib/SDR-extra/utils/localGitRepo.js.map +1 -0
  27. package/lib/commands/jayree/manifest/beta/git/diff.d.ts +15 -10
  28. package/lib/commands/jayree/manifest/beta/git/diff.js +42 -33
  29. package/lib/commands/jayree/manifest/beta/git/diff.js.map +1 -1
  30. package/messages/gitdiffbeta.md +67 -0
  31. package/oclif.manifest.json +1 -1
  32. package/package.json +5 -3
  33. package/lib/SDR-extra/utils/git-extra.d.ts +0 -71
  34. package/lib/SDR-extra/utils/git-extra.js +0 -202
  35. package/lib/SDR-extra/utils/git-extra.js.map +0 -1
  36. package/messages/gitdiffbeta.json +0 -17
@@ -0,0 +1,239 @@
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 util from 'util';
8
+ import path from 'path';
9
+ import git from 'isomorphic-git';
10
+ import { Lifecycle } from '@salesforce/core';
11
+ import fs from 'graceful-fs';
12
+ export class GitRepo {
13
+ constructor(options) {
14
+ this.gitDir = options.gitDir;
15
+ this.packageDirs = options.packageDirs;
16
+ }
17
+ static getInstance(options) {
18
+ if (!GitRepo.instanceMap.has(options.gitDir)) {
19
+ const newInstance = new GitRepo(options);
20
+ GitRepo.instanceMap.set(options.gitDir, newInstance);
21
+ }
22
+ return GitRepo.instanceMap.get(options.gitDir);
23
+ }
24
+ async resolveMultiRefString(ref) {
25
+ const a = ref.split('.');
26
+ let ref1;
27
+ let ref2;
28
+ if (a.length === 3 || a.length === 4) {
29
+ ref1 = a[0];
30
+ ref2 = a[a.length - 1];
31
+ }
32
+ else if (a.length === 1) {
33
+ ref1 = a[0];
34
+ ref2 = undefined;
35
+ }
36
+ else {
37
+ throw new Error(`Ambiguous ${util.format('argument%s', ref.length === 1 ? '' : 's')}: ${ref}
38
+ See more help with --help`);
39
+ }
40
+ if (a.length === 4) {
41
+ ref1 = (await git.findMergeBase({
42
+ fs,
43
+ dir: this.gitDir,
44
+ oids: [ref2, ref1],
45
+ }))[0];
46
+ }
47
+ else {
48
+ ref1 = await this.resolveSingleRefString(ref1);
49
+ }
50
+ ref2 = await this.resolveSingleRefString(ref2);
51
+ return { ref1, ref2 };
52
+ }
53
+ async resolveSingleRefString(ref) {
54
+ if (ref === undefined) {
55
+ return '';
56
+ }
57
+ if (!['~', '^'].some((el) => ref.includes(el))) {
58
+ return (await this.getCommitLog(ref)).oid;
59
+ }
60
+ const firstIndex = [ref.indexOf('^'), ref.indexOf('~')].filter((a) => a >= 0).reduce((a, b) => Math.min(a, b));
61
+ let ipath = ref.substring(firstIndex);
62
+ let resolvedRef = ref.substring(0, firstIndex);
63
+ while (ipath.length && resolvedRef !== undefined) {
64
+ if (ipath.startsWith('^')) {
65
+ ipath = ipath.substring(1);
66
+ let next = Number(ipath.substring(0, 1));
67
+ ipath = next ? ipath.substring(1) : ipath;
68
+ next = next ? next : 1;
69
+ // eslint-disable-next-line no-await-in-loop
70
+ resolvedRef = (await this.getCommitLog(resolvedRef)).parents[next - 1];
71
+ }
72
+ else if (ipath.startsWith('~')) {
73
+ ipath = ipath.substring(1);
74
+ let next = Number(ipath.substring(0, 1));
75
+ ipath = next ? ipath.substring(1) : ipath;
76
+ next = next ? next : 1;
77
+ for (let index = 0; index <= next - 1; index++) {
78
+ // eslint-disable-next-line no-await-in-loop
79
+ resolvedRef = (await this.getCommitLog(resolvedRef)).parents[0];
80
+ }
81
+ }
82
+ else {
83
+ resolvedRef = undefined;
84
+ }
85
+ }
86
+ if (resolvedRef === undefined) {
87
+ throw new Error(`ambiguous argument '${ref}': unknown revision or path not in the working tree.`);
88
+ }
89
+ return resolvedRef;
90
+ }
91
+ async getStatus(ref) {
92
+ const getStatusText = (row) => {
93
+ if ([
94
+ [0, 2, 2],
95
+ [0, 2, 3], // added, staged, with unstaged changes
96
+ ].some((a) => a.every((val, index) => val === row[index]))) {
97
+ return 'A';
98
+ }
99
+ if ([
100
+ [1, 0, 0],
101
+ [1, 0, 1],
102
+ [1, 1, 0],
103
+ [1, 2, 0],
104
+ [1, 0, 3], // modified, staged, with unstaged deletion
105
+ ].some((a) => a.every((val, index) => val === row[index]))) {
106
+ return 'D';
107
+ }
108
+ if ([
109
+ [1, 2, 1],
110
+ [1, 2, 2],
111
+ [1, 2, 3], // modified, staged, with unstaged changes
112
+ ].some((a) => a.every((val, index) => val === row[index]))) {
113
+ return 'M';
114
+ }
115
+ };
116
+ const statusMatrix = await git.statusMatrix({
117
+ fs,
118
+ dir: this.gitDir,
119
+ ref,
120
+ filter: (f) => this.packageDirs ? this.packageDirs.some((fDir) => f.startsWith(this.ensureGitRelPath(fDir))) : true,
121
+ });
122
+ const warningMatrix = statusMatrix.filter((row) => [
123
+ [0, 2, 3],
124
+ [1, 0, 3],
125
+ [1, 2, 3],
126
+ [1, 1, 0],
127
+ [1, 2, 0],
128
+ [0, 0, 3],
129
+ [1, 1, 3],
130
+ [1, 2, 1],
131
+ [1, 0, 1],
132
+ [0, 2, 0], // new, untracked
133
+ ].some((a) => a.every((val, index) => val === row.slice(1)[index])));
134
+ if (warningMatrix.length) {
135
+ const buildWarningArray = (warnings) => {
136
+ const LifecycleInstance = Lifecycle.getInstance();
137
+ const emitWarningArray = [];
138
+ warnings.forEach((warning) => {
139
+ const filteredChanges = warningMatrix
140
+ .filter((row) => warning.filter.some((a) => a.every((val, index) => val === row.slice(1)[index])))
141
+ .map((row) => path.join(this.gitDir, ensureOSPath(row[0])));
142
+ for (const file of filteredChanges) {
143
+ emitWarningArray.push(LifecycleInstance.emitWarning(util.format(warning.message, file)));
144
+ }
145
+ });
146
+ return emitWarningArray;
147
+ };
148
+ // prettier-ignore
149
+ await Promise.all(buildWarningArray([
150
+ { filter: [[0, 2, 3], [1, 0, 3], [1, 2, 3], [1, 1, 0], [1, 2, 0]], message: 'The staged file with unstaged changes "%s" was processed.', },
151
+ { filter: [[0, 0, 3], [1, 1, 3]], message: 'The staged file with unstaged changes "%s" was ignored.', },
152
+ { filter: [[1, 2, 1], [1, 0, 1]], message: 'The unstaged file "%s" was processed.', },
153
+ { filter: [[0, 2, 0]], message: 'The untracked file "%s" was ignored.', },
154
+ ]));
155
+ }
156
+ const gitlines = statusMatrix
157
+ .filter((row) => ![
158
+ [0, 0, 0],
159
+ [1, 1, 1],
160
+ [0, 0, 3],
161
+ [0, 2, 0],
162
+ [1, 1, 3], // modified, staged, with unstaged original file
163
+ ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
164
+ .map((row) => ({
165
+ path: path.join(this.gitDir, ensureOSPath(row[0])),
166
+ status: getStatusText(row.slice(1)),
167
+ }));
168
+ return gitlines;
169
+ }
170
+ async getFileState(options) {
171
+ const gitDir = this.gitDir;
172
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
173
+ return git.walk({
174
+ fs,
175
+ dir: this.gitDir,
176
+ trees: [git.TREE({ ref: options.ref1 }), git.TREE({ ref: options.ref2 })],
177
+ async map(filepath, [A, B]) {
178
+ if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
179
+ return;
180
+ }
181
+ const Aoid = await A?.oid();
182
+ const Boid = await B?.oid();
183
+ let type = 'EQ';
184
+ if (Aoid !== Boid) {
185
+ type = 'M';
186
+ }
187
+ if (Aoid === undefined) {
188
+ type = 'A';
189
+ }
190
+ if (Boid === undefined) {
191
+ type = 'D';
192
+ }
193
+ if (type !== 'EQ') {
194
+ return {
195
+ path: path.join(gitDir, ensureOSPath(filepath)),
196
+ status: type,
197
+ };
198
+ }
199
+ },
200
+ });
201
+ }
202
+ async listFullPathFiles(ref) {
203
+ return (await git.listFiles({ fs, dir: this.gitDir, ref })).map((p) => path.join(this.gitDir, ensureOSPath(p)));
204
+ }
205
+ async getOid(ref) {
206
+ return ref ? git.resolveRef({ fs, dir: this.gitDir, ref }) : '';
207
+ }
208
+ async readBlobAsBuffer(options) {
209
+ return Buffer.from((await git.readBlob({
210
+ fs,
211
+ dir: this.gitDir,
212
+ oid: options.oid,
213
+ filepath: this.ensureGitRelPath(options.filename),
214
+ })).blob);
215
+ }
216
+ async getCommitLog(ref) {
217
+ try {
218
+ const [log] = await git.log({
219
+ fs,
220
+ dir: this.gitDir,
221
+ ref,
222
+ depth: 1,
223
+ });
224
+ return { oid: log.oid, parents: log.commit.parent };
225
+ }
226
+ catch (error) {
227
+ throw new Error(`ambiguous argument '${ref}': unknown revision or path not in the working tree.
228
+ See more help with --help`);
229
+ }
230
+ }
231
+ ensureGitRelPath(fpath) {
232
+ return path.relative(this.gitDir, fpath).split(path.sep).join(path.posix.sep);
233
+ }
234
+ }
235
+ GitRepo.instanceMap = new Map();
236
+ function ensureOSPath(fpath) {
237
+ return fpath.split(path.posix.sep).join(path.sep);
238
+ }
239
+ //# sourceMappingURL=localGitRepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localGitRepo.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/localGitRepo.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ArgInput } from '@oclif/core/lib/interfaces';
2
- import { FlagsConfig } from '@salesforce/command';
3
- import { JayreeSfdxCommand } from '../../../../../jayreeSfdxCommand.js';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ import { Optional } from '@salesforce/ts-types';
4
4
  export interface GitDiffCommandResult {
5
5
  manifest?: {
6
6
  path: string;
@@ -11,14 +11,18 @@ export interface GitDiffCommandResult {
11
11
  name: string;
12
12
  };
13
13
  }
14
- export default class GitDiffCommand extends JayreeSfdxCommand {
15
- static description: string;
16
- static examples: string[];
17
- static args: ArgInput;
18
- protected static flagsConfig: FlagsConfig;
19
- protected static requiresUsername: boolean;
20
- protected static supportsDevhubUsername: boolean;
21
- protected static requiresProject: boolean;
14
+ export default class GitDiffCommand extends SfCommand<GitDiffCommandResult> {
15
+ static readonly summary: string;
16
+ static readonly description: string;
17
+ static readonly examples: string[];
18
+ static readonly args: ArgInput;
19
+ static readonly requiresProject = true;
20
+ static readonly flags: {
21
+ 'api-version': import("@oclif/core/lib/interfaces").OptionFlag<string>;
22
+ 'source-dir': import("@oclif/core/lib/interfaces").OptionFlag<string[]>;
23
+ 'output-dir': import("@oclif/core/lib/interfaces").OptionFlag<string>;
24
+ 'destructive-changes-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
25
+ };
22
26
  private outputDir;
23
27
  private manifestName;
24
28
  private destructiveChangesName;
@@ -26,6 +30,7 @@ export default class GitDiffCommand extends JayreeSfdxCommand {
26
30
  private componentSet;
27
31
  private destructiveChangesOnly;
28
32
  run(): Promise<GitDiffCommandResult>;
33
+ protected getSourceApiVersion(): Promise<Optional<string>>;
29
34
  protected createManifest(): Promise<void>;
30
35
  protected formatResult(): GitDiffCommandResult;
31
36
  }
@@ -4,31 +4,35 @@
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
7
  import { join } from 'path';
9
- import { flags } from '@salesforce/command';
10
8
  import { Messages } from '@salesforce/core';
11
9
  import fs from 'fs-extra';
12
10
  import { DestructiveChangesType } from '@salesforce/source-deploy-retrieve';
13
- import { JayreeSfdxCommand } from '../../../../../jayreeSfdxCommand.js';
14
- import { ComponentSetExtra } from '../../../../../SDR-extra/collections/componentSetExtra.js';
11
+ import { SfCommand, Flags, orgApiVersionFlagWithDeprecations, arrayWithDeprecation } from '@salesforce/sf-plugins-core';
12
+ import { getString } from '@salesforce/ts-types';
13
+ import { ComponentSetExtra } from '../../../../../SDR-extra/index.js';
15
14
  Messages.importMessagesDirectory(new URL('./', import.meta.url).pathname);
16
15
  const messages = Messages.loadMessages('@jayree/sfdx-plugin-manifest', 'gitdiffbeta');
17
- export default class GitDiffCommand extends JayreeSfdxCommand {
16
+ export default class GitDiffCommand extends SfCommand {
18
17
  async run() {
19
18
  await this.createManifest();
20
19
  return this.formatResult();
21
20
  }
21
+ async getSourceApiVersion() {
22
+ const projectConfig = await this.project.resolveProjectConfig();
23
+ return getString(projectConfig, 'sourceApiVersion');
24
+ }
22
25
  async createManifest() {
26
+ const { flags, args } = await this.parse(GitDiffCommand);
23
27
  this.manifestName = 'package.xml';
24
28
  this.destructiveChangesName = 'destructiveChanges.xml';
25
- this.outputDir = this.getFlag('outputdir');
26
- this.destructiveChangesOnly = this.getFlag('destructivechangesonly');
29
+ this.outputDir = flags['output-dir'];
30
+ this.destructiveChangesOnly = flags['destructive-changes-only'];
27
31
  this.componentSet = await ComponentSetExtra.fromGitDiff({
28
- ref: [this.args.ref1, this.args.ref2],
29
- fsPaths: this.getFlag('sourcepath'),
32
+ ref: [args.ref1, args.ref2],
33
+ fsPaths: flags['source-dir'],
30
34
  });
31
- this.componentSet.sourceApiVersion = this.getFlag('apiversion') ?? (await this.getSourceApiVersion());
35
+ this.componentSet.sourceApiVersion = flags['api-version'] ?? (await this.getSourceApiVersion());
32
36
  if (this.outputDir) {
33
37
  await fs.ensureDir(this.outputDir);
34
38
  this.outputPath = join(this.outputDir, this.manifestName);
@@ -52,26 +56,26 @@ export default class GitDiffCommand extends JayreeSfdxCommand {
52
56
  }
53
57
  }
54
58
  formatResult() {
55
- if (!this.isJsonOutput()) {
59
+ if (!this.jsonEnabled()) {
56
60
  if (this.componentSet.size) {
57
61
  if (this.destructiveChangesOnly && !this.componentSet.getTypesOfDestructiveChanges().length) {
58
- this.ux.log(messages.getMessage('nocomponents'));
62
+ this.log(messages.getMessage('noComponents'));
59
63
  }
60
64
  else if (this.outputDir) {
61
- this.ux.log(messages.getMessage('successOutputDir', [this.manifestName, this.outputDir]));
65
+ this.log(messages.getMessage('successOutputDir', [this.manifestName, this.outputDir]));
62
66
  if (this.componentSet.getTypesOfDestructiveChanges().length) {
63
- this.ux.log(messages.getMessage('successOutputDir', [this.destructiveChangesName, this.outputDir]));
67
+ this.log(messages.getMessage('successOutputDir', [this.destructiveChangesName, this.outputDir]));
64
68
  }
65
69
  }
66
70
  else {
67
- this.ux.log(messages.getMessage('success', [this.manifestName]));
71
+ this.log(messages.getMessage('success', [this.manifestName]));
68
72
  if (this.componentSet.getTypesOfDestructiveChanges().length) {
69
- this.ux.log(messages.getMessage('success', [this.destructiveChangesName]));
73
+ this.log(messages.getMessage('success', [this.destructiveChangesName]));
70
74
  }
71
75
  }
72
76
  }
73
77
  else {
74
- this.ux.log(messages.getMessage('nocomponents'));
78
+ this.log(messages.getMessage('noComponents'));
75
79
  }
76
80
  }
77
81
  if (this.componentSet.getTypesOfDestructiveChanges().length) {
@@ -91,8 +95,9 @@ export default class GitDiffCommand extends JayreeSfdxCommand {
91
95
  }
92
96
  }
93
97
  }
98
+ GitDiffCommand.summary = messages.getMessage('summary');
94
99
  GitDiffCommand.description = messages.getMessage('description');
95
- GitDiffCommand.examples = messages.getMessage('examples').split(os.EOL);
100
+ GitDiffCommand.examples = messages.getMessages('examples');
96
101
  GitDiffCommand.args = [
97
102
  {
98
103
  name: 'ref1',
@@ -104,24 +109,28 @@ GitDiffCommand.args = [
104
109
  description: 'commit or branch to compare to the base commit',
105
110
  },
106
111
  ];
107
- GitDiffCommand.flagsConfig = {
108
- apiversion: flags.builtin({}),
109
- sourcepath: flags.array({
110
- char: 'p',
111
- description: messages.getMessage('flags.sourcepath'),
112
+ GitDiffCommand.requiresProject = true;
113
+ GitDiffCommand.flags = {
114
+ 'api-version': orgApiVersionFlagWithDeprecations,
115
+ 'source-dir': arrayWithDeprecation({
116
+ char: 'd',
117
+ summary: messages.getMessage('flags.source-dir.summary'),
118
+ description: messages.getMessage('flags.source-dir.description'),
119
+ deprecateAliases: true,
120
+ aliases: ['sourcepath', 'p'],
112
121
  }),
113
- outputdir: flags.string({
114
- char: 'o',
115
- description: messages.getMessage('flags.outputdir'),
122
+ 'output-dir': Flags.directory({
123
+ summary: messages.getMessage('flags.output-dir.summary'),
124
+ description: messages.getMessage('flags.output-dir.description'),
116
125
  default: '',
126
+ deprecateAliases: true,
127
+ aliases: ['outputdir', 'o'],
117
128
  }),
118
- destructivechangesonly: flags.boolean({
119
- char: 'd',
120
- description: messages.getMessage('flags.destructivechangesonly'),
121
- default: false,
129
+ 'destructive-changes-only': Flags.boolean({
130
+ summary: messages.getMessage('flags.destructive-changes-only.summary'),
131
+ description: messages.getMessage('flags.destructive-changes-only.description'),
132
+ deprecateAliases: true,
133
+ aliases: ['destructivechangesonly'],
122
134
  }),
123
135
  };
124
- GitDiffCommand.requiresUsername = false;
125
- GitDiffCommand.supportsDevhubUsername = false;
126
- GitDiffCommand.requiresProject = true;
127
136
  //# sourceMappingURL=diff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../../src/commands/jayree/manifest/beta/git/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../../src/commands/jayree/manifest/beta/git/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ # summary
2
+
3
+ Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or delete based on changes in your git history.
4
+
5
+ # description
6
+
7
+ Use this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.
8
+
9
+ You can use all ways to spell <commit> which are valid for 'git diff' (See https://git-scm.com/docs/git-diff).
10
+
11
+ # examples
12
+
13
+ - Uses the changes between two arbitrary <commit>.
14
+
15
+ <%= config.bin %> <%= command.id %> <commit> <commit>
16
+
17
+ <%= config.bin %> <%= command.id %> <commit>..<commit>
18
+
19
+ - Uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.
20
+
21
+ <%= config.bin %> <%= command.id %> <commit>...<commit>
22
+
23
+ - Uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1).
24
+
25
+ <%= config.bin %> <%= command.id %> branchA..branchB
26
+
27
+ - Uses the diff of what is unique in branchB (REF2).
28
+
29
+ <%= config.bin %> <%= command.id %> branchA...branchB
30
+
31
+ # flags.output-dir.summary
32
+
33
+ Directory to save the created manifest files.
34
+
35
+ # flags.output-dir.description
36
+
37
+ The location can be an absolute path or relative to the current working directory.
38
+
39
+ # flags.source-dir.summary
40
+
41
+ Path to the local source files to include in the manifest.
42
+
43
+ # flags.source-dir.description
44
+
45
+ The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).
46
+
47
+ You can specify this flag more than once.
48
+
49
+ # flags.destructive-changes-only.summary
50
+
51
+ Create a destructiveChanges manifest only.
52
+
53
+ # flags.destructive-changes-only.description
54
+
55
+ Use this flag to create a 'destructiveChanges.xml' and a blank 'package.xml'.
56
+
57
+ # success
58
+
59
+ Successfully wrote %s.
60
+
61
+ # successOutputDir
62
+
63
+ Successfully wrote %s to %s.
64
+
65
+ # noComponents
66
+
67
+ No source-backed components present.
@@ -1 +1 @@
1
- {"version":"2.6.4","commands":{"jayree:manifest:cleanup":{"id":"jayree:manifest:cleanup","description":"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.","strict":true,"usage":"<%= command.id %> [-x <filepath>] [-f <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"manifest":{"name":"manifest","type":"option","char":"x","description":"path to the manifest file","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"path to the second 'cleanup' manifest file","multiple":false}},"args":[],"flagsConfig":{"manifest":{"kind":"filepath","char":"x","description":"path to the manifest file","input":[],"multiple":false,"type":"option"},"file":{"kind":"filepath","char":"f","description":"path to the second 'cleanup' manifest file","input":[],"multiple":false,"type":"option"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:generate":{"id":"jayree:manifest:generate","description":"generate a complete manifest file form the specified org\nUse this command to generate a manifest file based on an existing org.","strict":true,"usage":"<%= command.id %> [-q <array>] [-c] [-w] [--includeflowversions] [-f <string>] [-x | -a] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:generate --targetusername myOrg@example.com","<?xml version='1.0' encoding='UTF-8'?>","<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"quickfilter":{"name":"quickfilter","type":"option","char":"q","description":"csv separated list of metadata type, member or file names to filter on","multiple":false},"matchcase":{"name":"matchcase","type":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false},"matchwholeword":{"name":"matchwholeword","type":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false},"includeflowversions":{"name":"includeflowversions","type":"boolean","description":"include flow versions as with api version 43.0","allowNo":false},"file":{"name":"file","type":"option","char":"f","description":"write to 'file' instead of stdout","multiple":false},"excludemanaged":{"name":"excludemanaged","type":"boolean","char":"x","description":"exclude managed packages from output","allowNo":false,"exclusive":["excludeall"]},"excludeall":{"name":"excludeall","type":"boolean","char":"a","description":"exclude all packages from output","allowNo":false,"exclusive":["excludemanaged"]}},"args":[],"flagsConfig":{"quickfilter":{"kind":"array","char":"q","description":"csv separated list of metadata type, member or file names to filter on","input":[],"multiple":false,"type":"option"},"matchcase":{"kind":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false,"type":"boolean"},"matchwholeword":{"kind":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false,"type":"boolean"},"includeflowversions":{"kind":"boolean","description":"include flow versions as with api version 43.0","allowNo":false,"type":"boolean"},"file":{"kind":"string","char":"f","description":"write to 'file' instead of stdout","input":[],"multiple":false,"type":"option"},"excludemanaged":{"kind":"boolean","char":"x","description":"exclude managed packages from output","exclusive":["excludeall"],"allowNo":false,"type":"boolean"},"excludeall":{"kind":"boolean","char":"a","description":"exclude all packages from output","exclusive":["excludemanaged"],"allowNo":false,"type":"boolean"}},"requiresUsername":true,"supportsDevhubUsername":false,"requiresProject":false},"jayree:manifest:git:diff":{"id":"jayree:manifest:git:diff","description":"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)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of source file paths to limit the diff","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true,"hidden":false},{"name":"ref2","description":"commit or branch to compare to the base commit","required":false,"hidden":false}],"flagsConfig":{"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of source file paths to limit the diff","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:beta:git:diff":{"id":"jayree:manifest:beta:git:diff","description":"create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or delete based on changes in your git history\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)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:beta:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:beta:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:beta:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of paths to the local source files to include in the manifest","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true},{"name":"ref2","description":"commit or branch to compare to the base commit"}],"flagsConfig":{"apiversion":{"type":"option","kind":"string","description":"override the api version used for api requests made by this command","longDescription":"Override the API version used for API requests made by this command.","input":[],"multiple":false},"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of paths to the local source files to include in the manifest","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true}}}
1
+ {"version":"2.7.0","commands":{"jayree:manifest:cleanup":{"id":"jayree:manifest:cleanup","description":"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.","strict":true,"usage":"<%= command.id %> [-x <filepath>] [-f <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"manifest":{"name":"manifest","type":"option","char":"x","description":"path to the manifest file","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"path to the second 'cleanup' manifest file","multiple":false}},"args":[],"flagsConfig":{"manifest":{"kind":"filepath","char":"x","description":"path to the manifest file","input":[],"multiple":false,"type":"option"},"file":{"kind":"filepath","char":"f","description":"path to the second 'cleanup' manifest file","input":[],"multiple":false,"type":"option"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:generate":{"id":"jayree:manifest:generate","description":"generate a complete manifest file form the specified org\nUse this command to generate a manifest file based on an existing org.","strict":true,"usage":"<%= command.id %> [-q <array>] [-c] [-w] [--includeflowversions] [-f <string>] [-x | -a] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:generate --targetusername myOrg@example.com","<?xml version='1.0' encoding='UTF-8'?>","<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"quickfilter":{"name":"quickfilter","type":"option","char":"q","description":"csv separated list of metadata type, member or file names to filter on","multiple":false},"matchcase":{"name":"matchcase","type":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false},"matchwholeword":{"name":"matchwholeword","type":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false},"includeflowversions":{"name":"includeflowversions","type":"boolean","description":"include flow versions as with api version 43.0","allowNo":false},"file":{"name":"file","type":"option","char":"f","description":"write to 'file' instead of stdout","multiple":false},"excludemanaged":{"name":"excludemanaged","type":"boolean","char":"x","description":"exclude managed packages from output","allowNo":false,"exclusive":["excludeall"]},"excludeall":{"name":"excludeall","type":"boolean","char":"a","description":"exclude all packages from output","allowNo":false,"exclusive":["excludemanaged"]}},"args":[],"flagsConfig":{"quickfilter":{"kind":"array","char":"q","description":"csv separated list of metadata type, member or file names to filter on","input":[],"multiple":false,"type":"option"},"matchcase":{"kind":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false,"type":"boolean"},"matchwholeword":{"kind":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false,"type":"boolean"},"includeflowversions":{"kind":"boolean","description":"include flow versions as with api version 43.0","allowNo":false,"type":"boolean"},"file":{"kind":"string","char":"f","description":"write to 'file' instead of stdout","input":[],"multiple":false,"type":"option"},"excludemanaged":{"kind":"boolean","char":"x","description":"exclude managed packages from output","exclusive":["excludeall"],"allowNo":false,"type":"boolean"},"excludeall":{"kind":"boolean","char":"a","description":"exclude all packages from output","exclusive":["excludemanaged"],"allowNo":false,"type":"boolean"}},"requiresUsername":true,"supportsDevhubUsername":false,"requiresProject":false},"jayree:manifest:git:diff":{"id":"jayree:manifest:git:diff","description":"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)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of source file paths to limit the diff","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true,"hidden":false},{"name":"ref2","description":"commit or branch to compare to the base commit","required":false,"hidden":false}],"flagsConfig":{"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of source file paths to limit the diff","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:beta:git:diff":{"id":"jayree:manifest:beta:git:diff","summary":"Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or delete based on changes in your git history.","description":"Use 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' (See https://git-scm.com/docs/git-diff).","strict":true,"pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["Uses the changes between two arbitrary <commit>.\n<%= config.bin %> <%= command.id %> <commit> <commit>\n<%= config.bin %> <%= command.id %> <commit>..<commit>","Uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.\n<%= config.bin %> <%= command.id %> <commit>...<commit>","Uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1).\n<%= config.bin %> <%= command.id %> branchA..branchB","Uses the diff of what is unique in branchB (REF2).\n<%= config.bin %> <%= command.id %> branchA...branchB"],"flags":{"json":{"name":"json","type":"boolean","description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false},"api-version":{"name":"api-version","type":"option","description":"Override the api version used for api requests made by this command","multiple":false,"aliases":["apiversion"]},"source-dir":{"name":"source-dir","type":"option","char":"d","summary":"Path to the local source files to include in the manifest.","description":"The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).\n\nYou can specify this flag more than once.","multiple":true,"aliases":["sourcepath","p"]},"output-dir":{"name":"output-dir","type":"option","summary":"Directory to save the created manifest files.","description":"The location can be an absolute path or relative to the current working directory.","multiple":false,"default":"","aliases":["outputdir","o"]},"destructive-changes-only":{"name":"destructive-changes-only","type":"boolean","summary":"Create a destructiveChanges manifest only.","description":"Use this flag to create a 'destructiveChanges.xml' and a blank 'package.xml'.","allowNo":false,"aliases":["destructivechangesonly"]}},"args":[{"name":"ref1","description":"base commit or branch","required":true},{"name":"ref2","description":"commit or branch to compare to the base commit"}],"requiresProject":true}}}