@salesforce/packaging 0.0.9 → 0.0.12
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 +18 -0
- package/lib/interfaces/packagingInterfacesAndType.d.ts +12 -1
- package/lib/interfaces/packagingInterfacesAndType.js +4 -0
- package/lib/interfaces/packagingSObjects.d.ts +27 -3
- package/lib/interfaces/packagingSObjects.js +5 -0
- package/lib/package/packageVersion.d.ts +34 -3
- package/lib/package/packageVersion.js +130 -18
- package/lib/package/packageVersionCreate.js +8 -18
- package/lib/package/packageVersionCreateRequestReport.d.ts +6 -0
- package/lib/package/packageVersionCreateRequestReport.js +18 -0
- package/lib/package/packageVersionReport.d.ts +8 -0
- package/lib/package/packageVersionReport.js +70 -0
- package/lib/package1/index.d.ts +2 -0
- package/lib/package1/index.js +2 -0
- package/lib/package1/package1VersionCreate.d.ts +7 -0
- package/lib/package1/package1VersionCreate.js +55 -0
- package/lib/package1/package1VersionList.d.ts +11 -0
- package/lib/package1/package1VersionList.js +31 -0
- package/lib/utils/packageUtils.d.ts +2 -2
- package/lib/utils/packageUtils.js +1 -1
- package/messages/messages.md +9 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
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.12](https://github.com/forcedotcom/packaging/compare/v0.0.11...v0.0.12) (2022-07-29)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- add package1VersionCreate command, refactor tests, allow .test.ts ([aa34e8c](https://github.com/forcedotcom/packaging/commit/aa34e8cfe4ad865bb299baa6db51b2af22454a86))
|
|
10
|
+
|
|
11
|
+
### [0.0.11](https://github.com/forcedotcom/packaging/compare/v0.0.10...v0.0.11) (2022-07-27)
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
- add package1 version list query, UTs ([302653b](https://github.com/forcedotcom/packaging/commit/302653b8bd355d59aa0efbcc2f226ab4dff82baa))
|
|
16
|
+
|
|
17
|
+
### [0.0.10](https://github.com/forcedotcom/packaging/compare/v0.0.9...v0.0.10) (2022-07-26)
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
- add pv report and pvc report ([d5b69be](https://github.com/forcedotcom/packaging/commit/d5b69be112915e8ee885ef88a8e65ffa2e3d8a0f))
|
|
22
|
+
|
|
5
23
|
### [0.0.9](https://github.com/forcedotcom/packaging/compare/v0.0.8...v0.0.9) (2022-07-19)
|
|
6
24
|
|
|
7
25
|
### 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,13 @@ 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
|
+
};
|
|
191
|
+
export declare type Package1VersionCreateRequest = Pick<PackagingSObjects.PackageUploadRequest, 'VersionName'> & Partial<Pick<PackagingSObjects.PackageUploadRequest, 'MetadataPackageId' | 'Description' | 'MajorVersion' | 'MinorVersion' | 'IsReleaseVersion' | 'ReleaseNotesUrl' | 'PostInstallUrl' | 'Password'>>;
|
|
@@ -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:
|
|
124
|
-
Dependencies:
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
if (
|
|
605
|
-
|
|
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
|
-
|
|
609
|
-
|
|
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
|
package/lib/package1/index.d.ts
CHANGED
package/lib/package1/index.js
CHANGED
|
@@ -23,4 +23,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
23
23
|
__exportStar(require("./packageVersion1GP"), exports);
|
|
24
24
|
__exportStar(require("./packageDisplay"), exports);
|
|
25
25
|
__exportStar(require("./package1VersionCreateGet"), exports);
|
|
26
|
+
__exportStar(require("./package1VersionCreate"), exports);
|
|
27
|
+
__exportStar(require("./package1VersionList"), exports);
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
import { Duration } from '@salesforce/kit';
|
|
3
|
+
import { Package1VersionCreateRequest, PackagingSObjects } from '../interfaces';
|
|
4
|
+
export declare function package1VersionCreate(connection: Connection, options: Package1VersionCreateRequest, pollingOptions?: {
|
|
5
|
+
frequency: Duration;
|
|
6
|
+
timeout: Duration;
|
|
7
|
+
}): Promise<PackagingSObjects.PackageUploadRequest>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.package1VersionCreate = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
* Licensed under the BSD 3-Clause license.
|
|
8
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
|
+
*/
|
|
10
|
+
const os = require("os");
|
|
11
|
+
const core_1 = require("@salesforce/core");
|
|
12
|
+
const kit_1 = require("@salesforce/kit");
|
|
13
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
14
|
+
const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'messages');
|
|
15
|
+
const packageUploadRequestStatus = async (id, connection, timeout, frequency) => {
|
|
16
|
+
const pollingResult = await connection.tooling.sobject('PackageUploadRequest').retrieve(id);
|
|
17
|
+
switch (pollingResult.Status) {
|
|
18
|
+
case 'SUCCESS':
|
|
19
|
+
return { completed: true, payload: pollingResult };
|
|
20
|
+
case 'IN_PROGRESS':
|
|
21
|
+
case 'QUEUED':
|
|
22
|
+
timeout -= frequency;
|
|
23
|
+
await core_1.Lifecycle.getInstance().emit('package1VersionCreate:progress', { timeout, pollingResult });
|
|
24
|
+
return { completed: false, payload: pollingResult };
|
|
25
|
+
default: {
|
|
26
|
+
if (pollingResult?.Errors?.errors?.length > 0) {
|
|
27
|
+
throw messages.createError('package1VersionCreateCommandUploadFailure', [
|
|
28
|
+
pollingResult.Errors.errors.map((e) => e.message).join(os.EOL),
|
|
29
|
+
]);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw messages.createError('package1VersionCreateCommandUploadFailureDefault');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
async function package1VersionCreate(connection, options, pollingOptions = { frequency: kit_1.Duration.seconds(5), timeout: kit_1.Duration.seconds(0) }) {
|
|
38
|
+
const createRequest = await connection.tooling.sobject('PackageUploadRequest').create(options);
|
|
39
|
+
if (pollingOptions.timeout.seconds) {
|
|
40
|
+
const timeout = pollingOptions.timeout.seconds;
|
|
41
|
+
const pollingClient = await core_1.PollingClient.create({
|
|
42
|
+
poll: () => packageUploadRequestStatus(createRequest.id, connection, timeout, pollingOptions.frequency.seconds),
|
|
43
|
+
...pollingOptions,
|
|
44
|
+
});
|
|
45
|
+
return pollingClient.subscribe();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// jsforce templates weren't working when setting the type to PackageUploadRequest, so we have to cast `as unknown as PackagingSObjects.PackageUploadRequest`
|
|
49
|
+
return (await connection.tooling
|
|
50
|
+
.sobject('PackageUploadRequest')
|
|
51
|
+
.retrieve(createRequest.id));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.package1VersionCreate = package1VersionCreate;
|
|
55
|
+
//# sourceMappingURL=package1VersionCreate.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
import { Package1Display } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Lists package versions available in dev org. If package ID is supplied, only list versions of that package,
|
|
5
|
+
* otherwise, list all package versions
|
|
6
|
+
*
|
|
7
|
+
* @param connection: sfdx-core Connection to the org
|
|
8
|
+
* @param metadataPackageId: optional, if present ID of package to list versions for (starts with 033)
|
|
9
|
+
* @returns Array of package version results
|
|
10
|
+
*/
|
|
11
|
+
export declare function package1VersionList(connection: Connection, metadataPackageId?: string): Promise<Package1Display[]>;
|
|
@@ -0,0 +1,31 @@
|
|
|
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.package1VersionList = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Lists package versions available in dev org. If package ID is supplied, only list versions of that package,
|
|
12
|
+
* otherwise, list all package versions
|
|
13
|
+
*
|
|
14
|
+
* @param connection: sfdx-core Connection to the org
|
|
15
|
+
* @param metadataPackageId: optional, if present ID of package to list versions for (starts with 033)
|
|
16
|
+
* @returns Array of package version results
|
|
17
|
+
*/
|
|
18
|
+
async function package1VersionList(connection, metadataPackageId) {
|
|
19
|
+
const query = `SELECT Id,MetadataPackageId,Name,ReleaseState,MajorVersion,MinorVersion,PatchVersion,BuildNumber FROM MetadataPackageVersion ${metadataPackageId ? `WHERE MetadataPackageId = '${metadataPackageId}'` : ''} ORDER BY MetadataPackageId, MajorVersion, MinorVersion, PatchVersion, BuildNumber`;
|
|
20
|
+
const queryResult = await connection.tooling.query(query);
|
|
21
|
+
return queryResult.records?.map((record) => ({
|
|
22
|
+
MetadataPackageVersionId: record.Id,
|
|
23
|
+
MetadataPackageId: record.MetadataPackageId,
|
|
24
|
+
Name: record.Name,
|
|
25
|
+
ReleaseState: record.ReleaseState,
|
|
26
|
+
Version: `${record.MajorVersion}.${record.MinorVersion}.${record.PatchVersion}`,
|
|
27
|
+
BuildNumber: record.BuildNumber,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
exports.package1VersionList = package1VersionList;
|
|
31
|
+
//# sourceMappingURL=package1VersionList.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
|
|
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/messages/messages.md
CHANGED
|
@@ -238,3 +238,12 @@ Un-packaged metadata directory %s was specified but does not exist.
|
|
|
238
238
|
# directoryDoesNotExist
|
|
239
239
|
|
|
240
240
|
Directory %s does not exist.
|
|
241
|
+
|
|
242
|
+
# package1VersionCreateCommandUploadFailureDefault
|
|
243
|
+
|
|
244
|
+
Package version creation failed with unknown error
|
|
245
|
+
|
|
246
|
+
# package1VersionCreateCommandUploadFailure
|
|
247
|
+
|
|
248
|
+
Package upload failed.
|
|
249
|
+
%s
|