pnpm-dedup 2.2.1 → 2.2.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.
Files changed (87) hide show
  1. package/README.md +15 -5
  2. package/dist/applyClusterFixes.js +103 -80
  3. package/dist/applyClusterFixes.js.map +1 -1
  4. package/dist/applyClusterFixes.test.js +257 -29
  5. package/dist/applyClusterFixes.test.js.map +1 -1
  6. package/dist/bin/pnpm-why-duplicate.test.js +17 -8
  7. package/dist/bin/pnpm-why-duplicate.test.js.map +1 -1
  8. package/dist/dedupe.js +15 -4
  9. package/dist/dedupe.js.map +1 -1
  10. package/dist/dedupeCheckConsistency.test.js +53 -59
  11. package/dist/dedupeCheckConsistency.test.js.map +1 -1
  12. package/dist/dedupeEndToEnd.test.js +3 -3
  13. package/dist/dedupeEndToEnd.test.js.map +1 -1
  14. package/dist/dedupePeers.test.js +1 -1
  15. package/dist/dedupePeers.test.js.map +1 -1
  16. package/dist/definitions/applyClusterFixes.d.ts +6 -3
  17. package/dist/definitions/applyClusterFixes.d.ts.map +1 -1
  18. package/dist/definitions/dedupe.d.ts.map +1 -1
  19. package/dist/definitions/helpers/describeUnheldOverride.d.ts +10 -0
  20. package/dist/definitions/helpers/describeUnheldOverride.d.ts.map +1 -0
  21. package/dist/definitions/helpers/describeUnheldOverride.test.d.ts +2 -0
  22. package/dist/definitions/helpers/describeUnheldOverride.test.d.ts.map +1 -0
  23. package/dist/definitions/helpers/pnpmWorkspaceYaml.d.ts +1 -5
  24. package/dist/definitions/helpers/pnpmWorkspaceYaml.d.ts.map +1 -1
  25. package/dist/definitions/pnpmLockTypes.d.ts +1 -0
  26. package/dist/definitions/pnpmLockTypes.d.ts.map +1 -1
  27. package/dist/definitions/readPnpmLock.d.ts +7 -0
  28. package/dist/definitions/readPnpmLock.d.ts.map +1 -1
  29. package/dist/definitions/readPnpmLock.test.d.ts +2 -0
  30. package/dist/definitions/readPnpmLock.test.d.ts.map +1 -0
  31. package/dist/displayMany.test.js +3 -4
  32. package/dist/displayMany.test.js.map +1 -1
  33. package/dist/helpers/buildIdentifiedFixesMap.test.js +1 -1
  34. package/dist/helpers/buildIdentifiedFixesMap.test.js.map +1 -1
  35. package/dist/helpers/buildPnpmPackagesMap.test.js +1 -1
  36. package/dist/helpers/buildPnpmPackagesMap.test.js.map +1 -1
  37. package/dist/helpers/collectDependentRanges.test.js +1 -1
  38. package/dist/helpers/collectDependentRanges.test.js.map +1 -1
  39. package/dist/helpers/collectPnpmDependents.test.js +1 -1
  40. package/dist/helpers/collectPnpmDependents.test.js.map +1 -1
  41. package/dist/helpers/describeUnheldOverride.js +30 -0
  42. package/dist/helpers/describeUnheldOverride.js.map +1 -0
  43. package/dist/helpers/describeUnheldOverride.test.js +80 -0
  44. package/dist/helpers/describeUnheldOverride.test.js.map +1 -0
  45. package/dist/helpers/parsePnpmLockPackages.test.js +1 -1
  46. package/dist/helpers/parsePnpmLockPackages.test.js.map +1 -1
  47. package/dist/helpers/pnpmWorkspaceYaml.js +2 -17
  48. package/dist/helpers/pnpmWorkspaceYaml.js.map +1 -1
  49. package/dist/helpers/pnpmWorkspaceYaml.test.js +3 -5
  50. package/dist/helpers/pnpmWorkspaceYaml.test.js.map +1 -1
  51. package/dist/helpers/readInstalledManifest.test.js +1 -1
  52. package/dist/helpers/readInstalledManifest.test.js.map +1 -1
  53. package/dist/helpers/toLockstepGraph.test.js +1 -1
  54. package/dist/helpers/toLockstepGraph.test.js.map +1 -1
  55. package/dist/identifyClusterFixes.test.js +22 -41
  56. package/dist/identifyClusterFixes.test.js.map +1 -1
  57. package/dist/identifyResolutionFixes.test.js +8 -7
  58. package/dist/identifyResolutionFixes.test.js.map +1 -1
  59. package/dist/readPnpmLock.js +21 -2
  60. package/dist/readPnpmLock.js.map +1 -1
  61. package/dist/readPnpmLock.test.js +43 -0
  62. package/dist/readPnpmLock.test.js.map +1 -0
  63. package/package.json +4 -3
  64. package/src/applyClusterFixes.test.ts +398 -36
  65. package/src/applyClusterFixes.ts +178 -125
  66. package/src/bin/pnpm-why-duplicate.test.ts +31 -8
  67. package/src/dedupe.ts +22 -7
  68. package/src/dedupeCheckConsistency.test.ts +84 -100
  69. package/src/dedupeEndToEnd.test.ts +84 -77
  70. package/src/dedupePeers.test.ts +1 -1
  71. package/src/displayMany.test.ts +4 -4
  72. package/src/helpers/buildIdentifiedFixesMap.test.ts +1 -1
  73. package/src/helpers/buildPnpmPackagesMap.test.ts +1 -1
  74. package/src/helpers/collectDependentRanges.test.ts +1 -1
  75. package/src/helpers/collectPnpmDependents.test.ts +1 -1
  76. package/src/helpers/describeUnheldOverride.test.ts +100 -0
  77. package/src/helpers/describeUnheldOverride.ts +53 -0
  78. package/src/helpers/parsePnpmLockPackages.test.ts +1 -1
  79. package/src/helpers/pnpmWorkspaceYaml.test.ts +2 -5
  80. package/src/helpers/pnpmWorkspaceYaml.ts +5 -20
  81. package/src/helpers/readInstalledManifest.test.ts +1 -1
  82. package/src/helpers/toLockstepGraph.test.ts +1 -1
  83. package/src/identifyClusterFixes.test.ts +27 -58
  84. package/src/identifyResolutionFixes.test.ts +8 -7
  85. package/src/pnpmLockTypes.ts +1 -0
  86. package/src/readPnpmLock.test.ts +65 -0
  87. package/src/readPnpmLock.ts +26 -2
