dep-up-surgeon 2.2.0 → 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 (56) hide show
  1. package/README.md +107 -22
  2. package/dist/cli/doctor.d.ts +52 -0
  3. package/dist/cli/doctor.d.ts.map +1 -0
  4. package/dist/cli/doctor.js +616 -0
  5. package/dist/cli/doctor.js.map +1 -0
  6. package/dist/cli/doctorCommand.d.ts +2 -0
  7. package/dist/cli/doctorCommand.d.ts.map +1 -0
  8. package/dist/cli/doctorCommand.js +71 -0
  9. package/dist/cli/doctorCommand.js.map +1 -0
  10. package/dist/cli/doctorRenderer.d.ts +21 -0
  11. package/dist/cli/doctorRenderer.d.ts.map +1 -0
  12. package/dist/cli/doctorRenderer.js +79 -0
  13. package/dist/cli/doctorRenderer.js.map +1 -0
  14. package/dist/cli/git.d.ts +11 -0
  15. package/dist/cli/git.d.ts.map +1 -1
  16. package/dist/cli/git.js +45 -9
  17. package/dist/cli/git.js.map +1 -1
  18. package/dist/cli/gitFlow.d.ts.map +1 -1
  19. package/dist/cli/gitFlow.js +7 -0
  20. package/dist/cli/gitFlow.js.map +1 -1
  21. package/dist/cli/lockfileFix.d.ts +91 -0
  22. package/dist/cli/lockfileFix.d.ts.map +1 -0
  23. package/dist/cli/lockfileFix.js +509 -0
  24. package/dist/cli/lockfileFix.js.map +1 -0
  25. package/dist/cli/report.d.ts +4 -0
  26. package/dist/cli/report.d.ts.map +1 -1
  27. package/dist/cli/report.js +5 -0
  28. package/dist/cli/report.js.map +1 -1
  29. package/dist/cli/summary.d.ts.map +1 -1
  30. package/dist/cli/summary.js +221 -2
  31. package/dist/cli/summary.js.map +1 -1
  32. package/dist/cli.js +80 -1
  33. package/dist/cli.js.map +1 -1
  34. package/dist/core/peerResolver.d.ts +82 -0
  35. package/dist/core/peerResolver.d.ts.map +1 -0
  36. package/dist/core/peerResolver.js +213 -0
  37. package/dist/core/peerResolver.js.map +1 -0
  38. package/dist/core/upgrader.d.ts +30 -6
  39. package/dist/core/upgrader.d.ts.map +1 -1
  40. package/dist/core/upgrader.js +195 -14
  41. package/dist/core/upgrader.js.map +1 -1
  42. package/dist/core/workspaces.d.ts +22 -0
  43. package/dist/core/workspaces.d.ts.map +1 -1
  44. package/dist/core/workspaces.js +52 -0
  45. package/dist/core/workspaces.js.map +1 -1
  46. package/dist/types.d.ts +92 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/utils/concurrency.d.ts +55 -0
  49. package/dist/utils/concurrency.d.ts.map +1 -1
  50. package/dist/utils/concurrency.js +46 -1
  51. package/dist/utils/concurrency.js.map +1 -1
  52. package/dist/utils/npm.d.ts +14 -0
  53. package/dist/utils/npm.d.ts.map +1 -1
  54. package/dist/utils/npm.js +48 -0
  55. package/dist/utils/npm.js.map +1 -1
  56. package/package.json +3 -3
@@ -7,15 +7,16 @@ import { addFailure, addUpgrade, createEmptyReport } from './conflict.js';
7
7
  import { isRegistryRange, scanProject } from './scanner.js';
8
8
  import { validateProject } from './validator.js';
9
9
  import { log } from '../utils/logger.js';
10
- import { detectEsmCommonJsBlockage, fetchAllPublishedVersions, fetchLatestVersion, runInstall, } from '../utils/npm.js';
10
+ import { detectEsmCommonJsBlockage, fetchAllPublishedVersions, fetchLatestVersion, fetchVersionPeers, runInstall, } from '../utils/npm.js';
11
11
  import { detectProjectInfo } from './workspaces.js';
12
12
  import { tailLines } from '../utils/output.js';
13
- import { AsyncMutex, createRegistryCache, runWithConcurrency, } from '../utils/concurrency.js';
13
+ import { KeyedMutex, createRegistryCache, runWithConcurrency, } from '../utils/concurrency.js';
14
14
  import { extractClassifiedConflicts, shouldRollbackAfterSuccessfulInstall, } from './conflictAnalyzer.js';
