dep-up-surgeon 2.2.2 → 2.2.4

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 (45) hide show
  1. package/README.md +122 -12
  2. package/dist/cli/overrideFlow.d.ts +50 -0
  3. package/dist/cli/overrideFlow.d.ts.map +1 -1
  4. package/dist/cli/overrideFlow.js +112 -69
  5. package/dist/cli/overrideFlow.js.map +1 -1
  6. package/dist/cli/summary.d.ts.map +1 -1
  7. package/dist/cli/summary.js +17 -4
  8. package/dist/cli/summary.js.map +1 -1
  9. package/dist/cli/undo.d.ts +105 -0
  10. package/dist/cli/undo.d.ts.map +1 -0
  11. package/dist/cli/undo.js +410 -0
  12. package/dist/cli/undo.js.map +1 -0
  13. package/dist/cli/undoCommand.d.ts +2 -0
  14. package/dist/cli/undoCommand.d.ts.map +1 -0
  15. package/dist/cli/undoCommand.js +101 -0
  16. package/dist/cli/undoCommand.js.map +1 -0
  17. package/dist/cli.js +56 -14
  18. package/dist/cli.js.map +1 -1
  19. package/dist/config/loadConfig.d.ts +64 -0
  20. package/dist/config/loadConfig.d.ts.map +1 -1
  21. package/dist/config/loadConfig.js +200 -1
  22. package/dist/config/loadConfig.js.map +1 -1
  23. package/dist/core/audit.d.ts +18 -0
  24. package/dist/core/audit.d.ts.map +1 -1
  25. package/dist/core/audit.js +29 -0
  26. package/dist/core/audit.js.map +1 -1
  27. package/dist/core/peerResolver.d.ts +64 -0
  28. package/dist/core/peerResolver.d.ts.map +1 -1
  29. package/dist/core/peerResolver.js +225 -2
  30. package/dist/core/peerResolver.js.map +1 -1
  31. package/dist/core/peerResolverAdHoc.d.ts +42 -0
  32. package/dist/core/peerResolverAdHoc.d.ts.map +1 -0
  33. package/dist/core/peerResolverAdHoc.js +226 -0
  34. package/dist/core/peerResolverAdHoc.js.map +1 -0
  35. package/dist/core/upgrader.d.ts +12 -1
  36. package/dist/core/upgrader.d.ts.map +1 -1
  37. package/dist/core/upgrader.js +171 -7
  38. package/dist/core/upgrader.js.map +1 -1
  39. package/dist/types.d.ts +24 -4
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/utils/overrides.d.ts +81 -7
  42. package/dist/utils/overrides.d.ts.map +1 -1
  43. package/dist/utils/overrides.js +344 -30
  44. package/dist/utils/overrides.js.map +1 -1
  45. package/package.json +3 -3
@@ -55,16 +55,182 @@ export async function loadConfig(cwd) {
55
55
  validate = out;
56
56
  }
57
57
  }
58
- return {
58
+ const warnings = [];
59
+ const overrides = normalizeRcOverrides(parsed.overrides, warnings);
60
+ const out = {
59
61
  ignore: parsed.ignore?.map(String) ?? [],
60
62
  linkedGroups: linkedGroups ?? [],
61
63
  ...(validate !== undefined ? { validate } : {}),
62
64
  };
65
+ if (overrides.length > 0)
66
+ out.overrides = overrides;
67
+ if (warnings.length > 0)
68
+ out.warnings = warnings;
69
+ return out;
63
70
  }
64
71
  catch {
65
72
  return {};
66
73
  }
67
74
  }
