@simplysf/simply-package 2.6.4 → 2.8.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
@@ -31,8 +31,8 @@ Install package dependencies for a Salesforce project.
31
31
  ```
32
32
  USAGE
33
33
  $ sf simply package dependencies install -o <value> [--json] [--flags-dir <value>] [-a all|package] [--api-version <value>] [-z
34
- <value>] [-i All|Delta|Upgrade] [-k <value>...] [-r] [-b <value>] [-s AllUsers|AdminsOnly] [-v <value>] [-t
35
- DeprecateOnly|Mixed|Delete] [-w <value>]
34
+ <value>] [-i All|Delta|Upgrade] [-k <value>...] [-r] [-b <value>] [--report-file <value>] [-s AllUsers|AdminsOnly] [-v
35
+ <value>] [-t DeprecateOnly|Mixed|Delete] [-w <value>]
36
36
 
37
37
  FLAGS
38
38
  -a, --apex-compile=<option> Compile all Apex in the org and package, or only Apex in the package; unlocked
@@ -57,6 +57,7 @@ FLAGS
57
57
  -w, --wait=<value> Number of minutes to wait for installation status.
58
58
  -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
59
59
  --api-version=<value> Override the api version used for api requests made by this command
60
+ --report-file=<value> Path to write a JSON install report to.
60
61
 
61
62
  GLOBAL FLAGS
62
63
  --flags-dir=<value> Import flag values from a directory.
@@ -74,6 +75,8 @@ EXAMPLES
74
75
 
75
76
  $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key" --installation-key "MyPackage2Alias:MyPackage2Key"
76
77
 
78
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --report-file install-report.json
79
+
77
80
  FLAG DESCRIPTIONS
78
81
  -a, --apex-compile=all|package
79
82
 
@@ -119,6 +122,13 @@ FLAG DESCRIPTIONS
119
122
 
120
123
  For dependencies specified by Package/VersionNumber combination, you can specify the branch group of builds to work
121
124
  from by entering the branch build name. If not specified, the builds from NULL branch will be considered.
125
+
126
+ --report-file=<value> Path to write a JSON install report to.
127
+
128
+ When specified, a JSON report of the install outcome for every resolved dependency is written to this path, in
129
+ addition to the normal terminal output you can continue to monitor as the command runs. Each entry includes the
130
+ package name, the SubscriberPackageVersionId already installed in the org (if any), the SubscriberPackageVersionId
131
+ that was attempted, and the decision made (Skipped, Installed, Installing, or Failed).
122
132
  ```
123
133
 
124
134
  _See code: [lib/commands/simply/package/dependencies/install.js](https://github.com/SimplySF/simply/blob/@simplysf/simply-package@2.3.8/packages/simply-package/lib/commands/simply/package/dependencies/install.js)_
@@ -188,15 +198,16 @@ Cleanup package versions.
188
198
 
189
199
  ```
190
200
  USAGE
191
- $ sf simply package version cleanup -s <value> -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version
192
- <value>]
201
+ $ sf simply package version cleanup -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version
202
+ <value>] [-s <value> | -x <value>]
193
203
 
194
204
  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
205
+ -p, --package=<value> (required) Package Id
206
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
207
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the
208
+ `target-dev-hub` configuration variable is already set.
209
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
210
+ --api-version=<value> Override the api version used for api requests made by this command
200
211
 
201
212
  GLOBAL FLAGS
202
213
  --flags-dir=<value> Import flag values from a directory.
@@ -205,21 +216,125 @@ GLOBAL FLAGS
205
216
  DESCRIPTION
206
217
  Cleanup package versions.
207
218
 
208
- Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher. Does not delete released pacakge
209
- versions.
219
+ Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to
220
+ exclude on. Does not delete released package versions.
221
+
222
+ If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If
223
+ --exclude-matcher is provided instead, every unreleased version that does *not* match MAJOR.MINOR.PATCH is
224
+ deleted. Exactly one of --matcher or --exclude-matcher must be specified.
210
225
 
211
226
  EXAMPLES
212
227
  $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
213
228
 
229
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
230
+
214
231
  FLAG DESCRIPTIONS
215
232
  -p, --package=<value> Package Id
216
233
 
217
234
  The 0Ht Package Id that you wish to cleanup versions for.
218
235
 
219
- -s, --matcher=<value> MAJOR.MINOR.PATCH
236
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
237
+
238
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching
239
+ this matcher are deleted. Mutually exclusive with --exclude-matcher.
220
240
 
221
- The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete.
241
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
242
+
243
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version
244
+ that does not match this matcher is deleted. Mutually exclusive with --matcher.
222
245
  ```
223
246
 
224
247
  _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)_