15
15
  import { promptGroupConflictChoice } from '../cli/interactive.js';
16
16
  import { buildLineFallbackOrder } from '../utils/versionFallback.js';
17
17
  import { buildSingletonGroups } from './groups.js';
18
18
  import { buildDynamicLinkedGroups } from './dynamicGroups.js';
19
+ import { buildDomain, describeResolution, resolvePeerRanges, } from './peerResolver.js';
19
20
  const BACKUP_FILENAME = 'package.json.dep-up-surgeon.bak';
20
21
  function classifyInstallOutput(output, opts) {
21
22
  return extractClassifiedConflicts(output ?? '', { rootPackageName: opts.rootPackageName });
@@ -130,13 +131,20 @@ function installFilterOptions(opts) {
130
131
  return {};
131
132
  }
132
133
  /**
133
- * Run `fn` under the shared install/validate mutex if one was provided. At concurrency 1 the
134
- * orchestrator omits the lock entirely → we run inline with zero overhead. The lock guarantees
135
- * that no two targets simultaneously touch the workspace lockfile / `node_modules` tree.
134
+ * Run `fn` under the keyed install mutex if one was provided. At concurrency 1 the
135
+ * orchestrator omits the lock entirely → we run inline with zero overhead.
136
+ *
137
+ * The lock key is the **install directory**: `opts.installCwd ?? opts.cwd`. Two calls with
138
+ * the same key serialize (they'd race on the same lockfile / `node_modules`); calls with
139
+ * different keys run concurrently. For a shared-lockfile monorepo every target passes the
140
+ * same `installCwd = rootCwd`, so this collapses back to strict serialization. For an
141
+ * isolated-lockfile monorepo each target passes its own workspace directory as `installCwd`,
142
+ * so installs parallelize automatically.
136
143
  */
137
144
  async function withInstallLock(opts, fn) {
138
145
  if (opts.installLock) {
139
- return opts.installLock.runExclusive(fn);
146
+ const key = opts.installCwd ?? opts.cwd;
147
+ return opts.installLock.runExclusive(key, fn);
140
148
  }
141
149
  return fn();
142
150
  }
@@ -703,6 +711,78 @@ async function runSinglePackageUpgrade(cwd, scanned, opts, report, ignore) {
703
711
  }
704
712
  }
705
713
  }
