Skip to content

Commit f8816ab

Browse files
feat: include logic for skip ancestry
1 parent af31911 commit f8816ab

3 files changed

Lines changed: 45 additions & 17 deletions

File tree

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@
4242
"!lib/**/*.map"
4343
],
4444
"dependencies": {
45-
"@jsforce/jsforce-node": "^3.10.4",
46-
"@salesforce/core": "^8.23.0",
45+
"@jsforce/jsforce-node": "^3.10.8",
46+
"@salesforce/core": "^8.23.2",
4747
"@salesforce/kit": "^3.2.3",
4848
"@salesforce/schemas": "^1.10.3",
49-
"@salesforce/source-deploy-retrieve": "^12.16.9",
49+
"@salesforce/source-deploy-retrieve": "^12.24.0",
5050
"@salesforce/ts-types": "^2.0.11",
5151
"@salesforce/types": "^1.2.0",
5252
"fast-xml-parser": "^4.5.0",
@@ -67,6 +67,7 @@
6767
"typescript": "^5.5.4"
6868
},
6969
"resolutions": {
70+
"@jsforce/jsforce-node": "^3.10.8",
7071
"@jsforce/jsforce-node/node-fetch/whatwg-url": "^14.0.0",
7172
"string-width": "^4.2.3"
7273
},

