@salesforce/packaging 0.0.6 → 0.0.9

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/interfaces/packagingInterfacesAndType.d.ts +21 -8
  3. package/lib/interfaces/packagingSObjects.d.ts +11 -0
  4. package/lib/package/index.d.ts +1 -1
  5. package/lib/package/index.js +1 -1
  6. package/lib/package/packageConvert.d.ts +2 -2
  7. package/lib/package/packageConvert.js +8 -2
  8. package/lib/package/packageCreate.d.ts +1 -1
  9. package/lib/package/packageCreate.js +7 -8
  10. package/lib/package/{profileApi.d.ts → packageProfileApi.d.ts} +9 -5
  11. package/lib/package/{profileApi.js → packageProfileApi.js} +15 -12
  12. package/lib/package/packageVersion.d.ts +20 -3
  13. package/lib/package/packageVersion.js +49 -3
  14. package/lib/package/packageVersionCreate.d.ts +4 -6
  15. package/lib/package/packageVersionCreate.js +69 -94
  16. package/lib/package/packageVersionCreateRequest.d.ts +3 -3
  17. package/lib/package/packageVersionCreateRequest.js +7 -7
  18. package/lib/package/packageVersionList.js +1 -1
  19. package/lib/package1/index.d.ts +2 -0
  20. package/lib/package1/index.js +2 -0
  21. package/lib/package1/package1VersionCreateGet.d.ts +3 -0
  22. package/lib/package1/package1VersionCreateGet.js +16 -0
  23. package/lib/package1/packageDisplay.d.ts +9 -0
  24. package/lib/package1/packageDisplay.js +29 -0
  25. package/lib/utils/packageUtils.d.ts +10 -10
  26. package/lib/utils/packageUtils.js +39 -42
  27. package/lib/utils/srcDevUtils.js +23 -19
  28. package/lib/utils/versionNumber.js +6 -6
  29. package/messages/messages.md +32 -0
  30. package/package.json +8 -14
  31. package/lib/package/packageVersion2GP.d.ts +0 -17
  32. package/lib/package/packageVersion2GP.js +0 -46
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2020, salesforce.com, inc.
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
4
  * All rights reserved.
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
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.PackageVersionCreate = void 0;
10
- const util = require("util");
11
10
  const path = require("path");
12
11
  const os = require("os");
13
12
  const fs = require("fs");
@@ -21,7 +20,7 @@ const pkgUtils = require("../utils/packageUtils");
21
20
  const constants_1 = require("../constants");
22
21
  const utils_1 = require("../utils");
23
22
  const versionNumber_1 = require("../utils/versionNumber");
24
- const profileApi_1 = require("./profileApi");
23
+ const packageProfileApi_1 = require("./packageProfileApi");
25
24
  const packageVersionCreateRequest_1 = require("./packageVersionCreateRequest");
26
25
  core_1.Messages.importMessagesDirectory(__dirname);
27
26
  const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'messages');