714
+ /**
715
+ * Build a map of "what version range is this external (non-linked) dependency currently pinned
716
+ * to in the workspace package.json" — used as input to the peer resolver so it can check whether
717
+ * a candidate's peer on an OUT-OF-GROUP package (e.g. `next`, `typescript`) would break.
718
+ *
719
+ * We read from the SAME `package.json` the engine is about to mutate; whatever's pinned there
720
+ * is the closest thing we have to ground truth without running `npm ls`. `peerDependencies`
721
+ * and `optionalDependencies` are included because they can still ship an installed version.
722
+ */
723
+ async function collectExternalInstalledRanges(cwd, excludeNames) {
724
+ const out = new Map();
725
+ let pkg;
726
+ try {
727
+ pkg = await readPackageJson(cwd);
728
+ }
729
+ catch {
730
+ return out;
731
+ }
732
+ const sections = [
733
+ 'dependencies',
734
+ 'devDependencies',
735
+ 'peerDependencies',
736
+ 'optionalDependencies',
737
+ ];
738
+ for (const section of sections) {
739
+ const block = pkg[section];
740
+ if (!block)
741
+ continue;
742
+ for (const [name, range] of Object.entries(block)) {
743
+ if (excludeNames.has(name))
744
+ continue;
745
+ if (typeof range !== 'string')
746
+ continue;
747
+ if (!out.has(name))
748
+ out.set(name, range);
749
+ }
750
+ }
751
+ return out;
752
+ }
753
+ /**
754
+ * Try to find a peer-compatible version tuple for a linked batch that just failed with a
755
+ * peer conflict. Returns `undefined` when:
756
+ * - The registry packument couldn't be fetched for any member (we'd be guessing).
757
+ * - Any member's candidate domain is empty after filtering.
758
+ * - The resolver explored its budget without finding a satisfiable tuple.
759
+ *
760
+ * Fetches + resolver calls are scoped to one batch — cheap (packuments are `RegistryCache`-
761
+ * shared so subsequent groups / workspace members reuse them).
762
+ */
763
+ async function tryResolvePeerIntersection(cwd, bumps, opts) {
764
+ if (bumps.length < 2)
765
+ return undefined;
766
+ const inputs = bumps.map((b) => ({
767
+ name: b.scanned.name,
768
+ currentRange: b.scanned.currentRange,
769
+ requestedTarget: b.targetVersion,
770
+ }));
771
+ const domains = [];
772
+ for (const inp of inputs) {
773
+ const peerMap = await fetchVersionPeers(inp.name, opts.registryCache);
774
+ if (peerMap.size === 0)
775
+ return undefined;
776
+ const domain = buildDomain(inp, peerMap);
777
+ if (domain.versions.length === 0)
778
+ return undefined;
779
+ domains.push(domain);
780
+ }
781
+ const memberNames = new Set(inputs.map((i) => i.name));
782
+ const externalInstalled = await collectExternalInstalledRanges(cwd, memberNames);
783
+ const requested = new Map(inputs.map((i) => [i.name, i.requestedTarget]));
784
+ return resolvePeerRanges(domains, requested, { externalInstalled });
785
+ }
706
786
  /**
707
787
  * Linked group: bump all to registry `@latest` in one shot (no per-package fallback ladder).
708
788
  * TODO: peer-graph / `expo install`-style alignment for Expo SDK
@@ -819,6 +899,7 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
819
899
  let result = { ok: false, kind: 'install', message: 'not started' };
820
900
  let forceAttempt = opts.force;
821
901
  let attempt = 0;
902
+ let peerResolverTried = false;
822
903
  while (attempt < maxAttempts) {
823
904
  attempt++;
824
905
  const batchOpts = { ...opts, force: forceAttempt };
@@ -827,6 +908,54 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
827
908
  break;
828
909
  }
829
910
  const classified = result.classified ?? classifyInstallOutput(result.installOutput, opts);
911
+ // Peer-range intersection resolver — only on the first peer-kind failure for this batch.
912
+ // We intentionally skip the resolver when `--force` is already active (user asked to barrel
913
+ // through peer conflicts), when the user explicitly opted out with `--no-resolve-peers`,
914
+ // or after we've already tried it once (avoid infinite retry loops).
915
+ if (!peerResolverTried &&
916
+ result.kind === 'peer' &&
917
+ opts.resolvePeers !== false &&
918
+ !forceAttempt) {
919
+ peerResolverTried = true;
920
+ const resolved = await tryResolvePeerIntersection(cwd, bumps, opts);
921
+ if (resolved) {
922
+ let mutated = false;
923
+ const reason = describeResolution(resolved, bumps.map((b) => ({
924
+ name: b.scanned.name,
925
+ currentRange: b.scanned.currentRange,
926
+ requestedTarget: b.targetVersion,
927
+ })));
928
+ for (const b of bumps) {
929
+ const nextVer = resolved.versions.get(b.scanned.name);
930
+ if (!nextVer)
931
+ continue;
932
+ if (nextVer !== b.targetVersion) {
933
+ b.resolvedFrom = b.targetVersion;
934
+ b.targetVersion = nextVer;
935
+ mutated = true;
936
+ }
937
+ b.resolvedReason = reason;
938
+ b.resolvedTuplesExplored = resolved.tuplesExplored;
939
+ }
940
+ if (mutated) {
941
+ if (!jsonOutput) {
942
+ log.info(`Peer-range resolver found a compatible tuple for [${gid}]; retrying with ` +
943
+ bumps.map((b) => `${b.scanned.name}@${b.targetVersion}`).join(', '));
944
+ }
945
+ continue;
946
+ }
947
+ // Resolver returned the SAME tuple we already tried — no point re-running. Clear the
948
+ // reason breadcrumbs so success rows don't claim a resolver intervention that never
949
+ // happened.
950
+ for (const b of bumps) {
951
+ b.resolvedReason = undefined;
952
+ b.resolvedTuplesExplored = undefined;
953
+ }
954
+ }
955
+ else if (!jsonOutput) {
956
+ log.dim(`Peer-range resolver could not find a compatible tuple for [${gid}]`);
957
+ }
958
+ }
830
959
  if (!interactive) {
831
960
  break;
832
961
  }
@@ -876,20 +1005,34 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
876
1005
  success: true,
877
1006
  from: cur?.version,
878
1007
  to: b.targetVersion,
879
- requestedLatest: b.targetVersion,
1008
+ // `requestedLatest` should still reflect what the user ASKED for (registry latest),
1009
+ // even when the peer resolver nudged us to a slightly older version. That way the
1010
+ // summary can render "requested 19.0.0, got 18.3.1 (peer-range intersection)".
1011
+ requestedLatest: b.resolvedFrom ?? b.targetVersion,
880
1012
  linkedGroupId: gid,
881
1013
  };
1014
+ if (b.resolvedFrom) {
1015
+ row.resolvedPeer = {
1016
+ originalTarget: b.resolvedFrom,
1017
+ reason: b.resolvedReason ?? 'peer-range intersection',
1018
+ tuplesExplored: b.resolvedTuplesExplored ?? 0,
1019
+ };
1020
+ }
882
1021
  if (result.message?.includes('--force')) {
883
1022
  row.forced = true;
884
1023
  row.detail = result.message;
885
1024
  }
1025
+ else if (b.resolvedFrom) {
1026
+ row.detail = `upgraded with linked group [${gid}] (peer-range intersection: ${b.resolvedFrom} → ${b.targetVersion})`;
1027
+ }
886
1028
  else {
887
1029
  row.detail = `upgraded with linked group [${gid}] (single install + validate)`;
888
1030
  }
889
1031
  addUpgrade(report, row);
890
1032
  groupRows.push(row);
891
1033
  if (!jsonOutput) {
892
- log.success(`upgraded: ${b.scanned.name} ${b.targetVersion} (group ${gid})`);
1034
+ const suffix = b.resolvedFrom ? ` [peer-resolved from ${b.resolvedFrom}]` : '';
1035
+ log.success(`upgraded: ${b.scanned.name} → ${b.targetVersion} (group ${gid})${suffix}`);
893
1036
  }
894
1037
  }
895
1038
  await fireUpgradeApplied(opts, groupRows, cwd, gid);
@@ -964,6 +1107,14 @@ export async function runUpgradeEngine(opts) {
964
1107
  ...(projectInfo.yarnSupportsFocus !== undefined
965
1108
  ? { yarnSupportsFocus: projectInfo.yarnSupportsFocus }
966
1109
  : {}),
1110
+ ...(projectInfo.isolatedLockfiles
1111
+ ? {
1112
+ isolatedLockfiles: true,
1113
+ ...(projectInfo.isolatedLockfilesSource
1114
+ ? { isolatedLockfilesSource: projectInfo.isolatedLockfilesSource }
1115
+ : {}),
1116
+ }
1117
+ : {}),
967
1118
  };
968
1119
  if (!jsonOutput && !opts.skipPreflight) {
969
1120
  const mgrLabel = `${projectInfo.manager}${projectInfo.managerVersion ? '@' + projectInfo.managerVersion : ''}`;
@@ -1156,6 +1307,14 @@ export async function runUpgradeFlow(opts) {
1156
1307
  ...(projectInfo.yarnSupportsFocus !== undefined
1157
1308
  ? { yarnSupportsFocus: projectInfo.yarnSupportsFocus }
1158
1309
  : {}),
1310
+ ...(projectInfo.isolatedLockfiles
1311
+ ? {
1312
+ isolatedLockfiles: true,
1313
+ ...(projectInfo.isolatedLockfilesSource
1314
+ ? { isolatedLockfilesSource: projectInfo.isolatedLockfilesSource }
1315
+ : {}),
1316
+ }
1317
+ : {}),
1159
1318
  };
1160
1319
  if (!dryRun) {
1161
1320
  const installRootPkg = await readPackageJson(rootCwd);
@@ -1228,20 +1387,42 @@ export async function runUpgradeFlow(opts) {
1228
1387
  // benefits from the same serialization guarantees the install path gets). When neither
1229
1388
  // applies, `withInstallLock` no-ops at zero overhead.
1230
1389
  const registryCache = createRegistryCache();
1231
- const installLock = effectiveConcurrency > 1 || opts.onUpgradeApplied ? new AsyncMutex() : undefined;
1390
+ const installLock = effectiveConcurrency > 1 || opts.onUpgradeApplied ? new KeyedMutex() : undefined;
1391
+ // Isolated-lockfile monorepos (pnpm `shared-workspace-lockfile=false`, or every workspace
1392
+ // member shipping its own lockfile) can install IN PARALLEL — different workspaces touch
1393
+ // different lockfiles. `detectProjectInfo` sets `isolatedLockfiles` when it can prove this
1394
+ // is safe. When true, `installCwd` becomes the target's own dir (not `rootCwd`), the keyed
1395
+ // mutex gives each target its own lock, and the `installFilter` is dropped (running a
1396
+ // manager-scoped install at the workspace dir is the simpler + more correct path).
1397
+ const parallelInstalls = Boolean(projectInfo.isolatedLockfiles) &&
1398
+ effectiveConcurrency > 1 &&
1399
+ !opts.forceSerialInstalls;
1400
+ aggregate.parallelInstalls = parallelInstalls;
1232
1401
  if (effectiveConcurrency > 1 && !jsonOutput) {
1233
- log.dim(`Parallel traversal: scan/plan up to ${effectiveConcurrency} targets concurrently; install + validate stay serialized via a shared lock.`);
1402
+ if (parallelInstalls) {
1403
+ log.dim(`Parallel traversal: up to ${effectiveConcurrency} targets concurrently — isolated lockfiles detected (${projectInfo.isolatedLockfilesSource}), installs run in parallel per workspace.`);
1404
+ }
1405
+ else {
1406
+ log.dim(`Parallel traversal: scan/plan up to ${effectiveConcurrency} targets concurrently; install + validate stay serialized (shared root lockfile).`);
1407
+ }
1234
1408
  }
1235
1409
  const buildEngineOpts = (target) => ({
1236
1410
  ...opts,
1237
1411
  cwd: target.cwd,
1238
- installCwd: rootCwd,
1412
+ // In parallel-install mode each target installs into its OWN directory; otherwise we
1413
+ // install at the root as before. Either way, `withInstallLock` keys off this value, so
1414
+ // serialization lines up with lockfile boundaries.
1415
+ installCwd: parallelInstalls && target.cwd !== rootCwd ? target.cwd : rootCwd,
1239
1416
  projectInfo,
1240
1417
  targetLabel: namespaceGroups ? target.label : undefined,
1241
1418
  skipPreflight: true,
1242
- // Filter only applies when (a) user opted into filtered mode and (b) we're mutating a
1243
- // workspace child (root targets always need a full install — nothing to filter).
1244
- installFilter: opts.installMode === 'filtered' && target.cwd !== rootCwd ? target.label : undefined,
1419
+ // Filter only applies when (a) user opted into filtered mode, (b) we're mutating a
1420
+ // workspace child (root targets always need a full install — nothing to filter), and
1421
+ // (c) we're NOT in parallel-install mode (there the install already runs at the
1422
+ // workspace dir, so the filter is redundant and can confuse pnpm/yarn).
1423
+ installFilter: opts.installMode === 'filtered' && target.cwd !== rootCwd && !parallelInstalls
1424
+ ? target.label
1425
+ : undefined,
1245
1426
  registryCache,
1246
1427
  installLock,
1247
1428
  onUpgradeApplied: opts.onUpgradeApplied,
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/core/upgrader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/core/upgrader.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,28 @@ export interface ProjectInfo {
35
35
  * focused install instead of falling back to a root install.
36
36
  */