src/package/package.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const packagePrefixes = {
4949
Messages.importMessagesDirectory(__dirname);
5050
const messages = Messages.loadMessages('@salesforce/packaging', 'package');
5151

52-
const packageVersionQuery = 'SELECT SubscriberPackageVersionId, AncestorId, RecommendedVersionId FROM Package2Version';
52+
const packageVersionQuery = 'SELECT SubscriberPackageVersionId, AncestorId FROM Package2Version';
5353
const package2Query = 'SELECT RecommendedVersionId FROM Package2';
5454

5555
export const Package2Fields = [
@@ -314,7 +314,7 @@ export class Package {
314314
*
315315
* @param options
316316
*/
317-
public async update(options: PackageUpdateOptions): Promise<PackageSaveResult> {
317+
public async update(options: PackageUpdateOptions, skipAncestorCheck?: boolean): Promise<PackageSaveResult> {
318318
try {
319319
// filter out any undefined values and their keys
320320
const opts = Object.fromEntries(
@@ -333,7 +333,7 @@ export class Package {
333333
throw messages.createError('skipAncestorCheckRequiresRecommendedVersionIdError');
334334
}
335335

336-
if (opts.SkipAncestorCheck === undefined && opts.RecommendedVersionId !== undefined) {
336+
if (skipAncestorCheck !== true && opts.RecommendedVersionId !== undefined) {
337337
await this.checkRecommendedVersionAncestors(opts);
338338
}
339339

@@ -401,7 +401,9 @@ export class Package {
401401
graph.addNode(record.SubscriberPackageVersionId);
402402

403403
if (record.AncestorId) {
404-
graph.addNode(record.AncestorId);
404+
if (!graph.hasNode(record.AncestorId)) {
405+
graph.addNode(record.AncestorId);
406+
}
405407
graph.addEdge(record.SubscriberPackageVersionId, record.AncestorId);
406408
}
407409
});
@@ -424,9 +426,9 @@ export class Package {
424426
}
425427
}
426428
}
427-
throw messages.createError('recommendedVersionNotAncestorOfPriorVersionError');
428-
} else if (graph.outDegree(opts.RecommendedVersionId) === 0) {
429+
} else if (graph.outDegree(opts.RecommendedVersionId) === 0 && result.records.length === 1) {
429430
return;
430431
}
432+
throw messages.createError('recommendedVersionNotAncestorOfPriorVersionError');
431433
}
432434
}

yarn.lock

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -451,10 +451,10 @@
451451
"@jridgewell/resolve-uri" "^3.1.0"
452452
"@jridgewell/sourcemap-codec" "^1.4.14"
453453

454-
"@jsforce/jsforce-node@^3.10.4":
455-
version "3.10.7"
456-
resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.10.7.tgz#9a377e8da925d1eec713ca43ea0bc1ba6aafd7f6"
457-
integrity sha512-+2E7c/rRqB2QRtjFiBOkJwyZWw1vViQ2eeHIfLnF8WT6t8J5h16KyJ4dMyiw4JJx/WUT7xtNFiZ0kz85LS//cw==
454+
"@jsforce/jsforce-node@^3.10.4", "@jsforce/jsforce-node@^3.10.8":
455+
version "3.10.8"
456+
resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.10.8.tgz#f13903a0885fa3501a513512984cf9a717aebb9a"
457+
integrity sha512-XGD/ivZz+htN5SgctFyEZ+JNG6C8FXzaEwvPbRSdsIy/hpWlexY38XtTpdT5xX3KnYSnOE4zA1M/oIbTm7RD/Q==
458458
dependencies:
459459
"@sindresorhus/is" "^4"
460460
base64url "^3.0.1"
@@ -583,6 +583,31 @@
583583
semver "^7.6.3"
584584
ts-retry-promise "^0.8.1"
585585

586+
"@salesforce/core@^8.23.2":
587+
version "8.23.2"
588+
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.23.2.tgz#218152b97e05745cd0499ad2594df4443fa8aa18"
589+
integrity sha512-9XUlaI0orvdjDJZsgjt0lVLa5wrFWNaorRbshT/EJ6fIiqcAehOV2bR62NJtRhrOrgu1h34bTmUqMo+yUEES9w==
590+
dependencies:
591+
"@jsforce/jsforce-node" "^3.10.8"
592+
"@salesforce/kit" "^3.2.4"
593+
"@salesforce/schemas" "^1.10.0"
594+
"@salesforce/ts-types" "^2.0.11"
595+
ajv "^8.17.1"
596+
change-case "^4.1.2"
597+
fast-levenshtein "^3.0.0"
598+
faye "^1.4.1"
599+
form-data "^4.0.4"
600+
js2xmlparser "^4.0.1"
601+
jsonwebtoken "9.0.2"
602+
jszip "3.10.1"
603+
memfs "^4.30.1"
604+
pino "^9.7.0"
605+
pino-abstract-transport "^1.2.0"
606+
pino-pretty "^11.3.0"
607+
proper-lockfile "^4.1.2"
608+
semver "^7.6.3"
609+
ts-retry-promise "^0.8.1"
610+
586611
"@salesforce/dev-config@^4.3.1":
587612
version "4.3.2"
588613
resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-4.3.2.tgz#10047e2b8d289c93f157ab4243a1b1de57f2d6a2"
@@ -637,10 +662,10 @@
637662
resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.10.3.tgz#52c867fdd60679cf216110aa49542b7ad391f5d1"
638663
integrity sha512-FKfvtrYTcvTXE9advzS25/DEY9yJhEyLvStm++eQFtnAaX1pe4G3oGHgiQ0q55BM5+0AlCh0+0CVtQv1t4oJRA==
639664

640-
"@salesforce/source-deploy-retrieve@^12.16.9":
641-
version "12.22.14"
642-
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.22.14.tgz#ec9b0a6c85a67392cbc2932a28fea87b0903ae9e"
643-
integrity sha512-/MjbV4M40sz6JOBKbmzFSXMHF+k5u5gdG11Iy+uF6faakKOFvwLr65kKSKBH0rZs0ul7a3+iO+foIWNiBFfNBw==
665+
"@salesforce/source-deploy-retrieve@^12.24.0":
666+
version "12.24.0"
667+
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.24.0.tgz#cc4e38175436aeb6c9c22ee795924c96d7ef87c8"
668+
integrity sha512-gjS6whT1575UGxwR2foDILlsbDQPwng0rNyXsk39hwg+bRsbHABZGzxU5EeUIzpKqv4bf6C9z/BLYiHMcZocoQ==
644669
dependencies:
645670
"@salesforce/core" "^8.23.1"
646671
"@salesforce/kit" "^3.2.3"

0 commit comments

Comments
 (0)