225
248
  <!-- commandsstop -->
249
+
250
+ ## Configuration Files
251
+
252
+ `sf simply package dependencies install` and `sf simply package dependencies manage` don't take a separate config file — they read from your project's existing **`sfdx-project.json`**.
253
+
254
+ ### `packageDirectories[].dependencies`
255
+
256
+ Each package directory's `dependencies` array lists the packages to install/manage:
257
+
258
+ ```json
259
+ {
260
+ "packageDirectories": [
261
+ {
262
+ "path": "force-app",
263
+ "default": true,
264
+ "dependencies": [
265
+ { "package": "MyDependency@1.2.0-1" },
266
+ { "package": "0Ho000000000001AAA", "versionNumber": "2.5.0.LATEST" },
267
+ { "package": "0Ho000000000002AAA", "versionNumber": "3.1.0.LATEST", "branch": "release/2026-Q1" }
268
+ ]
269
+ }
270
+ ]
271
+ }
272
+ ```
273
+
274
+ | Field | Type | Required | Description |
275
+ | --------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
276
+ | `package` | `string` | Yes | Either a package alias, a `SubscriberPackageVersionId` (`04t...`), or a `Package2Id` (`0Ho...`). A `Package2Id` requires `versionNumber` and must be resolved via `--target-dev-hub`. |
277
+ | `versionNumber` | `string` | No | Required when `package` is a `Package2Id`. A `MAJOR.MINOR.PATCH.BUILD` version, where `BUILD` may be `LATEST` for a non-pinned build. |
278
+ | `branch` | `string` | No | Scopes dev hub version resolution to a specific build branch. Only used when `versionNumber` is also set. |
279
+
280
+ ### `plugins.simply` (used by `dependencies manage`)
281
+
282
+ `sf simply package dependencies manage` reads optional settings from a `plugins.simply` block in `sfdx-project.json`:
283
+
284
+ ```json
285
+ {
286
+ "plugins": {
287
+ "simply": {
288
+ "dependencies": {
289
+ "ignore": ["MyLockedDependency", "0Ho000000000002AAA"]
290
+ },
291
+ "package": {
292
+ "brancheswithreleasedversions": ["release/2026-Q1"]
293
+ }
294
+ }
295
+ }
296
+ }
297
+ ```
298
+
299
+ | Key | Type | Description |
300
+ | ----------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------- |
301
+ | `plugins.simply.dependencies.ignore` | `string[]` | `Package2Id`s or aliases that `dependencies manage` should leave unchanged. |
302
+ | `plugins.simply.package.brancheswithreleasedversions` | `string[]` | Branch names that contain released versions, considered in addition to the main build branch. |
303
+
304
+ ## Report Files
305
+
306
+ ### `sf simply package dependencies install --report-file`
307
+
308
+ The `--report-file` flag on `sf simply package dependencies install` writes a JSON array to the given path, with one entry per resolved dependency. It's the same array the command returns (e.g. via `--json`), just persisted to disk so you can consume it after the run — useful for feeding a follow-up step, or auditing what happened without having to scroll back through terminal output.
309
+
310
+ ```json
311
+ [
312
+ {
313
+ "PackageName": "MyDependency@1.2.0-1",
314
+ "ExistingSubscriberPackageVersionId": "04t000000000001AAA",
315
+ "SubscriberPackageVersionId": "04t000000000001AAA",
316
+ "Status": "Skipped"
317
+ },
318
+ {
319
+ "PackageName": "AnotherDependency@2.5.0-3",
320
+ "ExistingSubscriberPackageVersionId": "04t000000000002AAA",
321
+ "SubscriberPackageVersionId": "04t000000000003AAA",
322
+ "Status": "Installed"
323
+ },
324
+ {
325
+ "PackageName": "NewDependency@1.0.0-1",
326
+ "ExistingSubscriberPackageVersionId": "",
327
+ "SubscriberPackageVersionId": "04t000000000004AAA",
328
+ "Status": "Installed"
329
+ }
330
+ ]
331
+ ```
332
+
333
+ In this example: `MyDependency` was already at the target version, so it was skipped; `AnotherDependency` had an older version installed (`...0002AAA`) and was upgraded to the target (`...0003AAA`); `NewDependency` had nothing installed yet (an empty `ExistingSubscriberPackageVersionId`) and was installed fresh.
334
+
335
+ | Field | Type | Description |
336
+ | ------------------------------------ | -------- | ---------------------------------------------------------------------------------------------------- |
337
+ | `PackageName` | `string` | The dependency's alias or ID, as declared in `sfdx-project.json`. |
338
+ | `ExistingSubscriberPackageVersionId` | `string` | The `SubscriberPackageVersionId` already installed in the org for this package, or `""` if none was. |
339
+ | `SubscriberPackageVersionId` | `string` | The `SubscriberPackageVersionId` this command attempted to install. |
340
+ | `Status` | `string` | `""`, `"Skipped"`, `"Installing"`, `"Installed"`, or `"Failed"`. |
@@ -1,10 +1,17 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
2
  import { Duration } from '@salesforce/kit';