37
37
  yarnSupportsFocus?: boolean;
38
+ /**
39
+ * True when the project is set up with **per-workspace lockfiles** rather than a single
40
+ * shared one at the root (aka "nohoist" / isolated-lockfile monorepo). Detected for:
41
+ *
42
+ * - **pnpm**: `shared-workspace-lockfile=false` in any `.npmrc` that affects the root
43
+ * (root `.npmrc`, user-level config is ignored — we can only see what's committed).
44
+ * - **any manager**: every workspace member directory contains its own lockfile of the
45
+ * right kind (`package-lock.json` / `pnpm-lock.yaml` / `yarn.lock`). This is the
46
+ * "folder of independent projects" case; rare but it shows up in corporate monorepos.
47
+ *
48
+ * When true, the upgrader's keyed install mutex lets different workspace targets install
49
+ * **concurrently** — since each has its own lockfile, the install steps don't race.
50
+ * When false (or in single-package projects), every install keys off the root `cwd` and
51
+ * behaves exactly as before (fully serialized).
52
+ */
53
+ isolatedLockfiles?: boolean;
54
+ /**
55
+ * Reason / source for `isolatedLockfiles === true`. Surfaced in the structured report so
56
+ * users can see why the tool chose parallel installs. Never populated when
57
+ * `isolatedLockfiles` is false / undefined.
58
+ */
59
+ isolatedLockfilesSource?: 'pnpm-npmrc' | 'per-workspace-lockfiles';
38
60
  }
