@salesforce/packaging 3.5.15 → 3.5.17
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 +1 -1
- package/lib/interfaces/packagingSObjects.d.ts +1 -1
- package/lib/package/packageInstall.js +8 -2
- package/lib/package/packageVersionCreate.d.ts +5 -4
- package/lib/package/packageVersionCreate.js +50 -47
- package/lib/package/profileRewriter.d.ts +2 -8
- package/lib/package/subscriberPackageVersion.d.ts +15 -3
- package/lib/package/subscriberPackageVersion.js +18 -2
- package/lib/package/versionNumber.d.ts +0 -4
- package/lib/package/versionNumber.js +0 -6
- package/lib/utils/packageUtils.d.ts +2 -4
- package/lib/utils/packageUtils.js +2 -4
- package/package.json +3 -2
|
@@ -4,7 +4,7 @@ import type { SaveResult } from '@jsforce/jsforce-node';
|
|
|
4
4
|
import { Attributes } from 'graphology-types';
|
|
5
5
|
import { Optional } from '@salesforce/ts-types';
|
|
6
6
|
import { ConvertResult } from '@salesforce/source-deploy-retrieve';
|
|
7
|
-
import { Package } from '@
|
|
7
|
+
import type { Package } from '@salesforce/types/metadata';
|
|
8
8
|
import { PackageProfileApi } from '../package/packageProfileApi';
|
|
9
9
|
import { PackageAncestryNode } from '../package/packageAncestry';
|
|
10
10
|
import { PackagingSObjects } from './packagingSObjects';
|
|
@@ -138,7 +138,7 @@ export declare namespace PackagingSObjects {
|
|
|
138
138
|
type SubscriberPackageCspTrustedSites = {
|
|
139
139
|
settings: SubscriberPackageCspTrustedSite[];
|
|
140
140
|
};
|
|
141
|
-
type InstallValidationStatus = 'NO_ERRORS_DETECTED' | 'BETA_INSTALL_INTO_PRODUCTION_ORG' | 'CANNOT_INSTALL_EARLIER_VERSION' | 'CANNOT_UPGRADE_BETA' | 'CANNOT_UPGRADE_UNMANAGED' | 'DEPRECATED_INSTALL_PACKAGE' | 'EXTENSIONS_ON_LOCAL_PACKAGES' | 'PACKAGE_NOT_INSTALLED' | 'PACKAGE_HAS_IN_DEV_EXTENSIONS' | 'INSTALL_INTO_DEV_ORG' | 'NO_ACCESS' | 'PACKAGING_DISABLED' | 'PACKAGING_NO_ACCESS' | 'PACKAGE_UNAVAILABLE' | 'UNINSTALL_IN_PROGRESS' | 'UNKNOWN_ERROR' | 'NAMESPACE_COLLISION';
|
|
141
|
+
type InstallValidationStatus = 'NO_ERRORS_DETECTED' | 'BETA_INSTALL_INTO_PRODUCTION_ORG' | 'CANNOT_INSTALL_EARLIER_VERSION' | 'CANNOT_UPGRADE_BETA' | 'CANNOT_UPGRADE_UNMANAGED' | 'DEPRECATED_INSTALL_PACKAGE' | 'EXTENSIONS_ON_LOCAL_PACKAGES' | 'PACKAGE_NOT_INSTALLED' | 'PACKAGE_HAS_IN_DEV_EXTENSIONS' | 'INSTALL_INTO_DEV_ORG' | 'NO_ACCESS' | 'PACKAGING_DISABLED' | 'PACKAGING_NO_ACCESS' | 'PACKAGE_UNAVAILABLE' | 'PACKAGE_UNAVAILABLE_CRC' | 'PACKAGE_UNAVAILABLE_ZIP' | 'UNINSTALL_IN_PROGRESS' | 'UNKNOWN_ERROR' | 'NAMESPACE_COLLISION';
|
|
142
142
|
type SubscriberPackageVersion = {
|
|
143
143
|
Id: string;
|
|
144
144
|
SubscriberPackageId: string;
|
|
@@ -73,7 +73,7 @@ function isErrorFromSPVQueryRestriction(err) {
|
|
|
73
73
|
}
|
|
74
74
|
exports.isErrorFromSPVQueryRestriction = isErrorFromSPVQueryRestriction;
|
|
75
75
|
function isErrorPackageNotAvailable(err) {
|
|
76
|
-
return
|
|
76
|
+
return ['UNKNOWN_EXCEPTION', 'PACKAGE_UNAVAILABLE', 'PACKAGE_UNAVAILABLE_CRC', 'PACKAGE_UNAVAILABLE_ZIP'].includes(err.name);
|
|
77
77
|
}
|
|
78
78
|
exports.isErrorPackageNotAvailable = isErrorPackageNotAvailable;
|
|
79
79
|
async function getInstallationStatus(subscriberPackageVersionId, installationKey, connection) {
|
|
@@ -109,12 +109,18 @@ async function waitForPublish(connection, subscriberPackageVersionId, frequency,
|
|
|
109
109
|
// Continue retrying if there is no record
|
|
110
110
|
// or for an InstallValidationStatus of PACKAGE_UNAVAILABLE (replication to the subscriber's instance has not completed)
|
|
111
111
|
// or for an InstallValidationStatus of UNINSTALL_IN_PROGRESS
|
|
112
|
+
// or PACKAGE_UNAVAILABLE_ZIP or PACKAGE_UNAVAILABLE_CRC
|
|
112
113
|
if (queryResult?.records?.length) {
|
|
113
114
|
installValidationStatus = queryResult.records[0].InstallValidationStatus;
|
|
114
115
|
}
|
|
115
116
|
getLogger().debug(installMsgs.getMessage('publishWaitProgress', [` Status = ${installValidationStatus}`]));
|
|
116
117
|
await core_1.Lifecycle.getInstance().emit(interfaces_1.PackageEvents.install['subscriber-status'], installValidationStatus);
|
|
117
|
-
if (![
|
|
118
|
+
if (![
|
|
119
|
+
'PACKAGE_UNAVAILABLE',
|
|
120
|
+
'PACKAGE_UNAVAILABLE_CRC',
|
|
121
|
+
'PACKAGE_UNAVAILABLE_ZIP',
|
|
122
|
+
'UNINSTALL_IN_PROGRESS',
|
|
123
|
+
].includes(installValidationStatus)) {
|
|
118
124
|
return { completed: true, payload: installValidationStatus };
|
|
119
125
|
}
|
|
120
126
|
return { completed: false, payload: installValidationStatus };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConvertResult } from '@salesforce/source-deploy-retrieve';
|
|
2
|
-
import { MDFolderForArtifactOptions, PackageVersionCreateOptions, PackageVersionCreateRequestResult, PackageXml, PackagingSObjects } from '../interfaces';
|
|
2
|
+
import { MDFolderForArtifactOptions, PackageDescriptorJson, PackageVersionCreateOptions, PackageVersionCreateRequestResult, PackageXml, PackagingSObjects } from '../interfaces';
|
|
3
3
|
export declare class PackageVersionCreate {
|
|
4
4
|
private options;
|
|
5
5
|
private apiVersionFromPackageXml;
|
|
@@ -12,16 +12,17 @@ export declare class PackageVersionCreate {
|
|
|
12
12
|
private metadataResolver;
|
|
13
13
|
constructor(options: PackageVersionCreateOptions);
|
|
14
14
|
createPackageVersion(): Promise<Partial<PackageVersionCreateRequestResult>>;
|
|
15
|
-
private validateDependencyValues;
|
|
16
15
|
/**
|
|
17
|
-
* A dependency in the
|
|
16
|
+
* A dependency in the project config file may be specified using either a subscriber package version id (04t)
|
|
18
17
|
* or a package Id (0Ho) + a version number. Additionally, a build number may be the actual build number, or a
|
|
19
18
|
* keyword: LATEST or RELEASED (meaning the latest or released build number for a given major.minor.patch).
|
|
20
19
|
*
|
|
21
20
|
* This method resolves a package Id + version number to a subscriber package version id (04t)
|
|
22
21
|
* and adds it as a SubscriberPackageVersionId parameter in the dependency object.
|
|
23
22
|
*/
|
|
24
|
-
|
|
23
|
+
retrieveSubscriberPackageVersionId(dependency: PackageDescriptorJson): Promise<string>;
|
|
24
|
+
private resolveSubscriberPackageVersionId;
|
|
25
|
+
private validateDependencyValues;
|
|
25
26
|
private resolveBuildNumber;
|
|
26
27
|
private createRequestObject;
|
|
27
28
|
/**
|
|
@@ -70,42 +70,8 @@ class PackageVersionCreate {
|
|
|
70
70
|
throw err;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
async validateDependencyValues(dependency) {
|
|
74
|
-
// If valid 04t package, just return it to be used straight away.
|
|
75
|
-
if (dependency.subscriberPackageVersionId) {
|
|
76
|
-
pkgUtils.validateId(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, dependency.subscriberPackageVersionId);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (dependency.packageId && dependency.package) {
|
|
80
|
-
throw messages.createError('errorPackageAndPackageIdCollision', []);
|
|
81
|
-
}
|
|
82
|
-
const idOrPackage = dependency.packageId ?? dependency.package;
|
|
83
|
-
if (!idOrPackage) {
|
|
84
|
-
throw messages.createError('errorPackageOrPackageIdMissing', []);
|
|
85
|
-
}
|
|
86
|
-
const packageIdFromAlias = this.project.getPackageIdFromAlias(idOrPackage) ?? idOrPackage;
|
|
87
|
-
// If valid 04t package, just return it to be used straight away.
|
|
88
|
-
if (pkgUtils.validateIdNoThrow(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, packageIdFromAlias)) {
|
|
89
|
-
dependency.subscriberPackageVersionId = packageIdFromAlias;
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if (!packageIdFromAlias || !dependency.versionNumber) {
|
|
93
|
-
throw messages.createError('errorDependencyPair', [JSON.stringify(dependency)]);
|
|
94
|
-
}
|
|
95
|
-
// Just override dependency.packageId value to the resolved alias.
|
|
96
|
-
dependency.packageId = packageIdFromAlias;
|
|
97
|
-
pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_ID, dependency.packageId);
|
|
98
|
-
(0, exports.validateVersionNumber)(dependency.versionNumber, versionNumber_1.BuildNumberToken.LATEST_BUILD_NUMBER_TOKEN, versionNumber_1.BuildNumberToken.RELEASED_BUILD_NUMBER_TOKEN);
|
|
99
|
-
await this.validatePatchVersion(dependency.versionNumber, dependency.packageId);
|
|
100
|
-
// Validate that the Package2 id exists on the server
|
|
101
|
-
const query = `SELECT Id FROM Package2 WHERE Id = '${dependency.packageId}'`;
|
|
102
|
-
const result = await this.connection.tooling.query(query);
|
|
103
|
-
if (!result.records || result.records.length !== 1) {
|
|
104
|
-
throw messages.createError('errorNoIdInHub', [dependency.packageId]);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
73
|
/**
|
|
108
|
-
* A dependency in the
|
|
74
|
+
* A dependency in the project config file may be specified using either a subscriber package version id (04t)
|
|
109
75
|
* or a package Id (0Ho) + a version number. Additionally, a build number may be the actual build number, or a
|
|
110
76
|
* keyword: LATEST or RELEASED (meaning the latest or released build number for a given major.minor.patch).
|
|
111
77
|
*
|
|
@@ -113,12 +79,6 @@ class PackageVersionCreate {
|
|
|
113
79
|
* and adds it as a SubscriberPackageVersionId parameter in the dependency object.
|
|
114
80
|
*/
|
|
115
81
|
async retrieveSubscriberPackageVersionId(dependency) {
|
|
116
|
-
await this.validateDependencyValues(dependency);
|
|
117
|
-
if (dependency.subscriberPackageVersionId) {
|
|
118
|
-
delete dependency.package;
|
|
119
|
-
// if a 04t id is specified just use it.
|
|
120
|
-
return dependency;
|
|
121
|
-
}
|
|
122
82
|
if (!dependency.versionNumber) {
|
|
123
83
|
throw messages.createError('errorDependencyPair', [JSON.stringify(dependency)]);
|
|
124
84
|
}
|
|
@@ -129,7 +89,7 @@ class PackageVersionCreate {
|
|
|
129
89
|
const buildNumber = versionNumber.build;
|
|
130
90
|
// use the dependency.branch if present otherwise use the branch of the version being created
|
|
131
91
|
const branch = dependency.branch ?? this.options.branch;
|
|
132
|
-
const branchString = !branch
|
|
92
|
+
const branchString = !branch ? 'null' : `'${branch}'`;
|
|
133
93
|
// resolve a build number keyword to an actual number, if needed
|
|
134
94
|
const resolvedBuildNumber = await this.resolveBuildNumber(versionNumber, dependency.packageId, branch);
|
|
135
95
|
// now that we have a full build number, query for the associated 04t.
|
|
@@ -149,9 +109,8 @@ class PackageVersionCreate {
|
|
|
149
109
|
resolvedBuildNumber,
|
|
150
110
|
]);
|
|
151
111
|
}
|
|
152
|
-
dependency.subscriberPackageVersionId = pkgVerQueryResult.records[0].SubscriberPackageVersionId;
|
|
153
112
|
// warn user of the resolved build number when LATEST and RELEASED keywords are used
|
|
154
|
-
if (versionNumber.
|
|
113
|
+
if (versionNumber.isBuildKeyword()) {
|
|
155
114
|
versionNumber.build = resolvedBuildNumber;
|
|
156
115
|
if (buildNumber === versionNumber_1.BuildNumberToken.LATEST_BUILD_NUMBER_TOKEN) {
|
|
157
116
|
this.logger.info(messages.getMessage('buildNumberResolvedForLatest', [
|
|
@@ -169,14 +128,58 @@ class PackageVersionCreate {
|
|
|
169
128
|
]));
|
|
170
129
|
}
|
|
171
130
|
}
|
|
131
|
+
return pkgVerQueryResult.records[0].SubscriberPackageVersionId;
|
|
132
|
+
}
|
|
133
|
+
async resolveSubscriberPackageVersionId(dependency) {
|
|
134
|
+
await this.validateDependencyValues(dependency);
|
|
135
|
+
if (dependency.subscriberPackageVersionId) {
|
|
136
|
+
delete dependency.package;
|
|
137
|
+
// if a 04t id is specified just use it.
|
|
138
|
+
return dependency;
|
|
139
|
+
}
|
|
140
|
+
dependency.subscriberPackageVersionId = await this.retrieveSubscriberPackageVersionId(dependency);
|
|
172
141
|
delete dependency.packageId;
|
|
173
142
|
delete dependency.package;
|
|
174
143
|
delete dependency.versionNumber;
|
|
175
144
|
delete dependency.branch;
|
|
176
145
|
return dependency;
|
|
177
146
|
}
|
|
147
|
+
async validateDependencyValues(dependency) {
|
|
148
|
+
// If valid 04t package, just return it to be used straight away.
|
|
149
|
+
if (dependency.subscriberPackageVersionId) {
|
|
150
|
+
pkgUtils.validateId(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, dependency.subscriberPackageVersionId);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (dependency.packageId && dependency.package) {
|
|
154
|
+
throw messages.createError('errorPackageAndPackageIdCollision', []);
|
|
155
|
+
}
|
|
156
|
+
const idOrPackage = dependency.packageId ?? dependency.package;
|
|
157
|
+
if (!idOrPackage) {
|
|
158
|
+
throw messages.createError('errorPackageOrPackageIdMissing', []);
|
|
159
|
+
}
|
|
160
|
+
const packageIdFromAlias = this.project.getPackageIdFromAlias(idOrPackage) ?? idOrPackage;
|
|
161
|
+
// If valid 04t package, just return it to be used straight away.
|
|
162
|
+
if (pkgUtils.validateIdNoThrow(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, packageIdFromAlias)) {
|
|
163
|
+
dependency.subscriberPackageVersionId = packageIdFromAlias;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (!packageIdFromAlias || !dependency.versionNumber) {
|
|
167
|
+
throw messages.createError('errorDependencyPair', [JSON.stringify(dependency)]);
|
|
168
|
+
}
|
|
169
|
+
// Just override dependency.packageId value to the resolved alias.
|
|
170
|
+
dependency.packageId = packageIdFromAlias;
|
|
171
|
+
pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_ID, dependency.packageId);
|
|
172
|
+
(0, exports.validateVersionNumber)(dependency.versionNumber, versionNumber_1.BuildNumberToken.LATEST_BUILD_NUMBER_TOKEN, versionNumber_1.BuildNumberToken.RELEASED_BUILD_NUMBER_TOKEN);
|
|
173
|
+
await this.validatePatchVersion(dependency.versionNumber, dependency.packageId);
|
|
174
|
+
// Validate that the Package2 id exists on the server
|
|
175
|
+
const query = `SELECT Id FROM Package2 WHERE Id = '${dependency.packageId}'`;
|
|
176
|
+
const result = await this.connection.tooling.query(query);
|
|
177
|
+
if (!result.records || result.records.length !== 1) {
|
|
178
|
+
throw messages.createError('errorNoIdInHub', [dependency.packageId]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
178
181
|
async resolveBuildNumber(versionNumber, packageId, branch) {
|
|
179
|
-
if (!versionNumber.
|
|
182
|
+
if (!versionNumber.isBuildKeyword()) {
|
|
180
183
|
// The build number is already specified so just return it using the tooling query result obj structure
|
|
181
184
|
return `${versionNumber.build}`;
|
|
182
185
|
}
|
|
@@ -304,12 +307,12 @@ class PackageVersionCreate {
|
|
|
304
307
|
}
|
|
305
308
|
this.resolveBuildUserPermissions(packageDescriptorJson);
|
|
306
309
|
// All dependencies for the packaging dir should be resolved to an 04t id to be passed to the server.
|
|
307
|
-
// (see
|
|
310
|
+
// (see resolveSubscriberPackageVersionId() for details)
|
|
308
311
|
const dependencies = packageDescriptorJson.dependencies;
|
|
309
312
|
// branch and APV language can be set via options or packageDirectory; option takes precedence
|
|
310
313
|
this.options.branch = this.options.branch ?? packageDescriptorJson.branch;
|
|
311
314
|
this.options.language = this.options.language ?? apvLanguage;
|
|
312
|
-
const resultValues = await Promise.all(!dependencies ? [] : dependencies.map((dependency) => this.
|
|
315
|
+
const resultValues = await Promise.all(!dependencies ? [] : dependencies.map((dependency) => this.resolveSubscriberPackageVersionId(dependency)));
|
|
313
316
|
const versionNumber = this.options.versionnumber ?? packageDescriptorJson.versionNumber;
|
|
314
317
|
if (!versionNumber) {
|
|
315
318
|
throw messages.createError('versionNumberRequired');
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import type { Profile } from '@
|
|
1
|
+
import type { Profile } from '@salesforce/types/metadata';
|
|
2
2
|
import { PackageXml } from '../interfaces';
|
|
3
|
-
type
|
|
4
|
-
name: string;
|
|
5
|
-
enabled: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type CorrectedProfile = Profile & {
|
|
8
|
-
customSettingAccesses: ProfileCustomSettingAccess[];
|
|
9
|
-
};
|
|
3
|
+
export type CorrectedProfile = Profile;
|
|
10
4
|
/**
|
|
11
5
|
*
|
|
12
6
|
* Takes a Profile that's been converted from package.xml to json.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection } from '@salesforce/core';
|
|
2
2
|
import { Duration } from '@salesforce/kit';
|
|
3
3
|
import { Nullable, Optional } from '@salesforce/ts-types';
|
|
4
|
-
import { InstalledPackages, PackageInstallCreateRequest, PackageInstallOptions, PackageType, PackagingSObjects, SubscriberPackageVersionOptions } from '../interfaces';
|
|
4
|
+
import { InstalledPackages, PackageDescriptorJson, PackageInstallCreateRequest, PackageInstallOptions, PackageType, PackagingSObjects, SubscriberPackageVersionOptions } from '../interfaces';
|
|
5
5
|
import { VersionNumber } from './versionNumber';
|
|
6
6
|
export declare const SubscriberPackageVersionFields: string[];
|
|
7
7
|
/**
|
|
@@ -56,6 +56,18 @@ export declare class SubscriberPackageVersion {
|
|
|
56
56
|
* @param connection
|
|
57
57
|
*/
|
|
58
58
|
static getInstallRequest(installRequestId: string, connection: Connection): Promise<PackagingSObjects.PackageInstallRequest>;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve fields from a packageDirectories entry to a SubscriberPackageVersionId (04t).
|
|
61
|
+
* Specifically uses the `versionNumber` and `packageId` fields, as well as an optional
|
|
62
|
+
* `branch` field.
|
|
63
|
+
*
|
|
64
|
+
* @param connection A connection object to the org
|
|
65
|
+
* @param pkgDescriptor Fields from a packageDirectories entry in sfdx-project.json.
|
|
66
|
+
* The `versionNumber` and `packageId` fields are required. Optionally, the `branch` and
|
|
67
|
+
* `package` fields can be passed.
|
|
68
|
+
* @returns the SubscriberPackageVersionId (04t)
|
|
69
|
+
*/
|
|
70
|
+
static resolveId(connection: Connection, pkgDescriptor: Partial<PackageDescriptorJson>): Promise<string>;
|
|
59
71
|
/**
|
|
60
72
|
* Get the package version ID for this SubscriberPackageVersion.
|
|
61
73
|
*
|
|
@@ -65,7 +77,7 @@ export declare class SubscriberPackageVersion {
|
|
|
65
77
|
/**
|
|
66
78
|
* Get the package type for this SubscriberPackageVersion.
|
|
67
79
|
*
|
|
68
|
-
* @returns {PackageType} The package type.
|
|
80
|
+
* @returns {PackageType} The package type ("Managed" or "Unlocked") for this SubscriberPackageVersion.
|
|
69
81
|
*/
|
|
70
82
|
getPackageType(): Promise<PackageType>;
|
|
71
83
|
/**
|
|
@@ -77,7 +89,7 @@ export declare class SubscriberPackageVersion {
|
|
|
77
89
|
/**
|
|
78
90
|
* Get the subscriber package Id (033) for this SubscriberPackageVersion.
|
|
79
91
|
*
|
|
80
|
-
* @returns {string} The subscriber package Id.
|
|
92
|
+
* @returns {string} The subscriber package Id (033).
|
|
81
93
|
*/
|
|
82
94
|
getSubscriberPackageId(): Promise<string>;
|
|
83
95
|
/**
|
|
@@ -12,6 +12,7 @@ const kit_1 = require("@salesforce/kit");
|
|
|
12
12
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
13
13
|
const packageInstall_1 = require("./packageInstall");
|
|
14
14
|
const packageUninstall_1 = require("./packageUninstall");
|
|
15
|
+
const packageVersionCreate_1 = require("./packageVersionCreate");
|
|
15
16
|
const versionNumber_1 = require("./versionNumber");
|
|
16
17
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
17
18
|
const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'subscriber_package_version');
|
|
@@ -186,6 +187,21 @@ class SubscriberPackageVersion {
|
|
|
186
187
|
}
|
|
187
188
|
return installRequest;
|
|
188
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Resolve fields from a packageDirectories entry to a SubscriberPackageVersionId (04t).
|
|
192
|
+
* Specifically uses the `versionNumber` and `packageId` fields, as well as an optional
|
|
193
|
+
* `branch` field.
|
|
194
|
+
*
|
|
195
|
+
* @param connection A connection object to the org
|
|
196
|
+
* @param pkgDescriptor Fields from a packageDirectories entry in sfdx-project.json.
|
|
197
|
+
* The `versionNumber` and `packageId` fields are required. Optionally, the `branch` and
|
|
198
|
+
* `package` fields can be passed.
|
|
199
|
+
* @returns the SubscriberPackageVersionId (04t)
|
|
200
|
+
*/
|
|
201
|
+
static async resolveId(connection, pkgDescriptor) {
|
|
202
|
+
const pvc = new packageVersionCreate_1.PackageVersionCreate({ connection, project: core_1.SfProject.getInstance() });
|
|
203
|
+
return pvc.retrieveSubscriberPackageVersionId(pkgDescriptor);
|
|
204
|
+
}
|
|
189
205
|
/**
|
|
190
206
|
* Get the package version ID for this SubscriberPackageVersion.
|
|
191
207
|
*
|
|
@@ -197,7 +213,7 @@ class SubscriberPackageVersion {
|
|
|
197
213
|
/**
|
|
198
214
|
* Get the package type for this SubscriberPackageVersion.
|
|
199
215
|
*
|
|
200
|
-
* @returns {PackageType} The package type.
|
|
216
|
+
* @returns {PackageType} The package type ("Managed" or "Unlocked") for this SubscriberPackageVersion.
|
|
201
217
|
*/
|
|
202
218
|
async getPackageType() {
|
|
203
219
|
return this.getField('Package2ContainerOptions');
|
|
@@ -213,7 +229,7 @@ class SubscriberPackageVersion {
|
|
|
213
229
|
/**
|
|
214
230
|
* Get the subscriber package Id (033) for this SubscriberPackageVersion.
|
|
215
231
|
*
|
|
216
|
-
* @returns {string} The subscriber package Id.
|
|
232
|
+
* @returns {string} The subscriber package Id (033).
|
|
217
233
|
*/
|
|
218
234
|
async getSubscriberPackageId() {
|
|
219
235
|
return this.getField('SubscriberPackageId');
|
|
@@ -23,10 +23,6 @@ export declare class VersionNumber {
|
|
|
23
23
|
static from(versionString: string | undefined): VersionNumber;
|
|
24
24
|
static isABuildKeyword(token: string | number): boolean;
|
|
25
25
|
toString(): string;
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated use isBuildKeyword instead
|
|
28
|
-
*/
|
|
29
|
-
isbuildKeyword(): boolean;
|
|
30
26
|
isBuildKeyword(): boolean;
|
|
31
27
|
compareTo(other: VersionNumber): number;
|
|
32
28
|
}
|
|
@@ -77,12 +77,6 @@ class VersionNumber {
|
|
|
77
77
|
return `${this.major || '0'}.${this.minor || '0'}.${this.patch || '0'}.${this.build ? `${this.build}` : '0'}`;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
/**
|
|
81
|
-
* @deprecated use isBuildKeyword instead
|
|
82
|
-
*/
|
|
83
|
-
isbuildKeyword() {
|
|
84
|
-
return this.isBuildKeyword();
|
|
85
|
-
}
|
|
86
80
|
isBuildKeyword() {
|
|
87
81
|
return VersionNumber.isABuildKeyword(this.build);
|
|
88
82
|
}
|
|
@@ -100,10 +100,8 @@ export declare function numberToDuration(duration: number | Duration | undefined
|
|
|
100
100
|
/**
|
|
101
101
|
* Zips directory to given zipfile.
|
|
102
102
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* @param dir to zip
|
|
106
|
-
* @param zipfile
|
|
103
|
+
* @param dir directory to zip
|
|
104
|
+
* @param zipfile path to the zip file to create
|
|
107
105
|
*/
|
|
108
106
|
export declare function zipDir(dir: string, zipfile: string): Promise<void>;
|
|
109
107
|
export declare function copyDir(src: string, dest: string): void;
|
|
@@ -380,10 +380,8 @@ const pipeline = (0, node_util_1.promisify)(node_stream_1.pipeline);
|
|
|
380
380
|
/**
|
|
381
381
|
* Zips directory to given zipfile.
|
|
382
382
|
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
* @param dir to zip
|
|
386
|
-
* @param zipfile
|
|
383
|
+
* @param dir directory to zip
|
|
384
|
+
* @param zipfile path to the zip file to create
|
|
387
385
|
*/
|
|
388
386
|
async function zipDir(dir, zipfile) {
|
|
389
387
|
const logger = core_1.Logger.childFromRoot('srcDevUtils#zipDir');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/packaging",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.17",
|
|
4
4
|
"description": "Packaging library for the Salesforce packaging platform",
|
|
5
5
|
"main": "lib/exported",
|
|
6
6
|
"types": "lib/exported.d.ts",
|
|
@@ -42,11 +42,12 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@jsforce/jsforce-node": "^3.2.0",
|
|
45
|
-
"@salesforce/core": "^7.3.
|
|
45
|
+
"@salesforce/core": "^7.3.8",
|
|
46
46
|
"@salesforce/kit": "^3.1.1",
|
|
47
47
|
"@salesforce/schemas": "^1.7.0",
|
|
48
48
|
"@salesforce/source-deploy-retrieve": "^11.4.3",
|
|
49
49
|
"@salesforce/ts-types": "^2.0.9",
|
|
50
|
+
"@salesforce/types": "^1.1.0",
|
|
50
51
|
"fast-xml-parser": "^4.3.6",
|
|
51
52
|
"globby": "^11",
|
|
52
53
|
"graphology": "^0.25.4",
|