@simplysf/simply-package 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.
package/README.md CHANGED
@@ -188,15 +188,16 @@ Cleanup package versions.
188
188
 
189
189
  ```
190
190
  USAGE
191
- $ sf simply package version cleanup -s <value> -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version
192
- <value>]
191
+ $ sf simply package version cleanup -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version
192
+ <value>] [-s <value> | -x <value>]
193
193
 
194
194
  FLAGS
195
- -p, --package=<value> (required) Package Id
196
- -s, --matcher=<value> (required) MAJOR.MINOR.PATCH
197
- -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
198
- configuration variable is already set.
199
- --api-version=<value> Override the api version used for api requests made by this command
195
+ -p, --package=<value> (required) Package Id
196
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
197
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the
198
+ `target-dev-hub` configuration variable is already set.
199
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
200
+ --api-version=<value> Override the api version used for api requests made by this command
200
201
 
201
202
  GLOBAL FLAGS
202
203
  --flags-dir=<value> Import flag values from a directory.
@@ -205,20 +206,32 @@ GLOBAL FLAGS
205
206
  DESCRIPTION
206
207
  Cleanup package versions.
207
208
 
208
- Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher. Does not delete released pacakge
209
- versions.
209
+ Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to
210
+ exclude on. Does not delete released package versions.
211
+
212
+ If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If
213
+ --exclude-matcher is provided instead, every unreleased version that does *not* match MAJOR.MINOR.PATCH is
214
+ deleted. Exactly one of --matcher or --exclude-matcher must be specified.
210
215
 
211
216
  EXAMPLES
212
217
  $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
213
218
 
219
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
220
+
214
221
  FLAG DESCRIPTIONS
215
222
  -p, --package=<value> Package Id
216
223
 
217
224
  The 0Ht Package Id that you wish to cleanup versions for.
218
225
 
219
- -s, --matcher=<value> MAJOR.MINOR.PATCH
226
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
227
+
228
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching
229
+ this matcher are deleted. Mutually exclusive with --exclude-matcher.
230
+
231
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
220
232
 
221
- The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete.
233
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version
234
+ that does not match this matcher is deleted. Mutually exclusive with --matcher.
222
235
  ```
223
236
 