39
61
  /**
40
62
  * Detect package manager + workspace info for `cwd`. CLI overrides take precedence.
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/core/workspaces.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,6BAA6B,GAC7B,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAChE,0FAA0F;IAC1F,aAAa,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAqPD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,cAAc,GAAG,MAAM,GACpC,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/core/workspaces.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,6BAA6B,GAC7B,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAChE,0FAA0F;IAC1F,aAAa,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAAC;CACpE;AAqPD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,cAAc,GAAG,MAAM,GACpC,OAAO,CAAC,WAAW,CAAC,CA0EtB"}
@@ -277,6 +277,7 @@ export async function detectProjectInfo(cwd, cliOverride) {
277
277
  yarnMajorVersion = probe.major;
278
278
  yarnSupportsFocus = probe.supportsFocus;
279
279
  }
280
+ const isolated = detectIsolatedLockfiles(cwd, manager, workspaceMembers);
280
281
  return {
281
282
  cwd,
282
283
  manager,
@@ -289,6 +290,57 @@ export async function detectProjectInfo(cwd, cliOverride) {
289
290
  workspacePackageNames: new Set(workspaceMembers.map((m) => m.name)),
290
291
  ...(yarnMajorVersion !== undefined ? { yarnMajorVersion } : {}),
291
292
  ...(yarnSupportsFocus !== undefined ? { yarnSupportsFocus } : {}),
293
+ ...(isolated.isolated ? { isolatedLockfiles: true, isolatedLockfilesSource: isolated.source } : {}),
292
294
  };
293
295
  }
296
+ /**
297
+ * Decide whether this project has per-workspace lockfiles rather than a single shared one.
298
+ *
299
+ * Two detection paths:
300
+ *
301
+ * 1. **pnpm `.npmrc` opt-out**: if we can read the root `.npmrc` and it contains
302
+ * `shared-workspace-lockfile=false`, pnpm will generate a `pnpm-lock.yaml` in each
303
+ * workspace member. We don't need to verify the lockfiles exist on disk — the setting
304
+ * IS the contract. (This also covers the pre-install case where members don't have
305
+ * their lockfiles yet.)
306
+ * 2. **On-disk evidence**: for any manager, if every workspace member already has its own
307
+ * lockfile of the matching kind, we treat the project as isolated-lockfile. This also
308
+ * catches the "folder of independent projects accidentally treated as workspaces" case.
309
+ *
310
+ * Returns `{ isolated: false }` when neither applies OR when `hasWorkspaces` is false.
311
+ */
312
+ function detectIsolatedLockfiles(cwd, manager, members) {
313
+ if (members.length === 0) {
314
+ return { isolated: false };
315
+ }
316
+ // pnpm-specific: look for the canonical `.npmrc` opt-out. We parse conservatively — a
317
+ // commented-out line (`# shared-workspace-lockfile=false`) shouldn't trigger detection.
318
+ if (manager === 'pnpm') {
319
+ const npmrc = path.join(cwd, '.npmrc');
320
+ try {
321
+ if (fs.existsSync(npmrc)) {
322
+ const raw = fs.readFileSync(npmrc, 'utf8');
323
+ for (const line of raw.split(/\r?\n/)) {
324
+ const trimmed = line.trim();
325
+ if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith(';'))
326
+ continue;
327
+ const m = trimmed.match(/^shared-workspace-lockfile\s*=\s*(false|no|0)$/i);
328
+ if (m) {
329
+ return { isolated: true, source: 'pnpm-npmrc' };
330
+ }
331
+ }
332
+ }
333
+ }
334
+ catch {
335
+ // Unreadable .npmrc is effectively absent — fall through.
336
+ }
337
+ }
338
+ // Generic path: every workspace member has its own lockfile of the matching kind.
339
+ const expected = manager === 'pnpm' ? 'pnpm-lock.yaml' : manager === 'yarn' ? 'yarn.lock' : 'package-lock.json';
340
+ const allPresent = members.every((m) => fs.existsSync(path.join(m.dir, expected)));
341
+ if (allPresent) {
342
+ return { isolated: true, source: 'per-workspace-lockfiles' };
343
+ }
344
+ return { isolated: false };
345
+ }
294
346
  //# sourceMappingURL=workspaces.js.map