@salesforce/packaging 3.4.0 → 3.5.1
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 +2 -2
- package/lib/package/packageAncestry.js +24 -1
- package/lib/package/packageConvert.js +52 -27
- package/lib/package/packageCreate.js +24 -1
- package/lib/package/packageInstall.d.ts +1 -1
- package/lib/package/packageInstall.js +3 -1
- package/lib/package/packageProfileApi.js +15 -12
- package/lib/package/packageUninstall.js +6 -3
- package/lib/package/packageVersionCreate.js +61 -36
- package/lib/package/packageVersionCreateRequest.js +6 -3
- package/lib/package/packageVersionCreateRequestReport.js +24 -1
- package/lib/package/packageVersionList.d.ts +1 -1
- package/lib/package/packageVersionReport.js +30 -4
- package/lib/package/packageVersionRetrieve.js +9 -6
- package/lib/package/profileRewriter.d.ts +1 -1
- package/lib/package1/package1Version.js +5 -2
- package/lib/utils/packageUtils.d.ts +1 -1
- package/lib/utils/packageUtils.js +43 -18
- package/package.json +6 -6
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Duration } from '@salesforce/kit';
|
|
2
2
|
import { Connection, NamedPackageDir, SfProject } from '@salesforce/core';
|
|
3
|
-
import { SaveResult } from 'jsforce';
|
|
3
|
+
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 'jsforce/lib/api/metadata';
|
|
7
|
+
import { Package } from '@jsforce/jsforce-node/lib/api/metadata';
|
|
8
8
|
import { PackageProfileApi } from '../package/packageProfileApi';
|
|
9
9
|
import { PackageAncestryNode } from '../package/packageAncestry';
|
|
10
10
|
import { PackagingSObjects } from './packagingSObjects';
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.PackageAncestryNode = exports.AncestryDotProducer = exports.AncestryJsonProducer = exports.AncestryTreeProducer = exports.PackageAncestry = void 0;
|
|
4
27
|
/*
|
|
@@ -13,7 +36,7 @@ const graphology_1 = require("graphology");
|
|
|
13
36
|
const kit_1 = require("@salesforce/kit");
|
|
14
37
|
const tree_1 = require("@oclif/core/lib/cli-ux/styled/tree");
|
|
15
38
|
const graphology_traversal_1 = require("graphology-traversal");
|
|
16
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
39
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
17
40
|
const packageVersion_1 = require("./packageVersion");
|
|
18
41
|
const package_1 = require("./package");
|
|
19
42
|
const versionNumber_1 = require("./versionNumber");
|
|
@@ -5,18 +5,43 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
+
};
|
|
8
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
35
|
exports.createPackageVersionCreateRequest = exports.convertPackage = exports.findOrCreatePackage2 = void 0;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
36
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
37
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
38
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
13
39
|
const core_1 = require("@salesforce/core");
|
|
14
40
|
const kit_1 = require("@salesforce/kit");
|
|
15
|
-
const
|
|
16
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
41
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
17
42
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
18
43
|
const interfaces_1 = require("../interfaces");
|
|
19
|
-
const pvcr = require("./packageVersionCreateRequest");
|
|
44
|
+
const pvcr = __importStar(require("./packageVersionCreateRequest"));
|
|
20
45
|
const packageVersionCreateRequest_1 = require("./packageVersionCreateRequest");
|
|
21
46
|
const packageVersionCreate_1 = require("./packageVersionCreate");
|
|
22
47
|
var Package2VersionStatus = interfaces_1.PackagingSObjects.Package2VersionStatus;
|
|
@@ -112,25 +137,25 @@ exports.convertPackage = convertPackage;
|
|
|
112
137
|
*/
|
|
113
138
|
async function createPackageVersionCreateRequest(context, packageId, apiVersion) {
|
|
114
139
|
const uniqueId = (0, packageUtils_1.uniqid)({ template: `${packageId}-%s` });
|
|
115
|
-
const packageVersTmpRoot =
|
|
116
|
-
const packageVersMetadataFolder =
|
|
117
|
-
const seedMetadataFolder =
|
|
118
|
-
const packageVersBlobDirectory =
|
|
119
|
-
const seedMetadataZipFile =
|
|
120
|
-
const settingsZipFile =
|
|
121
|
-
const metadataZipFile =
|
|
122
|
-
const packageVersBlobZipFile =
|
|
140
|
+
const packageVersTmpRoot = node_path_1.default.join(node_os_1.default.tmpdir(), uniqueId);
|
|
141
|
+
const packageVersMetadataFolder = node_path_1.default.join(packageVersTmpRoot, 'md-files');
|
|
142
|
+
const seedMetadataFolder = node_path_1.default.join(packageVersTmpRoot, 'seed-md-files');
|
|
143
|
+
const packageVersBlobDirectory = node_path_1.default.join(packageVersTmpRoot, 'package-version-info');
|
|
144
|
+
const seedMetadataZipFile = node_path_1.default.join(packageVersBlobDirectory, 'seed-metadata-package.zip');
|
|
145
|
+
const settingsZipFile = node_path_1.default.join(packageVersBlobDirectory, 'settings.zip');
|
|
146
|
+
const metadataZipFile = node_path_1.default.join(packageVersBlobDirectory, 'package.zip');
|
|
147
|
+
const packageVersBlobZipFile = node_path_1.default.join(packageVersTmpRoot, 'package-version-info.zip');
|
|
123
148
|
let packageDescriptorJson = {
|
|
124
149
|
id: packageId,
|
|
125
150
|
};
|
|
126
|
-
const settingsGenerator = new
|
|
151
|
+
const settingsGenerator = new core_1.ScratchOrgSettingsGenerator({ asDirectory: true });
|
|
127
152
|
const definitionFile = context.definitionfile;
|
|
128
153
|
let definitionFileJson;
|
|
129
154
|
if (definitionFile) {
|
|
130
|
-
if (!
|
|
155
|
+
if (!node_fs_1.default.existsSync(definitionFile)) {
|
|
131
156
|
throw messages.createError('errorReadingDefintionFile', [definitionFile]);
|
|
132
157
|
}
|
|
133
|
-
const definitionFilePayload = await
|
|
158
|
+
const definitionFilePayload = await node_fs_1.default.promises.readFile(definitionFile, 'utf8');
|
|
134
159
|
definitionFileJson = JSON.parse(definitionFilePayload);
|
|
135
160
|
// Load any settings from the definition
|
|
136
161
|
await settingsGenerator.extract(definitionFileJson);
|
|
@@ -140,9 +165,9 @@ async function createPackageVersionCreateRequest(context, packageId, apiVersion)
|
|
|
140
165
|
}
|
|
141
166
|
packageDescriptorJson = (0, packageUtils_1.copyDescriptorProperties)(packageDescriptorJson, definitionFileJson);
|
|
142
167
|
}
|
|
143
|
-
await
|
|
144
|
-
await
|
|
145
|
-
await
|
|
168
|
+
await node_fs_1.default.promises.mkdir(packageVersTmpRoot, { recursive: true });
|
|
169
|
+
await node_fs_1.default.promises.mkdir(packageVersBlobDirectory, { recursive: true });
|
|
170
|
+
await node_fs_1.default.promises.mkdir(packageVersMetadataFolder, { recursive: true });
|
|
146
171
|
const hasSeedMetadata = await new packageVersionCreate_1.MetadataResolver().resolveMetadata(context.seedmetadata, seedMetadataFolder, 'seedMDDirectoryDoesNotExist', apiVersion);
|
|
147
172
|
if (hasSeedMetadata) {
|
|
148
173
|
// Zip the seedMetadataFolder folder and put the zip in {packageVersBlobDirectory}/{seedMetadataZipFile}
|
|
@@ -151,20 +176,20 @@ async function createPackageVersionCreateRequest(context, packageId, apiVersion)
|
|
|
151
176
|
}
|
|
152
177
|
await settingsGenerator.createDeploy();
|
|
153
178
|
await settingsGenerator.createDeployPackageContents(apiVersion);
|
|
154
|
-
await pkgUtils.zipDir(`${settingsGenerator.getDestinationPath()}${
|
|
155
|
-
const shapeDirectory = `${settingsGenerator.getDestinationPath()}${
|
|
156
|
-
const currentPackageXml = await
|
|
157
|
-
await
|
|
179
|
+
await pkgUtils.zipDir(`${settingsGenerator.getDestinationPath()}${node_path_1.default.sep}${settingsGenerator.getShapeDirName()}`, settingsZipFile);
|
|
180
|
+
const shapeDirectory = `${settingsGenerator.getDestinationPath()}${node_path_1.default.sep}${settingsGenerator.getShapeDirName()}`;
|
|
181
|
+
const currentPackageXml = await node_fs_1.default.promises.readFile(node_path_1.default.join(shapeDirectory, 'package.xml'), 'utf8');
|
|
182
|
+
await node_fs_1.default.promises.writeFile(node_path_1.default.join(packageVersMetadataFolder, 'package.xml'), currentPackageXml, 'utf-8');
|
|
158
183
|
// Zip the packageVersMetadataFolder folder and put the zip in {packageVersBlobDirectory}/package.zip
|
|
159
184
|
await pkgUtils.zipDir(packageVersMetadataFolder, metadataZipFile);
|
|
160
|
-
await
|
|
185
|
+
await node_fs_1.default.promises.writeFile(node_path_1.default.join(packageVersBlobDirectory, 'package2-descriptor.json'), JSON.stringify(packageDescriptorJson, undefined, 2));
|
|
161
186
|
// Zip the Version Info and package.zip files into another zip
|
|
162
187
|
await pkgUtils.zipDir(packageVersBlobDirectory, packageVersBlobZipFile);
|
|
163
188
|
return createRequestObject(packageId, context, packageVersTmpRoot, packageVersBlobZipFile);
|
|
164
189
|
}
|
|
165
190
|
exports.createPackageVersionCreateRequest = createPackageVersionCreateRequest;
|
|
166
191
|
async function createRequestObject(packageId, options, packageVersTmpRoot, packageVersBlobZipFile) {
|
|
167
|
-
const zipFileBase64 = (await
|
|
192
|
+
const zipFileBase64 = (await node_fs_1.default.promises.readFile(packageVersBlobZipFile)).toString('base64');
|
|
168
193
|
const requestObject = {
|
|
169
194
|
Package2Id: packageId,
|
|
170
195
|
VersionInfo: zipFileBase64,
|
|
@@ -172,7 +197,7 @@ async function createRequestObject(packageId, options, packageVersTmpRoot, packa
|
|
|
172
197
|
Instance: options.buildinstance,
|
|
173
198
|
IsConversionRequest: true,
|
|
174
199
|
};
|
|
175
|
-
await
|
|
200
|
+
await node_fs_1.default.promises.rm(packageVersTmpRoot, { recursive: true });
|
|
176
201
|
return requestObject;
|
|
177
202
|
}
|
|
178
203
|
async function pollForStatusWithInterval(id, retries, packageId, branch, project, connection, interval) {
|
|
@@ -5,11 +5,34 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
8
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
32
|
exports.createPackage = exports.createPackageDirEntry = exports.createPackageRequestFromContext = void 0;
|
|
10
33
|
const core_1 = require("@salesforce/core");
|
|
11
34
|
const kit_1 = require("@salesforce/kit");
|
|
12
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
35
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
13
36
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
14
37
|
function createPackageRequestFromContext(project, options) {
|
|
15
38
|
const namespace = options.noNamespace ? '' : project.getSfProjectJson().getContents().namespace ?? '';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Connection } from '@salesforce/core';
|
|
2
2
|
import { Nullable } from '@salesforce/ts-types';
|
|
3
|
-
import { QueryResult } from 'jsforce';
|
|
3
|
+
import type { QueryResult } from '@jsforce/jsforce-node';
|
|
4
4
|
import { Duration } from '@salesforce/kit';
|
|
5
5
|
import { PackageInstallCreateRequest, PackageInstallOptions, PackageType, PackagingSObjects } from '../interfaces';
|
|
6
6
|
import PackageInstallRequest = PackagingSObjects.PackageInstallRequest;
|
|
@@ -130,7 +130,9 @@ async function waitForPublish(connection, subscriberPackageVersionId, frequency,
|
|
|
130
130
|
catch (e) {
|
|
131
131
|
// if polling timed out
|
|
132
132
|
const error = installMsgs.createError('subscriberPackageVersionNotPublished');
|
|
133
|
-
|
|
133
|
+
if (queryResult?.records[0]) {
|
|
134
|
+
error.setData(queryResult?.records[0]);
|
|
135
|
+
}
|
|
134
136
|
if (error.stack && e instanceof Error && e.stack) {
|
|
135
137
|
getLogger().debug(`Error during waitForPublish polling:\n${e.stack}`);
|
|
136
138
|
// append the original stack to this new error
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.PackageProfileApi = void 0;
|
|
4
7
|
/*
|
|
@@ -7,10 +10,10 @@ exports.PackageProfileApi = void 0;
|
|
|
7
10
|
* Licensed under the BSD 3-Clause license.
|
|
8
11
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
12
|
*/
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
13
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
15
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
16
|
+
const globby_1 = __importDefault(require("globby"));
|
|
14
17
|
const core_1 = require("@salesforce/core");
|
|
15
18
|
const kit_1 = require("@salesforce/kit");
|
|
16
19
|
const profileRewriter_1 = require("./profileRewriter");
|
|
@@ -44,7 +47,7 @@ class PackageProfileApi extends kit_1.AsyncCreatable {
|
|
|
44
47
|
const logger = core_1.Logger.childFromRoot('PackageProfileApi');
|
|
45
48
|
return (this.getProfilesWithNamesAndPaths(excludedDirectories)
|
|
46
49
|
.map(({ profilePath, name: profileName }) => {
|
|
47
|
-
const originalProfile = (0, profileRewriter_1.profileStringToProfile)(
|
|
50
|
+
const originalProfile = (0, profileRewriter_1.profileStringToProfile)(node_fs_1.default.readFileSync(profilePath, 'utf-8'));
|
|
48
51
|
const adjustedProfile = (0, profileRewriter_1.profileRewriter)(originalProfile, (0, profileRewriter_1.manifestTypesToMap)(manifestTypes), this.includeUserLicenses);
|
|
49
52
|
return {
|
|
50
53
|
profileName,
|
|
@@ -66,7 +69,7 @@ class PackageProfileApi extends kit_1.AsyncCreatable {
|
|
|
66
69
|
removedSettings.forEach((setting) => {
|
|
67
70
|
logger.info(profileApiMessages.getMessage('removeProfileSetting', [setting, profileName]));
|
|
68
71
|
});
|
|
69
|
-
|
|
72
|
+
node_fs_1.default.writeFileSync(xmlFileLocation, (0, profileRewriter_1.profileObjectToString)(adjustedProfile), 'utf-8');
|
|
70
73
|
}
|
|
71
74
|
})
|
|
72
75
|
.map(({ xmlFileLocation }) => xmlFileLocation.replace(/(.*)(\.profile)/, '$1')));
|
|
@@ -86,14 +89,14 @@ class PackageProfileApi extends kit_1.AsyncCreatable {
|
|
|
86
89
|
}
|
|
87
90
|
// Look for profiles in all package directories
|
|
88
91
|
findAllProfiles(excludedDirectories = []) {
|
|
89
|
-
const ignore = excludedDirectories.map((dir) => `**/${dir.split(
|
|
92
|
+
const ignore = excludedDirectories.map((dir) => `**/${dir.split(node_path_1.default.sep).join(node_path_1.default.posix.sep)}/**`);
|
|
90
93
|
const patterns = this.project
|
|
91
94
|
.getUniquePackageDirectories()
|
|
92
95
|
.map((pDir) => pDir.fullPath)
|
|
93
|
-
.map((fullDir) =>
|
|
94
|
-
?
|
|
95
|
-
:
|
|
96
|
-
return
|
|
96
|
+
.map((fullDir) => node_os_1.default.type() === 'Windows_NT'
|
|
97
|
+
? node_path_1.default.posix.join(...fullDir.split(node_path_1.default.sep), '**', '*.profile-meta.xml')
|
|
98
|
+
: node_path_1.default.join(fullDir, '**', '*.profile-meta.xml'));
|
|
99
|
+
return globby_1.default.sync(patterns, { ignore });
|
|
97
100
|
}
|
|
98
101
|
getProfilesWithNamesAndPaths(excludedDirectories) {
|
|
99
102
|
return this.findAllProfiles(excludedDirectories)
|
|
@@ -104,7 +107,7 @@ class PackageProfileApi extends kit_1.AsyncCreatable {
|
|
|
104
107
|
exports.PackageProfileApi = PackageProfileApi;
|
|
105
108
|
const isProfilePathWithName = (profilePathWithName) => typeof profilePathWithName.name === 'string';
|
|
106
109
|
const profilePathToName = (profilePath) => profilePath.match(/([^/]+)\.profile-meta.xml/)?.[1];
|
|
107
|
-
const getXmlFileLocation = (destPath, profilePath) =>
|
|
110
|
+
const getXmlFileLocation = (destPath, profilePath) => node_path_1.default.join(destPath, node_path_1.default.basename(profilePath).replace(/(.*)(-meta.xml)/, '$1'));
|
|
108
111
|
const getRemovedSettings = (originalProfile, adjustedProfile) => {
|
|
109
112
|
const originalProfileSettings = Object.keys(originalProfile);
|
|
110
113
|
const adjustedProfileSettings = new Set(Object.keys(adjustedProfile));
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.uninstallPackage = exports.pollUninstall = exports.getUninstallErrors = void 0;
|
|
4
7
|
/*
|
|
@@ -7,7 +10,7 @@ exports.uninstallPackage = exports.pollUninstall = exports.getUninstallErrors =
|
|
|
7
10
|
* Licensed under the BSD 3-Clause license.
|
|
8
11
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
12
|
*/
|
|
10
|
-
const
|
|
13
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
11
14
|
const core_1 = require("@salesforce/core");
|
|
12
15
|
const kit_1 = require("@salesforce/kit");
|
|
13
16
|
const interfaces_1 = require("../interfaces");
|
|
@@ -39,8 +42,8 @@ async function pollUninstall(uninstallRequestId, conn, frequency, wait) {
|
|
|
39
42
|
default: {
|
|
40
43
|
const err = pkgMessages.getMessage('defaultErrorMessage', [id, uninstallRequest.Id]);
|
|
41
44
|
const errorMessages = await getUninstallErrors(conn, id);
|
|
42
|
-
const errors = errorMessages.map((error, index) => `(${index + 1}) ${error.Message}${
|
|
43
|
-
const combinedErrors = errors.length ? `\n=== Errors\n${errors.join(
|
|
45
|
+
const errors = errorMessages.map((error, index) => `(${index + 1}) ${error.Message}${node_os_1.default.EOL}`);
|
|
46
|
+
const combinedErrors = errors.length ? `\n=== Errors\n${errors.join(node_os_1.default.EOL)}` : '';
|
|
44
47
|
throw new core_1.SfError(`${err}${combinedErrors}`, 'UNINSTALL_ERROR', [messages.getMessage('uninstallErrorAction')]);
|
|
45
48
|
}
|
|
46
49
|
}
|
|
@@ -5,18 +5,43 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
+
};
|
|
8
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
35
|
exports.validateVersionNumber = exports.validateAncestorId = exports.packageXmlJsonToXmlString = exports.packageXmlStringToPackageXmlJson = exports.MetadataResolver = exports.PackageVersionCreate = void 0;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
36
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
37
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
38
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
13
39
|
const core_1 = require("@salesforce/core");
|
|
14
40
|
const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
|
|
15
|
-
const scratchOrgSettingsGenerator_1 = require("@salesforce/core/lib/org/scratchOrgSettingsGenerator");
|
|
16
41
|
const kit_1 = require("@salesforce/kit");
|
|
17
42
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
18
43
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
19
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
44
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
20
45
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
21
46
|
const interfaces_1 = require("../interfaces");
|
|
22
47
|
const packageProfileApi_1 = require("./packageProfileApi");
|
|
@@ -180,7 +205,7 @@ class PackageVersionCreate {
|
|
|
180
205
|
return `${results.records[0].expr0}`;
|
|
181
206
|
}
|
|
182
207
|
async createRequestObject(preserveFiles, packageVersTmpRoot, packageVersBlobZipFile) {
|
|
183
|
-
const zipFileBase64 =
|
|
208
|
+
const zipFileBase64 = node_fs_1.default.readFileSync(packageVersBlobZipFile).toString('base64');
|
|
184
209
|
const requestObject = {
|
|
185
210
|
Package2Id: this.packageId,
|
|
186
211
|
VersionInfo: zipFileBase64,
|
|
@@ -212,7 +237,7 @@ class PackageVersionCreate {
|
|
|
212
237
|
return requestObject;
|
|
213
238
|
}
|
|
214
239
|
else {
|
|
215
|
-
return
|
|
240
|
+
return node_fs_1.default.promises.rm(packageVersTmpRoot, { recursive: true, force: true }).then(() => requestObject);
|
|
216
241
|
}
|
|
217
242
|
}
|
|
218
243
|
/**
|
|
@@ -224,25 +249,25 @@ class PackageVersionCreate {
|
|
|
224
249
|
async createPackageVersionCreateRequestFromOptions() {
|
|
225
250
|
const preserveFiles = !!(this.options.preserve ?? kit_1.env.getBoolean('SF_PACKAGE2_VERSION_CREATE_PRESERVE'));
|
|
226
251
|
const uniqueHash = (0, packageUtils_1.uniqid)({ template: `${this.packageId}-%s` });
|
|
227
|
-
const packageVersTmpRoot =
|
|
228
|
-
const packageVersMetadataFolder =
|
|
229
|
-
const unpackagedMetadataFolder =
|
|
230
|
-
const seedMetadataFolder =
|
|
231
|
-
const packageVersProfileFolder =
|
|
232
|
-
const packageVersBlobDirectory =
|
|
233
|
-
const metadataZipFile =
|
|
234
|
-
const unpackagedMetadataZipFile =
|
|
235
|
-
const seedMetadataZipFile =
|
|
236
|
-
const settingsZipFile =
|
|
237
|
-
const packageVersBlobZipFile =
|
|
238
|
-
const sourceBaseDir =
|
|
252
|
+
const packageVersTmpRoot = node_path_1.default.join(node_os_1.default.tmpdir(), `${uniqueHash}`);
|
|
253
|
+
const packageVersMetadataFolder = node_path_1.default.join(packageVersTmpRoot, 'md-files');
|
|
254
|
+
const unpackagedMetadataFolder = node_path_1.default.join(packageVersTmpRoot, 'unpackaged-md-files');
|
|
255
|
+
const seedMetadataFolder = node_path_1.default.join(packageVersTmpRoot, 'seed-md-files');
|
|
256
|
+
const packageVersProfileFolder = node_path_1.default.join(packageVersMetadataFolder, 'profiles');
|
|
257
|
+
const packageVersBlobDirectory = node_path_1.default.join(packageVersTmpRoot, 'package-version-info');
|
|
258
|
+
const metadataZipFile = node_path_1.default.join(packageVersBlobDirectory, 'package.zip');
|
|
259
|
+
const unpackagedMetadataZipFile = node_path_1.default.join(packageVersBlobDirectory, 'unpackaged-metadata-package.zip');
|
|
260
|
+
const seedMetadataZipFile = node_path_1.default.join(packageVersBlobDirectory, 'seed-metadata-package.zip');
|
|
261
|
+
const settingsZipFile = node_path_1.default.join(packageVersBlobDirectory, 'settings.zip');
|
|
262
|
+
const packageVersBlobZipFile = node_path_1.default.join(packageVersTmpRoot, 'package-version-info.zip');
|
|
263
|
+
const sourceBaseDir = node_path_1.default.join(this.project.getPath(), this.packageObject?.path ?? '');
|
|
239
264
|
const mdOptions = {
|
|
240
265
|
deploydir: packageVersMetadataFolder,
|
|
241
266
|
sourceDir: sourceBaseDir,
|
|
242
267
|
sourceApiVersion: this.project?.getSfProjectJson()?.get('sourceApiVersion') ?? undefined,
|
|
243
268
|
};
|
|
244
|
-
await
|
|
245
|
-
const settingsGenerator = new
|
|
269
|
+
await node_fs_1.default.promises.mkdir(packageVersBlobDirectory, { recursive: true });
|
|
270
|
+
const settingsGenerator = new core_1.ScratchOrgSettingsGenerator({ asDirectory: true });
|
|
246
271
|
let packageDescriptorJson = structuredClone(this.packageObject);
|
|
247
272
|
const apvLanguage = packageDescriptorJson.language;
|
|
248
273
|
// Copy all the metadata from the workspace to a tmp folder
|
|
@@ -267,7 +292,7 @@ class PackageVersionCreate {
|
|
|
267
292
|
delete packageDescriptorJson.orgPreferences;
|
|
268
293
|
delete packageDescriptorJson.definitionFile;
|
|
269
294
|
delete packageDescriptorJson.snapshot;
|
|
270
|
-
const definitionFilePayload = await
|
|
295
|
+
const definitionFilePayload = await node_fs_1.default.promises.readFile(definitionFile, 'utf8');
|
|
271
296
|
const definitionFileJson = JSON.parse(definitionFilePayload);
|
|
272
297
|
// Load any settings from the definition
|
|
273
298
|
await settingsGenerator.extract(definitionFileJson);
|
|
@@ -297,13 +322,13 @@ class PackageVersionCreate {
|
|
|
297
322
|
}
|
|
298
323
|
packageDescriptorJson = cleanPackageDescriptorJson(packageDescriptorJson);
|
|
299
324
|
packageDescriptorJson = setPackageDescriptorJsonValues(packageDescriptorJson, this.options, this.logger);
|
|
300
|
-
await
|
|
301
|
-
await
|
|
325
|
+
await node_fs_1.default.promises.mkdir(packageVersTmpRoot, { recursive: true });
|
|
326
|
+
await node_fs_1.default.promises.mkdir(packageVersBlobDirectory, { recursive: true });
|
|
302
327
|
if (Reflect.has(packageDescriptorJson, 'ancestorVersion')) {
|
|
303
328
|
delete packageDescriptorJson.ancestorVersion;
|
|
304
329
|
}
|
|
305
330
|
packageDescriptorJson.ancestorId = ancestorId;
|
|
306
|
-
await
|
|
331
|
+
await node_fs_1.default.promises.writeFile(node_path_1.default.join(packageVersBlobDirectory, DESCRIPTOR_FILE), JSON.stringify(packageDescriptorJson), 'utf-8');
|
|
307
332
|
await this.cleanGeneratedPackage({
|
|
308
333
|
packageVersMetadataFolder,
|
|
309
334
|
packageVersProfileFolder,
|
|
@@ -328,7 +353,7 @@ class PackageVersionCreate {
|
|
|
328
353
|
// As part of the source convert process, the package.xml has been written into the tmp metadata directory.
|
|
329
354
|
// The package.xml may need to be manipulated due to processing profiles in the workspace or additional
|
|
330
355
|
// metadata exclusions. If necessary, read the existing package.xml and then re-write it.
|
|
331
|
-
const currentPackageXml = await
|
|
356
|
+
const currentPackageXml = await node_fs_1.default.promises.readFile(node_path_1.default.join(packageVersMetadataFolder, 'package.xml'), 'utf8');
|
|
332
357
|
// convert to json
|
|
333
358
|
const packageXmlAsJson = (0, exports.packageXmlStringToPackageXmlJson)(currentPackageXml);
|
|
334
359
|
if (!packageXmlAsJson) {
|
|
@@ -337,8 +362,8 @@ class PackageVersionCreate {
|
|
|
337
362
|
if (!packageXmlAsJson?.types) {
|
|
338
363
|
throw messages.createError('packageXmlDoesNotContainPackageTypes');
|
|
339
364
|
}
|
|
340
|
-
|
|
341
|
-
|
|
365
|
+
node_fs_1.default.mkdirSync(packageVersMetadataFolder, { recursive: true });
|
|
366
|
+
node_fs_1.default.mkdirSync(packageVersProfileFolder, { recursive: true });
|
|
342
367
|
this.apiVersionFromPackageXml = packageXmlAsJson.version;
|
|
343
368
|
const sourceApiVersion = this.project?.getSfProjectJson()?.get('sourceApiVersion');
|
|
344
369
|
const hasSeedMetadata = await this.metadataResolver.resolveMetadata(this.packageObject.seedMetadata?.path, seedMetadataFolder, 'seedMDDirectoryDoesNotExist', sourceApiVersion);
|
|
@@ -382,7 +407,7 @@ class PackageVersionCreate {
|
|
|
382
407
|
return { ...type, members: type.members.filter((m) => !excludedProfiles?.includes(m)) };
|
|
383
408
|
});
|
|
384
409
|
const xml = (0, exports.packageXmlJsonToXmlString)(packageXmlAsJson);
|
|
385
|
-
await
|
|
410
|
+
await node_fs_1.default.promises.writeFile(node_path_1.default.join(packageVersMetadataFolder, 'package.xml'), xml, 'utf-8');
|
|
386
411
|
// Zip the packageVersMetadataFolder folder and put the zip in {packageVersBlobDirectory}/package.zip
|
|
387
412
|
await (0, packageUtils_1.zipDir)(packageVersMetadataFolder, metadataZipFile);
|
|
388
413
|
if (hasSeedMetadata) {
|
|
@@ -397,7 +422,7 @@ class PackageVersionCreate {
|
|
|
397
422
|
if (settingsGenerator.hasSettings()) {
|
|
398
423
|
await settingsGenerator.createDeploy();
|
|
399
424
|
await settingsGenerator.createDeployPackageContents(this.apiVersionFromPackageXml);
|
|
400
|
-
await (0, packageUtils_1.zipDir)(`${settingsGenerator.getDestinationPath()}${
|
|
425
|
+
await (0, packageUtils_1.zipDir)(`${settingsGenerator.getDestinationPath()}${node_path_1.default.sep}${settingsGenerator.getShapeDirName()}`, settingsZipFile);
|
|
401
426
|
}
|
|
402
427
|
// Zip the Version Info and package.zip files into another zip
|
|
403
428
|
await (0, packageUtils_1.zipDir)(packageVersBlobDirectory, packageVersBlobZipFile);
|
|
@@ -710,11 +735,11 @@ exports.PackageVersionCreate = PackageVersionCreate;
|
|
|
710
735
|
class MetadataResolver {
|
|
711
736
|
async resolveMetadata(metadataRelativePath, metadataOutputPath, errorMessageLabel, sourceApiVersion) {
|
|
712
737
|
if (metadataRelativePath) {
|
|
713
|
-
const metadataFullPath =
|
|
714
|
-
if (!
|
|
738
|
+
const metadataFullPath = node_path_1.default.join(process.cwd(), metadataRelativePath);
|
|
739
|
+
if (!node_fs_1.default.existsSync(metadataFullPath)) {
|
|
715
740
|
throw messages.createError(errorMessageLabel, [metadataRelativePath]);
|
|
716
741
|
}
|
|
717
|
-
|
|
742
|
+
node_fs_1.default.mkdirSync(metadataOutputPath, { recursive: true });
|
|
718
743
|
await this.generateMDFolderForArtifact({
|
|
719
744
|
deploydir: metadataOutputPath,
|
|
720
745
|
sourceDir: metadataFullPath,
|
|
@@ -736,7 +761,7 @@ class MetadataResolver {
|
|
|
736
761
|
}
|
|
737
762
|
const componentSet = await source_deploy_retrieve_1.ComponentSetBuilder.build(componentSetOptions);
|
|
738
763
|
const packageName = options.packageName;
|
|
739
|
-
const outputDirectory =
|
|
764
|
+
const outputDirectory = node_path_1.default.resolve(options.deploydir);
|
|
740
765
|
const convertResult = await this.convertMetadata(componentSet, outputDirectory, packageName);
|
|
741
766
|
if (packageName) {
|
|
742
767
|
// SDR will build an output path like /output/directory/packageName/package.xml
|
|
@@ -746,12 +771,12 @@ class MetadataResolver {
|
|
|
746
771
|
}
|
|
747
772
|
(0, packageUtils_1.copyDir)(convertResult.packagePath, outputDirectory);
|
|
748
773
|
try {
|
|
749
|
-
|
|
774
|
+
node_fs_1.default.rmSync(convertResult.packagePath, { recursive: true });
|
|
750
775
|
}
|
|
751
776
|
catch (e) {
|
|
752
777
|
// rmdirSync is being deprecated and emits a warning
|
|
753
778
|
// but rmSync is introduced in node 14 so fall back to rmdirSync
|
|
754
|
-
|
|
779
|
+
node_fs_1.default.rmdirSync(convertResult.packagePath, { recursive: true });
|
|
755
780
|
}
|
|
756
781
|
convertResult.packagePath = outputDirectory;
|
|
757
782
|
}
|
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.byId = exports.list = void 0;
|
|
10
|
-
const
|
|
13
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
11
14
|
const core_1 = require("@salesforce/core");
|
|
12
15
|
const interfaces_1 = require("../interfaces");
|
|
13
16
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
@@ -26,7 +29,7 @@ function formatDate(date) {
|
|
|
26
29
|
async function list(connection, options) {
|
|
27
30
|
try {
|
|
28
31
|
const whereClause = constructWhere(options);
|
|
29
|
-
return await query(
|
|
32
|
+
return await query(node_util_1.default.format(QUERY, whereClause), connection);
|
|
30
33
|
}
|
|
31
34
|
catch (err) {
|
|
32
35
|
if (err instanceof Error) {
|
|
@@ -37,7 +40,7 @@ async function list(connection, options) {
|
|
|
37
40
|
}
|
|
38
41
|
exports.list = list;
|
|
39
42
|
async function byId(packageVersionCreateRequestId, connection) {
|
|
40
|
-
const results = await query(
|
|
43
|
+
const results = await query(node_util_1.default.format(QUERY, `WHERE Id = '${packageVersionCreateRequestId}' `), connection);
|
|
41
44
|
if (results && results.length === 1 && results[0].Status === interfaces_1.PackagingSObjects.Package2VersionStatus.error) {
|
|
42
45
|
results[0].Error = await queryForErrors(packageVersionCreateRequestId, connection);
|
|
43
46
|
}
|
|
@@ -5,9 +5,32 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
8
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
32
|
exports.getCreatePackageVersionCreateRequestReport = void 0;
|
|
10
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
33
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
11
34
|
const packageUtils_1 = require("../utils/packageUtils");
|
|
12
35
|
const packageVersionCreateRequest_1 = require("./packageVersionCreateRequest");
|
|
13
36
|
async function getCreatePackageVersionCreateRequestReport(options) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Connection } from '@salesforce/core';
|
|
2
|
-
import { QueryResult } from 'jsforce';
|
|
2
|
+
import { QueryResult } from '@jsforce/jsforce-node';
|
|
3
3
|
import { PackageVersionListOptions, PackageVersionListResult } from '../interfaces';
|
|
4
4
|
export declare const DEFAULT_ORDER_BY_FIELDS = "Package2Id, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber";
|
|
5
5
|
/**
|
|
@@ -5,13 +5,39 @@
|
|
|
5
5
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
+
};
|
|
8
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
35
|
exports.getPackageVersionReport = void 0;
|
|
10
36
|
// Node
|
|
11
|
-
const
|
|
37
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
12
38
|
// Local
|
|
13
39
|
const core_1 = require("@salesforce/core");
|
|
14
|
-
const pkgUtils = require("../utils/packageUtils");
|
|
40
|
+
const pkgUtils = __importStar(require("../utils/packageUtils"));
|
|
15
41
|
const QUERY = 'SELECT Package2Id, SubscriberPackageVersionId, Name, Description, Tag, Branch, AncestorId, ValidationSkipped, ' +
|
|
16
42
|
'MajorVersion, MinorVersion, PatchVersion, BuildNumber, IsReleased, CodeCoverage, HasPassedCodeCoverageCheck, ' +
|
|
17
43
|
'Package2.IsOrgDependent, ReleaseVersion, BuildDurationInSeconds, HasMetadataRemoved, CreatedById, ConvertedFromVersionId ' +
|
|
@@ -34,8 +60,8 @@ const getLogger = () => {
|
|
|
34
60
|
return logger;
|
|
35
61
|
};
|
|
36
62
|
async function getPackageVersionReport(options) {
|
|
37
|
-
getLogger().debug(`entering getPackageVersionReport(${
|
|
38
|
-
const queryResult = await options.connection.tooling.query(
|
|
63
|
+
getLogger().debug(`entering getPackageVersionReport(${node_util_1.default.inspect(options, { depth: null })})`);
|
|
64
|
+
const queryResult = await options.connection.tooling.query(node_util_1.default.format(options.verbose ? QUERY_VERBOSE : QUERY, options.packageVersionId));
|
|
39
65
|
const records = queryResult.records;
|
|
40
66
|
if (records?.length > 0) {
|
|
41
67
|
const record = records[0];
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.retrievePackageVersionMetadata = void 0;
|
|
4
7
|
/*
|
|
@@ -7,8 +10,8 @@ exports.retrievePackageVersionMetadata = void 0;
|
|
|
7
10
|
* Licensed under the BSD 3-Clause license.
|
|
8
11
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
12
|
*/
|
|
10
|
-
const
|
|
11
|
-
const
|
|
13
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
15
|
const core_1 = require("@salesforce/core");
|
|
13
16
|
const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
|
|
14
17
|
const kit_1 = require("@salesforce/kit");
|
|
@@ -36,12 +39,12 @@ const getLogger = () => {
|
|
|
36
39
|
async function retrievePackageVersionMetadata(project, options, connection) {
|
|
37
40
|
// Validate the destination path is suitable to extract package version metadata (must be new or empty)
|
|
38
41
|
const destinationFolder = options.destinationFolder ?? 'force-app';
|
|
39
|
-
if (
|
|
42
|
+
if (node_path_1.default.isAbsolute(destinationFolder)) {
|
|
40
43
|
throw messages.createError('sourcesDownloadDirectoryMustBeRelative');
|
|
41
44
|
}
|
|
42
|
-
const destinationPath =
|
|
43
|
-
if (!
|
|
44
|
-
|
|
45
|
+
const destinationPath = node_path_1.default.join(project.getPath(), destinationFolder);
|
|
46
|
+
if (!node_fs_1.default.existsSync(destinationPath)) {
|
|
47
|
+
node_fs_1.default.mkdirSync(destinationPath, { recursive: true });
|
|
45
48
|
}
|
|
46
49
|
if (!(0, packageUtils_1.isPackageDirectoryEffectivelyEmpty)(destinationPath)) {
|
|
47
50
|
throw messages.createError('sourcesDownloadDirectoryNotEmpty');
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Package1Version = void 0;
|
|
4
7
|
/*
|
|
@@ -7,7 +10,7 @@ exports.Package1Version = void 0;
|
|
|
7
10
|
* Licensed under the BSD 3-Clause license.
|
|
8
11
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
12
|
*/
|
|
10
|
-
const
|
|
13
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
11
14
|
const core_1 = require("@salesforce/core");
|
|
12
15
|
const kit_1 = require("@salesforce/kit");
|
|
13
16
|
const interfaces_1 = require("../interfaces");
|
|
@@ -125,7 +128,7 @@ class Package1Version {
|
|
|
125
128
|
const errors = pollingResult?.Errors?.errors;
|
|
126
129
|
if (errors?.length > 0) {
|
|
127
130
|
throw messages.createError('package1VersionCreateCommandUploadFailure', [
|
|
128
|
-
errors.map((e) => e.message).join(
|
|
131
|
+
errors.map((e) => e.message).join(node_os_1.default.EOL),
|
|
129
132
|
]);
|
|
130
133
|
}
|
|
131
134
|
else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Connection, ScratchOrgInfo, SfdcUrl, SfError, SfProject } from '@salesforce/core';
|
|
2
2
|
import { Many, Nullable } from '@salesforce/ts-types';
|
|
3
|
-
import { SaveError } from 'jsforce';
|
|
3
|
+
import type { SaveError } from '@jsforce/jsforce-node';
|
|
4
4
|
import { Duration } from '@salesforce/kit';
|
|
5
5
|
import { PackageDescriptorJson, PackageType, PackagingSObjects } from '../interfaces';
|
|
6
6
|
export declare const VERSION_NUMBER_SEP = ".";
|
|
@@ -1,4 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
29
|
exports.isPackageDirectoryEffectivelyEmpty = exports.replaceIfEmpty = exports.copyDescriptorProperties = exports.copyDir = exports.zipDir = exports.numberToDuration = exports.combineSaveErrors = exports.generatePackageAliasEntry = exports.getPackageVersionNumber = exports.queryWithInConditionChunking = exports.getPackageVersionStrings = exports.getContainerOptions = exports.escapeInstallationKey = exports.getPackageVersionId = exports.massageErrorMessage = exports.applyErrorAction = exports.validateIdNoThrow = exports.validateId = exports.uniqid = exports.BY_LABEL = exports.DEFAULT_PACKAGE_DIR = exports.POLL_INTERVAL_SECONDS = exports.INSTALL_URL_BASE = exports.VERSION_NUMBER_SEP = void 0;
|
|
4
30
|
/*
|
|
@@ -7,18 +33,17 @@ exports.isPackageDirectoryEffectivelyEmpty = exports.replaceIfEmpty = exports.co
|
|
|
7
33
|
* Licensed under the BSD 3-Clause license.
|
|
8
34
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
35
|
*/
|
|
10
|
-
const
|
|
11
|
-
const
|
|
36
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
37
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
38
|
const node_path_1 = require("node:path");
|
|
13
39
|
const node_stream_1 = require("node:stream");
|
|
14
|
-
const
|
|
15
|
-
const node_util_1 = require("node:util");
|
|
40
|
+
const node_util_1 = __importStar(require("node:util"));
|
|
16
41
|
const node_crypto_1 = require("node:crypto");
|
|
17
42
|
const core_1 = require("@salesforce/core");
|
|
18
43
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
19
44
|
const kit_1 = require("@salesforce/kit");
|
|
20
|
-
const
|
|
21
|
-
const
|
|
45
|
+
const globby_1 = __importDefault(require("globby"));
|
|
46
|
+
const jszip_1 = __importDefault(require("jszip"));
|
|
22
47
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
23
48
|
const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'pkg_utils');
|
|
24
49
|
exports.VERSION_NUMBER_SEP = '.';
|
|
@@ -71,7 +96,7 @@ function uniqid(options) {
|
|
|
71
96
|
return uniqueString;
|
|
72
97
|
}
|
|
73
98
|
return options.template.includes('%s')
|
|
74
|
-
?
|
|
99
|
+
? node_util_1.default.format(options.template, uniqueString)
|
|
75
100
|
: `${options.template}${uniqueString}`;
|
|
76
101
|
}
|
|
77
102
|
exports.uniqid = uniqid;
|
|
@@ -335,7 +360,7 @@ function combineSaveErrors(sObject, crudOperation, errors) {
|
|
|
335
360
|
const fieldsString = error.fields?.length ? `Fields: [${error.fields?.join(', ')}]` : '';
|
|
336
361
|
return `Error: ${error.errorCode} Message: ${error.message} ${fieldsString}`;
|
|
337
362
|
});
|
|
338
|
-
return messages.createError('errorDuringSObjectCRUDOperation', [crudOperation, sObject, errorMessages.join(
|
|
363
|
+
return messages.createError('errorDuringSObjectCRUDOperation', [crudOperation, sObject, errorMessages.join(node_os_1.default.EOL)]);
|
|
339
364
|
}
|
|
340
365
|
exports.combineSaveErrors = combineSaveErrors;
|
|
341
366
|
/**
|
|
@@ -363,11 +388,11 @@ const pipeline = (0, node_util_1.promisify)(node_stream_1.pipeline);
|
|
|
363
388
|
async function zipDir(dir, zipfile) {
|
|
364
389
|
const logger = core_1.Logger.childFromRoot('srcDevUtils#zipDir');
|
|
365
390
|
const timer = process.hrtime();
|
|
366
|
-
const globbyResult = await
|
|
367
|
-
const zip = new
|
|
391
|
+
const globbyResult = await (0, globby_1.default)('**/*', { expandDirectories: true, cwd: dir });
|
|
392
|
+
const zip = new jszip_1.default();
|
|
368
393
|
// add files tp zip
|
|
369
394
|
for (const file of globbyResult) {
|
|
370
|
-
zip.file(file,
|
|
395
|
+
zip.file(file, node_fs_1.default.readFileSync((0, node_path_1.join)(dir, file)));
|
|
371
396
|
}
|
|
372
397
|
// write zip to file
|
|
373
398
|
const zipStream = zip.generateNodeStream({
|
|
@@ -378,8 +403,8 @@ async function zipDir(dir, zipfile) {
|
|
|
378
403
|
level: 3,
|
|
379
404
|
},
|
|
380
405
|
});
|
|
381
|
-
await pipeline(zipStream,
|
|
382
|
-
const stat =
|
|
406
|
+
await pipeline(zipStream, node_fs_1.default.createWriteStream(zipfile));
|
|
407
|
+
const stat = node_fs_1.default.statSync(zipfile);
|
|
383
408
|
logger.debug(`${stat.size} bytes written to ${zipfile} in ${getElapsedTime(timer)}ms`);
|
|
384
409
|
return;
|
|
385
410
|
}
|
|
@@ -389,12 +414,12 @@ function getElapsedTime(timer) {
|
|
|
389
414
|
return (elapsed[0] * 1000 + elapsed[1] / 1_000_000).toFixed(3);
|
|
390
415
|
}
|
|
391
416
|
function copyDir(src, dest) {
|
|
392
|
-
|
|
393
|
-
const entries =
|
|
417
|
+
node_fs_1.default.mkdirSync(dest, { recursive: true });
|
|
418
|
+
const entries = node_fs_1.default.readdirSync(src, { withFileTypes: true });
|
|
394
419
|
entries.map((entry) => {
|
|
395
420
|
const srcPath = (0, node_path_1.join)(src, entry.name);
|
|
396
421
|
const destPath = (0, node_path_1.join)(dest, entry.name);
|
|
397
|
-
return entry.isDirectory() ? copyDir(srcPath, destPath) :
|
|
422
|
+
return entry.isDirectory() ? copyDir(srcPath, destPath) : node_fs_1.default.copyFileSync(srcPath, destPath);
|
|
398
423
|
});
|
|
399
424
|
}
|
|
400
425
|
exports.copyDir = copyDir;
|
|
@@ -429,10 +454,10 @@ exports.replaceIfEmpty = replaceIfEmpty;
|
|
|
429
454
|
* directories containing only an .eslintrc.json file.
|
|
430
455
|
*/
|
|
431
456
|
function isPackageDirectoryEffectivelyEmpty(directory) {
|
|
432
|
-
if (!
|
|
457
|
+
if (!node_fs_1.default.lstatSync(directory).isDirectory()) {
|
|
433
458
|
return false;
|
|
434
459
|
}
|
|
435
|
-
const entries =
|
|
460
|
+
const entries = node_fs_1.default.readdirSync(directory, { withFileTypes: true });
|
|
436
461
|
return entries.every((entry) => entry.isDirectory()
|
|
437
462
|
? isPackageDirectoryEffectivelyEmpty((0, node_path_1.join)(directory, entry.name))
|
|
438
463
|
: entry.name === '.eslintrc.json');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/packaging",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Packaging library for the Salesforce packaging platform",
|
|
5
5
|
"main": "lib/exported",
|
|
6
6
|
"types": "lib/exported.d.ts",
|
|
@@ -41,27 +41,27 @@
|
|
|
41
41
|
"!lib/**/*.map"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
+
"@jsforce/jsforce-node": "^3.1.0",
|
|
44
45
|
"@oclif/core": "^3",
|
|
45
|
-
"@salesforce/core": "^
|
|
46
|
+
"@salesforce/core": "^7.2.0",
|
|
46
47
|
"@salesforce/kit": "^3.1.0",
|
|
47
48
|
"@salesforce/schemas": "^1.7.0",
|
|
48
|
-
"@salesforce/source-deploy-retrieve": "^
|
|
49
|
+
"@salesforce/source-deploy-retrieve": "^11.0.0",
|
|
49
50
|
"@salesforce/ts-types": "^2.0.9",
|
|
50
51
|
"fast-xml-parser": "^4.3.6",
|
|
51
52
|
"globby": "^11",
|
|
52
53
|
"graphology": "^0.25.4",
|
|
53
54
|
"graphology-traversal": "^0.3.1",
|
|
54
55
|
"graphology-types": "^0.24.7",
|
|
55
|
-
"jsforce": "^2.0.0-beta.29",
|
|
56
56
|
"jszip": "^3.10.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@salesforce/cli-plugins-testkit": "^
|
|
59
|
+
"@salesforce/cli-plugins-testkit": "^5.2.0",
|
|
60
60
|
"@salesforce/dev-scripts": "^8.4.2",
|
|
61
61
|
"@salesforce/ts-sinon": "^1.4.19",
|
|
62
62
|
"@types/globby": "^9.1.0",
|
|
63
63
|
"@types/jszip": "^3.4.1",
|
|
64
|
-
"eslint-plugin-sf-plugin": "^1.
|
|
64
|
+
"eslint-plugin-sf-plugin": "^1.18.0",
|
|
65
65
|
"shelljs": "0.8.5",
|
|
66
66
|
"ts-node": "^10.9.2",
|
|
67
67
|
"typescript": "^5.4.3"
|