@@ -31,12 +30,11 @@ const POLL_INTERVAL_WITHOUT_VALIDATION_SECONDS = 5;
31
30
  class PackageVersionCreate {
32
31
  constructor(options) {
33
32
  this.options = options;
34
- this.packageDirs = [];
35
33
  this.connection = this.options.connection;
36
34
  this.project = this.options.project;
37
35
  }
38
- createPackageVersion(options) {
39
- return this.packageVersionCreate(options).catch((err) => {
36
+ createPackageVersion() {
37
+ return this.packageVersionCreate(this.options).catch((err) => {
40
38
  // TODO: until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
41
39
  err = pkgUtils.massageErrorMessage(err);
42
40
  throw pkgUtils.applyErrorAction(err);
@@ -48,32 +46,15 @@ class PackageVersionCreate {
48
46
  async listRequestById(id, connection) {
49
47
  return (0, packageVersionCreateRequest_1.byId)(id, connection);
50
48
  }
51
- rejectWithInstallKeyError() {
52
- // This command also requires either the installationkey flag or installationkeybypass flag
53
- const errorString = messages.getMessage('errorMissingFlagsInstallationKey', [
54
- '--installationkey',
55
- '--installationkeybypass',
56
- ]);
57
- const error = new Error(errorString);
58
- error['name'] = 'requiredFlagMissing';
59
- return Promise.reject(error);
60
- }
61
49
  // convert source to mdapi format and copy to tmp dir packaging up
62
50
  async generateMDFolderForArtifact(options) {
51
+ const sourcepath = options.sourcePaths ?? [options.sourceDir];
63
52
  const componentSet = await source_deploy_retrieve_1.ComponentSetBuilder.build({
64
53
  sourceapiversion: this.project.getSfProjectJson().get('sourceApiVersion'),
65
- sourcepath: options.sourcePaths,
66
- manifest: {
67
- manifestPath: options.manifest,
68
- directoryPaths: this.project.getPackageDirectories().map((dir) => dir.path),
69
- },
70
- metadata: {
71
- metadataEntries: options.metadataPaths,
72
- directoryPaths: this.project.getPackageDirectories().map((dir) => dir.path),
73
- },
54
+ sourcepath,
74
55
  });
75
56
  const packageName = options.packageName;
76
- const outputDirectory = path.resolve(options.outputDir);
57
+ const outputDirectory = path.resolve(options.deploydir);
77
58
  const converter = new source_deploy_retrieve_1.MetadataConverter();
78
59
  const convertResult = await converter.convert(componentSet, 'metadata', {
79
60
  type: 'directory',
@@ -161,7 +142,12 @@ class PackageVersionCreate {
161
142
  const pkgVerQueryResult = await this.connection.tooling.query(query);
162
143
  const subRecords = pkgVerQueryResult.records;
163
144
  if (!subRecords || subRecords.length !== 1) {
164
- throw new Error(`No version number was found in Dev Hub for package id ${dependency.packageId} and branch ${branchString} and version number ${versionNumber.toString()} that resolved to build number ${resolvedBuildNumber}`);
145
+ throw messages.createError('versionNumberNotFoundInDevHub', [
146
+ dependency.packageId,
147
+ branchString,
148
+ versionNumber.toString(),
149
+ resolvedBuildNumber,
150
+ ]);
165
151
  }
166
152
  dependency.subscriberPackageVersionId = pkgVerQueryResult.records[0].SubscriberPackageVersionId;
167
153
  // warn user of the resolved build number when LATEST and RELEASED keywords are used
@@ -210,10 +196,10 @@ class PackageVersionCreate {
210
196
  const records = results.records;
211
197
  if (!records || records.length === 0 || records[0].expr0 == null) {
212
198
  if (versionNumber.build === versionNumber_1.BuildNumberToken.RELEASED_BUILD_NUMBER_TOKEN) {
213
- throw new Error(`No released version was found in Dev Hub for package id ${packageId} and version number ${versionNumber.toString()}`);
199
+ throw messages.createError('noReleaseVersionFound', [packageId, versionNumber.toString()]);
214
200
  }
215
201
  else {
216
- throw new Error(`No version number was found in Dev Hub for package id ${packageId} and branch ${branch} and version number ${versionNumber.toString()}`);
202
+ throw messages.createError('noReleaseVersionFoundForBranch', [packageId, branch, versionNumber.toString()]);
217
203
  }
218
204
  }
219
205
  return `${results.records[0].expr0}`;
@@ -228,25 +214,25 @@ class PackageVersionCreate {
228
214
  InstallKey: options.installationkey,
229
215
  Instance: options.buildinstance,
230
216
  SourceOrg: options.sourceorg,
231
- CalculateCodeCoverage: options.codecoverage,
232
- SkipValidation: options.skipvalidation,
217
+ CalculateCodeCoverage: options.codecoverage || false,
218
+ SkipValidation: options.skipvalidation || false,
233
219
  };
234
220
  if (preserveFiles) {
235
221
  logger.info(messages.getMessage('tempFileLocation', [packageVersTmpRoot]));
236
222
  return requestObject;
237
223
  }
238
224
  else {
239
- return fs.promises.unlink(packageVersTmpRoot).then(() => requestObject);
225
+ return fs.promises.rm(packageVersTmpRoot, { recursive: true, force: true }).then(() => requestObject);
240
226
  }
241
227
  }
242
- getPackageDescriptorJsonFromPackageId(packageId, flags) {
243
- const artDir = flags.path;
244
- const packageDescriptorJson = this.packageDirs.find((packageDir) => {
228
+ getPackageDescriptorJsonFromPackageId(packageId, options) {
229
+ const artDir = options.path;
230
+ const packageDescriptorJson = this.project.getPackageDirectories().find((packageDir) => {
245
231
  const packageDirPackageId = pkgUtils.getPackageIdFromAlias(packageDir.package, this.project);
246
232
  return !!packageDirPackageId && packageDirPackageId === packageId ? packageDir : null;
247
233
  });
248
234
  if (!packageDescriptorJson) {
249
- throw new Error(`${constants_1.consts.WORKSPACE_CONFIG_FILENAME} does not contain a packaging directory for ${artDir}`);
235
+ throw messages.createError('packagingDirNotFoundInConfigFile', [constants_1.consts.WORKSPACE_CONFIG_FILENAME, artDir]);
250
236
  }
251
237
  return packageDescriptorJson;
252
238
  }
@@ -261,7 +247,7 @@ class PackageVersionCreate {
261
247
  */
262
248
  async createPackageVersionCreateRequestFromOptions(options, packageId, versionNumberString) {
263
249
  const artDir = options.path;
264
- const preserveFiles = !util.isNullOrUndefined(options.preserve || process.env.SFDX_PACKAGE2_VERSION_CREATE_PRESERVE);
250
+ const preserveFiles = !!(options.preserve || process.env.SFDX_PACKAGE2_VERSION_CREATE_PRESERVE);
265
251
  const uniqueHash = (0, testSetup_1.uniqid)({ template: `${packageId}-%s` });
266
252
  const packageVersTmpRoot = path.join(os.tmpdir(), `${uniqueHash}`);
267
253
  const packageVersMetadataFolder = path.join(packageVersTmpRoot, 'md-files');
@@ -275,11 +261,12 @@ class PackageVersionCreate {
275
261
  const sourceBaseDir = path.join(this.project.getPath(), artDir);
276
262
  const mdOptions = {
277
263
  deploydir: packageVersMetadataFolder,
278
- sourcedir: sourceBaseDir,
264
+ sourceDir: sourceBaseDir,
279
265
  };
280
266
  // Stores any additional client side info that might be needed later on in the process
281
267
  const clientSideInfo = new Map();
282
- const settingsGenerator = new scratchOrgSettingsGenerator_1.default();
268
+ await fs.promises.mkdir(packageVersBlobDirectory, { recursive: true });
269
+ const settingsGenerator = new scratchOrgSettingsGenerator_1.default({ asDirectory: true });
283
270
  // Copy all of the metadata from the workspace to a tmp folder
284
271
  await this.generateMDFolderForArtifact(mdOptions);
285
272
  const packageDescriptorJson = this.getPackageDescriptorJsonFromPackageId(packageId, options);
@@ -320,15 +307,14 @@ class PackageVersionCreate {
320
307
  }
321
308
  });
322
309
  }
323
- // @ts-ignore
324
- const [hasUnpackagedMetadata, unpackagedPromise] = await this.resolveUnpackagedMetadata(packageDescriptorJson, unpackagedMetadataFolder, clientSideInfo, options.codecoverage);
310
+ const hasUnpackagedMetadata = await this.resolveUnpackagedMetadata(packageDescriptorJson, unpackagedMetadataFolder, clientSideInfo, options.codecoverage);
325
311
  this.resolveApexTestPermissions(packageDescriptorJson, options);
326
312
  // All dependencies for the packaging dir should be resolved to an 04t id to be passed to the server.
327
313
  // (see _retrieveSubscriberPackageVersionId for details)
328
314
  const dependencies = packageDescriptorJson.dependencies;
329
315
  // branch can be set via flag or descriptor; flag takes precedence
330
316
  options.branch = options.branch ? options.branch : packageDescriptorJson.branch;
331
- const resultValues = await Promise.all(dependencies
317
+ const resultValues = await Promise.all(!dependencies
332
318
  ? []
333
319
  : dependencies.map((dependency) => this.retrieveSubscriberPackageVersionId(dependency, options.branch)));
334
320
  const ancestorId = await pkgUtils.getAncestorId(packageDescriptorJson, this.connection, this.project, versionNumberString, options.skipancestorcheck);
@@ -341,19 +327,19 @@ class PackageVersionCreate {
341
327
  this.setPackageDescriptorJsonValues(packageDescriptorJson, options);
342
328
  await fs.promises.mkdir(packageVersTmpRoot, { recursive: true });
343
329
  await fs.promises.mkdir(packageVersBlobDirectory, { recursive: true });
344
- if (Object.prototype.hasOwnProperty.call(packageDescriptorJson, 'ancestorVersion')) {
330
+ if (Reflect.has(packageDescriptorJson, 'ancestorVersion')) {
345
331
  delete packageDescriptorJson.ancestorVersion;
346
332
  }
347
333
  packageDescriptorJson.ancestorId = ancestorId;
348
334
  await fs.promises.writeFile(path.join(packageVersBlobDirectory, DESCRIPTOR_FILE),
349
335
  // TODO: need to make sure packageDescriptorJson contains the right values for the descriptor
350
- JSON.stringify(packageDescriptorJson, undefined, 2), 'utf-8');
336
+ JSON.stringify(packageDescriptorJson), 'utf-8');
351
337
  // As part of the source convert process, the package.xml has been written into the tmp metadata directory.
352
338
  // The package.xml may need to be manipulated due to processing profiles in the workspace or additional
353
339
  // metadata exclusions. If necessary, read the existing package.xml and then re-write it.
354
340
  const currentPackageXml = await fs.promises.readFile(path.join(packageVersMetadataFolder, 'package.xml'), 'utf8');
355
341
  // convert to json
356
- const packageJson = xml2js.parseStringAsync(currentPackageXml);
342
+ const packageJson = await xml2js.parseStringPromise(currentPackageXml);
357
343
  fs.mkdirSync(packageVersMetadataFolder, { recursive: true });
358
344
  fs.mkdirSync(packageVersProfileFolder, { recursive: true });
359
345
  // Apply any necessary exclusions to typesArr.
@@ -396,7 +382,7 @@ class PackageVersionCreate {
396
382
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
397
383
  await fs.promises.writeFile(path.join(packageVersMetadataFolder, 'package.xml'), xml, 'utf-8');
398
384
  // Zip the packageVersMetadataFolder folder and put the zip in {packageVersBlobDirectory}/package.zip
399
- (0, utils_1.zipDir)(packageVersMetadataFolder, metadataZipFile);
385
+ await (0, utils_1.zipDir)(packageVersMetadataFolder, metadataZipFile);
400
386
  if (hasUnpackagedMetadata) {
401
387
  // Zip the unpackagedMetadataFolder folder and put the zip in {packageVersBlobDirectory}/{unpackagedMetadataZipFile}
402
388
  await (0, utils_1.zipDir)(unpackagedMetadataFolder, unpackagedMetadataZipFile);
@@ -404,22 +390,11 @@ class PackageVersionCreate {
404
390
  // Zip up the expanded settings (if present)
405
391
  if (settingsGenerator.hasSettings()) {
406
392
  await settingsGenerator.createDeploy();
407
- const settingsRoot = settingsGenerator.getShapeDirName();
408
- // The SettingsGenerator now generates md files in source format, not mdapi format,
409
- // so we need to convert to mdapi format here.
410
- const compSet = source_deploy_retrieve_1.ComponentSet.fromSource(settingsRoot);
411
- compSet.apiVersion = this.apiVersionFromPackageXml;
412
- compSet.sourceApiVersion = this.apiVersionFromPackageXml;
413
- const mdConverter = new source_deploy_retrieve_1.MetadataConverter();
414
- const convertResult = await mdConverter.convert(compSet, 'metadata', {
415
- type: 'directory',
416
- outputDirectory: path.join(settingsRoot, 'pkgMdSettings'),
417
- genUniqueDir: false,
418
- });
419
- (0, utils_1.zipDir)(convertResult.packagePath, settingsZipFile);
393
+ await settingsGenerator.createDeployPackageContents(this.apiVersionFromPackageXml);
394
+ await (0, utils_1.zipDir)(`${settingsGenerator.getDestinationPath()}${path.sep}${settingsGenerator.getShapeDirName()}`, settingsZipFile);
420
395
  }
421
396
  // Zip the Version Info and package.zip files into another zip
422
- (0, utils_1.zipDir)(packageVersBlobDirectory, packageVersBlobZipFile);
397
+ await (0, utils_1.zipDir)(packageVersBlobDirectory, packageVersBlobZipFile);
423
398
  return this.createRequestObject(packageId, options, preserveFiles, packageVersTmpRoot, packageVersBlobZipFile);
424
399
  }
425
400
  resolveApexTestPermissions(packageDescriptorJson, options) {
@@ -445,7 +420,6 @@ class PackageVersionCreate {
445
420
  delete packageDescriptorJson.apexTestAccess;
446
421
  }
447
422
  async resolveUnpackagedMetadata(packageDescriptorJson, unpackagedMetadataFolder, clientSideInfo, codeCoverage) {
448
- let unpackagedPromise = null;
449
423
  let hasUnpackagedMetadata = false;
450
424
  // Add the Unpackaged Metadata, if any, to the output directory, only when code coverage is specified
451
425
  if (codeCoverage && packageDescriptorJson.unpackagedMetadata && packageDescriptorJson.unpackagedMetadata.path) {
@@ -455,17 +429,19 @@ class PackageVersionCreate {
455
429
  fs.statSync(unpackagedPath);
456
430
  }
457
431
  catch (err) {
458
- throw new Error(`Unpackaged metadata directory '${packageDescriptorJson.unpackagedMetadata.path}' was specified but does not exist`);
432
+ throw messages.createError('unpackagedMDDirectoryDoesNotExist', [
433
+ packageDescriptorJson.unpackagedMetadata.path,
434
+ ]);
459
435
  }
460
436
  fs.mkdirSync(unpackagedMetadataFolder, { recursive: true });
461
- unpackagedPromise = this.generateMDFolderForArtifact({
437
+ await this.generateMDFolderForArtifact({
462
438
  deploydir: unpackagedMetadataFolder,
463
439
  sourceDir: unpackagedPath,
464
440
  });
465
441
  // Set which package is the "unpackaged" package
466
442
  clientSideInfo.set('UnpackagedMetadataPath', packageDescriptorJson.unpackagedMetadata.path);
467
443
  }
468
- return [hasUnpackagedMetadata, unpackagedPromise];
444
+ return hasUnpackagedMetadata;
469
445
  }
470
446
  getPackagePropertyFromPackage(packageDirs, options) {
471
447
  let foundByPackage = packageDirs.some((x) => x['package'] === options.package);
@@ -580,12 +556,10 @@ class PackageVersionCreate {
580
556
  }
581
557
  return value;
582
558
  }
583
- // eslint-disable-next-line complexity
584
559
  async packageVersionCreate(options) {
585
- var _a;
586
560
  let pollInterval = kit_1.Duration.seconds(pkgUtils.POLL_INTERVAL_SECONDS);
587
561
  let maxRetries = 0;
588
- if (options.wait.milliseconds > 0) {
562
+ if (options.wait?.milliseconds > 0) {
589
563
  if (options.skipvalidation === true) {
590
564
  pollInterval = kit_1.Duration.seconds(POLL_INTERVAL_WITHOUT_VALIDATION_SECONDS);
591
565
  }
@@ -597,7 +571,7 @@ class PackageVersionCreate {
597
571
  await this.project.getSfProjectJson().schemaValidate();
598
572
  }
599
573
  // Check for empty packageDirectories
600
- if (((_a = this.project.getSfProjectJson().getContents().packageDirectories) === null || _a === void 0 ? void 0 : _a.length) === 0) {
574
+ if (this.project.getPackageDirectories()?.length === 0) {
601
575
  throw messages.createError('errorEmptyPackageDirs');
602
576
  }
603
577
  const canonicalPackageProperty = this.resolveCanonicalPackageProperty(options);
@@ -611,29 +585,31 @@ class PackageVersionCreate {
611
585
  fs.statSync(path.join(process.cwd(), options.path));
612
586
  }
613
587
  catch (err) {
614
- throw new Error(`Directory '${options.path}' does not exist`);
588
+ throw messages.createError('directoryDoesNotExist', [options.path]);
615
589
  }
616
- options.profileApi = this.resolveUserLicenses(canonicalPackageProperty, options);
590
+ options.profileApi = await this.resolveUserLicenses(canonicalPackageProperty, options);
617
591
  [pollInterval, maxRetries] = await this.resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries);
618
592
  const request = await this.createPackageVersionCreateRequestFromOptions(options, resolvedPackageId, versionNumberString);
619
593
  const createResult = await this.connection.tooling.create('Package2VersionCreateRequest', request);
620
594
  if (!createResult.success) {
621
595
  const errStr = createResult.errors && createResult.errors.length ? createResult.errors.join(', ') : createResult.errors;
622
- throw new Error(`Failed to create request${createResult.id ? ` [${createResult.id}]` : ''}: ${errStr}`);
596
+ throw messages.createError('failedToCreatePVCRequest', [
597
+ createResult.id ? ` [${createResult.id}]` : '',
598
+ errStr.toString(),
599
+ ]);
623
600
  }
624
601
  let result;
625
602
  if (options.wait && options.wait.milliseconds > 0) {
626
- pollInterval = pollInterval !== null && pollInterval !== void 0 ? pollInterval : kit_1.Duration.seconds(options.wait.seconds / maxRetries);
603
+ pollInterval = pollInterval ?? kit_1.Duration.seconds(options.wait.seconds / maxRetries);
627
604
  if (pollInterval) {
628
605
  result = await pkgUtils.pollForStatusWithInterval(createResult.id, maxRetries, resolvedPackageId, options.branch, this.project, this.connection, pollInterval);
629
606
  }
630
607
  }
631
608
  else {
632
- result = await this.listRequestById(createResult.id, this.connection);
609
+ result = (await this.listRequestById(createResult.id, this.connection))[0];
633
610
  }
634
611
  return result;
635
612
  }
636
- // TODO: should be in pkg utils
637
613
  resolveCanonicalPackageProperty(options) {
638
614
  let canonicalPackageProperty;
639
615
  if (!options.package) {
@@ -648,7 +624,7 @@ class PackageVersionCreate {
648
624
  else {
649
625
  canonicalPackageProperty = this.getPackagePropertyFromPackage(this.project.getPackageDirectories(), options);
650
626
  this.getConfigPackageDirectoriesValue(this.project.getPackageDirectories(), canonicalPackageProperty, 'path', options.path, 'path', options);
651
- const expectedPackageId = this.getConfigPackageDirectoriesValue(this.packageDirs, canonicalPackageProperty, 'path', options.path, 'path', options);
627
+ const expectedPackageId = this.getConfigPackageDirectoriesValue(this.project.getPackageDirectories(), canonicalPackageProperty, 'path', options.path, 'path', options);
652
628
  // This will throw an error if the package id flag value doesn't match
653
629
  // any of the :id values in the package dirs.
654
630
  this.getConfigPackageDirectoriesValue(this.project.getPackageDirectories(), 'path', canonicalPackageProperty, options.package, 'package', options);
@@ -665,21 +641,25 @@ class PackageVersionCreate {
665
641
  // validate the versionNumber flag value if specified, otherwise the descriptor value
666
642
  const versionNumberString = options.versionnumber
667
643
  ? options.versionnumber
668
- : this.getConfigPackageDirectoriesValue(this.packageDirs, 'versionNumber', canonicalPackageProperty, options.package, 'package', options);
644
+ : this.getConfigPackageDirectoriesValue(this.project.getPackageDirectories(), 'versionNumber', canonicalPackageProperty, options.package, 'package', options);
669
645
  pkgUtils.validateVersionNumber(versionNumberString, versionNumber_1.BuildNumberToken.NEXT_BUILD_NUMBER_TOKEN, null);
670
646
  await pkgUtils.validatePatchVersion(this.connection, versionNumberString, resolvedPackageId);
671
647
  return versionNumberString;
672
648
  }
673
- resolveUserLicenses(canonicalPackageProperty, options) {
649
+ async resolveUserLicenses(canonicalPackageProperty, options) {
674
650
  // Check for an includeProfileUserLiceneses flag in the packageDirectory
675
- const includeProfileUserLicenses = this.getConfigPackageDirectoriesValue(this.packageDirs, 'includeProfileUserLicenses', canonicalPackageProperty, options.package, 'package', options);
651
+ const includeProfileUserLicenses = this.getConfigPackageDirectoriesValue(this.project.getPackageDirectories(), 'includeProfileUserLicenses', canonicalPackageProperty, options.package, 'package', options);
676
652
  if (includeProfileUserLicenses !== undefined &&
677
653
  includeProfileUserLicenses !== true &&
678
654
  includeProfileUserLicenses !== false) {
679
655
  throw messages.createError('errorProfileUserLicensesInvalidValue', [includeProfileUserLicenses]);
680
656
  }
681
657
  const shouldGenerateProfileInformation = logger.shouldLog(core_1.LoggerLevel.INFO) || logger.shouldLog(core_1.LoggerLevel.DEBUG);
682
- return new profileApi_1.ProfileApi(this.project, includeProfileUserLicenses, shouldGenerateProfileInformation);
658
+ return packageProfileApi_1.PackageProfileApi.create({
659
+ project: this.project,
660
+ includeUserLicenses: includeProfileUserLicenses,
661
+ generateProfileInformation: shouldGenerateProfileInformation,
662
+ });
683
663
  }
684
664
  async resolveOrgDependentPollingTime(resolvedPackageId, options, pollInterval, maxRetries) {
685
665
  let pi = pollInterval;
@@ -703,7 +683,7 @@ class PackageVersionCreate {
703
683
  return [pi, mr];
704
684
  }
705
685
  async validateFlagsForPackageType(packageId, options) {
706
- const packageType = await pkgUtils.getPackage2Type(packageId, this.connection);
686
+ const packageType = await pkgUtils.getPackageType(packageId, this.connection);
707
687
  if (packageType === 'Unlocked') {
708
688
  if (options.postinstallscript || options.uninstallscript) {
709
689
  // migrate coreMessages to messages
@@ -722,18 +702,13 @@ class PackageVersionCreate {
722
702
  * Cleans invalid attribute(s) from the packageDescriptorJSON
723
703
  */
724
704
  cleanPackageDescriptorJson(packageDescriptorJson) {
725
- if (typeof packageDescriptorJson.default !== 'undefined') {
726
- delete packageDescriptorJson.default; // for client-side use only, not needed
727
- }
728
- if (typeof packageDescriptorJson.includeProfileUserLicenses !== 'undefined') {
729
- delete packageDescriptorJson.includeProfileUserLicenses; // for client-side use only, not needed
730
- }
731
- if (typeof packageDescriptorJson.unpackagedMetadata !== 'undefined') {
732
- delete packageDescriptorJson.unpackagedMetadata; // for client-side use only, not needed
733
- }
734
- if (typeof packageDescriptorJson.branch !== 'undefined') {
735
- delete packageDescriptorJson.branch; // for client-side use only, not needed
736
- }
705
+ delete packageDescriptorJson.default; // for client-side use only, not needed
706
+ delete packageDescriptorJson.includeProfileUserLicenses; // for client-side use only, not needed
707
+ delete packageDescriptorJson.unpackagedMetadata; // for client-side use only, not needed
708
+ delete packageDescriptorJson.branch; // for client-side use only, not needed
709
+ delete packageDescriptorJson.fullPath; // for client-side use only, not needed
710
+ delete packageDescriptorJson.name; // for client-side use only, not needed
711
+ return packageDescriptorJson;
737
712
  }
738
713
  /**
739
714
  * Sets default or override values for packageDescriptorJSON attribs
@@ -761,13 +736,13 @@ class PackageVersionCreate {
761
736
  packageDescriptorJson.releaseNotesUrl = options.releasenotesurl;
762
737
  }
763
738
  if (packageDescriptorJson.releaseNotesUrl && !pkgUtils.validUrl(packageDescriptorJson.releaseNotesUrl)) {
764
- throw new Error(messages.getMessage('malformedUrl', ['releaseNotesUrl', packageDescriptorJson.releaseNotesUrl]));
739
+ throw messages.createError('malformedUrl', ['releaseNotesUrl', packageDescriptorJson.releaseNotesUrl]);
765
740
  }
766
741
  if (options.postinstallurl) {
767
742
  packageDescriptorJson.postInstallUrl = options.postinstallurl;
768
743
  }
769
744
  if (packageDescriptorJson.postInstallUrl && !pkgUtils.validUrl(packageDescriptorJson.postInstallUrl)) {
770
- throw new Error(messages.getMessage('malformedUrl', ['postInstallUrl', packageDescriptorJson.postInstallUrl]));
745
+ throw messages.createError('malformedUrl', ['postInstallUrl', packageDescriptorJson.postInstallUrl]);
771
746
  }
772
747
  if (options.postinstallscript) {
773
748
  packageDescriptorJson.postInstallScript = options.postinstallscript;
@@ -1,4 +1,4 @@
1
1
  import { Connection } from '@salesforce/core';
2
- import { Package2VersionCreateRequestResult, PackageVersionCreateRequestQueryOptions } from '../interfaces';
3
- export declare function list(options?: PackageVersionCreateRequestQueryOptions): Promise<Package2VersionCreateRequestResult[]>;
4
- export declare function byId(package2VersionCreateRequestId: any, connection: Connection): Promise<Package2VersionCreateRequestResult[]>;
2
+ import { PackageVersionCreateRequestResult, PackageVersionCreateRequestQueryOptions } from '../interfaces';
3
+ export declare function list(options?: PackageVersionCreateRequestQueryOptions): Promise<PackageVersionCreateRequestResult[]>;
4
+ export declare function byId(packageVersionCreateRequestId: any, connection: Connection): Promise<PackageVersionCreateRequestResult[]>;
@@ -25,10 +25,10 @@ async function list(options = {}) {
25
25
  return _query(util.format(QUERY, whereClause), options.connection);
26
26
  }
27
27
  exports.list = list;
28
- async function byId(package2VersionCreateRequestId, connection) {
29
- const results = await _query(util.format(QUERY, `WHERE Id = '${package2VersionCreateRequestId}' `), connection);
28
+ async function byId(packageVersionCreateRequestId, connection) {
29
+ const results = await _query(util.format(QUERY, `WHERE Id = '${packageVersionCreateRequestId}' `), connection);
30
30
  if (results && results.length === 1 && results[0].Status === STATUS_ERROR) {
31
- results[0].Error = await _queryErrors(package2VersionCreateRequestId, connection);
31
+ results[0].Error = await _queryErrors(packageVersionCreateRequestId, connection);
32
32
  }
33
33
  return results;
34
34
  }
@@ -49,9 +49,9 @@ async function _query(query, connection) {
49
49
  CreatedBy: record.CreatedById,
50
50
  }));
51
51
  }
52
- async function _queryErrors(package2VersionCreateRequestId, connection) {
52
+ async function _queryErrors(packageVersionCreateRequestId, connection) {
53
53
  const errorResults = [];
54
- const queryResult = connection.tooling.query(util.format(ERROR_QUERY, package2VersionCreateRequestId));
54
+ const queryResult = connection.tooling.query(util.format(ERROR_QUERY, packageVersionCreateRequestId));
55
55
  if (queryResult.records) {
56
56
  queryResult.records.forEach((record) => {
57
57
  errorResults.push(record.Message);
@@ -64,7 +64,7 @@ function _constructWhere(options) {
64
64
  // filter on created date, days ago: 0 for today, etc
65
65
  if (!util.isNullOrUndefined(this.options.createdlastdays)) {
66
66
  if (options.createdlastdays < 0) {
67
- throw new Error(messages.getMessage('invalidDaysNumber', ['createdlastdays', options.createdlastdays]));
67
+ throw messages.createError('invalidDaysNumber', ['createdlastdays', options.createdlastdays]);
68
68
  }
69
69
  where.push(`CreatedDate = LAST_N_DAYS:${this.options.createdlastdays}`);
70
70
  }
@@ -76,7 +76,7 @@ function _constructWhere(options) {
76
76
  STATUSES.forEach((status) => {
77
77
  args.push(status);
78
78
  });
79
- throw new Error(messages.getMessage('invalidStatus', args));
79
+ throw messages.createError('invalidStatus', args);
80
80
  }
81
81
  where.push(`Status = '${foundStatus}'`);
82
82
  }
@@ -51,7 +51,7 @@ exports._assembleQueryParts = _assembleQueryParts;
51
51
  function _constructWhere(idsOrAliases, createdLastDays, lastModLastDays, project) {
52
52
  const where = [];
53
53
  // filter on given package ids
54
- if ((idsOrAliases === null || idsOrAliases === void 0 ? void 0 : idsOrAliases.length) > 0) {
54
+ if (idsOrAliases?.length > 0) {
55
55
  // remove dups
56
56
  const aliasesOrIds = [...new Set(idsOrAliases)];
57
57
  // resolve any aliases
@@ -1 +1,3 @@
1
1
  export * from './packageVersion1GP';
2
+ export * from './packageDisplay';
3
+ export * from './package1VersionCreateGet';
@@ -21,4 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
22
22
  */
23
23
  __exportStar(require("./packageVersion1GP"), exports);
24
+ __exportStar(require("./packageDisplay"), exports);
25
+ __exportStar(require("./package1VersionCreateGet"), exports);
24
26
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import { Connection } from '@salesforce/core';
2
+ import { PackagingSObjects } from '../interfaces';
3
+ export declare function package1VersionCreateGet(connection: Connection, id: string): Promise<PackagingSObjects.PackageUploadRequest>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.package1VersionCreateGet = void 0;
10
+ async function package1VersionCreateGet(connection, id) {
11
+ return (await connection.tooling
12
+ .sobject('PackageUploadRequest')
13
+ .retrieve(id));
14
+ }
15
+ exports.package1VersionCreateGet = package1VersionCreateGet;
16
+ //# sourceMappingURL=package1VersionCreateGet.js.map
@@ -0,0 +1,9 @@
1
+ import { Connection } from '@salesforce/core';
2
+ import { Package1Display } from '../interfaces';
3
+ /**
4
+ * Executes server-side logic for the package1:display command
5
+ *
6
+ * @param connection
7
+ * @param id: id of the MetadataPackageVersion sObject
8
+ */
9
+ export declare function package1Display(connection: Connection, id: string): Promise<Package1Display[]>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.package1Display = void 0;
10
+ /**
11
+ * Executes server-side logic for the package1:display command
12
+ *
13
+ * @param connection
14
+ * @param id: id of the MetadataPackageVersion sObject
15
+ */
16
+ async function package1Display(connection, id) {
17
+ const query = `SELECT Id,MetadataPackageId,Name,ReleaseState,MajorVersion,MinorVersion,PatchVersion,BuildNumber FROM MetadataPackageVersion WHERE id = '${id}'`;
18
+ const results = (await connection.tooling.query(query)).records;
19
+ return results.map((result) => ({
20
+ MetadataPackageVersionId: result.Id,
21
+ MetadataPackageId: result.MetadataPackageId,
22
+ Name: result.Name,
23
+ ReleaseState: result.ReleaseState,
24
+ Version: `${result.MajorVersion}.${result.MinorVersion}.${result.PatchVersion}`,
25
+ BuildNumber: result.BuildNumber,
26
+ }));
27
+ }
28
+ exports.package1Display = package1Display;
29
+ //# sourceMappingURL=packageDisplay.js.map
@@ -2,7 +2,7 @@ import { Connection, NamedPackageDir, PackageDir, SfError, SfProject } from '@sa
2
2
  import { Duration } from '@salesforce/kit';
3
3
  import { Many } from '@salesforce/ts-types';
4
4
  import { SaveError } from 'jsforce';
5
- import { PackagingSObjects, Package2VersionCreateRequestResult, PackageVersionCreateOptions } from '../interfaces';
5
+ import { PackagingSObjects, PackageVersionCreateRequestResult, PackageVersionCreateOptions } from '../interfaces';
6
6
  export declare const VERSION_NUMBER_SEP = ".";
7
7
  export declare type IdRegistryValue = {
8
8
  prefix: string;
@@ -42,20 +42,20 @@ export declare function getPackageVersionId(versionId: string, connection: Conne
42
42
  /**
43
43
  * Given 0Ho the package type type (Managed, Unlocked, Locked(deprecated?))
44
44
  *
45
- * @param package2Id the 0Ho
45
+ * @param packageId the 0Ho
46
46
  * @param connection For tooling query
47
47
  * @throws Error with message when package2 cannot be found
48
48
  */
49
- export declare function getPackage2Type(package2Id: string, connection: Connection): Promise<string>;
49
+ export declare function getPackageType(packageId: string, connection: Connection): Promise<string>;
50
50
  /**
51
51
  * Given 04t the package type type (Managed, Unlocked, Locked(deprecated?))
52
52
  *
53
- * @param package2VersionId the 04t
53
+ * @param packageVersionId the 04t
54
54
  * @param connection For tooling query
55
55
  * @param installKey For tooling query, if an installation key is applicable to the package version it must be passed in the queries
56
56
  * @throws Error with message when package2 cannot be found
57
57
  */
58
- export declare function getPackage2TypeBy04t(package2VersionId: string, connection: Connection, installKey: string): Promise<string>;
58
+ export declare function getPackageTypeBy04t(packageVersionId: string, connection: Connection, installKey: string): Promise<string>;
59
59
  /**
60
60
  * Given a package version ID (05i) or subscriber package version ID (04t), return the subscriber package version ID (04t)
61
61
  *
@@ -67,10 +67,10 @@ export declare function getSubscriberPackageVersionId(versionId: string, connect
67
67
  * Get the ContainerOptions for the specified Package2 (0Ho) IDs.
68
68
  *
69
69
  * @return Map of 0Ho id to container option api value
70
- * @param package2Ids The list of package IDs
70
+ * @param packageIds The list of package IDs
71
71
  * @param connection For tooling query
72
72
  */
73
- export declare function getContainerOptions(package2Ids: string[], connection: Connection): Promise<Map<string, string>>;
73
+ export declare function getContainerOptions(packageIds: string[], connection: Connection): Promise<Map<string, string>>;
74
74
  /**
75
75
  * Return the Package2Version.HasMetadataRemoved field value for the given Id (05i)
76
76
  *
@@ -121,7 +121,7 @@ export declare function getAncestorIdHighestRelease(connection: Connection, pack
121
121
  * Return a version string in Major.Minor.Patch.Build format, using 0 for any empty part
122
122
  */
123
123
  export declare function concatVersion(major: string | number, minor: string | number, patch: string | number, build: string | number): string;
124
- export declare function getPackage2VersionNumber(package2VersionObj: PackagingSObjects.Package2Version): string;
124
+ export declare function getPackageVersionNumber(package2VersionObj: PackagingSObjects.Package2Version): string;
125
125
  export declare function getConfigPackageDirectories(project: SfProject): PackageDir[];
126
126
  export declare function getConfigPackageDirectory(packageDirs: NamedPackageDir[] | PackageDir[], lookupProperty: string, lookupValue: unknown): NamedPackageDir | PackageDir | undefined;
127
127
  /**
@@ -145,8 +145,8 @@ export declare function convertCamelCaseStringToSentence(stringIn: string): stri
145
145
  * @returns an array of alias for the given id.
146
146
  */
147
147
  export declare function getPackageAliasesFromId(packageId: string, project: SfProject): string[];
148
- export declare function findOrCreatePackage2(seedPackage: string, connection: Connection): Promise<string>;
149
- export declare function pollForStatusWithInterval(id: string, retries: number, packageId: string, branch: string, withProject: SfProject, connection: Connection, interval: Duration): Promise<Package2VersionCreateRequestResult>;
148
+ export declare function findOrCreatePackage(seedPackage: string, connection: Connection): Promise<string>;
149
+ export declare function pollForStatusWithInterval(id: string, retries: number, packageId: string, branch: string, withProject: SfProject, connection: Connection, interval: Duration): Promise<PackageVersionCreateRequestResult>;
150
150
  export declare function getSoqlWhereClauseMaxLength(): number;
151
151
  export declare function formatDate(date: Date): string;
152
152
  export declare function combineSaveErrors(sObject: string, crudOperation: string, errors: SaveError[]): SfError;