@salesforce/packaging 0.0.7 → 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 +18 -0
- package/lib/interfaces/packagingInterfacesAndType.d.ts +19 -1
- package/lib/interfaces/packagingInterfacesAndType.js +4 -0
- package/lib/interfaces/packagingSObjects.d.ts +38 -3
- package/lib/interfaces/packagingSObjects.js +5 -0
- package/lib/package/packageCreate.js +3 -4
- package/lib/package/packageVersion.d.ts +34 -3
- package/lib/package/packageVersion.js +130 -18
- package/lib/package/packageVersionCreate.js +10 -22
- package/lib/package/packageVersionCreateRequestReport.d.ts +6 -0
- package/lib/package/packageVersionCreateRequestReport.js +18 -0
- package/lib/package/packageVersionList.js +1 -1
- 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/package1VersionCreateGet.d.ts +3 -0
- package/lib/package1/package1VersionCreateGet.js +16 -0
- package/lib/package1/packageDisplay.d.ts +9 -0
- package/lib/package1/packageDisplay.js +29 -0
- package/lib/utils/packageUtils.d.ts +2 -2
- package/lib/utils/packageUtils.js +11 -14
- package/lib/utils/versionNumber.js +1 -1
- package/package.json +5 -3
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.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
|
+
|
|
11
|
+
### [0.0.9](https://github.com/forcedotcom/packaging/compare/v0.0.8...v0.0.9) (2022-07-19)
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- add package1Display method for use with package1:version:display command ([ef3df30](https://github.com/forcedotcom/packaging/commit/ef3df309147bafb16367c957981a04470c6ad7df))
|
|
16
|
+
|
|
17
|
+
### [0.0.8](https://github.com/forcedotcom/packaging/compare/v0.0.7...v0.0.8) (2022-07-18)
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- add package1VersionDisplayGet method ([0de1b9e](https://github.com/forcedotcom/packaging/commit/0de1b9e730dc1dc18c68f4efa7bbc2e2b0b43807))
|
|
22
|
+
|
|
5
23
|
### [0.0.7](https://github.com/forcedotcom/packaging/compare/v0.0.6...v0.0.7) (2022-07-14)
|
|
6
24
|
|
|
7
25
|
### Bug Fixes
|
|
@@ -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
|
};
|
|
@@ -92,6 +92,14 @@ export declare type PackageVersionListResult = {
|
|
|
92
92
|
BuildDurationInSeconds?: number;
|
|
93
93
|
HasMetadataRemoved?: boolean;
|
|
94
94
|
};
|
|
95
|
+
export declare type Package1Display = {
|
|
96
|
+
MetadataPackageVersionId: string;
|
|
97
|
+
MetadataPackageId: string;
|
|
98
|
+
Name: string;
|
|
99
|
+
Version: string;
|
|
100
|
+
ReleaseState: string;
|
|
101
|
+
BuildNumber: number;
|
|
102
|
+
};
|
|
95
103
|
export declare type PackageType = 'Managed' | 'Unlocked';
|
|
96
104
|
export declare type PackageCreateOptions = {
|
|
97
105
|
name: string;
|
|
@@ -158,6 +166,7 @@ export declare type PackageVersionCreateOptions = Partial<PackageVersionOptions
|
|
|
158
166
|
versionname: string;
|
|
159
167
|
versionnumber: string;
|
|
160
168
|
wait: Duration;
|
|
169
|
+
pollInterval: Duration;
|
|
161
170
|
profileApi: PackageProfileApi;
|
|
162
171
|
}>;
|
|
163
172
|
export declare type PackageVersionCreateRequestQueryOptions = {
|
|
@@ -170,3 +179,12 @@ export declare type ProfileApiOptions = {
|
|
|
170
179
|
includeUserLicenses: boolean;
|
|
171
180
|
generateProfileInformation: boolean;
|
|
172
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:
|
|
124
|
-
Dependencies:
|
|
147
|
+
Profiles: SubscriberPackageProfiles;
|
|
148
|
+
Dependencies: SubscriberPackageDependencies;
|
|
125
149
|
InstallValidationStatus: string;
|
|
126
150
|
};
|
|
127
151
|
type SubscriberPackageVersionUninstallRequest = {
|
|
@@ -223,4 +247,15 @@ export declare namespace PackagingSObjects {
|
|
|
223
247
|
SubscriberPackageVersionId: string;
|
|
224
248
|
MinPackageVersionId: string;
|
|
225
249
|
};
|
|
250
|
+
type MetadataPackageVersion = {
|
|
251
|
+
Id: string;
|
|
252
|
+
MetadataPackageId: string;
|
|
253
|
+
Name: string;
|
|
254
|
+
ReleaseState: 'Beta' | 'Released';
|
|
255
|
+
MajorVersion: number;
|
|
256
|
+
MinorVersion: number;
|
|
257
|
+
PatchVersion: number;
|
|
258
|
+
BuildNumber: number;
|
|
259
|
+
IsDeprecated: boolean;
|
|
260
|
+
};
|
|
226
261
|
}
|
|
@@ -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
|
|
@@ -32,7 +32,6 @@ exports._createPackageRequestFromContext = _createPackageRequestFromContext;
|
|
|
32
32
|
* @private
|
|
33
33
|
*/
|
|
34
34
|
function _generatePackageDirEntry(project, options) {
|
|
35
|
-
var _a, _b;
|
|
36
35
|
let packageDirs = project.getPackageDirectories();
|
|
37
36
|
if (!packageDirs) {
|
|
38
37
|
packageDirs = [];
|
|
@@ -47,8 +46,8 @@ function _generatePackageDirEntry(project, options) {
|
|
|
47
46
|
if (packageDir) {
|
|
48
47
|
// update existing entry
|
|
49
48
|
packageDir.package = options.name;
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
packageDir.versionName ?? (packageDir.versionName = pkgUtils.DEFAULT_PACKAGE_DIR.versionName);
|
|
50
|
+
packageDir.versionNumber ?? (packageDir.versionNumber = pkgUtils.DEFAULT_PACKAGE_DIR.versionNumber);
|
|
52
51
|
// set as default if this is the only entry or no other entry is the default
|
|
53
52
|
if (!Reflect.getOwnPropertyDescriptor(packageDir, 'default')) {
|
|
54
53
|
packageDir.default = !pkgUtils.getConfigPackageDirectory(packageDirs, 'default', true);
|
|
@@ -97,7 +96,7 @@ async function createPackage(connection, project, options) {
|
|
|
97
96
|
}
|
|
98
97
|
packageId = createResult.id;
|
|
99
98
|
const queryResult = await connection.tooling.query(`SELECT Id FROM Package2 WHERE Id='${packageId}'`);
|
|
100
|
-
if (!
|
|
99
|
+
if (!queryResult?.records[0]) {
|
|
101
100
|
throw messages.createError('unableToFindPackageWithId', [packageId]);
|
|
102
101
|
}
|
|
103
102
|
const record = queryResult.records[0];
|
|
@@ -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
|
|
@@ -48,8 +48,7 @@ class PackageVersionCreate {
|
|
|
48
48
|
}
|
|
49
49
|
// convert source to mdapi format and copy to tmp dir packaging up
|
|
50
50
|
async generateMDFolderForArtifact(options) {
|
|
51
|
-
|
|
52
|
-
const sourcepath = (_a = options.sourcePaths) !== null && _a !== void 0 ? _a : [options.sourceDir];
|
|
51
|
+
const sourcepath = options.sourcePaths ?? [options.sourceDir];
|
|
53
52
|
const componentSet = await source_deploy_retrieve_1.ComponentSetBuilder.build({
|
|
54
53
|
sourceapiversion: this.project.getSfProjectJson().get('sourceApiVersion'),
|
|
55
54
|
sourcepath,
|
|
@@ -558,22 +557,13 @@ class PackageVersionCreate {
|
|
|
558
557
|
return value;
|
|
559
558
|
}
|
|
560
559
|
async packageVersionCreate(options) {
|
|
561
|
-
var _a, _b;
|
|
562
|
-
let pollInterval = kit_1.Duration.seconds(pkgUtils.POLL_INTERVAL_SECONDS);
|
|
563
|
-
let maxRetries = 0;
|
|
564
|
-
if (((_a = options.wait) === null || _a === void 0 ? void 0 : _a.milliseconds) > 0) {
|
|
565
|
-
if (options.skipvalidation === true) {
|
|
566
|
-
pollInterval = kit_1.Duration.seconds(POLL_INTERVAL_WITHOUT_VALIDATION_SECONDS);
|
|
567
|
-
}
|
|
568
|
-
maxRetries = (60 / pollInterval.seconds) * options.wait.seconds;
|
|
569
|
-
}
|
|
570
560
|
// For the first rollout of validating sfdx-project.json data against schema, make it optional and defaulted
|
|
571
561
|
// to false. Validation only occurs if the hidden -j (--validateschema) flag has been specified.
|
|
572
562
|
if (options.validateschema) {
|
|
573
563
|
await this.project.getSfProjectJson().schemaValidate();
|
|
574
564
|
}
|
|
575
565
|
// Check for empty packageDirectories
|
|
576
|
-
if (
|
|
566
|
+
if (this.project.getPackageDirectories()?.length === 0) {
|
|
577
567
|
throw messages.createError('errorEmptyPackageDirs');
|
|
578
568
|
}
|
|
579
569
|
const canonicalPackageProperty = this.resolveCanonicalPackageProperty(options);
|
|
@@ -590,7 +580,6 @@ class PackageVersionCreate {
|
|
|
590
580
|
throw messages.createError('directoryDoesNotExist', [options.path]);
|
|
591
581
|
}
|
|
592
582
|
options.profileApi = await this.resolveUserLicenses(canonicalPackageProperty, options);
|
|
593
|
-
[pollInterval, maxRetries] = await this.resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries);
|
|
594
583
|
const request = await this.createPackageVersionCreateRequestFromOptions(options, resolvedPackageId, versionNumberString);
|
|
595
584
|
const createResult = await this.connection.tooling.create('Package2VersionCreateRequest', request);
|
|
596
585
|
if (!createResult.success) {
|
|
@@ -600,17 +589,16 @@ class PackageVersionCreate {
|
|
|
600
589
|
errStr.toString(),
|
|
601
590
|
]);
|
|
602
591
|
}
|
|
603
|
-
let
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
if (
|
|
607
|
-
|
|
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);
|
|
608
597
|
}
|
|
598
|
+
maxRetries = (60 / pollInterval.seconds) * options.wait.seconds;
|
|
609
599
|
}
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
}
|
|
613
|
-
return result;
|
|
600
|
+
[pollInterval, maxRetries] = await this.resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries);
|
|
601
|
+
return (await this.listRequestById(createResult.id, this.connection))[0];
|
|
614
602
|
}
|
|
615
603
|
resolveCanonicalPackageProperty(options) {
|
|
616
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
|
|
@@ -51,7 +51,7 @@ exports._assembleQueryParts = _assembleQueryParts;
|
|
|
51
51
|
function _constructWhere(idsOrAliases, createdLastDays, lastModLastDays, project) {
|
|
52
52
|
const where = [];
|
|
53
53
|
// filter on given package ids
|
|
54
|
-
if (
|
|
54
|
+
if (idsOrAliases?.length > 0) {
|
|
55
55
|
// remove dups
|
|
56
56
|
const aliasesOrIds = [...new Set(idsOrAliases)];
|
|
57
57
|
// resolve any aliases
|
|
@@ -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
|
@@ -21,4 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
22
22
|
*/
|
|
23
23
|
__exportStar(require("./packageVersion1GP"), exports);
|
|
24
|
+
__exportStar(require("./packageDisplay"), exports);
|
|
25
|
+
__exportStar(require("./package1VersionCreateGet"), exports);
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
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.package1VersionCreateGet = void 0;
|
|
10
|
+
async function package1VersionCreateGet(connection, id) {
|
|
11
|
+
return (await connection.tooling
|
|
12
|
+
.sobject('PackageUploadRequest')
|
|
13
|
+
.retrieve(id));
|
|
14
|
+
}
|
|
15
|
+
exports.package1VersionCreateGet = package1VersionCreateGet;
|
|
16
|
+
//# sourceMappingURL=package1VersionCreateGet.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
import { Package1Display } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Executes server-side logic for the package1:display command
|
|
5
|
+
*
|
|
6
|
+
* @param connection
|
|
7
|
+
* @param id: id of the MetadataPackageVersion sObject
|
|
8
|
+
*/
|
|
9
|
+
export declare function package1Display(connection: Connection, id: string): Promise<Package1Display[]>;
|
|
@@ -0,0 +1,29 @@
|
|
|
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.package1Display = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Executes server-side logic for the package1:display command
|
|
12
|
+
*
|
|
13
|
+
* @param connection
|
|
14
|
+
* @param id: id of the MetadataPackageVersion sObject
|
|
15
|
+
*/
|
|
16
|
+
async function package1Display(connection, id) {
|
|
17
|
+
const query = `SELECT Id,MetadataPackageId,Name,ReleaseState,MajorVersion,MinorVersion,PatchVersion,BuildNumber FROM MetadataPackageVersion WHERE id = '${id}'`;
|
|
18
|
+
const results = (await connection.tooling.query(query)).records;
|
|
19
|
+
return results.map((result) => ({
|
|
20
|
+
MetadataPackageVersionId: result.Id,
|
|
21
|
+
MetadataPackageId: result.MetadataPackageId,
|
|
22
|
+
Name: result.Name,
|
|
23
|
+
ReleaseState: result.ReleaseState,
|
|
24
|
+
Version: `${result.MajorVersion}.${result.MinorVersion}.${result.PatchVersion}`,
|
|
25
|
+
BuildNumber: result.BuildNumber,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
exports.package1Display = package1Display;
|
|
29
|
+
//# sourceMappingURL=packageDisplay.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;
|
|
@@ -195,7 +195,7 @@ exports.applyErrorAction = applyErrorAction;
|
|
|
195
195
|
*/
|
|
196
196
|
async function getPackageVersionId(versionId, connection) {
|
|
197
197
|
// if it's already a 05i return it, otherwise query for it
|
|
198
|
-
if (versionId
|
|
198
|
+
if (versionId?.startsWith(exports.BY_LABEL.PACKAGE_VERSION_ID.prefix)) {
|
|
199
199
|
return versionId;
|
|
200
200
|
}
|
|
201
201
|
const query = `SELECT Id FROM Package2Version WHERE SubscriberPackageVersionId = '${versionId}'`;
|
|
@@ -410,9 +410,8 @@ exports.getInClauseItemsCount = getInClauseItemsCount;
|
|
|
410
410
|
async function getAncestorId(packageDescriptorJson, connection, project, versionNumberString, skipAncestorCheck) {
|
|
411
411
|
// eslint-disable-next-line complexity
|
|
412
412
|
return Promise.resolve().then(async () => {
|
|
413
|
-
var _a;
|
|
414
413
|
// If an id property is present, use it. Otherwise, look up the package id from the package property.
|
|
415
|
-
const packageId =
|
|
414
|
+
const packageId = packageDescriptorJson['id'] ?? getPackageIdFromAlias(packageDescriptorJson.package, project);
|
|
416
415
|
// No need to proceed if Unlocked
|
|
417
416
|
const packageType = await getPackageType(packageId, connection);
|
|
418
417
|
if (packageType === 'Unlocked') {
|
|
@@ -540,7 +539,7 @@ async function getAncestorIdHighestRelease(connection, packageId, versionNumberS
|
|
|
540
539
|
'ORDER BY MajorVersion Desc, MinorVersion Desc, PatchVersion Desc, BuildNumber Desc LIMIT 1';
|
|
541
540
|
const majorMinorVersionResult = await connection.tooling.query(query);
|
|
542
541
|
const majorMinorVersionRecords = majorMinorVersionResult.records;
|
|
543
|
-
if (majorMinorVersionRecords &&
|
|
542
|
+
if (majorMinorVersionRecords && majorMinorVersionRecords?.length === 1 && majorMinorVersionRecords[0]) {
|
|
544
543
|
result.finalAncestorId = majorMinorVersionRecords[0].Id;
|
|
545
544
|
}
|
|
546
545
|
else {
|
|
@@ -587,7 +586,7 @@ function getConfigPackageDirectories(project) {
|
|
|
587
586
|
}
|
|
588
587
|
exports.getConfigPackageDirectories = getConfigPackageDirectories;
|
|
589
588
|
function getConfigPackageDirectory(packageDirs, lookupProperty, lookupValue) {
|
|
590
|
-
return packageDirs
|
|
589
|
+
return packageDirs?.find((pkgDir) => pkgDir[lookupProperty] === lookupValue);
|
|
591
590
|
}
|
|
592
591
|
exports.getConfigPackageDirectory = getConfigPackageDirectory;
|
|
593
592
|
/**
|
|
@@ -619,7 +618,7 @@ exports.convertCamelCaseStringToSentence = convertCamelCaseStringToSentence;
|
|
|
619
618
|
* @returns an array of alias for the given id.
|
|
620
619
|
*/
|
|
621
620
|
function getPackageAliasesFromId(packageId, project) {
|
|
622
|
-
const packageAliases =
|
|
621
|
+
const packageAliases = project?.getSfProjectJson().getContents().packageAliases || {};
|
|
623
622
|
// check for a matching alias
|
|
624
623
|
return Object.entries(packageAliases)
|
|
625
624
|
.filter((alias) => alias[1] === packageId)
|
|
@@ -664,7 +663,6 @@ async function pollForStatusWithInterval(id, retries, packageId, branch, withPro
|
|
|
664
663
|
let remainingRetries = retries;
|
|
665
664
|
const pollingClient = await core_1.PollingClient.create({
|
|
666
665
|
poll: async () => {
|
|
667
|
-
var _a;
|
|
668
666
|
const results = await pvcr.byId(id, connection);
|
|
669
667
|
if (_isStatusEqualTo(results, [Package2VersionStatus.success, Package2VersionStatus.error])) {
|
|
670
668
|
// complete
|
|
@@ -693,7 +691,7 @@ async function pollForStatusWithInterval(id, retries, packageId, branch, withPro
|
|
|
693
691
|
}
|
|
694
692
|
else {
|
|
695
693
|
let status = 'Unknown Error';
|
|
696
|
-
if (
|
|
694
|
+
if (results?.length > 0 && results[0].Error.length > 0) {
|
|
697
695
|
const errors = [];
|
|
698
696
|
// for multiple errors, display one per line prefixed with (x)
|
|
699
697
|
if (results[0].Error.length > 1) {
|
|
@@ -716,7 +714,7 @@ async function pollForStatusWithInterval(id, retries, packageId, branch, withPro
|
|
|
716
714
|
message: '',
|
|
717
715
|
remainingTime,
|
|
718
716
|
});
|
|
719
|
-
logger.info(`Request in progress. Sleeping ${interval} seconds. Will wait a total of ${remainingTime.seconds} more seconds before timing out. Current Status='${convertCamelCaseStringToSentence(
|
|
717
|
+
logger.info(`Request in progress. Sleeping ${interval} seconds. Will wait a total of ${remainingTime.seconds} more seconds before timing out. Current Status='${convertCamelCaseStringToSentence(results[0]?.Status)}'`);
|
|
720
718
|
remainingRetries--;
|
|
721
719
|
return { completed: false, payload: results[0] };
|
|
722
720
|
}
|
|
@@ -747,7 +745,7 @@ async function _generatePackageAliasEntry(connection, project, packageVersionId,
|
|
|
747
745
|
const query = `SELECT Name FROM Package2 WHERE Id = '${packageId}'`;
|
|
748
746
|
packageName = await connection.tooling
|
|
749
747
|
.query(query)
|
|
750
|
-
.then((pkgQueryResult) =>
|
|
748
|
+
.then((pkgQueryResult) => pkgQueryResult.records[0]?.Name);
|
|
751
749
|
}
|
|
752
750
|
else {
|
|
753
751
|
packageName = aliasForPackageId[0];
|
|
@@ -766,7 +764,7 @@ async function _generatePackageAliasEntry(connection, project, packageVersionId,
|
|
|
766
764
|
* @returns {boolean} if one of the values in status is found.
|
|
767
765
|
*/
|
|
768
766
|
function _isStatusEqualTo(results, statuses) {
|
|
769
|
-
return
|
|
767
|
+
return results?.length <= 0 ? false : statuses?.some((status) => results[0].Status === status);
|
|
770
768
|
}
|
|
771
769
|
// added for unit testing
|
|
772
770
|
function getSoqlWhereClauseMaxLength() {
|
|
@@ -782,8 +780,7 @@ function formatDate(date) {
|
|
|
782
780
|
exports.formatDate = formatDate;
|
|
783
781
|
function combineSaveErrors(sObject, crudOperation, errors) {
|
|
784
782
|
const errorMessages = errors.map((error) => {
|
|
785
|
-
|
|
786
|
-
const fieldsString = ((_a = error.fields) === null || _a === void 0 ? void 0 : _a.length) > 0 ? `Fields: [${error.fields.join(', ')}]` : '';
|
|
783
|
+
const fieldsString = error.fields?.length > 0 ? `Fields: [${error.fields.join(', ')}]` : '';
|
|
787
784
|
return `Error: ${error.errorCode} Message: ${error.message} ${fieldsString}`;
|
|
788
785
|
});
|
|
789
786
|
const sfError = messages.createError('errorDuringSObjectCRUDOperation', [
|
|
@@ -30,7 +30,7 @@ class VersionNumber {
|
|
|
30
30
|
throw messages.createError('errorMissingVersionNumber');
|
|
31
31
|
}
|
|
32
32
|
const version = versionString.split('.');
|
|
33
|
-
if (
|
|
33
|
+
if (version?.length === 4) {
|
|
34
34
|
const [major, minor, patch, build] = version;
|
|
35
35
|
const asNumbers = [major, minor, patch, build].map((v) => parseInt(v, 10));
|
|
36
36
|
if (asNumbers.slice(0, 3).some((v) => isNaN(v))) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/packaging",
|
|
3
|
-
"version": "0.0.
|
|
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",
|
|
@@ -43,13 +43,15 @@
|
|
|
43
43
|
"debug": "^4.3.4",
|
|
44
44
|
"globby": "^11",
|
|
45
45
|
"js2xmlparser": "^4.0.2",
|
|
46
|
-
"jsforce": "
|
|
46
|
+
"jsforce": "beta",
|
|
47
|
+
"mkdirp": "1.0.4",
|
|
48
|
+
"ts-retry-promise": "^0.6.1",
|
|
47
49
|
"jszip": "^3.10.0",
|
|
48
50
|
"xml2js": "^0.4.23",
|
|
49
51
|
"xmldom-sfdx-encoding": "^0.1.30"
|
|
50
52
|
},
|
|
51
53
|
"devDependencies": {
|
|
52
|
-
"@salesforce/cli-plugins-testkit": "^2.3.
|
|
54
|
+
"@salesforce/cli-plugins-testkit": "^2.3.4",
|
|
53
55
|
"@salesforce/dev-config": "^3.0.1",
|
|
54
56
|
"@salesforce/dev-scripts": "^2.0.2",
|
|
55
57
|
"@salesforce/prettier-config": "^0.0.2",
|