224
237
  _See code: [lib/commands/simply/package/version/cleanup.js](https://github.com/SimplySF/simply/blob/@simplysf/simply-package@2.3.8/packages/simply-package/lib/commands/simply/package/version/cleanup.js)_
@@ -6,8 +6,9 @@ export type PackageVersionCleanupResult = {
6
6
  SubscriberPackageVersionId: string;
7
7
  };
8
8
  /**
9
- * Deletes package versions for a given package matching a MAJOR.MINOR.PATCH matcher. Does not
10
- * delete released package versions.
9
+ * Deletes package versions for a given package matching a MAJOR.MINOR.PATCH matcher, or - if an
10
+ * exclusion matcher is provided instead - every unreleased version that does *not* match it.
11
+ * Does not delete released package versions.
11
12
  */
12
13
  export default class PackageVersionCleanup extends SfCommand<PackageVersionCleanupResult[]> {
13
14
  static readonly summary: string;
@@ -16,12 +17,16 @@ export default class PackageVersionCleanup extends SfCommand<PackageVersionClean
16
17
  static readonly requiresProject = true;
17
18
  static readonly flags: {
18
19
  'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
- matcher: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ matcher: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'exclude-matcher': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
22
  package: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
23
  'target-dev-hub': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
22
24
  'flags-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
25
  };
24
- /** @returns The delete outcome for every unreleased version matching the `--matcher`. */
26
+ /**
27
+ * @returns The delete outcome for every unreleased version matching `--matcher`, or every
28
+ * unreleased version *not* matching `--exclude-matcher`.
29
+ */
25
30
  run(): Promise<PackageVersionCleanupResult[]>;
26
31
  /** Render the deletion results as a table on stdout. */
27
32
  private displayDeletionResults;
@@ -19,8 +19,24 @@ import { Package, PackageVersion, } from '@salesforce/packaging';
19
19
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
20
  const messages = Messages.loadMessages('@simplysf/simply-package', 'simply.package.version.cleanup');
21
21
  /**
22
- * Deletes package versions for a given package matching a MAJOR.MINOR.PATCH matcher. Does not
23
- * delete released package versions.
22
+ * Parse and validate a MAJOR.MINOR.PATCH matcher string.
23
+ *
24
+ * @param matcher - The raw `--matcher`/`--exclude-matcher` flag value.
25
+ * @returns The matcher's parsed major/minor/patch components.
26
+ * @throws {SfError} If `matcher` isn't in MAJOR.MINOR.PATCH format.
27
+ */
28
+ function parseMatcher(matcher) {
29
+ const matcherRegex = new RegExp(/^\d+\.\d+\.\d+$/);
30
+ if (!matcherRegex.test(matcher)) {
31
+ throw messages.createError('errors.matcherFormatMismatch');
32
+ }
33
+ const [major, minor, patch] = matcher.split('.');
34
+ return { major, minor, patch };
35
+ }
36
+ /**
37
+ * Deletes package versions for a given package matching a MAJOR.MINOR.PATCH matcher, or - if an
38
+ * exclusion matcher is provided instead - every unreleased version that does *not* match it.
39
+ * Does not delete released package versions.
24
40
  */
25
41
  export default class PackageVersionCleanup extends SfCommand {
26
42
  static summary = messages.getMessage('summary');
@@ -36,7 +52,13 @@ export default class PackageVersionCleanup extends SfCommand {
36
52
  summary: messages.getMessage('flags.matcher.summary'),
37
53
  description: messages.getMessage('flags.matcher.description'),
38
54
  char: 's',
39
- required: true,
55
+ exclusive: ['exclude-matcher'],
56
+ }),
57
+ 'exclude-matcher': Flags.string({
58
+ summary: messages.getMessage('flags.exclude-matcher.summary'),
59
+ description: messages.getMessage('flags.exclude-matcher.description'),
60
+ char: 'x',
61
+ exclusive: ['matcher'],
40
62
  }),
41
63
  package: Flags.string({
42
64
  summary: messages.getMessage('flags.package.summary'),
@@ -46,7 +68,10 @@ export default class PackageVersionCleanup extends SfCommand {
46
68
  }),
47
69
  'target-dev-hub': Flags.requiredHub(),
48
70
  };
49
- /** @returns The delete outcome for every unreleased version matching the `--matcher`. */
71
+ /**
72
+ * @returns The delete outcome for every unreleased version matching `--matcher`, or every
73
+ * unreleased version *not* matching `--exclude-matcher`.
74
+ */
50
75
  async run() {
51
76
  const log = await Logger.child(this.ctor.name);
52
77
  const { flags } = await this.parse(PackageVersionCleanup);
@@ -55,17 +80,12 @@ export default class PackageVersionCleanup extends SfCommand {
55
80
  if (!connection) {
56
81
  throw messages.createError('errors.connectionFailed');
57
82
  }
58
- const matcher = flags.matcher;
59
- const matcherRegex = new RegExp(/^\d+\.\d+\.\d+$/);
60
- const matcherValid = matcherRegex.test(matcher);
61
- if (!matcherValid) {
62
- throw messages.createError('errors.matcherFormatMismatch');
83
+ if (!flags.matcher && !flags['exclude-matcher']) {
84
+ throw messages.createError('errors.matcherRequired');
63
85
  }
64
- const matcherSplit = matcher.split('.');
65
- const majorMatcher = matcherSplit[0];
66
- const minorMatcher = matcherSplit[1];
67
- const patchMatcher = matcherSplit[2];
68
- log.info(`Major Matcher ${majorMatcher} Minor Matcher ${minorMatcher} Patch Matcher ${patchMatcher}`);
86
+ const isExclusion = Boolean(flags['exclude-matcher']);
87
+ const { major: majorMatcher, minor: minorMatcher, patch: patchMatcher, } = parseMatcher((flags.matcher ?? flags['exclude-matcher']));
88
+ log.info(`${isExclusion ? 'Exclude' : 'Include'} Matcher - Major: ${majorMatcher} Minor: ${minorMatcher} Patch: ${patchMatcher}`);
69
89
  const packageVersionListOptions = {
70
90
  concise: false,
71
91
  createdLastDays: undefined,
@@ -77,10 +97,15 @@ export default class PackageVersionCleanup extends SfCommand {
77
97
  };
78
98
  this.spinner.start('Analyzing which package versions to delete...');
79
99
  const packageVersions = await Package.listVersions(connection, this.project, packageVersionListOptions);
80
- const targetVersions = packageVersions.filter((packageVersion) => packageVersion.IsReleased === false &&
81
- packageVersion.MajorVersion.toString() === majorMatcher &&
82
- packageVersion.MinorVersion.toString() === minorMatcher &&
83
- packageVersion.PatchVersion.toString() === patchMatcher);
100
+ const targetVersions = packageVersions.filter((packageVersion) => {
101
+ if (packageVersion.IsReleased !== false) {
102
+ return false;
103
+ }
104
+ const matchesMatcher = packageVersion.MajorVersion.toString() === majorMatcher &&
105
+ packageVersion.MinorVersion.toString() === minorMatcher &&
106
+ packageVersion.PatchVersion.toString() === patchMatcher;
107
+ return isExclusion ? !matchesMatcher : matchesMatcher;
108
+ });
84
109
  const packageVersionDeletePromiseRequests = [];
85
110
  targetVersions.forEach((targetVersion) => {
86
111
  const packageVersionOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../src/commands/simply/package/version/cleanup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../src/commands/simply/package/version/cleanup.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ Cleanup package versions.
4
4
 
5
5
  # description
6
6
 
7
- Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher. Does not delete released pacakge versions.
7
+ Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to exclude on. Does not delete released package versions.
8
+
9
+ If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If --exclude-matcher is provided instead, every unreleased version that does _not_ match MAJOR.MINOR.PATCH is deleted. Exactly one of --matcher or --exclude-matcher must be specified.
8
10
 
9
11
  # flags.package.summary
10
12
 
@@ -16,20 +18,34 @@ The 0Ht Package Id that you wish to cleanup versions for.
16
18
 
17
19
  # flags.matcher.summary
18
20
 
19
- MAJOR.MINOR.PATCH
21
+ MAJOR.MINOR.PATCH to select on
20
22
 
21
23
  # flags.matcher.description
22
24
 
23
- The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete.
25
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching this matcher are deleted. Mutually exclusive with --exclude-matcher.
26
+
27
+ # flags.exclude-matcher.summary
28
+
29
+ MAJOR.MINOR.PATCH to exclude on
30
+
31
+ # flags.exclude-matcher.description
32
+
33
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version that does not match this matcher is deleted. Mutually exclusive with --matcher.
24
34
 
25
35
  # examples
26
36
 
27
37
  - <%= config.bin %> <%= command.id %> --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
28
38
 
39
+ - <%= config.bin %> <%= command.id %> --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
40
+
29
41
  # errors.connectionFailed
30
42
 
31
43
  Unable to establish connection to the org.
32
44
 
45
+ # errors.matcherRequired
46
+
47
+ You must specify either --matcher or --exclude-matcher.
48
+
33
49
  # errors.matcherFormatMismatch
34
50
 
35
51
  The matcher must be in the format of MAJOR.MINOR.PATCH.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@simplysf/simply-package",
3
3
  "description": "Utilities for working with packages",
4
- "version": "2.6.4",
4
+ "version": "2.7.0",
5
5
  "author": "@ClayChipps",
6
6
  "homepage": "https://github.com/SimplySF/simply",
7
7
  "bugs": "https://github.com/SimplySF/simply/issues",
@@ -223,5 +223,5 @@
223
223
  "output": []
224
224
  }
225
225
  },
226
- "gitHead": "7453fa8b110f9334135694c345f36fdbed1b33b8"
226
+ "gitHead": "8cb5a2fe4f0c3eb142178948acac3244d9cb07f7"
227
227
  }