yarn-berry-deduplicate 7.0.1 → 7.0.2
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/dist/applyClusterFixes.js +5 -7
- package/dist/applyClusterFixes.js.map +1 -1
- package/dist/applyClusterFixes.test.js +67 -33
- package/dist/applyClusterFixes.test.js.map +1 -1
- package/dist/bin/yarn-berry-deduplicate.test.js +45 -44
- package/dist/bin/yarn-berry-deduplicate.test.js.map +1 -1
- package/dist/dedupeEndToEnd.test.js +36 -33
- package/dist/dedupeEndToEnd.test.js.map +1 -1
- package/dist/definitions/applyClusterFixes.d.ts +3 -2
- package/dist/definitions/applyClusterFixes.d.ts.map +1 -1
- package/dist/displayMany.test.js +15 -14
- package/dist/displayMany.test.js.map +1 -1
- package/dist/helpers/applyIdentifiedFixesToYarnLock.test.js +40 -39
- package/dist/helpers/applyIdentifiedFixesToYarnLock.test.js.map +1 -1
- package/dist/helpers/buildYarnPackagesMap.test.js +6 -8
- package/dist/helpers/buildYarnPackagesMap.test.js.map +1 -1
- package/dist/helpers/collectWorkspaces.test.js +6 -5
- package/dist/helpers/collectWorkspaces.test.js.map +1 -1
- package/dist/helpers/collectYarnDependents.test.js +23 -21
- package/dist/helpers/collectYarnDependents.test.js.map +1 -1
- package/dist/helpers/packageJsonResolutions.test.js +5 -4
- package/dist/helpers/packageJsonResolutions.test.js.map +1 -1
- package/dist/helpers/parseYarnLockPackages.test.js +12 -9
- package/dist/helpers/parseYarnLockPackages.test.js.map +1 -1
- package/dist/helpers/toLockstepGraph.test.js +7 -6
- package/dist/helpers/toLockstepGraph.test.js.map +1 -1
- package/dist/helpers/yarnDescriptor.test.js +12 -12
- package/dist/helpers/yarnDescriptor.test.js.map +1 -1
- package/dist/identifyClusterFixes.test.js +28 -28
- package/dist/identifyClusterFixes.test.js.map +1 -1
- package/dist/identifyResolutionFixes.test.js +14 -13
- package/dist/identifyResolutionFixes.test.js.map +1 -1
- package/dist/readYarnLock.test.js +5 -4
- package/dist/readYarnLock.test.js.map +1 -1
- package/package.json +4 -3
- package/src/applyClusterFixes.test.ts +91 -35
- package/src/applyClusterFixes.ts +10 -26
- package/src/bin/yarn-berry-deduplicate.test.ts +59 -48
- package/src/dedupeEndToEnd.test.ts +59 -54
- package/src/displayMany.test.ts +15 -18
- package/src/helpers/applyIdentifiedFixesToYarnLock.test.ts +67 -56
- package/src/helpers/buildYarnPackagesMap.test.ts +20 -18
- package/src/helpers/collectWorkspaces.test.ts +17 -13
- package/src/helpers/collectYarnDependents.test.ts +103 -87
- package/src/helpers/packageJsonResolutions.test.ts +10 -6
- package/src/helpers/parseYarnLockPackages.test.ts +27 -16
- package/src/helpers/toLockstepGraph.test.ts +7 -6
- package/src/helpers/yarnDescriptor.test.ts +36 -25
- package/src/identifyClusterFixes.test.ts +34 -30
- package/src/identifyResolutionFixes.test.ts +35 -27
- package/src/readYarnLock.test.ts +10 -7
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepStrictEqual, ok, strictEqual } from "node:assert/strict";
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
3
|
import { cpSync, existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
+
import { afterEach, describe, it } from "node:test";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
6
7
|
import { buildYarnPackagesMap } from "./helpers/buildYarnPackagesMap.js";
|
|
7
8
|
import { fixtureDir } from "./helpers/fixtures.js";
|
|
@@ -104,37 +105,39 @@ const linkedVersions = (dir, packageName, nodeLinker) => {
|
|
|
104
105
|
return [...new Set(versions)].toSorted();
|
|
105
106
|
};
|
|
106
107
|
suite("yarn-berry-deduplicate end to end", () => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"printable-shell-command
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"printable-shell-command
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
108
|
+
for (const nodeLinker of ["node-modules", "pnp"]) {
|
|
109
|
+
it(`merges the stale range onto the pinned version and leaves yarn installing it (nodeLinker: ${nodeLinker})`, { timeout: 300_000 }, () => {
|
|
110
|
+
const dir = projects.create();
|
|
111
|
+
cpSync(fixtureDir("e2e-stale-range"), dir, { recursive: true });
|
|
112
|
+
setNodeLinker(dir, nodeLinker);
|
|
113
|
+
const manifestsBefore = ["package.json", "packages/a/package.json"].map((path) => readFileSync(join(dir, path), "utf8"));
|
|
114
|
+
const installed = install(dir);
|
|
115
|
+
strictEqual(installed.status, 0);
|
|
116
|
+
// `a` asks for `^5.0.7` and the lockfile still answers 5.0.7, while `b`
|
|
117
|
+
// pins the 5.3.1 that would satisfy them both
|
|
118
|
+
deepStrictEqual(resolutionsOf(dir, "printable-shell-command"), [
|
|
119
|
+
"printable-shell-command@npm:5.3.1",
|
|
120
|
+
"printable-shell-command@npm:5.0.7",
|
|
121
|
+
]);
|
|
122
|
+
const check = dedupe(dir, "--check");
|
|
123
|
+
strictEqual(check.status, 1);
|
|
124
|
+
const applied = dedupe(dir);
|
|
125
|
+
strictEqual(applied.status, 0);
|
|
126
|
+
ok(applied.output.includes("yarn.lock updated"));
|
|
127
|
+
// the rewrite only asks; yarn is what applies it
|
|
128
|
+
const reinstalled = install(dir);
|
|
129
|
+
strictEqual(reinstalled.status, 0);
|
|
130
|
+
deepStrictEqual(resolutionsOf(dir, "printable-shell-command"), [
|
|
131
|
+
"printable-shell-command@npm:5.3.1",
|
|
132
|
+
]);
|
|
133
|
+
// the same thing again, read from what yarn actually put on disk
|
|
134
|
+
deepStrictEqual(linkedVersions(dir, "printable-shell-command", nodeLinker), ["5.3.1"]);
|
|
135
|
+
// nothing was pinned into a manifest to hold it there
|
|
136
|
+
deepStrictEqual(["package.json", "packages/a/package.json"].map((path) => readFileSync(join(dir, path), "utf8")), manifestsBefore);
|
|
137
|
+
// and yarn agrees the lockfile is one CI could install from as it stands
|
|
138
|
+
strictEqual(install(dir, "--immutable").status, 0);
|
|
139
|
+
strictEqual(dedupe(dir, "--check").status, 0);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
139
142
|
});
|
|
140
143
|
//# sourceMappingURL=dedupeEndToEnd.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupeEndToEnd.test.js","sourceRoot":"","sources":["../src/dedupeEndToEnd.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dedupeEndToEnd.test.js","sourceRoot":"","sources":["../src/dedupeEndToEnd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClusterFix, DuplicateSnapshot, PackageFilterOptions, PlannedOverride } from "pm-dedup-core";
|
|
1
|
+
import type { ClusterFix, DuplicateSnapshot, PackageFilterOptions, PlannedOverride, VersionsSnapshot } from "pm-dedup-core";
|
|
2
2
|
export type ClusterApplyStatus = "applied" | "dry-run" | "nothing-to-do" | "reverted";
|
|
3
3
|
export interface ClusterApplyOutcome {
|
|
4
4
|
status: ClusterApplyStatus;
|
|
@@ -15,9 +15,10 @@ export interface ApplyClusterFixesOptions {
|
|
|
15
15
|
verifyFrozen?: () => number | null;
|
|
16
16
|
readFixes?: (projectDir: string) => ClusterFix[];
|
|
17
17
|
readDuplicates?: (lockPath: string) => DuplicateSnapshot;
|
|
18
|
+
readVersions?: (lockPath: string) => VersionsSnapshot;
|
|
18
19
|
filter?: PackageFilterOptions;
|
|
19
20
|
packageManagerResiduals?: string;
|
|
20
21
|
color?: boolean;
|
|
21
22
|
}
|
|
22
|
-
export declare const applyClusterFixes: ({ projectDir, dryRun, log, resolve, verifyFrozen, readFixes, readDuplicates, filter, packageManagerResiduals, color, }: ApplyClusterFixesOptions) => ClusterApplyOutcome;
|
|
23
|
+
export declare const applyClusterFixes: ({ projectDir, dryRun, log, resolve, verifyFrozen, readFixes, readDuplicates, readVersions, filter, packageManagerResiduals, color, }: ApplyClusterFixesOptions) => ClusterApplyOutcome;
|
|
23
24
|
//# sourceMappingURL=applyClusterFixes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyClusterFixes.d.ts","sourceRoot":"","sources":["../../src/applyClusterFixes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyClusterFixes.d.ts","sourceRoot":"","sources":["../../src/applyClusterFixes.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EAGjB,oBAAoB,EAEpB,eAAe,EAEf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAiBvB,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,eAAe,GACf,UAAU,CAAC;AAEf,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,iBAAiB,CAAC;IAEzB,eAAe,EAAE,eAAe,EAAE,CAAC;IAEnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,iBAAiB,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAGtD,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAG9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAGjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA2CD,eAAO,MAAM,iBAAiB,yIAiB3B,wBAAwB,KAAG,mBA8R7B,CAAC"}
|
package/dist/displayMany.test.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { match, ok } from "node:assert/strict";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
2
3
|
import { buildIdentifiedFixesMap } from "pm-dedup-core";
|
|
3
4
|
import { displayMany } from "./displayMany.js";
|
|
4
5
|
import { filterDuplicatesYarnPackagesMap } from "./helpers/buildYarnPackagesMap.js";
|
|
@@ -34,46 +35,46 @@ const render = (scenario, overrides = {}) => {
|
|
|
34
35
|
describe("displayMany", () => {
|
|
35
36
|
it("lists each version of a duplicated package, highest first", () => {
|
|
36
37
|
const output = render("duplicated-printable-shell-command");
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
ok(output.includes("printable-shell-command — 2 versions"));
|
|
39
|
+
ok(output.indexOf("\n 5.0.8") < output.indexOf("\n 5.0.7"));
|
|
39
40
|
});
|
|
40
41
|
it("names each requester and the range it declares", () => {
|
|
41
42
|
const output = render("duplicated-printable-shell-command");
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
ok(output.includes("package.json in dependencies"));
|
|
44
|
+
ok(output.includes("uses-psc@npm:1.0.0"));
|
|
45
|
+
ok(output.includes("^5.0.8"));
|
|
45
46
|
});
|
|
46
47
|
// the range alone does not say which declaration it comes from when the
|
|
47
48
|
// requester reaches the package through a key of another name
|
|
48
49
|
it("says when a range comes from an aliased declaration", () => {
|
|
49
|
-
|
|
50
|
+
ok(render("mergeable-alias").includes('(as "psc")'));
|
|
50
51
|
});
|
|
51
52
|
// a peer requester constrains the version without holding a copy of its own,
|
|
52
53
|
// so the range has to be attributable to the block it comes from
|
|
53
54
|
it("says when a range comes from a peerDependencies declaration", () => {
|
|
54
55
|
const output = render("peer-range-constrains-merge");
|
|
55
|
-
|
|
56
|
+
match(output, /uses-peer@npm:1\.0\.0 +requires "\^1\.0\.0" \(peer\)/u);
|
|
56
57
|
// a real dependency edge onto the same package stays unmarked
|
|
57
|
-
|
|
58
|
+
match(output, /holder@npm:2\.0\.0 +requires "\*"\n/u);
|
|
58
59
|
});
|
|
59
60
|
// the version is enough: the package name is the block it sits under
|
|
60
61
|
it("shows the merge as versions, not resolutions", () => {
|
|
61
62
|
const output = render("duplicated-printable-shell-command");
|
|
62
|
-
|
|
63
|
+
ok(output.includes(" 5.0.7 can be deduped to 5.0.8 (upgrade)"));
|
|
63
64
|
});
|
|
64
65
|
it("names a downgrade as one", () => {
|
|
65
|
-
|
|
66
|
+
ok(render("exact-pin-forces-downgrade").includes("down"));
|
|
66
67
|
});
|
|
67
68
|
it("renders the lockstep clusters it is given", () => {
|
|
68
69
|
const { packages, packagesMap, workspaces } = loadFixture("duplicated-typescript-eslint");
|
|
69
70
|
const output = render("duplicated-typescript-eslint", {
|
|
70
71
|
clusterFixes: identifyClusterFixes(packagesMap, packages, workspaces),
|
|
71
72
|
});
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
ok(output.includes("@typescript-eslint"));
|
|
74
|
+
ok(output.includes("8.43.0"));
|
|
74
75
|
});
|
|
75
76
|
it("reports a lockfile with no duplicate", () => {
|
|
76
|
-
|
|
77
|
+
ok(render("simple").includes("0"));
|
|
77
78
|
});
|
|
78
79
|
});
|
|
79
80
|
//# sourceMappingURL=displayMany.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayMany.test.js","sourceRoot":"","sources":["../src/displayMany.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"displayMany.test.js","sourceRoot":"","sources":["../src/displayMany.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,kFAAkF;AAClF,mEAAmE;AACnE,MAAM,MAAM,GAAG,CACb,QAAgB,EAChB,SAAS,GAAgC,EAAE,EACnC,EAAE;IACV,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,qBAAqB,CAAC;QACvC,QAAQ;QACR,UAAU;QACV,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;KAC1C,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,WAAW,CAAC;QACV,KAAK,EAAE,YAAY;QACnB,qBAAqB,EAAE,UAAU;QACjC,UAAU;QACV,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;QAClD,kBAAkB,EAAE,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC;QACnE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC;QAC3B,CAAC;QACD,GAAG,SAAS;KACb,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAE5D,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAE5D,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACpD,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC1C,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,8DAA8D;IAC9D,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,iEAAiE;IACjE,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAErD,KAAK,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;QACvE,8DAA8D;QAC9D,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAE5D,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,WAAW,CACvD,8BAA8B,CAC/B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,8BAA8B,EAAE;YACpD,YAAY,EAAE,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;SACtE,CAAC,CAAC;QAEH,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC1C,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepStrictEqual, ok, strictEqual, throws } from "node:assert/strict";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
2
3
|
import { buildIdentifiedFixesMap, createPackageFilter, selectPackages, } from "pm-dedup-core";
|
|
3
4
|
import { applyIdentifiedFixesToYarnLock } from "./applyIdentifiedFixesToYarnLock.js";
|
|
4
5
|
import { filterDuplicatesYarnPackagesMap } from "./buildYarnPackagesMap.js";
|
|
@@ -34,10 +35,10 @@ const entryForDescriptor = (entries, descriptor) => {
|
|
|
34
35
|
describe("applyIdentifiedFixesToYarnLock", () => {
|
|
35
36
|
it("merges two resolutions onto the version that satisfies every dependent", () => {
|
|
36
37
|
const { after, changed, changedKeys } = dedupeFixture("duplicated-printable-shell-command");
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
strictEqual(changed, true);
|
|
39
|
+
deepStrictEqual(changedKeys, ["printable-shell-command@npm:^5.0.7"]);
|
|
40
|
+
ok(after.includes('"printable-shell-command@npm:^5.0.7, printable-shell-command@npm:^5.0.8":'));
|
|
41
|
+
ok(!after.includes('resolution: "printable-shell-command@npm:5.0.7"'));
|
|
41
42
|
});
|
|
42
43
|
// a descriptor dropped here is a dependency yarn would stop resolving
|
|
43
44
|
it("keeps every input descriptor", () => {
|
|
@@ -49,75 +50,75 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
49
50
|
]) {
|
|
50
51
|
const { entries } = dedupeFixture(name);
|
|
51
52
|
const { packagesMap } = loadFixture(name);
|
|
52
|
-
|
|
53
|
+
strictEqual(descriptorsOf(entries).length, Object.values(packagesMap).flatMap((r) => r.flatMap((x) => x.installations)).length);
|
|
53
54
|
}
|
|
54
55
|
});
|
|
55
56
|
// a yarn.lock key is the range a requester declared, and that is what yarn
|
|
56
57
|
// matches against: the range stays and the entry under it changes
|
|
57
58
|
it("moves a descriptor onto the target entry without rewriting it", () => {
|
|
58
59
|
const { entries } = dedupeFixture("duplicated-printable-shell-command");
|
|
59
|
-
|
|
60
|
-
.resolution
|
|
60
|
+
strictEqual(entryForDescriptor(entries, "printable-shell-command@npm:^5.0.7")
|
|
61
|
+
.resolution, "printable-shell-command@npm:5.0.8");
|
|
61
62
|
});
|
|
62
63
|
it("keeps an alias's own key when it moves", () => {
|
|
63
64
|
const { entries, after } = dedupeFixture("mergeable-alias");
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
.resolution
|
|
65
|
+
ok(after.includes('"printable-shell-command@npm:^5.0.8, psc@npm:printable-shell-command@^5.0.0":'));
|
|
66
|
+
strictEqual(entryForDescriptor(entries, "psc@npm:printable-shell-command@^5.0.0")
|
|
67
|
+
.resolution, "printable-shell-command@npm:5.0.8");
|
|
67
68
|
});
|
|
68
69
|
it("leaves a clean lockfile byte-identical", () => {
|
|
69
70
|
const { before, after, changed } = dedupeFixture("simple");
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
strictEqual(changed, false);
|
|
72
|
+
strictEqual(after, before);
|
|
72
73
|
});
|
|
73
74
|
it("does not merge ranges that do not overlap", () => {
|
|
74
75
|
const { before, after, changed } = dedupeFixture("duplicated-babel-frame");
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
strictEqual(changed, false);
|
|
77
|
+
strictEqual(after, before);
|
|
77
78
|
});
|
|
78
79
|
it("leaves an alias whose range covers nothing else alone", () => {
|
|
79
80
|
const { before, after, changed } = dedupeFixture("aliased-range-constrains-merge");
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
strictEqual(changed, false);
|
|
82
|
+
strictEqual(after, before);
|
|
82
83
|
});
|
|
83
84
|
it("leaves a pair a peer range forbids merging alone", () => {
|
|
84
85
|
const { before, after, changed } = dedupeFixture("peer-range-constrains-merge");
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
strictEqual(changed, false);
|
|
87
|
+
strictEqual(after, before);
|
|
87
88
|
});
|
|
88
89
|
it("leaves workspace, patch and git resolutions untouched", () => {
|
|
89
90
|
const { before, after, changed } = dedupeFixture("non-npm");
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
strictEqual(changed, false);
|
|
92
|
+
strictEqual(after, before);
|
|
92
93
|
});
|
|
93
94
|
it("merges onto a lower version when an exact pin is the only common one", () => {
|
|
94
95
|
const { after, changed } = dedupeFixture("exact-pin-forces-downgrade");
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
strictEqual(changed, true);
|
|
97
|
+
ok(after.includes('"barcode-detector@npm:3.0.3, barcode-detector@npm:^3.0.0":'));
|
|
98
|
+
ok(!after.includes('resolution: "barcode-detector@npm:3.2.2"'));
|
|
98
99
|
// the entry the merged descriptors now share is the pinned one
|
|
99
|
-
|
|
100
|
+
ok(after.includes('resolution: "barcode-detector@npm:3.0.3"'));
|
|
100
101
|
});
|
|
101
102
|
describe("package filters", () => {
|
|
102
103
|
it("moves nothing outside the selected packages", () => {
|
|
103
104
|
const { after, before, changed } = dedupeFixture("workspaces", {
|
|
104
105
|
include: ["lodash"],
|
|
105
106
|
});
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
strictEqual(changed, false);
|
|
108
|
+
strictEqual(after, before);
|
|
108
109
|
});
|
|
109
110
|
it("moves the selected package", () => {
|
|
110
111
|
const { changed, changedKeys } = dedupeFixture("workspaces", {
|
|
111
112
|
include: ["semver"],
|
|
112
113
|
});
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
strictEqual(changed, true);
|
|
115
|
+
deepStrictEqual(changedKeys, ["semver@npm:^7.6.0"]);
|
|
115
116
|
});
|
|
116
117
|
it("honours an exclusion", () => {
|
|
117
118
|
const { changed } = dedupeFixture("workspaces", {
|
|
118
119
|
exclude: ["semver"],
|
|
119
120
|
});
|
|
120
|
-
|
|
121
|
+
strictEqual(changed, false);
|
|
121
122
|
});
|
|
122
123
|
});
|
|
123
124
|
// group membership is by target version, which is not the same as which
|
|
@@ -148,8 +149,8 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
148
149
|
],
|
|
149
150
|
]);
|
|
150
151
|
const { entries: after } = applyIdentifiedFixesToYarnLock(entries, fixes);
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
strictEqual(packageEntries(after).length, 1);
|
|
153
|
+
deepStrictEqual(entryForDescriptor(after, "lib@npm:^1.0.0"), {
|
|
153
154
|
key: "lib@npm:1.5.0, lib@npm:^1.0.0",
|
|
154
155
|
resolution: "lib@npm:1.5.0",
|
|
155
156
|
});
|
|
@@ -163,7 +164,7 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
163
164
|
version: 1.0.0
|
|
164
165
|
resolution: "lib@npm:1.0.0"
|
|
165
166
|
`);
|
|
166
|
-
|
|
167
|
+
throws(() => applyIdentifiedFixesToYarnLock(entries, new Map([
|
|
167
168
|
[
|
|
168
169
|
"lib",
|
|
169
170
|
[
|
|
@@ -173,7 +174,7 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
173
174
|
},
|
|
174
175
|
],
|
|
175
176
|
],
|
|
176
|
-
]))
|
|
177
|
+
])), /No lockfile entry found for "lib@npm:9\.9\.9"/u);
|
|
177
178
|
});
|
|
178
179
|
// two fixes for one package can chain: stopping at the first hop would leave
|
|
179
180
|
// a descriptor on an entry that itself moved away
|
|
@@ -208,8 +209,8 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
208
209
|
],
|
|
209
210
|
],
|
|
210
211
|
]));
|
|
211
|
-
|
|
212
|
-
|
|
212
|
+
strictEqual(packageEntries(after).length, 1);
|
|
213
|
+
strictEqual(entryForDescriptor(after, "lib@npm:^1.0.0").resolution, "lib@npm:1.5.0");
|
|
213
214
|
});
|
|
214
215
|
// two versions each said to replace the other is an instruction no rewrite
|
|
215
216
|
// can honour; obeying half of it would swap the entries under them
|
|
@@ -234,12 +235,12 @@ describe("applyIdentifiedFixesToYarnLock", () => {
|
|
|
234
235
|
],
|
|
235
236
|
],
|
|
236
237
|
]));
|
|
237
|
-
|
|
238
|
-
|
|
238
|
+
strictEqual(result.changed, false);
|
|
239
|
+
strictEqual(stringifyYarnLock(after), stringifyYarnLock(entries));
|
|
239
240
|
});
|
|
240
241
|
it("keeps __metadata", () => {
|
|
241
242
|
const { entries } = dedupeFixture("duplicated-printable-shell-command");
|
|
242
|
-
|
|
243
|
+
deepStrictEqual(entries.__metadata, { version: "8", cacheKey: "10c0" });
|
|
243
244
|
});
|
|
244
245
|
});
|
|
245
246
|
//# sourceMappingURL=applyIdentifiedFixesToYarnLock.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyIdentifiedFixesToYarnLock.test.js","sourceRoot":"","sources":["../../src/helpers/applyIdentifiedFixesToYarnLock.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"applyIdentifiedFixesToYarnLock.test.js","sourceRoot":"","sources":["../../src/helpers/applyIdentifiedFixesToYarnLock.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepStrictEqual, strictEqual } from "node:assert/strict";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
2
3
|
import { filterDuplicatesYarnPackagesMap } from "./buildYarnPackagesMap.js";
|
|
3
4
|
import { loadFixture } from "./fixtures.js";
|
|
4
5
|
describe("buildYarnPackagesMap", () => {
|
|
5
6
|
it("groups the resolutions of a name and records what asked for each", () => {
|
|
6
7
|
const { packagesMap } = loadFixture("duplicated-printable-shell-command");
|
|
7
|
-
|
|
8
|
+
deepStrictEqual(packagesMap["printable-shell-command"]?.map(({ resolution, installations }) => ({ resolution, installations })), [
|
|
8
9
|
{
|
|
9
10
|
resolution: "printable-shell-command@npm:5.0.7",
|
|
10
11
|
installations: ["printable-shell-command@npm:^5.0.7"],
|
|
@@ -17,21 +18,18 @@ describe("buildYarnPackagesMap", () => {
|
|
|
17
18
|
});
|
|
18
19
|
it("counts one resolution however many descriptors reach it", () => {
|
|
19
20
|
const { packagesMap } = loadFixture("simple");
|
|
20
|
-
|
|
21
|
+
strictEqual(packagesMap.lodash?.length, 1);
|
|
21
22
|
});
|
|
22
23
|
it("keeps only the names resolved more than once", () => {
|
|
23
24
|
const { packagesMap } = loadFixture("duplicated-printable-shell-command");
|
|
24
25
|
const duplicates = filterDuplicatesYarnPackagesMap(packagesMap);
|
|
25
|
-
|
|
26
|
+
deepStrictEqual(Object.keys(duplicates), ["printable-shell-command"]);
|
|
26
27
|
});
|
|
27
28
|
// the patch layer is a second resolution of the same name, and it is one the
|
|
28
29
|
// npm passes must not merge away
|
|
29
30
|
it("reports a patched package alongside the release it patches", () => {
|
|
30
31
|
const { packagesMap } = loadFixture("non-npm");
|
|
31
|
-
|
|
32
|
-
"npm",
|
|
33
|
-
"other",
|
|
34
|
-
]);
|
|
32
|
+
deepStrictEqual(packagesMap.resolve?.map((r) => r.package.type), ["npm", "other"]);
|
|
35
33
|
});
|
|
36
34
|
});
|
|
37
35
|
//# sourceMappingURL=buildYarnPackagesMap.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildYarnPackagesMap.test.js","sourceRoot":"","sources":["../../src/helpers/buildYarnPackagesMap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"buildYarnPackagesMap.test.js","sourceRoot":"","sources":["../../src/helpers/buildYarnPackagesMap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,oCAAoC,CAAC,CAAC;QAE1E,eAAe,CACb,WAAW,CAAC,yBAAyB,CAAC,EAAE,GAAG,CACzC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CACnE,EACD;YACE;gBACE,UAAU,EAAE,mCAAmC;gBAC/C,aAAa,EAAE,CAAC,oCAAoC,CAAC;aACtD;YACD;gBACE,UAAU,EAAE,mCAAmC;gBAC/C,aAAa,EAAE,CAAC,oCAAoC,CAAC;aACtD;SACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,oCAAoC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;QAEhE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,iCAAiC;IACjC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAE/C,eAAe,CACb,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAC/C,CAAC,KAAK,EAAE,OAAO,CAAC,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepStrictEqual, strictEqual } from "node:assert/strict";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
2
3
|
import { collectWorkspaces } from "./collectWorkspaces.js";
|
|
3
4
|
import { loadFixture } from "./fixtures.js";
|
|
4
5
|
import { parseYarnLockPackages } from "./parseYarnLockPackages.js";
|
|
@@ -6,7 +7,7 @@ import { parseYarnLock } from "./syml.js";
|
|
|
6
7
|
describe("collectWorkspaces", () => {
|
|
7
8
|
it("reads the root workspace as the project directory itself", () => {
|
|
8
9
|
const { workspaces } = loadFixture("simple");
|
|
9
|
-
|
|
10
|
+
deepStrictEqual(workspaces, [
|
|
10
11
|
{
|
|
11
12
|
path: "",
|
|
12
13
|
name: "root-workspace",
|
|
@@ -21,7 +22,7 @@ describe("collectWorkspaces", () => {
|
|
|
21
22
|
it("recovers the dependency block from the manifest", () => {
|
|
22
23
|
const { workspaces } = loadFixture("workspaces");
|
|
23
24
|
const app = workspaces.find((workspace) => workspace.path === "packages/app");
|
|
24
|
-
|
|
25
|
+
deepStrictEqual(app?.dependencies, [
|
|
25
26
|
{ key: "lodash", value: "^4.17.0", depType: "dependencies" },
|
|
26
27
|
{ key: "semver", value: "^7.6.0", depType: "devDependencies" },
|
|
27
28
|
]);
|
|
@@ -36,7 +37,7 @@ describe("collectWorkspaces", () => {
|
|
|
36
37
|
dependencies:
|
|
37
38
|
lodash: "npm:^4.17.0"
|
|
38
39
|
`));
|
|
39
|
-
|
|
40
|
+
deepStrictEqual(collectWorkspaces(packages, () => undefined), [
|
|
40
41
|
{
|
|
41
42
|
path: "packages/app",
|
|
42
43
|
name: "app",
|
|
@@ -54,7 +55,7 @@ describe("collectWorkspaces", () => {
|
|
|
54
55
|
version: 0.0.0-use.local
|
|
55
56
|
resolution: "app@workspace:packages/app"
|
|
56
57
|
`));
|
|
57
|
-
|
|
58
|
+
strictEqual(collectWorkspaces(packages, () => undefined).length, 1);
|
|
58
59
|
});
|
|
59
60
|
});
|
|
60
61
|
//# sourceMappingURL=collectWorkspaces.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectWorkspaces.test.js","sourceRoot":"","sources":["../../src/helpers/collectWorkspaces.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"collectWorkspaces.test.js","sourceRoot":"","sources":["../../src/helpers/collectWorkspaces.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7C,eAAe,CAAC,UAAU,EAAE;YAC1B;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,YAAY,EAAE;oBACZ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;iBAC7D;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,mEAAmE;IACnE,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CACzB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc,CACjD,CAAC;QAEF,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE;YACjC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;YAC5D,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,qBAAqB,CACpC,aAAa,CAAC;;;;;;;;CAQnB,CAAC,CACG,CAAC;QAEF,eAAe,CACb,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAC5C;YACE;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE;oBACZ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE;iBACjE;aACF;SACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,QAAQ,GAAG,qBAAqB,CACpC,aAAa,CAAC;;;;;;CAMnB,CAAC,CACG,CAAC;QAEF,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|