@salesforce/packaging 0.0.9 → 0.0.10

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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.10](https://github.com/forcedotcom/packaging/compare/v0.0.9...v0.0.10) (2022-07-26)
6
+
7
+ ### Bug Fixes
8
+
9
+ - add pv report and pvc report ([d5b69be](https://github.com/forcedotcom/packaging/commit/d5b69be112915e8ee885ef88a8e65ffa2e3d8a0f))
10
+
5
11
  ### [0.0.9](https://github.com/forcedotcom/packaging/compare/v0.0.8...v0.0.9) (2022-07-19)
6
12
 
7
13
  ### Features
@@ -32,7 +32,6 @@ export interface IPackageVersion2GP {
32
32
  update(): Promise<void>;
33
33
  }
34
34
  export declare type PackageOptions = Record<string, unknown>;
35
- export declare type PackageVersion2Options = Record<string, unknown>;
36
35
  export declare type PackageVersionOptions1GP = Record<string, unknown>;
37
36
  export declare type PackageVersionCreateRequestResult = {
38
37
  Id: string;
@@ -47,6 +46,7 @@ export declare type PackageVersionCreateRequestResult = {
47
46
  HasMetadataRemoved: boolean | null;
48
47
  CreatedBy: string;
49
48
  };
49
+ export declare const PackageVersionCreateRequestResultInProgressStatuses: PackagingSObjects.Package2VersionStatus[];
50
50
  export declare type PackageVersionCreateRequestError = {
51
51
  Message: string;
52
52
  };
@@ -166,6 +166,7 @@ export declare type PackageVersionCreateOptions = Partial<PackageVersionOptions
166
166
  versionname: string;
167
167
  versionnumber: string;
168
168
  wait: Duration;
169
+ pollInterval: Duration;
169
170
  profileApi: PackageProfileApi;
170
171
  }>;
171
172
  export declare type PackageVersionCreateRequestQueryOptions = {
@@ -178,3 +179,12 @@ export declare type ProfileApiOptions = {
178
179
  includeUserLicenses: boolean;
179
180
  generateProfileInformation: boolean;
180
181
  };
182
+ export declare type PackageVersionReportResult = Partial<PackagingSObjects.Package2Version> & {
183
+ Package2: Partial<PackagingSObjects.Package2>;
184
+ SubscriberPackageVersion?: Pick<PackagingSObjects.SubscriberPackageVersion, 'Dependencies'>;
185
+ Version: string;
186
+ AncestorVersion?: string;
187
+ };
188
+ export declare type PackageVersionCreateReportProgress = PackageVersionCreateRequestResult & {
189
+ remainingWaitTime: Duration;
190
+ };
@@ -6,4 +6,8 @@
6
6
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PackageVersionCreateRequestResultInProgressStatuses = void 0;
10
+ const packagingSObjects_1 = require("./packagingSObjects");
11
+ var Package2VersionStatus = packagingSObjects_1.PackagingSObjects.Package2VersionStatus;
12
+ exports.PackageVersionCreateRequestResultInProgressStatuses = Object.values(Package2VersionStatus).filter((status) => !['Queued', 'Success', 'Error'].includes(status));
9
13
  //# sourceMappingURL=packagingInterfacesAndType.js.map
@@ -53,7 +53,12 @@ export declare namespace PackagingSObjects {
53
53
  queued = "Queued",
54
54
  inProgress = "InProgress",
55
55
  success = "Success",
56
- error = "Error"
56
+ error = "Error",
57
+ initializing = "Initializing",
58
+ verifyingFeaturesAndSettings = "VerifyingFeaturesAndSettings",
59
+ verifyingDependencies = "VerifyingDependencies",
60
+ verifyingMetadata = "VerifyingMetadata",
61
+ finalizingPackageVersion = "FinalizingPackageVersion"
57
62
  }
58
63
  type Package2VersionCreateRequest = {
59
64
  Id: string;
@@ -94,6 +99,25 @@ export declare namespace PackagingSObjects {
94
99
  Description: string;
95
100
  IsPackageValid: boolean;
96
101
  };
102
+ type SubscriberPackageDestinationProfile = {
103
+ description: string;
104
+ displayName: string;
105
+ name: string;
106
+ noAccess: boolean;
107
+ profileId: string;
108
+ type: string;
109
+ };
110
+ type SubscriberPackageSourceProfile = {
111
+ label: string;
112
+ value: string;
113
+ };
114
+ type SubscriberPackageProfiles = {
115
+ destinationProfiles: SubscriberPackageDestinationProfile[];
116
+ sourceProfiles: SubscriberPackageSourceProfile[];
117
+ };
118
+ type SubscriberPackageDependencies = {
119
+ ids: string[];
120
+ };
97
121
  type SubscriberPackageVersion = {
98
122
  Id: string;
99
123
  SubscriberPackageId: string;
@@ -120,8 +144,8 @@ export declare namespace PackagingSObjects {
120
144
  PostInstallUrl: string;
121
145
  RemoteSiteSettings: unknown;
122
146
  CspTrustedSites: unknown;
123
- Profiles: unknown;
124
- Dependencies: unknown;
147
+ Profiles: SubscriberPackageProfiles;
148
+ Dependencies: SubscriberPackageDependencies;
125
149
  InstallValidationStatus: string;
126
150
  };
127
151
  type SubscriberPackageVersionUninstallRequest = {
@@ -9,6 +9,11 @@ var PackagingSObjects;
9
9
  Package2VersionStatus["inProgress"] = "InProgress";
10
10
  Package2VersionStatus["success"] = "Success";
11
11
  Package2VersionStatus["error"] = "Error";
12
+ Package2VersionStatus["initializing"] = "Initializing";
13
+ Package2VersionStatus["verifyingFeaturesAndSettings"] = "VerifyingFeaturesAndSettings";
14
+ Package2VersionStatus["verifyingDependencies"] = "VerifyingDependencies";
15
+ Package2VersionStatus["verifyingMetadata"] = "VerifyingMetadata";
16
+ Package2VersionStatus["finalizingPackageVersion"] = "FinalizingPackageVersion";
12
17
  })(Package2VersionStatus = PackagingSObjects.Package2VersionStatus || (PackagingSObjects.Package2VersionStatus = {}));
13
18
  })(PackagingSObjects = exports.PackagingSObjects || (exports.PackagingSObjects = {}));
14
19
  //# sourceMappingURL=packagingSObjects.js.map
@@ -1,4 +1,5 @@
1
- import { PackageVersionCreateRequestResult, PackageSaveResult, PackageVersionCreateOptions, PackageVersionOptions } from '../interfaces';
1
+ import { Duration } from '@salesforce/kit';
2
+ import { PackageVersionCreateRequestResult, PackageSaveResult, PackageVersionCreateOptions, PackageVersionOptions, PackageVersionReportResult } from '../interfaces';
2
3
  export declare class PackageVersion {
3
4
  private options;
4
5
  private readonly project;
@@ -14,12 +15,42 @@ export declare class PackageVersion {
14
15
  * Deletes a package version.
15
16
  *
16
17
  * @param idOrAlias
17
- * @param undelete
18
18
  */
19
- delete(idOrAlias: string, undelete?: boolean): Promise<PackageSaveResult>;
19
+ delete(idOrAlias: string): Promise<PackageSaveResult>;
20
+ /**
21
+ * Undeletes a package version.
22
+ *
23
+ * @param idOrAlias
24
+ */
25
+ undelete(idOrAlias: string): Promise<PackageSaveResult>;
26
+ /**
27
+ * Gets the package version report.
28
+ *
29
+ * @param createPackageRequestId
30
+ * @param verbose
31
+ */
32
+ report(createPackageRequestId: string, verbose?: boolean): Promise<PackageVersionReportResult>;
33
+ /**
34
+ * Gets current state of a package version create request.
35
+ *
36
+ * @param createPackageRequestId
37
+ */
38
+ getCreateVersionReport(createPackageRequestId: string): Promise<PackageVersionCreateRequestResult>;
39
+ /**
40
+ * Convenience function that will wait for a package version to be created.
41
+ *
42
+ * This function emits LifeCycle events, "enqueued", "in-progress", "success", "error" and "timed-out" to
43
+ * progress and current status. Events also carry a payload of type PackageVersionCreateRequestResult.
44
+ *
45
+ * @param createPackageVersionRequestId
46
+ * @param wait - how long to wait for the package version to be created
47
+ * @param interval - frequency of checking for the package version to be created
48
+ */
49
+ waitForCreateVersion(createPackageVersionRequestId: string, wait?: Duration, interval?: Duration): Promise<PackageVersionCreateRequestResult>;
20
50
  convert(): Promise<void>;
21
51
  install(): Promise<void>;
22
52
  list(): Promise<void>;
23
53
  uninstall(): Promise<void>;
24
54
  update(): Promise<void>;
55
+ private updateDeprecation;
25
56
  }
@@ -8,9 +8,12 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.PackageVersion = void 0;
10
10
  const core_1 = require("@salesforce/core");
11
+ const kit_1 = require("@salesforce/kit");
11
12
  const pkgUtils = require("../utils/packageUtils");
12
13
  const utils_1 = require("../utils");
13
14
  const packageVersionCreate_1 = require("./packageVersionCreate");
15
+ const packageVersionReport_1 = require("./packageVersionReport");
16
+ const packageVersionCreateRequestReport_1 = require("./packageVersionCreateRequestReport");
14
17
  core_1.Messages.importMessagesDirectory(__dirname);
15
18
  // const messages = Messages.loadMessages('@salesforce/packaging', 'messages');
16
19
  // const logger = Logger.childFromRoot('packageVersionCreate');
@@ -27,31 +30,122 @@ class PackageVersion {
27
30
  */
28
31
  async create(options) {
29
32
  const pvc = new packageVersionCreate_1.PackageVersionCreate({ ...options, ...this.options });
30
- return pvc.createPackageVersion();
33
+ const createResult = await pvc.createPackageVersion();
34
+ const waitResult = await this.waitForCreateVersion(createResult.Id, options.wait ?? kit_1.Duration.milliseconds(0), options.pollInterval ? options.pollInterval : kit_1.Duration.seconds(30)).catch((err) => {
35
+ // TODO
36
+ // until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
37
+ throw pkgUtils.applyErrorAction(err);
38
+ });
39
+ return waitResult;
31
40
  }
32
41
  /**
33
42
  * Deletes a package version.
34
43
  *
35
44
  * @param idOrAlias
36
- * @param undelete
37
45
  */
38
- async delete(idOrAlias, undelete = false) {
39
- const packageVersionId = pkgUtils.getPackageIdFromAlias(idOrAlias, this.project);
40
- // ID can be an 04t or 05i
41
- pkgUtils.validateId([pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, pkgUtils.BY_LABEL.PACKAGE_VERSION_ID], packageVersionId);
42
- // lookup the 05i ID, if needed
43
- const packageId = await pkgUtils.getPackageVersionId(packageVersionId, this.connection);
44
- // setup the request
45
- const request = {
46
- Id: packageId,
47
- IsDeprecated: !undelete,
48
- };
49
- const updateResult = await this.connection.tooling.update('Package2Version', request);
50
- if (!updateResult.success) {
51
- throw (0, utils_1.combineSaveErrors)('Package2', 'update', updateResult.errors);
46
+ async delete(idOrAlias) {
47
+ return this.updateDeprecation(idOrAlias, true);
48
+ }
49
+ /**
50
+ * Undeletes a package version.
51
+ *
52
+ * @param idOrAlias
53
+ */
54
+ async undelete(idOrAlias) {
55
+ return this.updateDeprecation(idOrAlias, false);
56
+ }
57
+ /**
58
+ * Gets the package version report.
59
+ *
60
+ * @param createPackageRequestId
61
+ * @param verbose
62
+ */
63
+ async report(createPackageRequestId, verbose = false) {
64
+ const results = await (0, packageVersionReport_1.getPackageVersionReport)({
65
+ idOrAlias: createPackageRequestId,
66
+ connection: this.connection,
67
+ project: this.project,
68
+ verbose,
69
+ }).catch((err) => {
70
+ // TODO
71
+ // until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
72
+ throw pkgUtils.applyErrorAction(err);
73
+ });
74
+ return results[0];
75
+ }
76
+ /**
77
+ * Gets current state of a package version create request.
78
+ *
79
+ * @param createPackageRequestId
80
+ */
81
+ async getCreateVersionReport(createPackageRequestId) {
82
+ return await (0, packageVersionCreateRequestReport_1.getCreatePackageVersionCreateRequestReport)({
83
+ createPackageVersionRequestId: createPackageRequestId,
84
+ connection: this.connection,
85
+ }).catch((err) => {
86
+ // TODO
87
+ // until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
88
+ throw pkgUtils.applyErrorAction(err);
89
+ });
90
+ }
91
+ /**
92
+ * Convenience function that will wait for a package version to be created.
93
+ *
94
+ * This function emits LifeCycle events, "enqueued", "in-progress", "success", "error" and "timed-out" to
95
+ * progress and current status. Events also carry a payload of type PackageVersionCreateRequestResult.
96
+ *
97
+ * @param createPackageVersionRequestId
98
+ * @param wait - how long to wait for the package version to be created
99
+ * @param interval - frequency of checking for the package version to be created
100
+ */
101
+ async waitForCreateVersion(createPackageVersionRequestId, wait = kit_1.Duration.milliseconds(0), interval = kit_1.Duration.milliseconds(0)) {
102
+ if (wait?.milliseconds <= 0) {
103
+ const result = await this.getCreateVersionReport(createPackageVersionRequestId);
104
+ return result;
105
+ }
106
+ let remainingWaitTime = wait;
107
+ let report;
108
+ const pollingClient = await core_1.PollingClient.create({
109
+ poll: async () => {
110
+ report = await this.getCreateVersionReport(createPackageVersionRequestId);
111
+ switch (report.Status) {
112
+ case 'Queued':
113
+ await core_1.Lifecycle.getInstance().emit('enqueued', { ...report, remainingWaitTime });
114
+ remainingWaitTime = kit_1.Duration.seconds(remainingWaitTime.seconds - interval.seconds);
115
+ return {
116
+ completed: false,
117
+ payload: report,
118
+ };
119
+ case 'InProgress':
120
+ case 'Initializing':
121
+ case 'VerifyingFeaturesAndSettings':
122
+ case 'VerifyingDependencies':
123
+ case 'VerifyingMetadata':
124
+ case 'FinalizingPackageVersion':
125
+ await core_1.Lifecycle.getInstance().emit('in-progress', { ...report, remainingWaitTime });
126
+ remainingWaitTime = kit_1.Duration.seconds(remainingWaitTime.seconds - interval.seconds);
127
+ return {
128
+ completed: false,
129
+ payload: report,
130
+ };
131
+ case 'Success':
132
+ await core_1.Lifecycle.getInstance().emit('success', report);
133
+ return { completed: true, payload: report };
134
+ case 'Error':
135
+ await core_1.Lifecycle.getInstance().emit('error', report);
136
+ return { completed: true, payload: report };
137
+ }
138
+ },
139
+ frequency: interval,
140
+ timeout: wait,
141
+ });
142
+ try {
143
+ return pollingClient.subscribe();
144
+ }
145
+ catch (err) {
146
+ await core_1.Lifecycle.getInstance().emit('timed-out', report);
147
+ throw pkgUtils.applyErrorAction(err);
52
148
  }
53
- updateResult.id = await pkgUtils.getSubscriberPackageVersionId(packageVersionId, this.connection);
54
- return updateResult;
55
149
  }
56
150
  convert() {
57
151
  return Promise.resolve(undefined);
@@ -68,6 +162,24 @@ class PackageVersion {
68
162
  update() {
69
163
  return Promise.resolve(undefined);
70
164
  }
165
+ async updateDeprecation(idOrAlias, IsDeprecated) {
166
+ const packageVersionId = pkgUtils.getPackageIdFromAlias(idOrAlias, this.project);
167
+ // ID can be an 04t or 05i
168
+ pkgUtils.validateId([pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, pkgUtils.BY_LABEL.PACKAGE_VERSION_ID], packageVersionId);
169
+ // lookup the 05i ID, if needed
170
+ const packageId = await pkgUtils.getPackageVersionId(packageVersionId, this.connection);
171
+ // setup the request
172
+ const request = {
173
+ Id: packageId,
174
+ IsDeprecated,
175
+ };
176
+ const updateResult = await this.connection.tooling.update('Package2Version', request);
177
+ if (!updateResult.success) {
178
+ throw (0, utils_1.combineSaveErrors)('Package2', 'update', updateResult.errors);
179
+ }
180
+ updateResult.id = await pkgUtils.getSubscriberPackageVersionId(packageVersionId, this.connection);
181
+ return updateResult;
182
+ }
71
183
  }
72
184
  exports.PackageVersion = PackageVersion;
73
185
  //# sourceMappingURL=packageVersion.js.map
@@ -557,14 +557,6 @@ class PackageVersionCreate {
557
557
  return value;
558
558
  }
559
559
  async packageVersionCreate(options) {
560
- let pollInterval = kit_1.Duration.seconds(pkgUtils.POLL_INTERVAL_SECONDS);
561
- let maxRetries = 0;
562
- if (options.wait?.milliseconds > 0) {
563
- if (options.skipvalidation === true) {
564
- pollInterval = kit_1.Duration.seconds(POLL_INTERVAL_WITHOUT_VALIDATION_SECONDS);
565
- }
566
- maxRetries = (60 / pollInterval.seconds) * options.wait.seconds;
567
- }
568
560
  // For the first rollout of validating sfdx-project.json data against schema, make it optional and defaulted
569
561
  // to false. Validation only occurs if the hidden -j (--validateschema) flag has been specified.
570
562
  if (options.validateschema) {
@@ -588,7 +580,6 @@ class PackageVersionCreate {
588
580
  throw messages.createError('directoryDoesNotExist', [options.path]);
589
581
  }
590
582
  options.profileApi = await this.resolveUserLicenses(canonicalPackageProperty, options);
591
- [pollInterval, maxRetries] = await this.resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries);
592
583
  const request = await this.createPackageVersionCreateRequestFromOptions(options, resolvedPackageId, versionNumberString);
593
584
  const createResult = await this.connection.tooling.create('Package2VersionCreateRequest', request);
594
585
  if (!createResult.success) {
@@ -598,17 +589,16 @@ class PackageVersionCreate {
598
589
  errStr.toString(),
599
590
  ]);
600
591
  }
601
- let result;
602
- if (options.wait && options.wait.milliseconds > 0) {
603
- pollInterval = pollInterval ?? kit_1.Duration.seconds(options.wait.seconds / maxRetries);
604
- if (pollInterval) {
605
- result = await pkgUtils.pollForStatusWithInterval(createResult.id, maxRetries, resolvedPackageId, options.branch, this.project, this.connection, pollInterval);
592
+ let pollInterval = kit_1.Duration.seconds(pkgUtils.POLL_INTERVAL_SECONDS);
593
+ let maxRetries = 0;
594
+ if (options.wait?.milliseconds > 0) {
595
+ if (options.skipvalidation === true) {
596
+ pollInterval = kit_1.Duration.seconds(POLL_INTERVAL_WITHOUT_VALIDATION_SECONDS);
606
597
  }
598
+ maxRetries = (60 / pollInterval.seconds) * options.wait.seconds;
607
599
  }
608
- else {
609
- result = (await this.listRequestById(createResult.id, this.connection))[0];
610
- }
611
- return result;
600
+ [pollInterval, maxRetries] = await this.resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries);
601
+ return (await this.listRequestById(createResult.id, this.connection))[0];
612
602
  }
613
603
  resolveCanonicalPackageProperty(options) {
614
604
  let canonicalPackageProperty;
@@ -0,0 +1,6 @@
1
+ import { Connection } from '@salesforce/core';
2
+ import { PackageVersionCreateRequestResult } from '../interfaces';
3
+ export declare function getCreatePackageVersionCreateRequestReport(options: {
4
+ createPackageVersionRequestId: string;
5
+ connection: Connection;
6
+ }): Promise<PackageVersionCreateRequestResult>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getCreatePackageVersionCreateRequestReport = void 0;
10
+ const pkgUtils = require("../utils/packageUtils");
11
+ const packageVersionCreateRequest_1 = require("./packageVersionCreateRequest");
12
+ async function getCreatePackageVersionCreateRequestReport(options) {
13
+ pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_VERSION_CREATE_REQUEST_ID, options.createPackageVersionRequestId);
14
+ const results = await (0, packageVersionCreateRequest_1.byId)(options.createPackageVersionRequestId, options.connection);
15
+ return results[0];
16
+ }
17
+ exports.getCreatePackageVersionCreateRequestReport = getCreatePackageVersionCreateRequestReport;
18
+ //# sourceMappingURL=packageVersionCreateRequestReport.js.map
@@ -0,0 +1,8 @@
1
+ import { Connection, SfProject } from '@salesforce/core';
2
+ import { PackageVersionReportResult } from '../interfaces';
3
+ export declare function getPackageVersionReport(options: {
4
+ idOrAlias: string;
5
+ connection: Connection;
6
+ project: SfProject;
7
+ verbose: boolean;
8
+ }): Promise<PackageVersionReportResult[]>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getPackageVersionReport = void 0;
10
+ // Node
11
+ const util = require("util");
12
+ // Local
13
+ const core_1 = require("@salesforce/core");
14
+ const pkgUtils = require("../utils/packageUtils");
15
+ const QUERY = 'SELECT Package2Id, SubscriberPackageVersionId, Name, Description, Tag, Branch, AncestorId, ValidationSkipped, ' +
16
+ 'MajorVersion, MinorVersion, PatchVersion, BuildNumber, IsReleased, CodeCoverage, HasPassedCodeCoverageCheck, ' +
17
+ 'Package2.IsOrgDependent, ReleaseVersion, BuildDurationInSeconds, HasMetadataRemoved, CreatedById ' +
18
+ 'FROM Package2Version ' +
19
+ "WHERE Id = '%s' AND IsDeprecated != true " +
20
+ 'ORDER BY Package2Id, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber';
21
+ // verbose adds: Id, ConvertedFromVersionId, SubscriberPackageVersion.Dependencies
22
+ const QUERY_VERBOSE = 'SELECT Id, Package2Id, SubscriberPackageVersionId, Name, Description, Tag, Branch, AncestorId, ValidationSkipped, ' +
23
+ 'MajorVersion, MinorVersion, PatchVersion, BuildNumber, IsReleased, CodeCoverage, HasPassedCodeCoverageCheck, ConvertedFromVersionId, ' +
24
+ 'Package2.IsOrgDependent, ReleaseVersion, BuildDurationInSeconds, HasMetadataRemoved, SubscriberPackageVersion.Dependencies, ' +
25
+ 'CreatedById, CodeCoveragePercentages ' +
26
+ 'FROM Package2Version ' +
27
+ "WHERE Id = '%s' AND IsDeprecated != true " +
28
+ 'ORDER BY Package2Id, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber';
29
+ const logger = core_1.Logger.childFromRoot('getPackageVersionReport');
30
+ async function getPackageVersionReport(options) {
31
+ logger.debug(`entering getPackageVersionReport(${util.inspect(options, { depth: null })})`);
32
+ let packageVersionId = pkgUtils.getPackageIdFromAlias(options.idOrAlias, options.project);
33
+ // ID can be an 04t or 05i
34
+ pkgUtils.validateId([pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, pkgUtils.BY_LABEL.PACKAGE_VERSION_ID], packageVersionId);
35
+ // lookup the 05i ID, if needed
36
+ packageVersionId = await pkgUtils.getPackageVersionId(packageVersionId, options.connection);
37
+ const queryResult = await options.connection.tooling.query(util.format(options.verbose ? QUERY_VERBOSE : QUERY, packageVersionId));
38
+ const records = queryResult.records;
39
+ if (records && records.length > 0) {
40
+ const record = records[0];
41
+ record.Version = [record.MajorVersion, record.MinorVersion, record.PatchVersion, record.BuildNumber].join('.');
42
+ const containerOptions = await pkgUtils.getContainerOptions([record.Package2Id], options.connection);
43
+ const packageType = containerOptions.get(record.Package2Id);
44
+ let ancestorVersion = null;
45
+ if (record.AncestorId) {
46
+ // lookup AncestorVersion value
47
+ const ancestorVersionMap = await pkgUtils.getPackageVersionStrings([record.AncestorId], options.connection);
48
+ ancestorVersion = ancestorVersionMap.get(record.AncestorId);
49
+ }
50
+ else {
51
+ // otherwise display 'N/A' if package is Unlocked Packages
52
+ if (packageType !== 'Managed') {
53
+ ancestorVersion = null;
54
+ record.AncestorId = null;
55
+ }
56
+ }
57
+ record.HasPassedCodeCoverageCheck =
58
+ record.Package2.IsOrgDependent === true || record.ValidationSkipped === true
59
+ ? null
60
+ : record.HasPassedCodeCoverageCheck;
61
+ record.Package2.IsOrgDependent = packageType === 'Managed' ? null : !!record.Package2.IsOrgDependent;
62
+ // set HasMetadataRemoved to null Unlocked, otherwise use existing value
63
+ record.HasMetadataRemoved = packageType !== 'Managed' ? null : !!record.HasMetadataRemoved;
64
+ record.AncestorVersion = ancestorVersion;
65
+ return records;
66
+ }
67
+ return [];
68
+ }
69
+ exports.getPackageVersionReport = getPackageVersionReport;
70
+ //# sourceMappingURL=packageVersionReport.js.map
@@ -1,4 +1,4 @@
1
- import { Connection, NamedPackageDir, PackageDir, SfError, SfProject } from '@salesforce/core';
1
+ import { Connection, NamedPackageDir, PackageDir, SfdcUrl, SfError, SfProject } from '@salesforce/core';
2
2
  import { Duration } from '@salesforce/kit';
3
3
  import { Many } from '@salesforce/ts-types';
4
4
  import { SaveError } from 'jsforce';
@@ -11,7 +11,7 @@ export declare type IdRegistryValue = {
11
11
  export declare type IdRegistry = {
12
12
  [key: string]: IdRegistryValue;
13
13
  };
14
- export declare const INSTALL_URL_BASE = "https://login.salesforce.com/packaging/installPackage.apexp?p0=";
14
+ export declare const INSTALL_URL_BASE: SfdcUrl;
15
15
  export declare const SOQL_WHERE_CLAUSE_MAX_LENGTH = 4000;
16
16
  export declare const POLL_INTERVAL_SECONDS = 30;
17
17
  export declare const DEFAULT_PACKAGE_DIR: {
@@ -36,7 +36,7 @@ const ID_REGISTRY = [
36
36
  label: 'Subscriber Package Version Id',
37
37
  },
38
38
  ];
39
- exports.INSTALL_URL_BASE = 'https://login.salesforce.com/packaging/installPackage.apexp?p0=';
39
+ exports.INSTALL_URL_BASE = new core_1.SfdcUrl('https://login.salesforce.com/packaging/installPackage.apexp?p0=');
40
40
  // https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_soslsoql.htm
41
41
  exports.SOQL_WHERE_CLAUSE_MAX_LENGTH = 4000;
42
42
  exports.POLL_INTERVAL_SECONDS = 30;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "packing libraries to Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",