@salesforce/packaging 0.0.24 → 0.0.27

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/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.27](https://github.com/forcedotcom/packaging/compare/v0.0.26...v0.0.27) (2022-08-26)
6
+
7
+ ### Bug Fixes
8
+
9
+ - fix validateDependencyValues ([e37ac1e](https://github.com/forcedotcom/packaging/commit/e37ac1e08f5d764aefa8cf04271c6e72a30d78ea))
10
+
11
+ ### [0.0.26](https://github.com/forcedotcom/packaging/compare/v0.0.25...v0.0.26) (2022-08-25)
12
+
13
+ ### Bug Fixes
14
+
15
+ - remove hard coded string ([8c6d2dd](https://github.com/forcedotcom/packaging/commit/8c6d2dd769c2a91d33c8afafca02f3489c296060))
16
+
17
+ ### [0.0.25](https://github.com/forcedotcom/packaging/compare/v0.0.24...v0.0.25) (2022-08-25)
18
+
19
+ ### Bug Fixes
20
+
21
+ - improve packge property maintenance ([c62acf8](https://github.com/forcedotcom/packaging/commit/c62acf84ad84deec6d77079200290ab09064f6d7))
22
+
5
23
  ### [0.0.24](https://github.com/forcedotcom/packaging/compare/v0.0.23...v0.0.24) (2022-08-24)
6
24
 
7
25
  ### Bug Fixes
@@ -62,5 +62,4 @@ export declare class PackageVersion {
62
62
  update(): Promise<void>;
63
63
  private updateDeprecation;
64
64
  private updateProjectWithPackageVersion;
65
- private generatePackageDirectory;
66
65
  }
@@ -13,7 +13,6 @@ const utils_1 = require("../utils");
13
13
  const packageVersionCreate_1 = require("./packageVersionCreate");
14
14
  const packageVersionReport_1 = require("./packageVersionReport");
15
15
  const packageVersionCreateRequestReport_1 = require("./packageVersionCreateRequestReport");
16
- const package_1 = require("./package");
17
16
  core_1.Messages.importMessagesDirectory(__dirname);
18
17
  class PackageVersion {
19
18
  constructor(options) {
@@ -129,19 +128,8 @@ class PackageVersion {
129
128
  payload: report,
130
129
  };
131
130
  case 'Success':
132
- await this.updateProjectWithPackageVersion(this.project, report);
133
131
  await core_1.Lifecycle.getInstance().emit('success', report);
134
- if (!process.env.SFDX_PROJECT_AUTOUPDATE_DISABLE_FOR_PACKAGE_CREATE) {
135
- // get the newly created package version from the server
136
- const versionResult = (await this.connection.tooling.query(`SELECT Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber FROM Package2Version WHERE SubscriberPackageVersionId='${report.SubscriberPackageVersionId}'`)).records[0];
137
- const version = `${(0, utils_1.getPackageAliasesFromId)(report.Package2Id, this.project).join()}@${versionResult.MajorVersion ?? 0}.${versionResult.MinorVersion ?? 0}.${versionResult.PatchVersion ?? 0}`;
138
- const build = versionResult.BuildNumber ? `-${versionResult.BuildNumber}` : '';
139
- const branch = versionResult.Branch ? `-${versionResult.Branch}` : '';
140
- // set packageAliases entry '<package>@<major>.<minor>.<patch>-<build>-<branch>: <result.subscriberPackageVersionId>'
141
- this.project.getSfProjectJson().getContents().packageAliases[`${version}${build}${branch}`] =
142
- report.SubscriberPackageVersionId;
143
- await this.project.getSfProjectJson().write();
144
- }
132
+ await this.updateProjectWithPackageVersion(this.project, report);
145
133
  return { completed: true, payload: report };
146
134
  case 'Error':
147
135
  await core_1.Lifecycle.getInstance().emit('error', report);
@@ -201,25 +189,17 @@ class PackageVersion {
201
189
  }
202
190
  async updateProjectWithPackageVersion(withProject, results) {
203
191
  if (withProject && !process.env.SFDX_PROJECT_AUTOUPDATE_DISABLE_FOR_PACKAGE_VERSION_CREATE) {
204
- const query = `SELECT Name, Package2Id, MajorVersion, MinorVersion, PatchVersion, BuildNumber, Description, Branch FROM Package2Version WHERE Id = '${results.Package2VersionId}'`;
205
- const packageVersion = await this.connection.singleRecordQuery(query, {
206
- tooling: true,
207
- });
208
- const packageVersionVersionString = `${packageVersion.MajorVersion}.${packageVersion.MinorVersion}.${packageVersion.PatchVersion}.${packageVersion.BuildNumber}`;
209
- await this.generatePackageDirectory(packageVersion, withProject, packageVersionVersionString);
210
- const newConfig = await (0, utils_1.generatePackageAliasEntry)(this.connection, withProject, packageVersion.SubscriberPackageVersionId, packageVersionVersionString, packageVersion.Branch, packageVersion.Package2Id);
211
- withProject.getSfProjectJson().set('packageAliases', newConfig);
212
- await withProject.getSfProjectJson().write();
192
+ // get the newly created package version from the server
193
+ const versionResult = (await this.connection.tooling.query(`SELECT Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber FROM Package2Version WHERE SubscriberPackageVersionId='${results.SubscriberPackageVersionId}'`)).records[0];
194
+ const version = `${(0, utils_1.getPackageAliasesFromId)(results.Package2Id, this.project).join()}@${versionResult.MajorVersion ?? 0}.${versionResult.MinorVersion ?? 0}.${versionResult.PatchVersion ?? 0}`;
195
+ const build = versionResult.BuildNumber ? `-${versionResult.BuildNumber}` : '';
196
+ const branch = versionResult.Branch ? `-${versionResult.Branch}` : '';
197
+ // set packageAliases entry '<package>@<major>.<minor>.<patch>-<build>-<branch>: <result.subscriberPackageVersionId>'
198
+ this.project.getSfProjectJson().getContents().packageAliases[`${version}${build}${branch}`] =
199
+ results.SubscriberPackageVersionId;
200
+ await this.project.getSfProjectJson().write();
213
201
  }
214
202
  }
215
- async generatePackageDirectory(packageVersion, withProject, packageVersionVersionString) {
216
- const pkg = await (await package_1.Package.create({ connection: this.connection })).getPackage(packageVersion.Package2Id);
217
- const pkgDir = (0, utils_1.getConfigPackageDirectory)(withProject.getPackageDirectories(), 'id', pkg.Id) ?? {};
218
- pkgDir.versionNumber = packageVersionVersionString;
219
- pkgDir.versionDescription = packageVersion.Description;
220
- const packageDirs = withProject.getPackageDirectories().map((pd) => (pkgDir['id'] === pd['id'] ? pkgDir : pd));
221
- withProject.getSfProjectJson().set('packageDirectories', packageDirs);
222
- }
223
203
  }
224
204
  exports.PackageVersion = PackageVersion;
225
205
  //# sourceMappingURL=packageVersion.js.map
@@ -14,7 +14,6 @@ const core_1 = require("@salesforce/core");
14
14
  const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
15
15
  const scratchOrgSettingsGenerator_1 = require("@salesforce/core/lib/org/scratchOrgSettingsGenerator");
16
16
  const xml2js = require("xml2js");
17
- const scratchOrgInfoGenerator_1 = require("@salesforce/core/lib/org/scratchOrgInfoGenerator");
18
17
  const uniqid_1 = require("../utils/uniqid");
19
18
  const pkgUtils = require("../utils/packageUtils");
20
19
  const versionNumber_1 = require("../utils/versionNumber");
@@ -75,19 +74,22 @@ class PackageVersionCreate {
75
74
  // If valid 04t package, just return it to be used straight away.
76
75
  if (dependency.subscriberPackageVersionId) {
77
76
  pkgUtils.validateId(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, dependency.subscriberPackageVersionId);
77
+ return;
78
78
  }
79
79
  if (dependency.packageId && dependency.package) {
80
80
  throw messages.createError('errorPackageAndPackageIdCollision', []);
81
81
  }
82
+ const packageIdFromAlias = pkgUtils.getPackageIdFromAlias(dependency.packageId || dependency.package, this.project);
82
83
  // If valid 04t package, just return it to be used straight away.
83
- if (pkgUtils.validateIdNoThrow(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, this.packageId)) {
84
- dependency.subscriberPackageVersionId = this.packageId;
84
+ if (pkgUtils.validateIdNoThrow(pkgUtils.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, packageIdFromAlias)) {
85
+ dependency.subscriberPackageVersionId = packageIdFromAlias;
86
+ return;
85
87
  }
86
- if (!this.packageId || !dependency.versionNumber) {
88
+ if (!packageIdFromAlias || !dependency.versionNumber) {
87
89
  throw messages.createError('errorDependencyPair', [JSON.stringify(dependency)]);
88
90
  }
89
91
  // Just override dependency.packageId value to the resolved alias.
90
- dependency.packageId = this.packageId;
92
+ dependency.packageId = packageIdFromAlias;
91
93
  pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_ID, dependency.packageId);
92
94
  pkgUtils.validateVersionNumber(dependency.versionNumber, versionNumber_1.BuildNumberToken.LATEST_BUILD_NUMBER_TOKEN, versionNumber_1.BuildNumberToken.RELEASED_BUILD_NUMBER_TOKEN);
93
95
  // Validate that the Package2 id exists on the server
@@ -96,7 +98,6 @@ class PackageVersionCreate {
96
98
  if (!result.records || result.records.length !== 1) {
97
99
  throw messages.createError('errorNoIdInHub', [dependency.packageId]);
98
100
  }
99
- return result;
100
101
  }
101
102
  /**
102
103
  * A dependency in the workspace config file may be specified using either a subscriber package version id (04t)
@@ -206,7 +207,12 @@ class PackageVersionCreate {
206
207
  SkipValidation: this.options.skipvalidation || false,
207
208
  };
208
209
  if (preserveFiles) {
209
- logger.info(messages.getMessage('tempFileLocation', [packageVersTmpRoot]));
210
+ const message = messages.getMessage('tempFileLocation', [packageVersTmpRoot]);
211
+ await core_1.Lifecycle.getInstance().emit('packageVersionCreate:preserveFiles', {
212
+ location: packageVersTmpRoot,
213
+ message,
214
+ });
215
+ logger.info(message);
210
216
  return requestObject;
211
217
  }
212
218
  else {
@@ -279,9 +285,7 @@ class PackageVersionCreate {
279
285
  // branch can be set via options or descriptor; option takes precedence
280
286
  this.options.branch = this.options.branch ?? packageDescriptorJson.branch;
281
287
  const resultValues = await Promise.all(!dependencies ? [] : dependencies.map((dependency) => this.retrieveSubscriberPackageVersionId(dependency)));
282
- const ancestorId = await (0, scratchOrgInfoGenerator_1.getAncestorIds)(
283
- // TODO: investigate if it's ok to convert to ScratchOggInfoPayload
284
- this.packageObject, this.options.project.getSfProjectJson(), await core_1.Org.create({ aliasOrUsername: this.options.connection.getUsername() }));
288
+ const ancestorId = await (0, utils_1.getAncestorId)(packageDescriptorJson, this.options.project, this.options.connection, this.options.versionnumber ?? packageDescriptorJson.versionNumber, this.options.skipancestorcheck);
285
289
  // If dependencies exist, the resultValues array will contain the dependencies populated with a resolved
286
290
  // subscriber pkg version id.
287
291
  if (resultValues.length > 0) {
@@ -415,10 +419,12 @@ class PackageVersionCreate {
415
419
  }
416
420
  // from the packageDirectories in sfdx-project.json, find the correct package entry either by finding a matching package (name) or path
417
421
  this.packageAlias = (0, utils_1.getPackageAliasesFromId)(this.options.packageId, this.options.project).join();
418
- // set on the class so we can access them in other methods without redoing this logic
419
- this.packageObject = this.project.getPackageDirectories().find((pkg) => pkg.package === this.packageAlias);
422
+ this.packageId = this.options.packageId;
423
+ // set on the class, so we can access them in other methods without redoing this logic
424
+ this.packageObject = this.project
425
+ .getPackageDirectories()
426
+ .find((pkg) => pkg.package === this.packageAlias || pkg['id'] === this.options.packageId);
420
427
  this.options.profileApi = await this.resolveUserLicenses(this.packageObject.includeProfileUserLicenses);
421
- this.packageId = (0, utils_1.getPackageIdFromAlias)(this.packageObject.package, this.project);
422
428
  // At this point, the packageIdFromAlias should have been resolved to an Id. Now, we
423
429
  // need to validate that the Id is correct.
424
430
  pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_ID, this.packageId);
@@ -2,7 +2,7 @@ import { Connection, NamedPackageDir, PackageDir, SfdcUrl, SfError, SfProject }
2
2
  import { Duration } from '@salesforce/kit';
3
3
  import { Many, Nullable } from '@salesforce/ts-types';
4
4
  import { SaveError } from 'jsforce';
5
- import { PackageType, PackageVersionCreateRequestResult, PackagingSObjects } from '../interfaces';
5
+ import { PackageDescriptorJson, PackageType, PackageVersionCreateRequestResult, PackagingSObjects } from '../interfaces';
6
6
  export declare const VERSION_NUMBER_SEP = ".";
7
7
  export declare type IdRegistryValue = {
8
8
  prefix: string;
@@ -102,6 +102,7 @@ export declare function queryWithInConditionChunking<T = Record<string, unknown>
102
102
  */
103
103
  export declare function getInClauseItemsCount(items: string[], startIndex: number, maxLength: number): number;
104
104
  export declare function validateAncestorId(ancestorId: string, highestReleasedVersion: PackagingSObjects.Package2Version, explicitUseNoAncestor: boolean, isPatch: boolean, skipAncestorCheck: boolean, origSpecifiedAncestor: string): string;
105
+ export declare function getAncestorId(packageDescriptorJson: PackageDescriptorJson, project: SfProject, connection: Connection, versionNumberString: string, skipAncestorCheck: boolean): Promise<string>;
105
106
  export declare function getAncestorIdHighestRelease(connection: Connection, packageId: string, versionNumberString: string, explicitUseHighestRelease: boolean, skipAncestorCheck: boolean): Promise<{
106
107
  finalAncestorId: string;
107
108
  highestReleasedVersion: PackagingSObjects.Package2Version;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.combineSaveErrors = exports.formatDate = exports.generatePackageAliasEntry = exports.pollForStatusWithInterval = exports.findOrCreatePackage = exports.getPackageAliasesFromId = exports.convertCamelCaseStringToSentence = exports.getPackageIdFromAlias = exports.getConfigPackageDirectory = exports.getConfigPackageDirectories = exports.getPackageVersionNumber = exports.concatVersion = exports.getAncestorIdHighestRelease = exports.validateAncestorId = exports.getInClauseItemsCount = exports.queryWithInConditionChunking = exports.getPackageVersionStrings = exports.getHasMetadataRemoved = exports.getContainerOptions = exports.getSubscriberPackageVersionId = exports.getPackageTypeBy04t = exports.getPackageType = exports.escapeInstallationKey = exports.getPackageVersionId = exports.applyErrorAction = exports.massageErrorMessage = exports.isErrorPackageNotAvailable = exports.isErrorFromSPVQueryRestriction = exports.validatePatchVersion = exports.validateVersionNumber = 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.pollForStatusWithInterval = exports.findOrCreatePackage = exports.getPackageAliasesFromId = exports.convertCamelCaseStringToSentence = exports.getPackageIdFromAlias = exports.getConfigPackageDirectory = exports.getConfigPackageDirectories = exports.getPackageVersionNumber = exports.concatVersion = exports.getAncestorIdHighestRelease = exports.getAncestorId = exports.validateAncestorId = exports.getInClauseItemsCount = exports.queryWithInConditionChunking = exports.getPackageVersionStrings = exports.getHasMetadataRemoved = exports.getContainerOptions = exports.getSubscriberPackageVersionId = exports.getPackageTypeBy04t = exports.getPackageType = exports.escapeInstallationKey = exports.getPackageVersionId = exports.applyErrorAction = exports.massageErrorMessage = exports.isErrorPackageNotAvailable = exports.isErrorFromSPVQueryRestriction = exports.validatePatchVersion = exports.validateVersionNumber = 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;
4
4
  /*
5
5
  * Copyright (c) 2022, salesforce.com, inc.
6
6
  * All rights reserved.
@@ -72,7 +72,7 @@ function validateIdNoThrow(idObj, value) {
72
72
  }
73
73
  exports.validateIdNoThrow = validateIdNoThrow;
74
74
  function validateVersionNumber(versionNumberString, supportedBuildNumberToken, supportedBuildNumberToken2) {
75
- const versionNumber = versionNumber_1.VersionNumber.from('1.1.0.NEXT');
75
+ const versionNumber = versionNumber_1.VersionNumber.from(versionNumberString);
76
76
  // build number can be a number or valid token
77
77
  if (Number.isNaN(parseInt(versionNumber.build, 10)) &&
78
78
  versionNumber.build !== supportedBuildNumberToken &&
@@ -423,6 +423,92 @@ function validateAncestorId(ancestorId, highestReleasedVersion, explicitUseNoAnc
423
423
  return ancestorId;
424
424
  }
425
425
  exports.validateAncestorId = validateAncestorId;
426
+ // eslint-disable-next-line complexity
427
+ async function getAncestorId(packageDescriptorJson, project, connection, versionNumberString, skipAncestorCheck) {
428
+ // If an id property is present, use it. Otherwise, look up the package id from the package property.
429
+ const packageId = packageDescriptorJson.id ?? getPackageIdFromAlias(packageDescriptorJson.package, project);
430
+ // No need to proceed if Unlocked
431
+ const packageType = await getPackageType(packageId, connection);
432
+ if (packageType === 'Unlocked') {
433
+ return '';
434
+ }
435
+ let ancestorId = '';
436
+ // ancestorID can be alias, 05i, or 04t;
437
+ // validate and convert to 05i, as needed
438
+ const versionNumber = versionNumber_1.VersionNumber.from(versionNumberString);
439
+ let origSpecifiedAncestor = packageDescriptorJson.ancestorId;
440
+ let highestReleasedVersion = null;
441
+ const explicitUseHighestRelease = packageDescriptorJson.ancestorId === versionNumber_1.BuildNumberToken.HIGHEST_VERSION_NUMBER_TOKEN ||
442
+ packageDescriptorJson.ancestorVersion === versionNumber_1.BuildNumberToken.HIGHEST_VERSION_NUMBER_TOKEN;
443
+ const explicitUseNoAncestor = packageDescriptorJson.ancestorId === versionNumber_1.BuildNumberToken.NONE_VERSION_NUMBER_TOKEN ||
444
+ packageDescriptorJson.ancestorVersion === versionNumber_1.BuildNumberToken.NONE_VERSION_NUMBER_TOKEN;
445
+ if ((explicitUseHighestRelease || explicitUseNoAncestor) &&
446
+ packageDescriptorJson.ancestorId &&
447
+ packageDescriptorJson.ancestorVersion) {
448
+ if (packageDescriptorJson.ancestorId !== packageDescriptorJson.ancestorVersion) {
449
+ // both ancestorId and ancestorVersion specified, HIGHEST and/or NONE are used, the values disagree
450
+ throw messages.createError('errorAncestorIdVersionHighestOrNoneMismatch', [
451
+ packageDescriptorJson.ancestorId,
452
+ packageDescriptorJson.ancestorVersion,
453
+ ]);
454
+ }
455
+ }
456
+ if (explicitUseNoAncestor && skipAncestorCheck) {
457
+ return '';
458
+ }
459
+ else {
460
+ const result = await getAncestorIdHighestRelease(connection, packageId, versionNumberString, explicitUseHighestRelease, skipAncestorCheck);
461
+ if (result.finalAncestorId) {
462
+ return result.finalAncestorId;
463
+ }
464
+ highestReleasedVersion = result.highestReleasedVersion;
465
+ }
466
+ // at this point if explicitUseHighestRelease=true, we have returned the ancestorId or thrown an error
467
+ // highestReleasedVersion should be null only if skipAncestorCheck or if there is no existing released package version
468
+ if (!explicitUseNoAncestor && packageDescriptorJson.ancestorId) {
469
+ ancestorId = getPackageIdFromAlias(packageDescriptorJson.ancestorId, project);
470
+ validateId([exports.BY_LABEL.SUBSCRIBER_PACKAGE_VERSION_ID, exports.BY_LABEL.PACKAGE_VERSION_ID], ancestorId);
471
+ ancestorId = await getPackageVersionId(ancestorId, connection);
472
+ }
473
+ if (!explicitUseNoAncestor && packageDescriptorJson.ancestorVersion) {
474
+ const regNumbers = new RegExp('^[0-9]+$');
475
+ const versionNumber = packageDescriptorJson.ancestorVersion.split(exports.VERSION_NUMBER_SEP);
476
+ if (versionNumber.length < 3 ||
477
+ versionNumber.length > 4 ||
478
+ !versionNumber[0].match(regNumbers) ||
479
+ !versionNumber[1].match(regNumbers) ||
480
+ !versionNumber[2].match(regNumbers)) {
481
+ throw new Error(messages.getMessage('errorInvalidAncestorVersionFormat', [packageDescriptorJson.ancestorVersion]));
482
+ }
483
+ const query = 'SELECT Id, IsReleased FROM Package2Version ' +
484
+ `WHERE Package2Id = '${packageId}' AND MajorVersion = ${versionNumber[0]} AND MinorVersion = ${versionNumber[1]} AND PatchVersion = ${versionNumber[2]}`;
485
+ let queriedAncestorId;
486
+ const ancestorVersionResult = await connection.tooling.query(query);
487
+ if (!ancestorVersionResult || !ancestorVersionResult.totalSize) {
488
+ throw messages.createError('errorNoMatchingAncestor', [packageDescriptorJson.ancestorVersion, packageId]);
489
+ }
490
+ else {
491
+ const releasedAncestor = ancestorVersionResult.records.find((rec) => rec.IsReleased === true);
492
+ if (!releasedAncestor) {
493
+ throw messages.createError('errorAncestorNotReleased', [packageDescriptorJson.ancestorVersion]);
494
+ }
495
+ else {
496
+ queriedAncestorId = releasedAncestor.Id;
497
+ }
498
+ }
499
+ // check for discrepancy between queried ancestorId and descriptor's ancestorId
500
+ if (Object.prototype.hasOwnProperty.call(packageDescriptorJson, 'ancestorId') && ancestorId !== queriedAncestorId) {
501
+ throw messages.createError('errorAncestorIdVersionMismatch', [
502
+ packageDescriptorJson.ancestorVersion,
503
+ packageDescriptorJson.ancestorId,
504
+ ]);
505
+ }
506
+ ancestorId = queriedAncestorId;
507
+ origSpecifiedAncestor = packageDescriptorJson.ancestorVersion;
508
+ }
509
+ return validateAncestorId(ancestorId, highestReleasedVersion, explicitUseNoAncestor, versionNumber.patch !== '0', skipAncestorCheck, origSpecifiedAncestor);
510
+ }
511
+ exports.getAncestorId = getAncestorId;
426
512
  async function getAncestorIdHighestRelease(connection, packageId, versionNumberString, explicitUseHighestRelease, skipAncestorCheck) {
427
513
  const versionNumber = versionNumberString.split(exports.VERSION_NUMBER_SEP);
428
514
  const isPatch = versionNumber[2] !== '0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "0.0.24",
3
+ "version": "0.0.27",
4
4
  "description": "packing libraries to Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",