75
+ /**
76
+ * Parse the `overrides` section of an rc file into a `RcOverrideEntry[]`. Accepts the two
77
+ * shapes documented on `RcOverrideEntry` and records (does not throw on) malformed entries so
78
+ * a single typo in one override line doesn't kill the whole upgrade run.
79
+ *
80
+ * Duplicate chains are kept in array order — the later entry wins, matching the CLI semantic
81
+ * where a repeated `--override` overwrites the first value. We leave that dedupe to the
82
+ * merger so this function stays cheap and pure.
83
+ */
84
+ export function normalizeRcOverrides(raw, warnings) {
85
+ if (raw === undefined || raw === null)
86
+ return [];
87
+ if (!Array.isArray(raw)) {
88
+ warnings.push('rc `overrides` must be an array; ignoring');
89
+ return [];
90
+ }
91
+ const out = [];
92
+ for (let i = 0; i < raw.length; i++) {
93
+ const entry = raw[i];
94
+ const norm = normalizeRcOverrideEntry(entry, i, warnings);
95
+ if (norm)
96
+ out.push(norm);
97
+ }
98
+ return out;
99
+ }
100
+ function normalizeRcOverrideEntry(entry, index, warnings) {
101
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
102
+ warnings.push(`rc overrides[${index}] must be an object`);
103
+ return undefined;
104
+ }
105
+ const obj = entry;
106
+ let chain;
107
+ let range;
108
+ // Structured form: explicit chain + range.
109
+ if (obj.chain !== undefined) {
110
+ if (typeof obj.chain === 'string') {
111
+ chain = [obj.chain.trim()].filter(Boolean);
112
+ }
113
+ else if (Array.isArray(obj.chain)) {
114
+ chain = obj.chain
115
+ .filter((seg) => typeof seg === 'string')
116
+ .map((seg) => seg.trim())
117
+ .filter(Boolean);
118
+ }
119
+ else {
120
+ warnings.push(`rc overrides[${index}].chain must be a string or array of strings`);
121
+ return undefined;
122
+ }
123
+ }
124
+ // Selector form: may include the range after `@`, otherwise defer to the `range` field.
125
+ const selector = typeof obj.selector === 'string' ? obj.selector.trim() : undefined;
126
+ if (selector) {
127
+ // We can't import `parseOverrideSelector` here (circular boundary: overrides.ts lives
128
+ // under utils/ which depends on workspaces.ts, and pulling it into config would widen the
129
+ // config module's graph). Inline a minimal split: `>` wins, then `/` with scoped-name
130
+ // awareness. This matches what `parseOverrideSelector` does for the shapes we accept.
131
+ const parsed = parseSelectorInline(selector);
132
+ if (!parsed) {
133
+ warnings.push(`rc overrides[${index}].selector "${selector}" is malformed`);
134
+ return undefined;
135
+ }
136
+ if (!chain)
137
+ chain = parsed.chain;
138
+ if (!range && parsed.range)
139
+ range = parsed.range;
140
+ }
141
+ if (typeof obj.range === 'string' && obj.range.trim()) {
142
+ range = obj.range.trim();
143
+ }
144
+ else if (typeof obj.version === 'string' && obj.version.trim()) {
145
+ range = obj.version.trim();
146
+ }
147
+ if (!chain || chain.length === 0) {
148
+ warnings.push(`rc overrides[${index}]: missing or empty \`chain\`/\`selector\``);
149
+ return undefined;
150
+ }
151
+ if (!range) {
152
+ warnings.push(`rc overrides[${index}]: missing \`range\` (and no \`@<range>\` in selector)`);
153
+ return undefined;
154
+ }
155
+ const out = { chain, range };
156
+ if (typeof obj.reason === 'string' && obj.reason.trim()) {
157
+ out.reason = obj.reason.trim();
158
+ }
159
+ if (selector)
160
+ out.source = selector;
161
+ return out;
162
+ }
163
+ /**
164
+ * Minimal copy of `parseOverrideSelector` kept local to this module so the config layer
165
+ * doesn't depend on `src/utils/overrides.ts`. Supports the same three forms as the CLI:
166
+ * - `foo@1.2.3`
167
+ * - `parent>child@1.2.3` (pnpm style, any depth)
168
+ * - `parent/child@1.2.3` (yarn style, scoped-name aware)
169
+ */
170
+ function parseSelectorInline(spec) {
171
+ const trimmed = spec.trim();
172
+ if (!trimmed)
173
+ return undefined;
174
+ let chainPart = trimmed;
175
+ let range;
176
+ const atIdx = (() => {
177
+ for (let i = trimmed.length - 1; i > 0; i--) {
178
+ if (trimmed[i] !== '@')
179
+ continue;
180
+ const prev = trimmed[i - 1];
181
+ if (prev === '/' || prev === '>')
182
+ continue;
183
+ return i;
184
+ }
185
+ return -1;
186
+ })();
187
+ if (atIdx !== -1) {
188
+ chainPart = trimmed.slice(0, atIdx);
189
+ range = trimmed.slice(atIdx + 1).trim();
190
+ if (!range)
191
+ return undefined;
192
+ }
193
+ let chain;
194
+ if (chainPart.includes('>')) {
195
+ chain = chainPart.split('>').map((s) => s.trim()).filter(Boolean);
196
+ }
197
+ else if (chainPart.includes('/')) {
198
+ // Scoped-name aware split on `/`.
199
+ const parts = [];
200
+ let buf = '';
201
+ for (let i = 0; i < chainPart.length; i++) {
202
+ const c = chainPart[i];
203
+ if (c === '/' && !buf.startsWith('@')) {
204
+ if (buf)
205
+ parts.push(buf);
206
+ buf = '';
207
+ continue;
208
+ }
209
+ if (c === '/' && buf.startsWith('@') && !buf.slice(1).includes('/')) {
210
+ buf += c;
211
+ continue;
212
+ }
213
+ if (c === '/' && buf.startsWith('@')) {
214
+ parts.push(buf);
215
+ buf = '';
216
+ continue;
217
+ }
218
+ buf += c;
219
+ }
220
+ if (buf)
221
+ parts.push(buf);
222
+ chain = parts;
223
+ }
224
+ else {
225
+ chain = [chainPart];
226
+ }
227
+ if (chain.length === 0)
228
+ return undefined;
229
+ const result = { chain };
230
+ if (range)
231
+ result.range = range;
232
+ return result;
233
+ }
68
234
  /**
69
235
  * Resolve the effective validator settings combining CLI flags with `.dep-up-surgeonrc.validate`.
70
236
  * CLI flags always win over the rc file.
@@ -89,6 +255,39 @@ export function resolveValidateOptions(configValidate, cliValidateCmd, cliNoVali
89
255
  }
90
256
  return {};
91
257
  }
258
+ /**
259
+ * Merge rc-defined overrides with CLI `--override` selectors. CLI entries always win on an
260
+ * exact-chain conflict (the user's one-off intent overrides the committed policy), but both
261
+ * lists are preserved for unique chains. Later rc entries also win over earlier rc entries
262
+ * with the same chain — same rule the CLI uses when `--override` is passed twice.
263
+ *
264
+ * Returns `{ entries, warnings }`. `warnings` is non-empty when we dropped a CLI selector
265
+ * because of a parse error; the caller can log these at the same level as `rc.warnings` so
266
+ * the user sees a single coherent diagnostics block.
267
+ */
268
+ export function mergeOverrideSources(rcOverrides, cliSelectors) {
269
+ const warnings = [];
270
+ const byKey = new Map();
271
+ for (const e of rcOverrides ?? []) {
272
+ byKey.set(chainKey(e.chain), e);
273
+ }
274
+ for (const raw of cliSelectors ?? []) {
275
+ const parsed = parseSelectorInline(raw);
276
+ if (!parsed || !parsed.range) {
277
+ warnings.push(`--override "${raw}" is malformed (expected "<chain>@<range>"; skipping this CLI entry — committed rc overrides still apply)`);
278
+ continue;
279
+ }
280
+ const entry = { chain: parsed.chain, range: parsed.range, source: raw };
281
+ byKey.set(chainKey(entry.chain), entry);
282
+ }
283
+ return { entries: [...byKey.values()], warnings };
284
+ }
285
+ function chainKey(chain) {
286
+ // Use a delimiter that cannot appear in a valid npm package name so chains collide only
287
+ // when they are structurally identical. `\u0000` fits the bill — npm names forbid control
288
+ // characters, and even if one sneaked in, a collision here is a no-op (last-write-wins).
289
+ return chain.join('\u0000');
290
+ }
92
291
  /**
93
292
  * Merge CLI `--ignore` (comma-separated) with config ignore list.
94
293
  */
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/config/loadConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/config/loadConfig.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,24 @@ export declare function runAudit(opts: RunAuditOptions): Promise<AuditResult>;
40
40
  export declare function parseNpmLikeAudit(stdout: string): SecurityAdvisory[];