@@ -1,7 +1,7 @@
1
- import { afterEach, describe, it } from "bun:test";
2
1
  import { deepStrictEqual, ok, strictEqual } from "node:assert/strict";
3
2
  import { existsSync, readFileSync, writeFileSync } from "node:fs";
4
3
  import { join } from "node:path";
4
+ import { afterEach, describe, it } from "node:test";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { applyClusterFixes } from "./applyClusterFixes.js";
7
7
  import { createTempProjects } from "./helpers/tempProjects.js";
@@ -16,7 +16,6 @@ const fix = (overrides) => ({
16
16
  excludedMembers: [],
17
17
  anchor: null,
18
18
  reuseFixes: [],
19
- floatingMembers: [],
20
19
  workspaceChanges: [],
21
20
  reResolutionSet: [],
22
21
  externalConstraints: [],
@@ -124,15 +123,203 @@ describe("applyClusterFixes", () => {
124
123
  strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
125
124
  ok(logs.some((line) => line.includes("Removing the overrides")));
126
125
  });
127
- it("keeps the overrides, explaining why in the file and in the result", () => {
126
+ describe("when some overrides do not hold", () => {
127
+ const familyFix = (...convergentMembers) => fix({ applicable: true, target: "2.0.0", convergentMembers });
128
+ /**
129
+ * pnpm as far as the override step can tell, its state kept in the lockfile
130
+ * so that restoring files restores it too. A package with an override in
131
+ * `pnpm-workspace.yaml` merges onto 2.0.0; without one, a merged package
132
+ * stays merged only if `stays` says so, given what was merged before.
133
+ */
134
+ const simulatePnpm = (dir, packages, stays) => {
135
+ const mergedNow = () => new Set(/# merged: (.*)/
136
+ .exec(read(dir, "pnpm-lock.yaml"))?.[1]
137
+ ?.split(",")
138
+ .filter(Boolean));
139
+ return {
140
+ resolve: () => {
141
+ const workspaceYaml = read(dir, "pnpm-workspace.yaml");
142
+ const previous = mergedNow();
143
+ const merged = packages.filter((name) => new RegExp(`"${name}@?":`).test(workspaceYaml) ||
144
+ (previous.has(name) && (stays[name]?.(previous) ?? false)));
145
+ writeFileSync(join(dir, "pnpm-lock.yaml"), `lockfileVersion: '9.0'\n# merged: ${merged.join(",")}\n`);
146
+ return 0;
147
+ },
148
+ readDuplicates: () => {
149
+ const merged = mergedNow();
150
+ return new Set(packages.flatMap((name) => merged.has(name) ? [] : [`${name}@1.0.0`, `${name}@2.0.0`]));
151
+ },
152
+ readVersions: () => {
153
+ const merged = mergedNow();
154
+ return new Map(packages.map((name) => [
155
+ name,
156
+ merged.has(name) ? ["2.0.0"] : ["1.0.0", "2.0.0"],
157
+ ]));
158
+ },
159
+ };
160
+ };
161
+ const branchDependent = (name) => new Map([
162
+ [
163
+ name,
164
+ [
165
+ {
166
+ key: "branch@1.0.0",
167
+ range: "^1.0.0",
168
+ resolvedVersion: "1.0.0",
169
+ requesterName: "branch",
170
+ },
171
+ ],
172
+ ],
173
+ ]);
174
+ const sticky = () => true;
175
+ const stickyWith = (companion) => (merged) => merged.has(companion);
176
+ const run = (dir, fixes, pnpm, logs, dependentRanges = new Map()) => applyClusterFixes({
177
+ projectDir: dir,
178
+ color: false,
179
+ log: (message = "") => logs.push(message),
180
+ pnpmVersion: () => "11.17.0",
181
+ readFixes: () => fixes,
182
+ readDependentRanges: () => dependentRanges,
183
+ ...pnpm,
184
+ });
185
+ const projectFiles = {
186
+ "package.json": manifestContent,
187
+ "pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
188
+ "pnpm-workspace.yaml": workspaceYamlContent,
189
+ };
190
+ const addedIn = (logs, from) => logs.slice(from).filter((line) => /^ {2}"\w+@": "2\.0\.0"/.test(line));
191
+ it("keeps only the overrides that hold, and leaves none behind", () => {
192
+ const dir = makeProject(projectFiles);
193
+ const logs = [];
194
+ const pnpm = simulatePnpm(dir, ["leaf", "twig"], { leaf: sticky });
195
+ const outcome = run(dir, [familyFix("leaf", "twig")], pnpm, logs, branchDependent("twig"));
196
+ strictEqual(outcome.status, "applied");
197
+ deepStrictEqual([...outcome.after], ["twig@1.0.0", "twig@2.0.0"]);
198
+ deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["twig"]);
199
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
200
+ const retry = logs.indexOf("Retrying with only the overrides that held:");
201
+ ok(retry > 0);
202
+ deepStrictEqual(addedIn(logs, retry), [' "leaf@": "2.0.0" (converge)']);
203
+ ok(logs.includes("pnpm resolves these back without an override, so they are not merged:"));
204
+ ok(logs.includes(" twig onto 2.0.0:"));
205
+ ok(logs.includes(' branch@1.0.0 requires "^1.0.0"'));
206
+ });
207
+ it("reverts and says so when an override does not merge even while present", () => {
208
+ const dir = makeProject(projectFiles);
209
+ const logs = [];
210
+ const pnpm = simulatePnpm(dir, ["leaf"], {});
211
+ // pnpm ignores the override: the declared range rejects the version
212
+ const inert = { ...pnpm, resolve: () => 0 };
213
+ const outcome = run(dir, [familyFix("leaf")], inert, logs, branchDependent("leaf"));
214
+ strictEqual(outcome.status, "reverted");
215
+ deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["leaf"]);
216
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
217
+ ok(logs.includes("Not merged even with an override:"));
218
+ ok(logs.includes(" No override holds on its own — reverting them"));
219
+ });
220
+ it("keeps the range edits when no override holds", () => {
221
+ const dir = makeProject(projectFiles);
222
+ const logs = [];
223
+ const pnpm = simulatePnpm(dir, ["metro-config"], {});
224
+ const outcome = run(dir, [metroFix], pnpm, logs);
225
+ strictEqual(outcome.status, "applied");
226
+ ok(read(dir, "package.json").includes('"metro": "0.87.0"'));
227
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
228
+ });
229
+ it("drops an override that only held alongside one a round lost", () => {
230
+ const dir = makeProject(projectFiles);
231
+ const logs = [];
232
+ const pnpm = simulatePnpm(dir, ["leaf", "twig", "bud"], {
233
+ leaf: sticky,
234
+ twig: stickyWith("bud"),
235
+ });
236
+ const outcome = run(dir, [familyFix("leaf", "twig", "bud")], pnpm, logs);
237
+ strictEqual(outcome.status, "applied");
238
+ deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["bud", "twig"]);
239
+ deepStrictEqual(addedIn(logs, logs.lastIndexOf("Retrying with only the overrides that held:")), [' "leaf@": "2.0.0" (converge)']);
240
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
241
+ });
242
+ it("gives up after three rounds", () => {
243
+ const dir = makeProject(projectFiles);
244
+ const logs = [];
245
+ const pnpm = simulatePnpm(dir, ["leaf", "twig", "bud", "seed"], {
246
+ leaf: sticky,
247
+ twig: stickyWith("bud"),
248
+ bud: stickyWith("seed"),
249
+ });
250
+ const outcome = run(dir, [familyFix("leaf", "twig", "bud", "seed")], pnpm, logs);
251
+ strictEqual(outcome.status, "reverted");
252
+ strictEqual(outcome.stickyOverrides.length, 4);
253
+ strictEqual(logs.filter((line) => line.startsWith("Retrying")).length, 2);
254
+ ok(logs.includes(" Overrides still came apart after 3 rounds — reverting them"));
255
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
256
+ deepStrictEqual(outcome.after, outcome.before);
257
+ });
258
+ it("keeps the same rule with plain overrides", () => {
259
+ const dir = makeProject(projectFiles);
260
+ const logs = [];
261
+ const pnpm = simulatePnpm(dir, ["leaf", "twig"], { leaf: sticky });
262
+ const outcome = applyClusterFixes({
263
+ projectDir: dir,
264
+ color: false,
265
+ log: (message = "") => logs.push(message),
266
+ convergenceOverrides: false,
267
+ readFixes: () => [familyFix("leaf", "twig")],
268
+ readDependentRanges: () => new Map(),
269
+ ...pnpm,
270
+ });
271
+ strictEqual(outcome.status, "applied");
272
+ deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["twig"]);
273
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
274
+ });
275
+ });
276
+ it("writes the override for a member nothing duplicates that holds its family apart", () => {
277
+ const dir = makeProject({
278
+ "package.json": manifestContent,
279
+ "pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
280
+ "pnpm-workspace.yaml": workspaceYamlContent,
281
+ });
282
+ const logs = [];
283
+ let parentMoved = false;
284
+ const outcome = applyClusterFixes({
285
+ projectDir: dir,
286
+ color: false,
287
+ log: (message = "") => logs.push(message),
288
+ pnpmVersion: () => "11.17.0",
289
+ readFixes: () => [
290
+ fix({
291
+ applicable: true,
292
+ target: "2.0.0",
293
+ convergentMembers: ["leaf"],
294
+ reResolutionSet: ["parent"],
295
+ }),
296
+ ],
297
+ readDuplicates: () => parentMoved ? snapshot() : snapshot("leaf@1.0.0", "leaf@2.0.0"),
298
+ readVersions: () => new Map([
299
+ ["leaf", parentMoved ? ["2.0.0"] : ["1.0.0", "2.0.0"]],
300
+ ["parent", [parentMoved ? "2.0.0" : "1.0.0"]],
301
+ ]),
302
+ resolve: () => {
303
+ // parent pins leaf exactly: the family only merges once parent moves
304
+ if (read(dir, "pnpm-workspace.yaml").includes('"parent@"')) {
305
+ parentMoved = true;
306
+ }
307
+ return 0;
308
+ },
309
+ });
310
+ strictEqual(outcome.status, "applied");
311
+ deepStrictEqual(outcome.stickyOverrides, []);
312
+ ok(logs.includes(' "parent@": "2.0.0" (converge)'));
313
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
314
+ });
315
+ it("reverts when the result without overrides adds a duplicate", () => {
128
316
  const dir = makeProject({
129
317
  "package.json": manifestContent,
130
318
  "pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
131
319
  "pnpm-workspace.yaml": workspaceYamlContent,
132
320
  });
133
- const duplicated = snapshot("leaf@1.0.0", "leaf@2.0.0");
134
- let duplicates = duplicated;
135
321
  const logs = [];
322
+ let duplicates = snapshot("leaf@1.0.0", "leaf@2.0.0");
136
323
  const outcome = applyClusterFixes({
137
324
  projectDir: dir,
138
325
  color: false,
@@ -141,24 +328,15 @@ describe("applyClusterFixes", () => {
141
328
  readFixes: () => [leafFix],
142
329
  readDuplicates: () => duplicates,
143
330
  resolve: () => {
144
- // the duplicate only stays away while the override is there
145
331
  duplicates = read(dir, "pnpm-workspace.yaml").includes('"leaf@"')
146
332
  ? snapshot()
147
- : duplicated;
333
+ : snapshot("leaf@1.0.0", "leaf@2.0.0", "other@1.0.0", "other@2.0.0");
148
334
  return 0;
149
335
  },
150
336
  });
151
- strictEqual(outcome.status, "kept-overrides");
152
- deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["leaf"]);
153
- const workspaceYaml = read(dir, "pnpm-workspace.yaml");
154
- ok(workspaceYaml.includes('"leaf@": "2.0.0"'));
155
- ok(workspaceYaml.includes("# Added by pnpm-dedup."));
156
- ok(workspaceYaml.includes("# handled without a standing override: https://github.com"));
157
- // the user's own content survives the write
158
- ok(workspaceYaml.includes("# keep me"));
159
- ok(workspaceYaml.includes("resolutionMode: time-based"));
160
- ok(logs.some((line) => line.includes("github.com/christophehurpeau")));
161
- ok(logs.some((line) => line.includes("Kept in")));
337
+ strictEqual(outcome.status, "reverted");
338
+ ok(logs.includes(" removing the overrides introduced 2 new duplicate(s) — reverting"));
339
+ strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
162
340
  });
163
341
  it("writes plain overrides and skips the version gate when convergence is disabled", () => {
164
342
  const dir = makeProject({
@@ -205,17 +383,9 @@ describe("applyClusterFixes", () => {
205
383
  pnpmVersion: () => "11.17.0",
206
384
  readFixes: () => [
207
385
  fix({
208
- anchor: "0.84.5",
209
- reuseFixes: [
210
- {
211
- requester: "@tamagui/metro-plugin@1.0.0",
212
- requesterName: "@tamagui/metro-plugin",
213
- packageName: "metro-config",
214
- range: "*",
215
- from: "0.87.0",
216
- to: "0.84.5",
217
- },
218
- ],
386
+ applicable: true,
387
+ target: "0.84.5",
388
+ convergentMembers: ["metro-config"],
219
389
  externalConstraints: [
220
390
  {
221
391
  requester: "@react-native/community-cli-plugin@0.87.0",
@@ -324,6 +494,64 @@ describe("applyClusterFixes", () => {
324
494
  ok(logs.some((line) => line.startsWith("Would apply:")));
325
495
  ok(outcome.plannedChangeCount > 0);
326
496
  });
497
+ describe("an open range that ignored the pinned version", () => {
498
+ const reuseFix = (requesterName, packageName, range, from, to) => fix({
499
+ anchor: to,
500
+ reuseFixes: [
501
+ {
502
+ requester: `${requesterName}@1.0.0`,
503
+ requesterName,
504
+ packageName,
505
+ range,
506
+ from,
507
+ to,
508
+ },
509
+ ],
510
+ });
511
+ // the metro fixture's wildcard, and alouette's peer
512
+ const reuseFixes = [
513
+ reuseFix("@tamagui/metro-plugin", "metro-config", "*", "0.87.0", "0.84.5"),
514
+ reuseFix("react-native-css", "lightningcss", ">=1.27.0", "1.33.0", "1.30.1"),
515
+ ];
516
+ const planFor = (fixes) => {
517
+ const dir = makeProject({
518
+ "package.json": manifestContent,
519
+ "pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
520
+ });
521
+ const logs = [];
522
+ const outcome = applyClusterFixes({
523
+ projectDir: dir,
524
+ color: false,
525
+ dryRun: true,
526
+ log: (message = "") => logs.push(message),
527
+ pnpmVersion: () => "11.17.0",
528
+ readFixes: () => fixes,
529
+ readDuplicates: () => snapshot(),
530
+ resolve: () => {
531
+ throw new Error("a dry run must not resolve");
532
+ },
533
+ });
534
+ return { outcome, logs };
535
+ };
536
+ it("plans nothing for them: pnpm resolves them back to the highest copy", () => {
537
+ const { outcome, logs } = planFor(reuseFixes);
538
+ // `--check` has nothing to fail on, run after run
539
+ strictEqual(outcome.plannedChangeCount, 0);
540
+ ok(!logs.some((line) => line.includes("(reuse)")));
541
+ });
542
+ it("lets the family's own target through instead", () => {
543
+ const { logs } = planFor([
544
+ fix({
545
+ ...reuseFixes[0],
546
+ applicable: true,
547
+ target: "0.87.0",
548
+ convergentMembers: ["metro-config"],
549
+ }),
550
+ ]);
551
+ ok(logs.some((line) => line.includes('"metro-config@": "0.87.0" (converge)')));
552
+ ok(!logs.some((line) => line.includes("ignoring")));
553
+ });
554
+ });
327
555
  it("renders repo-relative paths and the transient override file", () => {
328
556
  const dir = makeProject({
329
557
  "package.json": manifestContent,
@@ -1 +1 @@
1
- {"version":3,"file":"applyClusterFixes.test.js","sourceRoot":"","sources":["../src/applyClusterFixes.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyClusterFixes.test.js","sourceRoot":"","sources":["../src/applyClusterFixes.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { afterEach, describe, expect, it } from "bun:test";
1
+ import { ok, strictEqual } from "node:assert/strict";
2
2
  import { spawnSync } from "node:child_process";
3
3
  import { cpSync, mkdirSync, realpathSync } 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 { createTempProjects } from "../helpers/tempProjects.js";
7
8
  // The bins run from `src` under the test runtime; the `bin` field points at the
@@ -40,18 +41,26 @@ describe("pnpm-why-duplicate", () => {
40
41
  mkdirSync(nested, { recursive: true });
41
42
  const fromRoot = runBin("pnpm-why-duplicate", dir, ["--details"]);
42
43
  const fromNested = runBin("pnpm-why-duplicate", nested, ["--details"]);
43
- expect(fromNested.status).toBe(0);
44
- expect(fromNested.stdout).toBe(fromRoot.stdout);
45
- expect(fromNested.stdout).toContain("printable-shell-command");
46
- expect(fromNested.stderr.trim()).toBe(lockNotice(dir));
47
- expect(fromRoot.stderr).toBe("");
44
+ strictEqual(fromNested.status, 0);
45
+ strictEqual(fromNested.stdout, fromRoot.stdout);
46
+ ok(fromNested.stdout.includes("printable-shell-command"));
47
+ strictEqual(fromNested.stderr.trim(), lockNotice(dir));
48
+ strictEqual(fromRoot.stderr, "");
48
49
  });
49
50
  it("names the lockfile it could not find and exits 1", () => {
50
51
  const dir = projects.create();
51
52
  const result = runBin("pnpm-why-duplicate", dir, []);
52
- expect(result.status).toBe(1);
53
- expect(result.stderr.trim()).toBe(`No pnpm-lock.yaml found in ${realpathSync(dir)} or any parent directory`);
53
+ strictEqual(result.status, 1);
54
+ strictEqual(result.stderr.trim(), `No pnpm-lock.yaml found in ${realpathSync(dir)} or any parent directory`);
54
55
  });
55
56
  });
57
+ it("reports on a lockfile that also resolves the package manager", () => {
58
+ const result = runBin("pnpm-why-duplicate", project("package-manager-document"), ["--details"]);
59
+ strictEqual(result.stderr, "");
60
+ strictEqual(result.status, 0);
61
+ strictEqual(result.stdout, runBin("pnpm-why-duplicate", project("duplicated-printable-shell-command"), ["--details"]).stdout);
62
+ ok(result.stdout.includes("printable-shell-command"));
63
+ ok(!result.stdout.includes("@pnpm/exe"));
64
+ });
56
65
  });
57
66
  //# sourceMappingURL=pnpm-why-duplicate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm-why-duplicate.test.js","sourceRoot":"","sources":["../../src/bin/pnpm-why-duplicate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pnpm-why-duplicate.test.js","sourceRoot":"","sources":["../../src/bin/pnpm-why-duplicate.test.ts"],"names":[],"mappings":"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"}
package/dist/dedupe.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
1
3
  import { countDuplicatedPackages, createPackageFilter, diffVersionsSnapshots, renderDedupeSummary, } from "pm-dedup-core";
2
4
  import { applyClusterFixes } from "./applyClusterFixes.js";
3
5
  import { lockPathOf, resolvePnpmProjectDir } from "./helpers/projectDir.js";
@@ -7,6 +9,17 @@ const residualsMessage = "`pnpm dedupe` would also change the lockfile.";
7
9
  // `pnpm dedupe` merges everything it can and knows nothing of the filter, so
8
10
  // running it would undo the point of a filtered run.
9
11
  const filteredResidualsMessage = "`pnpm dedupe` was not run: it ignores the package filter. Run `pnpm dedupe` yourself, or this command without a filter, to finish the rest.";
12
+ // The comment pnpm-dedup 2.2 wrote above the overrides it kept. Those still
13
+ // apply on every resolution, so a run cannot tell what holds without them.
14
+ const leftoverOverridesMarker = "# Added by pnpm-dedup.";
15
+ const warnOnLeftoverOverrides = (projectDir) => {
16
+ const workspaceYamlPath = join(projectDir, "pnpm-workspace.yaml");
17
+ if (!existsSync(workspaceYamlPath) ||
18
+ !readFileSync(workspaceYamlPath, "utf8").includes(leftoverOverridesMarker)) {
19
+ return;
20
+ }
21
+ console.log(`pnpm-workspace.yaml still has overrides an earlier pnpm-dedup kept (under "${leftoverOverridesMarker.slice(2)}"). This version never keeps any: remove them and run again to see what holds on its own.`);
22
+ };
10
23
  /**
11
24
  * `pnpm dedupe` only merges what it can resolve to a single version on its own:
12
25
  * it never widens a workspace range, and it never repoints an edge that resolved
@@ -47,6 +60,7 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
47
60
  return residualsMessage;
48
61
  return undefined;
49
62
  })();
63
+ warnOnLeftoverOverrides(projectDir);
50
64
  const outcome = applyClusterFixes({
51
65
  projectDir,
52
66
  dryRun,
@@ -54,9 +68,6 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
54
68
  filter,
55
69
  packageManagerResiduals: residuals,
56
70
  });
57
- if (outcome.status === "kept-overrides") {
58
- console.log(`${outcome.stickyOverrides.length} override(s) left in pnpm-workspace.yaml — see the comment above them`);
59
- }
60
71
  if (mode === "check") {
61
72
  process.exitCode =
62
73
  outcome.plannedChangeCount > 0 || (probe !== null && probe.status !== 0)
@@ -70,7 +81,7 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
70
81
  // Applying an override needs a real resolution, and `pnpm dedupe` is the
71
82
  // only one that performs it — so a filtered run that changed something has
72
83
  // already merged whatever else pnpm could reach on its own.
73
- if (outcome.status === "applied" || outcome.status === "kept-overrides") {
84
+ if (outcome.status === "applied") {
74
85
  console.log("`pnpm dedupe` ran to apply the fixes above and merged what it could on its own: the filter bounds the edits made here, not pnpm's resolution.");
75
86
  }
76
87
  console.log(filteredResidualsMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAiBrE,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEzE,6EAA6E;AAC7E,qDAAqD;AACrD,MAAM,wBAAwB,GAC5B,6IAA6I,CAAC;AAEhJ,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,CAAC,UAAkB,EAAQ,EAAE;IAC3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAClE,IACE,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9B,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAC1E,CAAC;QACD,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CACT,8EAA8E,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,2FAA2F,CAC1M,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,EACrB,IAAI,GAAG,OAAO,EACd,oBAAoB,GAAG,IAAI,EAC3B,MAAM,GACP,GAAkB,EAAE;IACnB,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO;IAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC;IAEhE,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE9C,8EAA8E;IAC9E,wDAAwD;IACxD,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC7C,mBAAmB,CAAC;YAClB,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7C,mBAAmB,EAAE,uBAAuB,CAAC,KAAK,CAAC;YACnD,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,+BAA+B;IAC/B,MAAM,KAAK,GACT,MAAM,IAAI,CAAC,QAAQ;QACjB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,SAAS,GAAG,CAAC,GAAuB,EAAE;QAC1C,IAAI,QAAQ;YAAE,OAAO,wBAAwB,CAAC;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC;IAEL,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,UAAU;QACV,MAAM;QACN,oBAAoB;QACpB,MAAM;QACN,uBAAuB,EAAE,SAAS;KACnC,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ;YACd,OAAO,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;QACR,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAE/B,IAAI,QAAQ,EAAE,CAAC;QACb,yEAAyE;QACzE,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CACT,+IAA+I,CAChJ,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,SAAS,EAAE,CAAC;AACd,CAAC"}