@salesforce/packaging 0.0.49 → 0.1.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.
@@ -211,6 +211,7 @@ export declare type PackageVersionOptions = {
211
211
  };
212
212
  export declare type ConvertPackageOptions = {
213
213
  installationKey: string;
214
+ definitionfile: string;
214
215
  installationKeyBypass: boolean;
215
216
  wait: Duration;
216
217
  buildInstance: string;
@@ -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 request = await createPackageVersionCreateRequest({ installationkey: options.installationKey, buildinstance: options.buildInstance }, packageId);
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.49",
3
+ "version": "0.1.1",
4
4
  "description": "packing libraries to Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",
@@ -35,12 +35,12 @@
35
35
  "!lib/**/*.map"
36
36
  ],
37
37
  "dependencies": {
38
- "@oclif/core": "^1.16.5",
39
- "@salesforce/core": "^3.30.8",
40
- "@salesforce/kit": "^1.6.1",
41
- "@salesforce/schemas": "^1.2.0",
42
- "@salesforce/source-deploy-retrieve": "^6.8.2",
43
- "@salesforce/ts-types": "^1.5.20",
38
+ "@oclif/core": "^1.18.0",
39
+ "@salesforce/core": "^3.31.10",
40
+ "@salesforce/kit": "^1.7.0",
41
+ "@salesforce/schemas": "^1.1.3",
42
+ "@salesforce/source-deploy-retrieve": "^6.9.1",
43
+ "@salesforce/ts-types": "^1.5.21",
44
44
  "@xmldom/xmldom": "^0.8.3",
45
45
  "debug": "^4.3.4",
46
46
  "globby": "^11",
@@ -55,8 +55,8 @@
55
55
  "xml2js": "^0.4.23"
56
56
  },
57
57
  "devDependencies": {
58
- "@salesforce/cli-plugins-testkit": "^3.2.0",
59
- "@salesforce/dev-config": "^3.0.1",
58
+ "@salesforce/cli-plugins-testkit": "^3.2.2",
59
+ "@salesforce/dev-config": "^3.1.0",
60
60
  "@salesforce/dev-scripts": "^2.0.4",
61
61
  "@salesforce/prettier-config": "^0.0.2",
62
62
  "@salesforce/ts-sinon": "^1.4.0",