3
- /** A single dependency's install outcome: `''`, `'Skipped'`, `'Installing'`, `'Installed'`, or `'Failed'`. */
3
+ /**
4
+ * A single dependency's install outcome: the package attempted, whatever version (if any) was
5
+ * already installed in the org for that package, and the decision made.
6
+ */
4
7
  export type PackageToInstall = {
5
- Status: string;
6
8
  PackageName: string;
9
+ /** The `SubscriberPackageVersionId` already installed in the org for this package, or `''` if none was. */
10
+ ExistingSubscriberPackageVersionId: string;
11
+ /** The `SubscriberPackageVersionId` this command attempted to install. */
7
12
  SubscriberPackageVersionId: string;
13
+ /** `''`, `'Skipped'`, `'Installing'`, `'Installed'`, or `'Failed'`. */
14
+ Status: string;
8
15
  };
9
16
  /**
10
17
  * Installs all specified package dependencies in a Salesforce DX project using the
@@ -23,6 +30,7 @@ export default class PackageDependenciesInstall extends SfCommand<PackageToInsta
23
30
  'installation-key': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
31
  'no-prompt': import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
32
  'publish-wait': import("@oclif/core/interfaces").OptionFlag<Duration, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'report-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
34
  'security-type': import("@oclif/core/interfaces").OptionFlag<"AllUsers" | "AdminsOnly", import("@oclif/core/interfaces").CustomOptions>;
27
35
  'skip-handlers': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
36
  'target-dev-hub': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -16,11 +16,12 @@
16
16
  /* eslint-disable complexity */
17
17
  /* eslint-disable no-await-in-loop */
18
18
  /* eslint-disable no-unsafe-finally */
19
+ import fs from 'node:fs/promises';
19
20
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
20
21
  import { AuthInfo, Connection, Lifecycle, Messages, SfError } from '@salesforce/core';
21
22
  import { Duration } from '@salesforce/kit';
22
23
  import { PackageEvents, SubscriberPackageVersion, VersionNumber, } from '@salesforce/packaging';
23
- import { isDependenciesPackagingDirectory, isPackage2Id, isSubscriberPackageVersionId, isSubscriberPackageVersionInstalled, reducePackageInstallRequestErrors, } from '../../../../common/packageUtils.js';
24
+ import { isDependenciesPackagingDirectory, isPackage2Id, isSubscriberPackageVersionId, reducePackageInstallRequestErrors, } from '../../../../common/packageUtils.js';
24
25
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
25
26
  const messages = Messages.loadMessages('@simplysf/simply-package', 'simply.package.dependencies.install');
26
27
  /** Maps the `--install-type` flag's display values to the internal values used for comparisons. */
@@ -31,6 +32,13 @@ const securityType = { AllUsers: 'full', AdminsOnly: 'none' };
31
32
  const upgradeType = { Delete: 'delete-only', DeprecateOnly: 'deprecate-only', Mixed: 'mixed-mode' };
32
33
  /** Matches one or more comma-separated `alias:key` pairs, as accepted by `--installation-key`. */
