@salesforce/packaging 0.0.41 → 0.0.43
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/lib/interfaces/packagingInterfacesAndType.d.ts +11 -1
- package/lib/package/packageVersion.d.ts +55 -35
- package/lib/package/packageVersion.js +178 -98
- package/lib/package/packageVersionReport.d.ts +1 -1
- package/lib/package/packageVersionReport.js +1 -6
- package/messages/package_version.md +4 -0
- package/package.json +2 -2
|
@@ -206,6 +206,13 @@ export declare type MDFolderForArtifactOptions = {
|
|
|
206
206
|
};
|
|
207
207
|
export declare type PackageVersionOptions = {
|
|
208
208
|
connection: Connection;
|
|
209
|
+
/**
|
|
210
|
+
* Can be one of:
|
|
211
|
+
* 1. SubscriberPackageVersionId (04t)
|
|
212
|
+
* 2. PackageVersionId (05i)
|
|
213
|
+
* 3. Alias for a 04t or 05i, defined in sfdx-project.json
|
|
214
|
+
*/
|
|
215
|
+
idOrAlias: string;
|
|
209
216
|
project: SfProject;
|
|
210
217
|
};
|
|
211
218
|
export declare type ConvertPackageOptions = {
|
|
@@ -214,7 +221,10 @@ export declare type ConvertPackageOptions = {
|
|
|
214
221
|
wait: Duration;
|
|
215
222
|
buildInstance: string;
|
|
216
223
|
};
|
|
217
|
-
export declare type PackageVersionCreateOptions =
|
|
224
|
+
export declare type PackageVersionCreateOptions = {
|
|
225
|
+
connection: Connection;
|
|
226
|
+
project: SfProject;
|
|
227
|
+
} & Partial<{
|
|
218
228
|
branch: string;
|
|
219
229
|
buildinstance: string;
|
|
220
230
|
codecoverage: boolean;
|
|
@@ -1,73 +1,93 @@
|
|
|
1
|
+
import { Connection, SfProject } from '@salesforce/core';
|
|
1
2
|
import { Duration } from '@salesforce/kit';
|
|
2
|
-
import { PackageSaveResult, PackageVersionCreateOptions, PackageVersionCreateRequestQueryOptions, PackageVersionCreateRequestResult, PackageVersionListOptions, PackageVersionListResult, PackageVersionOptions, PackageVersionReportResult, PackageVersionUpdateOptions } from '../interfaces';
|
|
3
|
+
import { PackageSaveResult, PackageVersionCreateOptions, PackageVersionCreateRequestQueryOptions, PackageVersionCreateRequestResult, PackageVersionListOptions, PackageVersionListResult, PackageVersionOptions, PackageVersionReportResult, PackageVersionUpdateOptions, PackagingSObjects } from '../interfaces';
|
|
4
|
+
declare type Package2Version = PackagingSObjects.Package2Version;
|
|
5
|
+
export declare const Package2VersionFields: string[];
|
|
3
6
|
export declare class PackageVersion {
|
|
4
7
|
private options;
|
|
5
8
|
private readonly project;
|
|
6
9
|
private readonly connection;
|
|
10
|
+
private data;
|
|
7
11
|
constructor(options: PackageVersionOptions);
|
|
8
12
|
/**
|
|
9
|
-
*
|
|
13
|
+
* Sends a request to create a new package version and optionally polls for
|
|
14
|
+
* the status of the request until the package version is created or the
|
|
15
|
+
* polling timeout is reached.
|
|
10
16
|
*
|
|
11
|
-
* @param options
|
|
17
|
+
* @param options PackageVersionCreateOptions
|
|
12
18
|
* @param polling frequency and timeout Durations to be used in polling
|
|
19
|
+
* @returns PackageVersionCreateRequestResult
|
|
13
20
|
*/
|
|
14
|
-
create(options: PackageVersionCreateOptions, polling?: {
|
|
21
|
+
static create(options: PackageVersionCreateOptions, polling?: {
|
|
15
22
|
frequency: Duration;
|
|
16
23
|
timeout: Duration;
|
|
17
24
|
}): Promise<Partial<PackageVersionCreateRequestResult>>;
|
|
18
25
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @param idOrAlias
|
|
22
|
-
*/
|
|
23
|
-
delete(idOrAlias: string): Promise<PackageSaveResult>;
|
|
24
|
-
/**
|
|
25
|
-
* Undeletes a package version.
|
|
26
|
-
*
|
|
27
|
-
* @param idOrAlias
|
|
28
|
-
*/
|
|
29
|
-
undelete(idOrAlias: string): Promise<PackageSaveResult>;
|
|
30
|
-
/**
|
|
31
|
-
* Gets the package version report.
|
|
26
|
+
* Gets current state of a package version create request.
|
|
32
27
|
*
|
|
33
28
|
* @param createPackageRequestId
|
|
34
|
-
* @param verbose
|
|
35
29
|
*/
|
|
36
|
-
|
|
30
|
+
static getCreateStatus(createPackageRequestId: string, connection: Connection): Promise<PackageVersionCreateRequestResult>;
|
|
37
31
|
/**
|
|
38
|
-
*
|
|
32
|
+
* Fetch a list of package version create requests based on the given options.
|
|
39
33
|
*
|
|
40
|
-
* @param
|
|
34
|
+
* @param connection connection to an org
|
|
35
|
+
* @param options PackageVersionCreateRequestQueryOptions
|
|
36
|
+
* @returns the list of package version create requests.
|
|
41
37
|
*/
|
|
42
|
-
|
|
43
|
-
createdList(options?: Omit<PackageVersionCreateRequestQueryOptions, 'connection'>): Promise<PackageVersionCreateRequestResult[]>;
|
|
38
|
+
static createdList(connection: Connection, options?: PackageVersionCreateRequestQueryOptions): Promise<PackageVersionCreateRequestResult[]>;
|
|
44
39
|
/**
|
|
45
40
|
* Convenience function that will wait for a package version to be created.
|
|
46
41
|
*
|
|
47
42
|
* This function emits LifeCycle events, "enqueued", "in-progress", "success", "error" and "timed-out" to
|
|
48
43
|
* progress and current status. Events also carry a payload of type PackageVersionCreateRequestResult.
|
|
49
44
|
*
|
|
50
|
-
* @param packageId - The package id to wait for
|
|
51
45
|
* @param createPackageVersionRequestId
|
|
52
46
|
* @param polling frequency and timeout Durations to be used in polling
|
|
53
47
|
* */
|
|
54
|
-
|
|
48
|
+
static pollCreateStatus(createPackageVersionRequestId: string, connection: Connection, project: SfProject, polling: {
|
|
55
49
|
frequency: Duration;
|
|
56
50
|
timeout: Duration;
|
|
57
51
|
}): Promise<PackageVersionCreateRequestResult>;
|
|
58
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Get the package version ID for this PackageVersion.
|
|
54
|
+
*
|
|
55
|
+
* @returns The PackageVersionId (05i).
|
|
56
|
+
*/
|
|
57
|
+
getId(): Promise<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Get the subscriber package version ID for this PackageVersion.
|
|
60
|
+
*
|
|
61
|
+
* @returns The SubscriberPackageVersionId (04t).
|
|
62
|
+
*/
|
|
63
|
+
getSubscriberId(): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Get the Package2Version SObject data for this PackageVersion.
|
|
66
|
+
*
|
|
67
|
+
* @param force force a refresh of the package version data.
|
|
68
|
+
* @returns Package2Version
|
|
69
|
+
*/
|
|
70
|
+
getPackageVersionData(force?: boolean): Promise<Package2Version>;
|
|
71
|
+
/**
|
|
72
|
+
* Deletes this PackageVersion.
|
|
73
|
+
*/
|
|
74
|
+
delete(): Promise<PackageSaveResult>;
|
|
75
|
+
/**
|
|
76
|
+
* Undeletes this PackageVersion.
|
|
77
|
+
*/
|
|
78
|
+
undelete(): Promise<PackageSaveResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Reports details about this PackageVersion.
|
|
81
|
+
*
|
|
82
|
+
* @param verbose Whether to get a detailed version of the report, at the expense of performance.
|
|
83
|
+
*/
|
|
84
|
+
report(verbose?: boolean): Promise<PackageVersionReportResult>;
|
|
59
85
|
install(): Promise<void>;
|
|
60
86
|
list(options: PackageVersionListOptions): Promise<PackageVersionListResult[]>;
|
|
61
87
|
uninstall(): Promise<void>;
|
|
62
|
-
promote(
|
|
63
|
-
update(
|
|
88
|
+
promote(): Promise<PackageSaveResult>;
|
|
89
|
+
update(options: PackageVersionUpdateOptions): Promise<PackageSaveResult>;
|
|
64
90
|
private updateDeprecation;
|
|
65
91
|
private updateProjectWithPackageVersion;
|
|
66
|
-
/**
|
|
67
|
-
* Given a package version ID (05i) or subscriber package version ID (04t), return the subscriber package version ID (04t)
|
|
68
|
-
*
|
|
69
|
-
* @param versionId The suscriber package version ID
|
|
70
|
-
* @param connection For tooling query
|
|
71
|
-
*/
|
|
72
|
-
private getSubscriberPackageVersionId;
|
|
73
92
|
}
|
|
93
|
+
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
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.PackageVersion = void 0;
|
|
9
|
+
exports.PackageVersion = exports.Package2VersionFields = void 0;
|
|
10
10
|
const core_1 = require("@salesforce/core");
|
|
11
11
|
const kit_1 = require("@salesforce/kit");
|
|
12
12
|
const interfaces_1 = require("../interfaces");
|
|
@@ -18,82 +18,103 @@ const packageVersionList_1 = require("./packageVersionList");
|
|
|
18
18
|
const packageVersionCreateRequest_1 = require("./packageVersionCreateRequest");
|
|
19
19
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
20
20
|
const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'package_version');
|
|
21
|
+
exports.Package2VersionFields = [
|
|
22
|
+
'Id',
|
|
23
|
+
'IsDeleted',
|
|
24
|
+
'CreatedDate',
|
|
25
|
+
'CreatedById',
|
|
26
|
+
'LastModifiedDate',
|
|
27
|
+
'LastModifiedById',
|
|
28
|
+
'SystemModstamp',
|
|
29
|
+
'Package2Id',
|
|
30
|
+
'SubscriberPackageVersionId',
|
|
31
|
+
'Tag',
|
|
32
|
+
'Branch',
|
|
33
|
+
'AncestorId',
|
|
34
|
+
'ValidationSkipped',
|
|
35
|
+
'Name',
|
|
36
|
+
'Description',
|
|
37
|
+
'MajorVersion',
|
|
38
|
+
'MinorVersion',
|
|
39
|
+
'PatchVersion',
|
|
40
|
+
'BuildNumber',
|
|
41
|
+
'IsDeprecated',
|
|
42
|
+
'IsPasswordProtected',
|
|
43
|
+
'CodeCoverage',
|
|
44
|
+
'CodeCoveragePercentages',
|
|
45
|
+
'HasPassedCodeCoverageCheck',
|
|
46
|
+
'InstallKey',
|
|
47
|
+
'IsReleased',
|
|
48
|
+
'ConvertedFromVersionId',
|
|
49
|
+
'ReleaseVersion',
|
|
50
|
+
'BuildDurationInSeconds',
|
|
51
|
+
'HasMetadataRemoved',
|
|
52
|
+
];
|
|
21
53
|
class PackageVersion {
|
|
22
54
|
constructor(options) {
|
|
23
55
|
this.options = options;
|
|
24
56
|
this.connection = this.options.connection;
|
|
25
57
|
this.project = this.options.project;
|
|
58
|
+
this.data = {};
|
|
59
|
+
const id = (0, utils_1.getPackageIdFromAlias)(this.options.idOrAlias, this.project);
|
|
60
|
+
// validate ID
|
|
61
|
+
if (id.startsWith('04t')) {
|
|
62
|
+
(0, utils_1.validateId)(utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, id);
|
|
63
|
+
this.data.SubscriberPackageVersionId = id;
|
|
64
|
+
}
|
|
65
|
+
else if (id.startsWith('05i')) {
|
|
66
|
+
(0, utils_1.validateId)(utils_1.BY_LABEL.PACKAGE_VERSION_ID, id);
|
|
67
|
+
this.data.Id = id;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw messages.createError('errorInvalidPackageVersionId', [this.options.idOrAlias]);
|
|
71
|
+
}
|
|
26
72
|
}
|
|
27
73
|
/**
|
|
28
|
-
*
|
|
74
|
+
* Sends a request to create a new package version and optionally polls for
|
|
75
|
+
* the status of the request until the package version is created or the
|
|
76
|
+
* polling timeout is reached.
|
|
29
77
|
*
|
|
30
|
-
* @param options
|
|
78
|
+
* @param options PackageVersionCreateOptions
|
|
31
79
|
* @param polling frequency and timeout Durations to be used in polling
|
|
80
|
+
* @returns PackageVersionCreateRequestResult
|
|
32
81
|
*/
|
|
33
|
-
async create(options, polling = {
|
|
82
|
+
static async create(options, polling = {
|
|
34
83
|
frequency: kit_1.Duration.seconds(0),
|
|
35
84
|
timeout: kit_1.Duration.seconds(0),
|
|
36
85
|
}) {
|
|
37
|
-
const pvc = new packageVersionCreate_1.PackageVersionCreate({ ...options
|
|
86
|
+
const pvc = new packageVersionCreate_1.PackageVersionCreate({ ...options });
|
|
38
87
|
const createResult = await pvc.createPackageVersion();
|
|
39
|
-
return await
|
|
40
|
-
// TODO
|
|
41
|
-
// until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
|
|
42
|
-
throw (0, utils_1.applyErrorAction)(err);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Deletes a package version.
|
|
47
|
-
*
|
|
48
|
-
* @param idOrAlias
|
|
49
|
-
*/
|
|
50
|
-
async delete(idOrAlias) {
|
|
51
|
-
return this.updateDeprecation(idOrAlias, true);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Undeletes a package version.
|
|
55
|
-
*
|
|
56
|
-
* @param idOrAlias
|
|
57
|
-
*/
|
|
58
|
-
async undelete(idOrAlias) {
|
|
59
|
-
return this.updateDeprecation(idOrAlias, false);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Gets the package version report.
|
|
63
|
-
*
|
|
64
|
-
* @param createPackageRequestId
|
|
65
|
-
* @param verbose
|
|
66
|
-
*/
|
|
67
|
-
async report(createPackageRequestId, verbose = false) {
|
|
68
|
-
const results = await (0, packageVersionReport_1.getPackageVersionReport)({
|
|
69
|
-
idOrAlias: createPackageRequestId,
|
|
70
|
-
connection: this.connection,
|
|
71
|
-
project: this.project,
|
|
72
|
-
verbose,
|
|
73
|
-
}).catch((err) => {
|
|
88
|
+
return await PackageVersion.pollCreateStatus(createResult.Id, options.connection, options.project, polling).catch((err) => {
|
|
74
89
|
// TODO
|
|
75
90
|
// until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
|
|
76
91
|
throw (0, utils_1.applyErrorAction)(err);
|
|
77
92
|
});
|
|
78
|
-
return results[0];
|
|
79
93
|
}
|
|
80
94
|
/**
|
|
81
95
|
* Gets current state of a package version create request.
|
|
82
96
|
*
|
|
83
97
|
* @param createPackageRequestId
|
|
84
98
|
*/
|
|
85
|
-
async
|
|
99
|
+
static async getCreateStatus(createPackageRequestId, connection) {
|
|
86
100
|
return await (0, packageVersionCreateRequestReport_1.getCreatePackageVersionCreateRequestReport)({
|
|
87
101
|
createPackageVersionRequestId: createPackageRequestId,
|
|
88
|
-
connection
|
|
102
|
+
connection,
|
|
89
103
|
}).catch((err) => {
|
|
90
104
|
// TODO
|
|
91
105
|
// until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
|
|
92
106
|
throw (0, utils_1.applyErrorAction)(err);
|
|
93
107
|
});
|
|
94
108
|
}
|
|
95
|
-
|
|
96
|
-
|
|
109
|
+
/**
|
|
110
|
+
* Fetch a list of package version create requests based on the given options.
|
|
111
|
+
*
|
|
112
|
+
* @param connection connection to an org
|
|
113
|
+
* @param options PackageVersionCreateRequestQueryOptions
|
|
114
|
+
* @returns the list of package version create requests.
|
|
115
|
+
*/
|
|
116
|
+
static async createdList(connection, options) {
|
|
117
|
+
return (0, packageVersionCreateRequest_1.list)({ ...options, connection });
|
|
97
118
|
}
|
|
98
119
|
/**
|
|
99
120
|
* Convenience function that will wait for a package version to be created.
|
|
@@ -101,19 +122,18 @@ class PackageVersion {
|
|
|
101
122
|
* This function emits LifeCycle events, "enqueued", "in-progress", "success", "error" and "timed-out" to
|
|
102
123
|
* progress and current status. Events also carry a payload of type PackageVersionCreateRequestResult.
|
|
103
124
|
*
|
|
104
|
-
* @param packageId - The package id to wait for
|
|
105
125
|
* @param createPackageVersionRequestId
|
|
106
126
|
* @param polling frequency and timeout Durations to be used in polling
|
|
107
127
|
* */
|
|
108
|
-
async
|
|
128
|
+
static async pollCreateStatus(createPackageVersionRequestId, connection, project, polling) {
|
|
109
129
|
if (polling.timeout?.milliseconds <= 0) {
|
|
110
|
-
return
|
|
130
|
+
return this.getCreateStatus(createPackageVersionRequestId, connection);
|
|
111
131
|
}
|
|
112
132
|
let remainingWaitTime = polling.timeout;
|
|
113
133
|
let report;
|
|
114
134
|
const pollingClient = await core_1.PollingClient.create({
|
|
115
135
|
poll: async () => {
|
|
116
|
-
report = await this.
|
|
136
|
+
report = await this.getCreateStatus(createPackageVersionRequestId, connection);
|
|
117
137
|
switch (report.Status) {
|
|
118
138
|
case 'Queued':
|
|
119
139
|
await core_1.Lifecycle.getInstance().emit(interfaces_1.PackageVersionEvents.create.enqueued, { ...report, remainingWaitTime });
|
|
@@ -137,10 +157,16 @@ class PackageVersion {
|
|
|
137
157
|
completed: false,
|
|
138
158
|
payload: report,
|
|
139
159
|
};
|
|
140
|
-
case 'Success':
|
|
160
|
+
case 'Success': {
|
|
141
161
|
await core_1.Lifecycle.getInstance().emit(interfaces_1.PackageVersionEvents.create.success, report);
|
|
142
|
-
|
|
162
|
+
const packageVersion = new PackageVersion({
|
|
163
|
+
connection,
|
|
164
|
+
project,
|
|
165
|
+
idOrAlias: report.Package2VersionId,
|
|
166
|
+
});
|
|
167
|
+
await packageVersion.updateProjectWithPackageVersion(report);
|
|
143
168
|
return { completed: true, payload: report };
|
|
169
|
+
}
|
|
144
170
|
case 'Error':
|
|
145
171
|
await core_1.Lifecycle.getInstance().emit(interfaces_1.PackageVersionEvents.create.error, report);
|
|
146
172
|
return { completed: true, payload: report };
|
|
@@ -157,8 +183,94 @@ class PackageVersion {
|
|
|
157
183
|
throw (0, utils_1.applyErrorAction)(err);
|
|
158
184
|
}
|
|
159
185
|
}
|
|
160
|
-
|
|
161
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Get the package version ID for this PackageVersion.
|
|
188
|
+
*
|
|
189
|
+
* @returns The PackageVersionId (05i).
|
|
190
|
+
*/
|
|
191
|
+
async getId() {
|
|
192
|
+
if (!this.data.Id) {
|
|
193
|
+
await this.getPackageVersionData();
|
|
194
|
+
}
|
|
195
|
+
return this.data.Id;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get the subscriber package version ID for this PackageVersion.
|
|
199
|
+
*
|
|
200
|
+
* @returns The SubscriberPackageVersionId (04t).
|
|
201
|
+
*/
|
|
202
|
+
async getSubscriberId() {
|
|
203
|
+
if (!this.data.SubscriberPackageVersionId) {
|
|
204
|
+
await this.getPackageVersionData();
|
|
205
|
+
}
|
|
206
|
+
return this.data.SubscriberPackageVersionId;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get the Package2Version SObject data for this PackageVersion.
|
|
210
|
+
*
|
|
211
|
+
* @param force force a refresh of the package version data.
|
|
212
|
+
* @returns Package2Version
|
|
213
|
+
*/
|
|
214
|
+
async getPackageVersionData(force = false) {
|
|
215
|
+
if (!this.data.Name || force) {
|
|
216
|
+
let queryConfig;
|
|
217
|
+
if (this.data.Id) {
|
|
218
|
+
queryConfig = {
|
|
219
|
+
id: this.data.Id,
|
|
220
|
+
clause: `Id = '${this.data.Id}'`,
|
|
221
|
+
label1: utils_1.BY_LABEL.PACKAGE_VERSION_ID.label,
|
|
222
|
+
label2: utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID.label,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
queryConfig = {
|
|
227
|
+
id: this.data.SubscriberPackageVersionId,
|
|
228
|
+
clause: `SubscriberPackageVersionId = '${this.data.SubscriberPackageVersionId}'`,
|
|
229
|
+
label1: utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID.label,
|
|
230
|
+
label2: utils_1.BY_LABEL.PACKAGE_VERSION_ID.label,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
const allFields = exports.Package2VersionFields.toString();
|
|
234
|
+
const query = `SELECT ${allFields} FROM Package2Version WHERE ${queryConfig.clause} LIMIT 1`;
|
|
235
|
+
try {
|
|
236
|
+
this.data = await this.connection.singleRecordQuery(query, { tooling: true });
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
throw messages.createError('errorInvalidIdNoMatchingVersionId', [queryConfig.label1, queryConfig.id, queryConfig.label2], undefined, err);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return this.data;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Deletes this PackageVersion.
|
|
246
|
+
*/
|
|
247
|
+
async delete() {
|
|
248
|
+
return this.updateDeprecation(true);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Undeletes this PackageVersion.
|
|
252
|
+
*/
|
|
253
|
+
async undelete() {
|
|
254
|
+
return this.updateDeprecation(false);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Reports details about this PackageVersion.
|
|
258
|
+
*
|
|
259
|
+
* @param verbose Whether to get a detailed version of the report, at the expense of performance.
|
|
260
|
+
*/
|
|
261
|
+
async report(verbose = false) {
|
|
262
|
+
const packageVersionId = await this.getId();
|
|
263
|
+
const results = await (0, packageVersionReport_1.getPackageVersionReport)({
|
|
264
|
+
packageVersionId,
|
|
265
|
+
connection: this.connection,
|
|
266
|
+
project: this.project,
|
|
267
|
+
verbose,
|
|
268
|
+
}).catch((err) => {
|
|
269
|
+
// TODO
|
|
270
|
+
// until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
|
|
271
|
+
throw (0, utils_1.applyErrorAction)(err);
|
|
272
|
+
});
|
|
273
|
+
return results[0];
|
|
162
274
|
}
|
|
163
275
|
install() {
|
|
164
276
|
return Promise.resolve(undefined);
|
|
@@ -169,18 +281,12 @@ class PackageVersion {
|
|
|
169
281
|
uninstall() {
|
|
170
282
|
return Promise.resolve(undefined);
|
|
171
283
|
}
|
|
172
|
-
async promote(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
id = await (0, utils_1.getPackageVersionId)(id, this.connection);
|
|
176
|
-
}
|
|
177
|
-
return await this.options.connection.tooling.update('Package2Version', { IsReleased: true, Id: id });
|
|
284
|
+
async promote() {
|
|
285
|
+
const id = await this.getId();
|
|
286
|
+
return this.options.connection.tooling.update('Package2Version', { IsReleased: true, Id: id });
|
|
178
287
|
}
|
|
179
|
-
async update(
|
|
180
|
-
|
|
181
|
-
(0, utils_1.validateId)([utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, utils_1.BY_LABEL.PACKAGE_VERSION_ID], id);
|
|
182
|
-
// lookup the 05i ID, if needed
|
|
183
|
-
id = await (0, utils_1.getPackageVersionId)(id, this.connection);
|
|
288
|
+
async update(options) {
|
|
289
|
+
const id = await this.getId();
|
|
184
290
|
const request = {
|
|
185
291
|
Id: id,
|
|
186
292
|
InstallKey: options.InstallKey,
|
|
@@ -196,29 +302,25 @@ class PackageVersion {
|
|
|
196
302
|
throw new Error(result.errors.join(', '));
|
|
197
303
|
}
|
|
198
304
|
// Use the 04t ID for the success message
|
|
199
|
-
result.id = await this.
|
|
305
|
+
result.id = await this.getSubscriberId();
|
|
200
306
|
return result;
|
|
201
307
|
}
|
|
202
|
-
async updateDeprecation(
|
|
203
|
-
const
|
|
204
|
-
// ID can be an 04t or 05i
|
|
205
|
-
(0, utils_1.validateId)([utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, utils_1.BY_LABEL.PACKAGE_VERSION_ID], packageVersionId);
|
|
206
|
-
// lookup the 05i ID, if needed
|
|
207
|
-
const packageId = await (0, utils_1.getPackageVersionId)(packageVersionId, this.connection);
|
|
308
|
+
async updateDeprecation(isDeprecated) {
|
|
309
|
+
const id = await this.getId();
|
|
208
310
|
// setup the request
|
|
209
311
|
const request = {
|
|
210
|
-
Id:
|
|
211
|
-
IsDeprecated,
|
|
312
|
+
Id: id,
|
|
313
|
+
IsDeprecated: isDeprecated,
|
|
212
314
|
};
|
|
213
315
|
const updateResult = await this.connection.tooling.update('Package2Version', request);
|
|
214
316
|
if (!updateResult.success) {
|
|
215
317
|
throw (0, utils_1.combineSaveErrors)('Package2', 'update', updateResult.errors);
|
|
216
318
|
}
|
|
217
|
-
updateResult.id = await this.
|
|
319
|
+
updateResult.id = await this.getSubscriberId();
|
|
218
320
|
return updateResult;
|
|
219
321
|
}
|
|
220
|
-
async updateProjectWithPackageVersion(
|
|
221
|
-
if (
|
|
322
|
+
async updateProjectWithPackageVersion(results) {
|
|
323
|
+
if (!process.env.SFDX_PROJECT_AUTOUPDATE_DISABLE_FOR_PACKAGE_VERSION_CREATE) {
|
|
222
324
|
// get the newly created package version from the server
|
|
223
325
|
const versionResult = (await this.connection.tooling.query(`SELECT Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber FROM Package2Version WHERE SubscriberPackageVersionId='${results.SubscriberPackageVersionId}'`)).records[0];
|
|
224
326
|
const version = `${(0, utils_1.getPackageAliasesFromId)(results.Package2Id, this.project).join()}@${versionResult.MajorVersion ?? 0}.${versionResult.MinorVersion ?? 0}.${versionResult.PatchVersion ?? 0}`;
|
|
@@ -230,28 +332,6 @@ class PackageVersion {
|
|
|
230
332
|
await this.project.getSfProjectJson().write();
|
|
231
333
|
}
|
|
232
334
|
}
|
|
233
|
-
/**
|
|
234
|
-
* Given a package version ID (05i) or subscriber package version ID (04t), return the subscriber package version ID (04t)
|
|
235
|
-
*
|
|
236
|
-
* @param versionId The suscriber package version ID
|
|
237
|
-
* @param connection For tooling query
|
|
238
|
-
*/
|
|
239
|
-
async getSubscriberPackageVersionId(versionId) {
|
|
240
|
-
// if it's already a 04t return it, otherwise query for it
|
|
241
|
-
if (!versionId || versionId.startsWith(utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID.prefix)) {
|
|
242
|
-
return versionId;
|
|
243
|
-
}
|
|
244
|
-
const query = `SELECT SubscriberPackageVersionId FROM Package2Version WHERE Id = '${versionId}'`;
|
|
245
|
-
const queryResult = await this.connection.tooling.query(query);
|
|
246
|
-
if (!queryResult || !queryResult.totalSize) {
|
|
247
|
-
throw messages.createError('errorInvalidIdNoMatchingVersionId', [
|
|
248
|
-
utils_1.BY_LABEL.PACKAGE_VERSION_ID.label,
|
|
249
|
-
versionId,
|
|
250
|
-
utils_1.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID.label,
|
|
251
|
-
]);
|
|
252
|
-
}
|
|
253
|
-
return queryResult.records[0].SubscriberPackageVersionId;
|
|
254
|
-
}
|
|
255
335
|
}
|
|
256
336
|
exports.PackageVersion = PackageVersion;
|
|
257
337
|
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, SfProject } from '@salesforce/core';
|
|
2
2
|
import { PackageVersionReportResult } from '../interfaces';
|
|
3
3
|
export declare function getPackageVersionReport(options: {
|
|
4
|
-
|
|
4
|
+
packageVersionId: string;
|
|
5
5
|
connection: Connection;
|
|
6
6
|
project: SfProject;
|
|
7
7
|
verbose: boolean;
|
|
@@ -55,12 +55,7 @@ async function getPackageVersionStrings(subscriberPackageVersionIds, connection)
|
|
|
55
55
|
}
|
|
56
56
|
async function getPackageVersionReport(options) {
|
|
57
57
|
logger.debug(`entering getPackageVersionReport(${util.inspect(options, { depth: null })})`);
|
|
58
|
-
|
|
59
|
-
// ID can be an 04t or 05i
|
|
60
|
-
pkgUtils.validateId([pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, pkgUtils.BY_LABEL.PACKAGE_VERSION_ID], packageVersionId);
|
|
61
|
-
// lookup the 05i ID, if needed
|
|
62
|
-
packageVersionId = await pkgUtils.getPackageVersionId(packageVersionId, options.connection);
|
|
63
|
-
const queryResult = await options.connection.tooling.query(util.format(options.verbose ? QUERY_VERBOSE : QUERY, packageVersionId));
|
|
58
|
+
const queryResult = await options.connection.tooling.query(util.format(options.verbose ? QUERY_VERBOSE : QUERY, options.packageVersionId));
|
|
64
59
|
const records = queryResult.records;
|
|
65
60
|
if (records?.length > 0) {
|
|
66
61
|
const record = records[0];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/packaging",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.43",
|
|
4
4
|
"description": "packing libraries to Salesforce packaging platform",
|
|
5
5
|
"main": "lib/exported",
|
|
6
6
|
"types": "lib/exported.d.ts",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"jsforce": "beta",
|
|
52
52
|
"jszip": "^3.10.1",
|
|
53
53
|
"mkdirp": "1.0.4",
|
|
54
|
-
"ts-retry-promise": "^0.
|
|
54
|
+
"ts-retry-promise": "^0.7.0",
|
|
55
55
|
"xml2js": "^0.4.23"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|