41
41
  export declare function parseYarnAudit(stdout: string): SecurityAdvisory[];
42
42
  export declare function maxSeverity(a: Severity, b: Severity): Severity;
43
+ /**
44
+ * Parse a user-supplied `--min-severity` value into a canonical `Severity`. Returns
45
+ * `undefined` when the string is empty or doesn't match one of the four canonical tiers,
46
+ * letting callers report a precise error rather than silently accepting `"Critical"` or
47
+ * `"HIGH"` without case normalization.
48
+ */
49
+ export declare function parseMinSeverity(raw: string | undefined): Severity | undefined;
50
+ /**
51
+ * Filter `advisories` down to entries whose `severity` is at least `minSeverity` on the
52
+ * standard npm-audit rank ladder (`low < moderate < high < critical`). Used by
53
+ * `--security-only --min-severity <level>` to trim the `restrictToNames` set **after**
54
+ * parsing — the parsers themselves preserve everything they find so the filter can be
55
+ * applied once per run and we don't lose data in tests / structured reports.
56
+ *
57
+ * Factored out of `cli.ts` so regression tests can feed in canned advisory lists and
58
+ * assert the exact set the upgrader would receive.
59
+ */
60
+ export declare function filterAdvisoriesBySeverity(advisories: SecurityAdvisory[], minSeverity: Severity): SecurityAdvisory[];
43
61
  /**
44
62
  * Best-effort min-safe version parser. Given a vulnerable range like `<1.2.3` we return
45
63
  * `1.2.3` as the likely fix; for `>=2.0.0 <2.1.7` we return `2.1.7`. When the range is opaque
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/core/audit.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpG;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC1E;AAyDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoEpE;AA+BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAwCjE;AAuDD,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE9D;AAgCD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAiB1E"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/core/audit.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpG;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC1E;AAyDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoEpE;AA+BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAwCjE;AAuDD,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAO9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,WAAW,EAAE,QAAQ,GACpB,gBAAgB,EAAE,CAGpB;AAgCD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAiB1E"}
@@ -273,6 +273,35 @@ const SEVERITY_RANK = { low: 1, moderate: 2, high: 3, critical: 4 };
273
273
  export function maxSeverity(a, b) {
274
274
  return SEVERITY_RANK[a] >= SEVERITY_RANK[b] ? a : b;
275
275
  }
276
+ /**
277
+ * Parse a user-supplied `--min-severity` value into a canonical `Severity`. Returns
278
+ * `undefined` when the string is empty or doesn't match one of the four canonical tiers,
279
+ * letting callers report a precise error rather than silently accepting `"Critical"` or
280
+ * `"HIGH"` without case normalization.
281
+ */
282
+ export function parseMinSeverity(raw) {
283
+ if (typeof raw !== 'string')
284
+ return undefined;
285
+ const trimmed = raw.trim().toLowerCase();
286
+ if (trimmed === 'low' || trimmed === 'moderate' || trimmed === 'high' || trimmed === 'critical') {
287
+ return trimmed;
288
+ }
289
+ return undefined;
290
+ }
291
+ /**
292
+ * Filter `advisories` down to entries whose `severity` is at least `minSeverity` on the
293
+ * standard npm-audit rank ladder (`low < moderate < high < critical`). Used by
294
+ * `--security-only --min-severity <level>` to trim the `restrictToNames` set **after**
295
+ * parsing — the parsers themselves preserve everything they find so the filter can be
296
+ * applied once per run and we don't lose data in tests / structured reports.
297
+ *
298
+ * Factored out of `cli.ts` so regression tests can feed in canned advisory lists and
299
+ * assert the exact set the upgrader would receive.
300
+ */
301
+ export function filterAdvisoriesBySeverity(advisories, minSeverity) {
302
+ const threshold = SEVERITY_RANK[minSeverity];
303
+ return advisories.filter((a) => SEVERITY_RANK[a.severity] >= threshold);
304
+ }
276
305
  function dedupe(arr) {
277
306
  return [...new Set(arr)];
278
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/core/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/core/audit.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,12 @@ export interface ResolvedTuple {
32
32
  downgradedFrom: Map<string, string>;
33
33
  /** Debug: how many tuples were checked before we found a solution. */
34
34
  tuplesExplored: number;
35
+ /**
36
+ * Which solver path produced this tuple. `'backtracking'` is the default newest-first DFS;
37
+ * `'sat'` is the arc-consistency + value-ordering path used for large linked graphs.
38
+ * Surfaced in `UpgradeRecord.resolvedPeer.method` so the JSON / summary can show it.
39
+ */
40
+ method: ResolverMethod;
35
41
  }
36
42
  export interface ResolveOptions {
37
43
  /**
@@ -51,7 +57,26 @@ export interface ResolveOptions {
51
57
  maxTuples?: number;
52
58
  /** When true, include prerelease versions in the domain. Default: false. */
53
59
  includePrereleases?: boolean;
60
+ /**
61
+ * Member-count threshold that triggers the SAT-style solver path. The default plain
62
+ * backtracker degrades quickly past ~10 members (the 400-tuple budget can be burned before
63
+ * it gets past the first variable's domain). Above this threshold we switch to the
64
+ * arc-consistency + least-constraining-value solver in `resolvePeerRangesSat()`.
65
+ *
66
+ * Defaults to `10`. Set to `Infinity` to force the plain backtracker even on large graphs
67
+ * (useful for deterministic regression tests); set to `0` to always use the SAT path.
68
+ */
69
+ satThreshold?: number;
70
+ /**
71
+ * When the SAT path is active, this caps the number of constraint-propagation *rounds*
72
+ * (each round = one AC-3 sweep across every ordered pair). Tuned to handle up to ~30
73
+ * linked members × 50 candidate versions without a pathological regression. Defaults to
74
+ * `128`. Separate from `maxTuples` because propagation is cheap per round; it's the
75
+ * value-selection search that costs us, and both budgets guard different phases.
76
+ */
77
+ satMaxRounds?: number;
54
78
  }
79
+ export type ResolverMethod = 'backtracking' | 'sat';
55
80
  /**
56
81
  * Build a candidate version domain for one linked package:
57
82
  * - Keep versions from `semver.minVersion(currentRange)` up to `requestedTarget` (inclusive).
@@ -73,6 +98,45 @@ export declare function buildDomain(input: ResolverInput, peers: Map<string, Ver
73
98
  * want: the FIRST solution is also the least-downgrade solution.
74
99
  */
75
100
  export declare function resolvePeerRanges(domains: CandidateDomain[], requested: Map<string, string>, options: ResolveOptions): ResolvedTuple | undefined;
101
+ /**
102
+ * Plain newest-first DFS backtracker. Fastest path for small graphs (2–5 members); gives up
103
+ * once `maxTuples` probes are exhausted. Kept as its own function so the dispatcher can call
104
+ * it directly AND so tests can assert specific tuple counts / paths.
105
+ */
106
+ export declare function resolvePeerRangesBacktracking(domains: CandidateDomain[], requested: Map<string, string>, options: ResolveOptions): ResolvedTuple | undefined;
107
+ /**
108
+ * SAT-style solver for **large** linked graphs (10+ members).
109
+ *
110
+ * Real Boolean SAT on this domain would need one variable per (member, version) pair plus
111
+ * exactly-one clauses plus implication clauses for every peer edge — O(members × versions²)
112
+ * clauses. That's fine but dragging in `pbsat` / `minisat` / `logic-solver` for a plumbing
113
+ * feature is overkill, so we instead implement the **arc-consistency + least-constraining
114
+ * value + conflict-directed backjumping** pipeline that's been the SAT baseline for CSP
115
+ * solvers since AC-3 (Mackworth 1977). For the shapes we actually see (monorepo link graphs
116
+ * up to ~50 linked members × ~30 recent versions) this finishes in milliseconds where plain
117
+ * DFS burns 400 probes in the leftmost subtree and returns nothing useful.
118
+ *
119
+ * Phases:
120
+ *
121
+ * 1. **Pair filtering**: for each ordered pair (A, B) in the linked set, build the set of
122
+ * allowed (a_version, b_version) tuples: a_version's peerDeps[B] must satisfy b_version,
123
+ * AND b_version's peerDeps[A] must satisfy a_version. External peers are checked once
124
+ * per member-version against `externalInstalled` and inconsistent versions are removed
125
+ * from the domain immediately.
126
+ * 2. **AC-3 propagation**: repeatedly remove any member-version that has no supporting
127
+ * partner in some other member's current domain. We run up to `satMaxRounds` sweeps or
128
+ * until a fixed point is reached. Each sweep is O(members² × versions).
129
+ * 3. **Ordered DFS**: after propagation, the domains only contain versions that are
130
+ * locally consistent with at least one choice per other member. Do a newest-first DFS
131
+ * ordered by **smallest domain first** (the MRV / fail-first heuristic: variables with
132
+ * fewer options go earlier so contradictions surface fast). This is where the
133
+ * "newest-first → least-downgrade" bias still applies at the value level.
134
+ *
135
+ * Returns `undefined` when propagation empties a domain (unsat) or when the DFS gives up on
136
+ * its budget. The caller can then retry with the plain backtracker (the dispatcher does
137
+ * this automatically).
138
+ */
139
+ export declare function resolvePeerRangesSat(domains: CandidateDomain[], requested: Map<string, string>, options: ResolveOptions): ResolvedTuple | undefined;
76
140
  /**
77
141
  * Compact summary describing what the resolver did. Used as the `reason` for
78
142
  * `UpgradeRecord.resolvedPeer` so the JSON and the summary can both print a human-readable
@@ -1 +1 @@
1
- {"version":3,"file":"peerResolver.d.ts","sourceRoot":"","sources":["../../src/core/peerResolver.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kFAAkF;IAClF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAChC,kBAAkB,UAAQ,GACzB,eAAe,CAyBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,cAAc,GACtB,aAAa,GAAG,SAAS,CAsC3B;AA+DD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAYvF"}
1
+ {"version":3,"file":"peerResolver.d.ts","sourceRoot":"","sources":["../../src/core/peerResolver.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kFAAkF;IAClF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,KAAK,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAChC,kBAAkB,UAAQ,GACzB,eAAe,CAyBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,cAAc,GACtB,aAAa,GAAG,SAAS,CAgB3B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,cAAc,GACtB,aAAa,GAAG,SAAS,CAsC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,cAAc,GACtB,aAAa,GAAG,SAAS,CA8F3B;AAmJD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAevF"}