33
34
  const installationKeyRegex = new RegExp(/^(\w+:\w+)(,\s*\w+:\w+)*/);
35
+ /**
36
+ * @param packagesToInstall - The install outcome for every resolved dependency.
37
+ * @returns A pretty-printed JSON install report.
38
+ */
39
+ function buildInstallReport(packagesToInstall) {
40
+ return JSON.stringify(packagesToInstall, null, 2);
41
+ }
34
42
  /**
35
43
  * Installs all specified package dependencies in a Salesforce DX project using the
36
44
  * sfdx-project.json definition.
@@ -83,6 +91,10 @@ export default class PackageDependenciesInstall extends SfCommand {
83
91
  char: 'b',
84
92
  default: Duration.minutes(0),
85
93
  }),
94
+ 'report-file': Flags.string({
95
+ summary: messages.getMessage('flags.report-file.summary'),
96
+ description: messages.getMessage('flags.report-file.description'),
97
+ }),
86
98
  'security-type': Flags.custom({
87
99
  options: ['AllUsers', 'AdminsOnly'],
88
100
  })({
@@ -134,6 +146,17 @@ export default class PackageDependenciesInstall extends SfCommand {
134
146
  let packagesToInstall = [];
135
147
  const packageInstallRequests = [];
136
148
  const devHubDependencies = [];
149
+ // If requested, write a JSON report of the install outcome to a file alongside the normal
150
+ // terminal output. Declared up front so both the "nothing to install" early return and the
151
+ // normal completion path can reuse it.
152
+ const reportPath = flags['report-file'];
153
+ const writeReport = async () => {
154
+ if (!reportPath) {
155
+ return;
156
+ }
157
+ await fs.writeFile(reportPath, buildInstallReport(packagesToInstall), 'utf-8');
158
+ this.info(messages.getMessage('info.reportWritten', [reportPath]));
159
+ };
137
160
  this.spinner.start('Analyzing project to determine packages to install', '', { stdout: true });
138
161
  const packageDirectories = this.project?.getPackageDirectories().filter(isDependenciesPackagingDirectory);
139
162
  for (const packageDirectory of packageDirectories ?? []) {
@@ -148,9 +171,10 @@ export default class PackageDependenciesInstall extends SfCommand {
148
171
  throw messages.createError('error.invalidSubscriberPackageVersionId', [dependency.package]);
149
172
  }
150
173
  packagesToInstall.push({
151
- Status: '',
152
174
  PackageName: dependency.package,
175
+ ExistingSubscriberPackageVersionId: '',
153
176
  SubscriberPackageVersionId: subscriberPackageVersionId,
177
+ Status: '',
154
178
  });
155
179
  }
156
180
  }
@@ -185,8 +209,9 @@ export default class PackageDependenciesInstall extends SfCommand {
185
209
  }
186
210
  packagesToInstall.push({
187
211
  PackageName: devHubDependency.package,
188
- Status: '',
212
+ ExistingSubscriberPackageVersionId: '',
189
213
  SubscriberPackageVersionId: subscriberPackageVersionId,
214
+ Status: '',
190
215
  });
191
216
  }
192
217
  this.spinner.stop();
@@ -197,6 +222,7 @@ export default class PackageDependenciesInstall extends SfCommand {
197
222
  this.spinner.stop();
198
223
  if (packagesToInstall?.length === 0) {
199
224
  this.info('No packages were found to install');
225
+ await writeReport();
200
226
  return packagesToInstall;
201
227
  }
202
228
  // Process any installation keys for the packages
@@ -219,40 +245,42 @@ export default class PackageDependenciesInstall extends SfCommand {
219
245
  }
220
246
  this.spinner.stop();
221
247
  }
222
- let installedPackages = [];
223
- // If precheck is enabled, get the currently installed packages
224
- if (installType[flags['install-type']] === installType.Delta ||
225
- installType[flags['install-type']] === installType.Upgrade) {
226
- this.spinner.start('Analyzing which packages are installed', '', { stdout: true });
227
- installedPackages = await SubscriberPackageVersion.installedList(targetOrgConnection);
228
- for (const packageToInstall of packagesToInstall) {
229
- if (isSubscriberPackageVersionInstalled(installedPackages, packageToInstall?.SubscriberPackageVersionId)) {
230
- packageToInstall.Status = 'Skipped';
231
- this.info(`Package ${packageToInstall?.PackageName} (${packageToInstall?.SubscriberPackageVersionId}) is already installed and will be skipped`);
248
+ // Always look up what's currently installed, so the report can show the existing package
249
+ // alongside the install decision regardless of --install-type.
250
+ this.spinner.start('Analyzing which packages are installed', '', { stdout: true });
251
+ const installedPackages = await SubscriberPackageVersion.installedList(targetOrgConnection);
252
+ for (const packageToInstall of packagesToInstall) {
253
+ const subscriberPackageVersion = new SubscriberPackageVersion({
254
+ aliasOrId: packageToInstall.SubscriberPackageVersionId,
255
+ connection: targetOrgConnection,
256
+ password: installationKeyMap.get(packageToInstall.SubscriberPackageVersionId) ?? '',
257
+ });
258
+ const subscriberPackageId = await subscriberPackageVersion.getSubscriberPackageId();
259
+ const installedPackage = installedPackages.find((pkg) => pkg.SubscriberPackageId === subscriberPackageId);
260
+ packageToInstall.ExistingSubscriberPackageVersionId = installedPackage?.SubscriberPackageVersionId ?? '';
261
+ // 'All' always attempts the install regardless of what (if anything) is already there.
262
+ if (installType[flags['install-type']] === installType.All) {
263
+ continue;
264
+ }
265
+ if (installedPackage?.SubscriberPackageVersionId === packageToInstall.SubscriberPackageVersionId) {
266
+ packageToInstall.Status = 'Skipped';
267
+ this.info(`Package ${packageToInstall.PackageName} (${packageToInstall.SubscriberPackageVersionId}) is already installed and will be skipped`);
268
+ continue;
269
+ }
270
+ if (installType[flags['install-type']] === installType.Upgrade) {
271
+ if (!installedPackage?.SubscriberPackageVersion) {
272
+ // Not currently installed, so there's nothing to update - proceed with install
232
273
  continue;
233
274
  }
234
- if (installType[flags['install-type']] === installType.Upgrade) {
235
- const subscriberPackageVersion = new SubscriberPackageVersion({
236
- aliasOrId: packageToInstall.SubscriberPackageVersionId,
237
- connection: targetOrgConnection,
238
- password: installationKeyMap.get(packageToInstall.SubscriberPackageVersionId) ?? '',
239
- });
240
- const subscriberPackageId = await subscriberPackageVersion.getSubscriberPackageId();
241
- const installedPackage = installedPackages.find((pkg) => pkg.SubscriberPackageId === subscriberPackageId);
242
- if (!installedPackage?.SubscriberPackageVersion) {
243
- // Not currently installed, so there's nothing to update - proceed with install
244
- continue;
245
- }
246
- const targetVersion = await subscriberPackageVersion.getVersionNumber();
247
- const installedVersion = new VersionNumber(installedPackage.SubscriberPackageVersion.MajorVersion, installedPackage.SubscriberPackageVersion.MinorVersion, installedPackage.SubscriberPackageVersion.PatchVersion, installedPackage.SubscriberPackageVersion.BuildNumber);
248
- if (targetVersion.compareTo(installedVersion) <= 0) {
249
- packageToInstall.Status = 'Skipped';
250
- this.info(`Package ${packageToInstall?.PackageName} (${packageToInstall?.SubscriberPackageVersionId}) is not newer than the installed version (${installedVersion.toString()}) and will be skipped`);
251
- }
275
+ const targetVersion = await subscriberPackageVersion.getVersionNumber();
276
+ const installedVersion = new VersionNumber(installedPackage.SubscriberPackageVersion.MajorVersion, installedPackage.SubscriberPackageVersion.MinorVersion, installedPackage.SubscriberPackageVersion.PatchVersion, installedPackage.SubscriberPackageVersion.BuildNumber);
277
+ if (targetVersion.compareTo(installedVersion) <= 0) {
278
+ packageToInstall.Status = 'Skipped';
279
+ this.info(`Package ${packageToInstall.PackageName} (${packageToInstall.SubscriberPackageVersionId}) is not newer than the installed version (${installedVersion.toString()}) and will be skipped`);
252
280
  }
253
281
  }
254
- this.spinner.stop();
255
282
  }
283
+ this.spinner.stop();
256
284
  for (const packageToInstall of packagesToInstall) {
257
285
  if (packageToInstall.Status === 'Skipped') {
258
286
  continue;
@@ -375,6 +403,7 @@ export default class PackageDependenciesInstall extends SfCommand {
375
403
  }
376
404
  }
377
405
  }
406
+ await writeReport();
378
407
  return packagesToInstall;
379
408
  }
380
409
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../src/commands/simply/package/dependencies/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../src/commands/simply/package/dependencies/install.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,OAAO,EAEP,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAE/B,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,gCAAgC,CAAC,CAAC;AASrG;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,SAAwC;IAClF,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnE,uGAAuG;IACvG,qHAAqH;IAC9G,MAAM,CAAU,eAAe,GAAG,IAAI,CAAC;IAEvC,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,SAAS,CAAC,SAAS;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;YACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YAC7D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;YACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YAC7D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,WAAW,EAAE;KACtC,CAAC;IAEF,yFAAyF;IAClF,KAAK,CAAC,GAAG;QACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1D,iCAAiC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAEhF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,QAAQ,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,QAAQ,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAErC,GAAG,CAAC,IAAI,CAAC,iBAAiB,YAAY,kBAAkB,YAAY,kBAAkB,YAAY,EAAE,CAAC,CAAC;QAEtG,MAAM,yBAAyB,GAA8B;YAC3D,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,SAAS;YAC3B,OAAO,EAAE,uDAAuD;YAChE,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzB,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAEpE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAExG,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAC3C,CAAC,cAAc,EAAE,EAAE,CACjB,cAAc,CAAC,UAAU,KAAK,KAAK;YACnC,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,YAAY;YACvD,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,YAAY;YACvD,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,YAAY,CAC1D,CAAC;QAEF,MAAM,mCAAmC,GAAsC,EAAE,CAAC;QAElF,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YACvC,MAAM,qBAAqB,GAA0B;gBACnD,UAAU;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,aAAa,CAAC,0BAA0B;aACpD,CAAC;YAEF,mCAAmC,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAkC,EAAE,CAAC;QAElD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;QAErF,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;YAC9C,QAAQ,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC7B,KAAK,WAAW;oBACd,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO;wBACtC,0BAA0B,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,0BAA0B;qBAC7E,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,UAAU;oBACb,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,aAAa,CAAC,MAAgB;wBACrC,0BAA0B,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,0BAA0B;qBAC7E,CAAC,CAAC;oBACH,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wDAAwD;IAChD,sBAAsB,CAAC,qBAAoD;QACjF,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACjE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;aAChC;SACF,CAAC,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../src/commands/simply/package/version/cleanup.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { NamedPackageDir } from '@salesforce/core';
2
- import { InstalledPackages, PackagingSObjects } from '@salesforce/packaging';
2
+ import { PackagingSObjects } from '@salesforce/packaging';
3
3
  import { BasePackageDirWithDependencies } from '../schemas/sfdx-project/packageDirs.js';
4
4
  type PackageInstallRequest = PackagingSObjects.PackageInstallRequest;
5
5
  /** ID prefix for a `Package2` (a 2GP package definition). */
