@salesforce/packaging 4.27.6 → 4.27.7

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.
@@ -121,20 +121,40 @@ class PackageVersionCreate {
121
121
  const branch = dependency.branch ?? this.options.branch;
122
122
  const branchString = !branch ? 'null' : `'${branch}'`;
123
123
  // resolve a build number keyword to an actual number, if needed
124
- const resolvedBuildNumber = await this.resolveBuildNumber(versionNumber, dependency.packageId, branch);
124
+ let resolvedBuildNumber;
125
+ let effectiveBranchString = branchString;
126
+ try {
127
+ resolvedBuildNumber = await this.resolveBuildNumber(versionNumber, dependency.packageId, branch);
128
+ }
129
+ catch (e) {
130
+ // when --branch was inherited (not set on the dependency itself) and LATEST resolution fails
131
+ // specifically because no version exists on that branch, fall back to null branch
132
+ if (e instanceof Error &&
133
+ e.name === 'NoReleaseVersionFoundForBranchError' &&
134
+ dependency.branch === undefined &&
135
+ this.options.branch &&
136
+ buildNumber === versionNumber_1.BuildNumberToken.LATEST_BUILD_NUMBER_TOKEN) {
137
+ this.logger.info(`Dependency ${dependency.package ?? dependency.packageId} has no versions on branch '${String(branch)}'. Falling back to unscoped (no branch) resolution.`);
138
+ effectiveBranchString = 'null';
139
+ resolvedBuildNumber = await this.resolveBuildNumber(versionNumber, dependency.packageId, undefined);
140
+ }
141
+ else {
142
+ throw e;
143
+ }
144
+ }
125
145
  // now that we have a full build number, query for the associated 04t.
126
146
  // because the build number may not be unique across versions, add in conditionals for
127
147
  // the branch or the RELEASED token (if used)
128
148
  const branchOrReleasedCondition = buildNumber === versionNumber_1.BuildNumberToken.RELEASED_BUILD_NUMBER_TOKEN
129
149
  ? 'AND IsReleased = true'
130
- : `AND Branch = ${branchString}`;
150
+ : `AND Branch = ${effectiveBranchString}`;
131
151
  const query = `SELECT SubscriberPackageVersionId FROM Package2Version WHERE Package2Id = '${dependency.packageId}' AND MajorVersion = ${versionNumber.major} AND MinorVersion = ${versionNumber.minor} AND PatchVersion = ${versionNumber.patch} AND BuildNumber = ${resolvedBuildNumber} ${branchOrReleasedCondition}`;
132
152
  const pkgVerQueryResult = await this.connection.tooling.query(query);
133
153
  const subRecords = pkgVerQueryResult.records;
134
154
  if (!subRecords || subRecords.length !== 1) {
135
155
  throw messages.createError('versionNumberNotFoundInDevHub', [
136
156
  dependency.packageId,
137
- branchString,
157
+ effectiveBranchString,
138
158
  versionNumber.toString(),
139
159
  resolvedBuildNumber,
140
160
  ]);
@@ -146,7 +166,7 @@ class PackageVersionCreate {
146
166
  this.logger.info(messages.getMessage('buildNumberResolvedForLatest', [
147
167
  dependency.package,
148
168
  versionNumber.toString(),
149
- branchString,
169
+ effectiveBranchString,
150
170
  dependency.subscriberPackageVersionId,
151
171
  ]));
152
172
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "4.27.6",
3
+ "version": "4.27.7",
4
4
  "description": "Packaging library for the Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",