@salesforce/packaging 0.0.48 → 0.1.0
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 -0
- package/lib/package/packageConvert.d.ts +2 -1
- package/lib/package/packageConvert.js +44 -2
- package/lib/utils/packageUtils.d.ts +1 -0
- package/lib/utils/packageUtils.js +6 -1
- package/messages/package_version_create.md +4 -0
- package/package.json +2 -2
|
@@ -12,5 +12,6 @@ export declare function convertPackage(pkg: string, connection: Connection, opti
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function createPackageVersionCreateRequest(context: {
|
|
14
14
|
installationkey?: string;
|
|
15
|
+
definitionfile?: string;
|
|
15
16
|
buildinstance?: string;
|
|
16
|
-
}, packageId: string): Promise<PackagingSObjects.Package2VersionCreateRequest>;
|
|
17
|
+
}, packageId: string, apiVersion: string): Promise<PackagingSObjects.Package2VersionCreateRequest>;
|
|
@@ -12,6 +12,7 @@ const os = require("os");
|
|
|
12
12
|
const fs = require("fs");
|
|
13
13
|
const core_1 = require("@salesforce/core");
|
|
14
14
|
const kit_1 = require("@salesforce/kit");
|
|
15
|
+
const scratchOrgSettingsGenerator_1 = require("@salesforce/core/lib/org/scratchOrgSettingsGenerator");
|
|
15
16
|
const uniqid_1 = require("../utils/uniqid");
|
|
16
17
|
const pkgUtils = require("../utils/packageUtils");
|
|
17
18
|
const interfaces_1 = require("../interfaces");
|
|
@@ -66,7 +67,12 @@ async function convertPackage(pkg, connection, options, project) {
|
|
|
66
67
|
maxRetries = (60 / pkgUtils.POLL_INTERVAL_SECONDS) * options.wait.minutes;
|
|
67
68
|
}
|
|
68
69
|
const packageId = await findOrCreatePackage2(pkg, connection);
|
|
69
|
-
const
|
|
70
|
+
const apiVersion = pkgUtils.getSourceApiVersion(project);
|
|
71
|
+
const request = await createPackageVersionCreateRequest({
|
|
72
|
+
installationkey: options.installationKey,
|
|
73
|
+
definitionfile: options.definitionfile,
|
|
74
|
+
buildinstance: options.buildInstance,
|
|
75
|
+
}, packageId, apiVersion);
|
|
70
76
|
// TODO: a lot of this is duplicated from PC, PVC, and PVCR.
|
|
71
77
|
const createResult = await connection.tooling.create('Package2VersionCreateRequest', request);
|
|
72
78
|
if (!createResult.success) {
|
|
@@ -94,16 +100,52 @@ exports.convertPackage = convertPackage;
|
|
|
94
100
|
* @returns {{Package2Id: string, Package2VersionMetadata: *, Tag: *, Branch: number}}
|
|
95
101
|
* @private
|
|
96
102
|
*/
|
|
97
|
-
async function createPackageVersionCreateRequest(context, packageId) {
|
|
103
|
+
async function createPackageVersionCreateRequest(context, packageId, apiVersion) {
|
|
98
104
|
const uniqueId = (0, uniqid_1.uniqid)({ template: `${packageId}-%s` });
|
|
99
105
|
const packageVersTmpRoot = path.join(os.tmpdir(), uniqueId);
|
|
106
|
+
const packageVersMetadataFolder = path.join(packageVersTmpRoot, 'md-files');
|
|
100
107
|
const packageVersBlobDirectory = path.join(packageVersTmpRoot, 'package-version-info');
|
|
108
|
+
const settingsZipFile = path.join(packageVersBlobDirectory, 'settings.zip');
|
|
109
|
+
const metadataZipFile = path.join(packageVersBlobDirectory, 'package.zip');
|
|
101
110
|
const packageVersBlobZipFile = path.join(packageVersTmpRoot, constants_1.consts.PACKAGE_VERSION_INFO_FILE_ZIP);
|
|
102
111
|
const packageDescriptorJson = {
|
|
103
112
|
id: packageId,
|
|
104
113
|
};
|
|
114
|
+
const settingsGenerator = new scratchOrgSettingsGenerator_1.default({ asDirectory: true });
|
|
115
|
+
const definitionFile = context.definitionfile;
|
|
116
|
+
let definitionFileJson;
|
|
117
|
+
if (definitionFile) {
|
|
118
|
+
try {
|
|
119
|
+
const definitionFilePayload = await fs.promises.readFile(definitionFile, 'utf8');
|
|
120
|
+
definitionFileJson = JSON.parse(definitionFilePayload);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
throw messages.createError('errorReadingDefintionFile', [err]);
|
|
124
|
+
}
|
|
125
|
+
// Load any settings from the definition
|
|
126
|
+
await settingsGenerator.extract(definitionFileJson);
|
|
127
|
+
if (settingsGenerator.hasSettings() && definitionFileJson.orgPreferences) {
|
|
128
|
+
// this is not allowed, exit with an error
|
|
129
|
+
throw messages.createError('signupDuplicateSettingsSpecified');
|
|
130
|
+
}
|
|
131
|
+
['country', 'edition', 'language', 'features', 'orgPreferences', 'snapshot', 'release', 'sourceOrg'].forEach((prop) => {
|
|
132
|
+
const propValue = definitionFileJson[prop];
|
|
133
|
+
if (propValue) {
|
|
134
|
+
packageDescriptorJson[prop] = propValue;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
105
138
|
await fs.promises.mkdir(packageVersTmpRoot, { recursive: true });
|
|
106
139
|
await fs.promises.mkdir(packageVersBlobDirectory, { recursive: true });
|
|
140
|
+
await fs.promises.mkdir(packageVersMetadataFolder, { recursive: true });
|
|
141
|
+
await settingsGenerator.createDeploy();
|
|
142
|
+
await settingsGenerator.createDeployPackageContents(apiVersion);
|
|
143
|
+
await srcDevUtil.zipDir(`${settingsGenerator.getDestinationPath()}${path.sep}${settingsGenerator.getShapeDirName()}`, settingsZipFile);
|
|
144
|
+
const shapeDirectory = `${settingsGenerator.getDestinationPath()}${path.sep}${settingsGenerator.getShapeDirName()}`;
|
|
145
|
+
const currentPackageXml = await fs.promises.readFile(path.join(shapeDirectory, 'package.xml'), 'utf8');
|
|
146
|
+
await fs.promises.writeFile(path.join(packageVersMetadataFolder, 'package.xml'), currentPackageXml, 'utf-8');
|
|
147
|
+
// Zip the packageVersMetadataFolder folder and put the zip in {packageVersBlobDirectory}/package.zip
|
|
148
|
+
await srcDevUtil.zipDir(packageVersMetadataFolder, metadataZipFile);
|
|
107
149
|
await fs.promises.writeFile(path.join(packageVersBlobDirectory, constants_1.consts.PACKAGE2_DESCRIPTOR_FILE), JSON.stringify(packageDescriptorJson, undefined, 2));
|
|
108
150
|
// Zip the Version Info and package.zip files into another zip
|
|
109
151
|
await srcDevUtil.zipDir(packageVersBlobDirectory, packageVersBlobZipFile);
|
|
@@ -23,6 +23,7 @@ export declare const DEFAULT_PACKAGE_DIR: {
|
|
|
23
23
|
export declare const BY_PREFIX: IdRegistry;
|
|
24
24
|
export declare const BY_LABEL: IdRegistry;
|
|
25
25
|
export declare function validateId(idObj: Many<IdRegistryValue>, value: string): void;
|
|
26
|
+
export declare function getSourceApiVersion(project: SfProject): string;
|
|
26
27
|
export declare function validateIdNoThrow(idObj: Many<IdRegistryValue>, value: any): IdRegistryValue | false;
|
|
27
28
|
export declare function applyErrorAction(err: Error): Error;
|
|
28
29
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.combineSaveErrors = exports.formatDate = exports.generatePackageAliasEntry = exports.getPackageAliasesFromId = exports.getPackageIdFromAlias = exports.getConfigPackageDirectory = exports.getPackageVersionNumber = exports.concatVersion = exports.getInClauseItemsCount = exports.queryWithInConditionChunking = exports.getPackageVersionStrings = exports.getHasMetadataRemoved = exports.getContainerOptions = exports.getPackageType = exports.escapeInstallationKey = exports.getPackageVersionId = exports.applyErrorAction = exports.validateIdNoThrow = exports.validateId = exports.BY_LABEL = exports.BY_PREFIX = exports.DEFAULT_PACKAGE_DIR = exports.POLL_INTERVAL_SECONDS = exports.SOQL_WHERE_CLAUSE_MAX_LENGTH = exports.INSTALL_URL_BASE = exports.VERSION_NUMBER_SEP = void 0;
|
|
3
|
+
exports.combineSaveErrors = exports.formatDate = exports.generatePackageAliasEntry = exports.getPackageAliasesFromId = exports.getPackageIdFromAlias = exports.getConfigPackageDirectory = exports.getPackageVersionNumber = exports.concatVersion = exports.getInClauseItemsCount = exports.queryWithInConditionChunking = exports.getPackageVersionStrings = exports.getHasMetadataRemoved = exports.getContainerOptions = exports.getPackageType = exports.escapeInstallationKey = exports.getPackageVersionId = exports.applyErrorAction = exports.validateIdNoThrow = exports.getSourceApiVersion = exports.validateId = exports.BY_LABEL = exports.BY_PREFIX = exports.DEFAULT_PACKAGE_DIR = exports.POLL_INTERVAL_SECONDS = exports.SOQL_WHERE_CLAUSE_MAX_LENGTH = exports.INSTALL_URL_BASE = exports.VERSION_NUMBER_SEP = void 0;
|
|
4
4
|
/*
|
|
5
5
|
* Copyright (c) 2022, salesforce.com, inc.
|
|
6
6
|
* All rights reserved.
|
|
@@ -58,6 +58,11 @@ function validateId(idObj, value) {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
exports.validateId = validateId;
|
|
61
|
+
function getSourceApiVersion(project) {
|
|
62
|
+
const apiVersion = project.getSfProjectJson().get('sourceApiVersion');
|
|
63
|
+
return apiVersion;
|
|
64
|
+
}
|
|
65
|
+
exports.getSourceApiVersion = getSourceApiVersion;
|
|
61
66
|
function validateIdNoThrow(idObj, value) {
|
|
62
67
|
if (!value || (value.length !== 15 && value.length !== 18)) {
|
|
63
68
|
return false;
|
|
@@ -38,6 +38,10 @@ The temp files are located at: %s.
|
|
|
38
38
|
|
|
39
39
|
You cannot use 'settings' and 'orgPreferences' in your scratch definition file, please specify one or the other.
|
|
40
40
|
|
|
41
|
+
# errorReadingDefintionFile
|
|
42
|
+
|
|
43
|
+
There was an error while reading or parsing the provided scratch definition file: %s
|
|
44
|
+
|
|
41
45
|
# unpackagedMDDirectoryDoesNotExist
|
|
42
46
|
|
|
43
47
|
Un-packaged metadata directory %s was specified but does not exist.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/packaging",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "packing libraries to Salesforce packaging platform",
|
|
5
5
|
"main": "lib/exported",
|
|
6
6
|
"types": "lib/exported.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@salesforce/schemas": "^1.2.0",
|
|
42
42
|
"@salesforce/source-deploy-retrieve": "^6.8.2",
|
|
43
43
|
"@salesforce/ts-types": "^1.5.20",
|
|
44
|
-
"@xmldom/xmldom": "^0.8.
|
|
44
|
+
"@xmldom/xmldom": "^0.8.3",
|
|
45
45
|
"debug": "^4.3.4",
|
|
46
46
|
"globby": "^11",
|
|
47
47
|
"graphology": "^0.25.0",
|