@@ -30,12 +30,6 @@ export declare const isSubscriberPackageId: (inputToEvaluate: string) => boolean
30
30
  * @returns Whether `inputToEvaluate` looks like a `SubscriberPackageVersionId`.
31
31
  */
32
32
  export declare const isSubscriberPackageVersionId: (inputToEvaluate: string) => boolean;
33
- /**
34
- * @param installedPackages - The org's currently installed packages.
35
- * @param subscriberPackageVersionId - The `SubscriberPackageVersionId` to look for.
36
- * @returns Whether exactly that version is already installed in the org.
37
- */
38
- export declare const isSubscriberPackageVersionInstalled: (installedPackages: InstalledPackages[], subscriberPackageVersionId: string) => boolean;
39
33
  /**
40
34
  * Format a `PackageInstallRequest`'s errors as a single human-readable, numbered-list string.
41
35
  *
@@ -41,12 +41,6 @@ export const isSubscriberPackageId = (inputToEvaluate) => inputToEvaluate ? inpu
41
41
  * @returns Whether `inputToEvaluate` looks like a `SubscriberPackageVersionId`.
42
42
  */
43
43
  export const isSubscriberPackageVersionId = (inputToEvaluate) => inputToEvaluate ? inputToEvaluate.startsWith(PACKAGE_PREFIX_SUBSCRIBER_PACKAGE_VERSION) : false;
