Skip to content

Commit 945813d

Browse files
authored
fix(align-deps): fix vigilant mode not handling catalog: in peer dependencies (#4066)
1 parent 6b78e85 commit 945813d

3 files changed

Lines changed: 12 additions & 7 deletions

File tree

.changeset/ripe-dragons-lick.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@rnx-kit/align-deps": patch
3+
---
4+
5+
Fixed vigilant mode not handling `catalog:` in peer dependencies

packages/align-deps/src/commands/vigilant.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ import type { Capability, KitConfig } from "@rnx-kit/types-kit-config";
44
import type { PackageManifest } from "@rnx-kit/types-node";
55
import * as nodefs from "node:fs";
66
import * as path from "node:path";
7-
import semverSubset from "semver/ranges/subset.js";
87
import {
98
capabilityProvidedBy,
109
resolveCapabilities,
1110
resolveCapabilitiesUnchecked,
1211
} from "../capabilities.ts";
13-
import { stringify } from "../diff.ts";
12+
import { isSubset, stringify } from "../diff.ts";
1413
import { dependencySections, modifyManifest } from "../helpers.ts";
1514
import { updateDependencies } from "../manifest.ts";
1615
import { ensurePreset, filterPreset, mergePresets } from "../preset.ts";
@@ -46,7 +45,7 @@ function isMisalignedDirect(from: string, to: string): boolean {
4645
}
4746

4847
function isMisalignedPeer(from: string, to: string): boolean {
49-
return from !== to && !semverSubset(to, from, { includePrerelease: true });
48+
return !isSubset(to, from, { includePrerelease: true });
5049
}
5150

5251
/**

packages/align-deps/src/diff.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import type { PackageManifest } from "@rnx-kit/types-node";
2-
import semverCoerce from "semver/functions/coerce.js";
2+
import type { RangeOptions } from "semver";
33
import semverRangeSubset from "semver/ranges/subset.js";
4+
import semverValidRange from "semver/ranges/valid.js";
45
import { dependencySections } from "./helpers.ts";
56
import type { Changes, Options } from "./types.ts";
67

78
function isStrictlyEqual(version: string, range: string) {
89
return version === range;
910
}
1011

11-
export function isSubset(sub: string, dom: string) {
12+
export function isSubset(sub: string, dom: string, options?: RangeOptions) {
1213
// If either side is not a valid version number, fall back to strict equality
13-
if (!semverCoerce(sub) || !semverCoerce(dom)) {
14+
if (!semverValidRange(sub) || !semverValidRange(dom)) {
1415
return isStrictlyEqual(sub, dom);
1516
}
16-
return semverRangeSubset(sub, dom);
17+
return semverRangeSubset(sub, dom, options);
1718
}
1819

1920
export function diff(

0 commit comments

Comments
 (0)