44
- /**
45
- * @param installedPackages - The org's currently installed packages.
46
- * @param subscriberPackageVersionId - The `SubscriberPackageVersionId` to look for.
47
- * @returns Whether exactly that version is already installed in the org.
48
- */
49
- export const isSubscriberPackageVersionInstalled = (installedPackages, subscriberPackageVersionId) => installedPackages.some((installedPackage) => installedPackage?.SubscriberPackageVersion?.Id === subscriberPackageVersionId);
50
44
  /**
51
45
  * Format a `PackageInstallRequest`'s errors as a single human-readable, numbered-list string.
52
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"packageUtils.js","sourceRoot":"","sources":["../../src/common/packageUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AACrD,oGAAoG;AACpG,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,mGAAmG;AACnG,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAuB,EAAW,EAAE,CAC/D,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAuB,EAAW,EAAE,CACtE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAExF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAuB,EAAW,EAAE,CACxE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE1F;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAuB,EAAW,EAAE,CAC/E,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAElG;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,iBAAsC,EACtC,0BAAkC,EACzB,EAAE,CACX,iBAAiB,CAAC,IAAI,CACpB,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,EAAE,KAAK,0BAA0B,CACpG,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,OAA8B,EAAU,EAAE;IAC1F,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;IACvC,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,GAAG,uBAAuB,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAA2B,EACqC,EAAE,CAClE,cAAc,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"packageUtils.js","sourceRoot":"","sources":["../../src/common/packageUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AACrD,oGAAoG;AACpG,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,mGAAmG;AACnG,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAuB,EAAW,EAAE,CAC/D,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAuB,EAAW,EAAE,CACtE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAExF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAuB,EAAW,EAAE,CACxE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE1F;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAuB,EAAW,EAAE,CAC/E,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAElG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,OAA8B,EAAU,EAAE;IAC1F,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;IACvC,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,GAAG,uBAAuB,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAA2B,EACqC,EAAE,CAClE,cAAc,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
@@ -54,6 +54,14 @@ Allows the following without an explicit confirmation response: 1) Remote Site S
54
54
 
55
55
  Maximum number of minutes to wait for the Subscriber Package Version ID to become available in the target org before canceling the install request.
56
56
 
57
+ # flags.report-file.summary
58
+
59
+ Path to write a JSON install report to.
60
+
61
+ # flags.report-file.description
62
+
63
+ When specified, a JSON report of the install outcome for every resolved dependency is written to this path, in addition to the normal terminal output you can continue to monitor as the command runs. Each entry includes the package name, the SubscriberPackageVersionId already installed in the org (if any), the SubscriberPackageVersionId that was attempted, and the decision made (Skipped, Installed, Installing, or Failed).
64
+
57
65
  # flags.security-type.summary
58
66
 
59
67
  Security access type for the installed package. (deprecation notice: The default --security-type value will change from AllUsers to AdminsOnly in v47.0 or later.)
@@ -90,6 +98,8 @@ Number of minutes to wait for installation status.
90
98
 
91
99
  - <%= config.bin %> <%= command.id %> --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key" --installation-key "MyPackage2Alias:MyPackage2Key"
92
100
 
101
+ - <%= config.bin %> <%= command.id %> --target-org myTargetOrg --target-dev-hub myTargetDevHub --report-file install-report.json
102
+
93
103
  # error.apiVersionTooLow
94
104
 
95
105
  This command is supported only on API versions 36.0 and higher.
@@ -136,6 +146,10 @@ Unable to establish connection to the org.
136
146
 
137
147
  We canceled this package installation per your request.
138
148
 
149
+ # info.reportWritten
150
+
151
+ Install report written to %s
152
+
139
153
  # prompt.enableRss
140
154
 
141
155
  This package might send or receive data from these third-party websites:
@@ -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.8.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": "8f0eb881b851e061bf7b007dbb5f851b81310376"
227
227
  }