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.
- package/README.md +107 -22
- package/dist/cli/doctor.d.ts +52 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +616 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/doctorCommand.d.ts +2 -0
- package/dist/cli/doctorCommand.d.ts.map +1 -0
- package/dist/cli/doctorCommand.js +71 -0
- package/dist/cli/doctorCommand.js.map +1 -0
- package/dist/cli/doctorRenderer.d.ts +21 -0
- package/dist/cli/doctorRenderer.d.ts.map +1 -0
- package/dist/cli/doctorRenderer.js +79 -0
- package/dist/cli/doctorRenderer.js.map +1 -0
- package/dist/cli/git.d.ts +11 -0
- package/dist/cli/git.d.ts.map +1 -1
- package/dist/cli/git.js +45 -9
- package/dist/cli/git.js.map +1 -1
- package/dist/cli/gitFlow.d.ts.map +1 -1
- package/dist/cli/gitFlow.js +7 -0
- package/dist/cli/gitFlow.js.map +1 -1
- package/dist/cli/lockfileFix.d.ts +91 -0
- package/dist/cli/lockfileFix.d.ts.map +1 -0
- package/dist/cli/lockfileFix.js +509 -0
- package/dist/cli/lockfileFix.js.map +1 -0
- package/dist/cli/report.d.ts +4 -0
- package/dist/cli/report.d.ts.map +1 -1
- package/dist/cli/report.js +5 -0
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/summary.d.ts.map +1 -1
- package/dist/cli/summary.js +221 -2
- package/dist/cli/summary.js.map +1 -1
- package/dist/cli.js +80 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/peerResolver.d.ts +82 -0
- package/dist/core/peerResolver.d.ts.map +1 -0
- package/dist/core/peerResolver.js +213 -0
- package/dist/core/peerResolver.js.map +1 -0
- package/dist/core/upgrader.d.ts +30 -6
- package/dist/core/upgrader.d.ts.map +1 -1
- package/dist/core/upgrader.js +195 -14
- package/dist/core/upgrader.js.map +1 -1
- package/dist/core/workspaces.d.ts +22 -0
- package/dist/core/workspaces.d.ts.map +1 -1
- package/dist/core/workspaces.js +52 -0
- package/dist/core/workspaces.js.map +1 -1
- package/dist/types.d.ts +92 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/concurrency.d.ts +55 -0
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js +46 -1
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/npm.d.ts +14 -0
- package/dist/utils/npm.d.ts.map +1 -1
- package/dist/utils/npm.js +48 -0
- package/dist/utils/npm.js.map +1 -1
- package/package.json +3 -3
package/dist/cli/summary.js
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
|
+
/**
|
|
4
|
+
* Self-contained stylesheet embedded into every HTML summary. Kept deliberately short + GitHub
|
|
5
|
+
* Actions / email friendly:
|
|
6
|
+
* - Scoped to `.dep-up-surgeon-report` so it can't leak into a host page / step-summary that
|
|
7
|
+
* also contains other tool output.
|
|
8
|
+
* - Uses system fonts only — no web fonts or external URLs.
|
|
9
|
+
* - Severity chips use the same palette as npm / GitHub advisory UIs so reviewers recognise
|
|
10
|
+
* the colors at a glance (critical=red, high=orange, moderate=amber, low=grey).
|
|
11
|
+
* - Tables fold down on narrow viewports by switching to `display:block` + horizontal scroll
|
|
12
|
+
* rather than reflowing cells, which preserves column-alignment readability.
|
|
13
|
+
*/
|
|
14
|
+
const SUMMARY_CSS = `
|
|
15
|
+
.dep-up-surgeon-report { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; line-height: 1.5; color: #1f2328; }
|
|
16
|
+
.dep-up-surgeon-report h2 { margin-top: 0; font-size: 1.5em; border-bottom: 1px solid #d1d9e0; padding-bottom: 0.3em; }
|
|
17
|
+
.dep-up-surgeon-report h3 { margin-top: 1.5em; font-size: 1.15em; border-bottom: 1px solid #d1d9e0b3; padding-bottom: 0.2em; }
|
|
18
|
+
.dep-up-surgeon-report h4 { margin-top: 1.25em; font-size: 1em; color: #59636e; }
|
|
19
|
+
.dep-up-surgeon-report code { background: #afb8c133; padding: 0.15em 0.35em; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.92em; }
|
|
20
|
+
.dep-up-surgeon-report pre { background: #f6f8fa; padding: 12px; border-radius: 6px; overflow-x: auto; font-size: 0.85em; }
|
|
21
|
+
.dep-up-surgeon-report pre code { background: transparent; padding: 0; }
|
|
22
|
+
.dep-up-surgeon-report table { border-collapse: collapse; margin: 0.5em 0 1em; width: 100%; max-width: 100%; overflow-x: auto; display: block; }
|
|
23
|
+
.dep-up-surgeon-report thead { background: #f6f8fa; }
|
|
24
|
+
.dep-up-surgeon-report th, .dep-up-surgeon-report td { border: 1px solid #d1d9e0; padding: 6px 10px; text-align: left; vertical-align: top; }
|
|
25
|
+
.dep-up-surgeon-report a { color: #0969da; text-decoration: none; }
|
|
26
|
+
.dep-up-surgeon-report a:hover { text-decoration: underline; }
|
|
27
|
+
.dep-up-surgeon-report details { margin: 0.4em 0; }
|
|
28
|
+
.dep-up-surgeon-report details > summary { cursor: pointer; padding: 4px 0; }
|
|
29
|
+
.dep-up-surgeon-report blockquote { border-left: 3px solid #d1d9e0; padding: 0.4em 0.8em; color: #59636e; background: #f6f8fa; margin: 0.5em 0; }
|
|
30
|
+
.dep-up-surgeon-report .chip { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 0.78em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; line-height: 1.5; vertical-align: middle; }
|
|
31
|
+
.dep-up-surgeon-report .chip-critical { background: #ffebe9; color: #a40e26; border: 1px solid #ffb4a8; }
|
|
32
|
+
.dep-up-surgeon-report .chip-high { background: #fff1e5; color: #9a3412; border: 1px solid #ffb787; }
|
|
33
|
+
.dep-up-surgeon-report .chip-moderate { background: #fff8c5; color: #7d4e00; border: 1px solid #e6d47a; }
|
|
34
|
+
.dep-up-surgeon-report .chip-low { background: #eaeef2; color: #59636e; border: 1px solid #d1d9e0; }
|
|
35
|
+
.dep-up-surgeon-report .chip-breaking { background: #ffebe9; color: #a40e26; border: 1px solid #ffb4a8; }
|
|
36
|
+
.dep-up-surgeon-report .chip-peer { background: #ddf4ff; color: #0550ae; border: 1px solid #54aeff; }
|
|
37
|
+
.dep-up-surgeon-report .chip-security { background: #fff8c5; color: #7d4e00; border: 1px solid #e6d47a; }
|
|
38
|
+
.dep-up-surgeon-report .chip-fallback { background: #eaeef2; color: #59636e; border: 1px solid #d1d9e0; }
|
|
39
|
+
.dep-up-surgeon-report .chip-forced { background: #ffd8b5; color: #9a3412; border: 1px solid #ffb787; }
|
|
40
|
+
.dep-up-surgeon-report .note-bits { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; }
|
|
41
|
+
`.trim();
|
|
42
|
+
const VALID_SEVERITIES = new Set(['low', 'moderate', 'high', 'critical']);
|
|
43
|
+
function severityChip(severity, esc) {
|
|
44
|
+
const sev = VALID_SEVERITIES.has(severity) ? severity : 'low';
|
|
45
|
+
return `<span class="chip chip-${sev}">${esc(severity)}</span>`;
|
|
46
|
+
}
|
|
3
47
|
const DEFAULT_BASENAME = 'dep-up-surgeon-summary';
|
|
4
48
|
/**
|
|
5
49
|
* Resolve the destination for a `--summary` write:
|
|
@@ -119,6 +163,23 @@ export function renderSummaryMarkdown(structured, toolVersion) {
|
|
|
119
163
|
}
|
|
120
164
|
lines.push('');
|
|
121
165
|
}
|
|
166
|
+
// Peer-range intersection resolver breadcrumbs — list only the rows that were actually
|
|
167
|
+
// nudged off the user's requested target so the reviewer can see which linked-group
|
|
168
|
+
// members were compromised and why.
|
|
169
|
+
const peerResolved = upgraded.filter((r) => r.resolvedPeer);
|
|
170
|
+
if (peerResolved.length > 0) {
|
|
171
|
+
lines.push(`### Peer-range resolutions`);
|
|
172
|
+
lines.push('');
|
|
173
|
+
lines.push(`_${peerResolved.length} package${peerResolved.length === 1 ? ' was' : 's were'} pinned below the requested latest because a linked-group peer constraint would otherwise have broken the install. Each row shows the originally requested version alongside the compatible version the resolver picked._`);
|
|
174
|
+
lines.push('');
|
|
175
|
+
lines.push(`| Package | Group | Requested | Installed | Tuples explored |`);
|
|
176
|
+
lines.push(`| --- | --- | --- | --- | ---: |`);
|
|
177
|
+
for (const r of peerResolved) {
|
|
178
|
+
const rp = r.resolvedPeer;
|
|
179
|
+
lines.push(`| \`${r.name}\` | \`${r.linkedGroupId ?? '?'}\` | \`${rp.originalTarget}\` | \`${r.to ?? '?'}\` | ${rp.tuplesExplored} |`);
|
|
180
|
+
}
|
|
181
|
+
lines.push('');
|
|
182
|
+
}
|
|
122
183
|
if (upgraded.length) {
|
|
123
184
|
lines.push(`### Upgraded`);
|
|
124
185
|
lines.push('');
|
|
@@ -187,6 +248,52 @@ export function renderSummaryMarkdown(structured, toolVersion) {
|
|
|
187
248
|
lines.push(structured.ignored.map((n) => `\`${n}\``).join(', '));
|
|
188
249
|
lines.push('');
|
|
189
250
|
}
|
|
251
|
+
if (structured.lockfileFix) {
|
|
252
|
+
const lf = structured.lockfileFix;
|
|
253
|
+
lines.push(`### Lockfile fix`);
|
|
254
|
+
lines.push('');
|
|
255
|
+
lines.push(renderLockfileFixSummaryLine(lf));
|
|
256
|
+
lines.push('');
|
|
257
|
+
const interesting = lf.dedupeChanges.filter((c) => c.change === 'merged' || c.change === 'updated');
|
|
258
|
+
if (interesting.length > 0) {
|
|
259
|
+
lines.push(`| Package | Change | Before | After |`);
|
|
260
|
+
lines.push(`| --- | --- | --- | --- |`);
|
|
261
|
+
for (const c of interesting.slice(0, 50)) {
|
|
262
|
+
lines.push(`| \`${c.name}\` | ${c.change} | ${c.before.map((v) => `\`${v}\``).join(', ') || '—'} | ${c.after.map((v) => `\`${v}\``).join(', ') || '—'} |`);
|
|
263
|
+
}
|
|
264
|
+
if (interesting.length > 50) {
|
|
265
|
+
lines.push('');
|
|
266
|
+
lines.push(`_…and ${interesting.length - 50} more not shown._`);
|
|
267
|
+
}
|
|
268
|
+
lines.push('');
|
|
269
|
+
}
|
|
270
|
+
if (lf.stale.length > 0) {
|
|
271
|
+
lines.push(`<details><summary>Stale transitives (${lf.stale.length} — \`package.json\` untouched)</summary>`);
|
|
272
|
+
lines.push('');
|
|
273
|
+
lines.push(`| Package | Installed | Latest | Major behind | Minor behind |`);
|
|
274
|
+
lines.push(`| --- | --- | --- | ---: | ---: |`);
|
|
275
|
+
for (const s of lf.stale.slice(0, 25)) {
|
|
276
|
+
lines.push(`| \`${s.name}\` | ${s.installed.map((v) => `\`${v}\``).join(', ')} | \`${s.latest}\` | ${s.majorBehind} | ${s.minorBehind} |`);
|
|
277
|
+
}
|
|
278
|
+
if (lf.stale.length > 25) {
|
|
279
|
+
lines.push('');
|
|
280
|
+
lines.push(`_…and ${lf.stale.length - 25} more not shown._`);
|
|
281
|
+
}
|
|
282
|
+
lines.push('');
|
|
283
|
+
lines.push(`</details>`);
|
|
284
|
+
lines.push('');
|
|
285
|
+
}
|
|
286
|
+
if (lf.status === 'failed' && lf.lastLines) {
|
|
287
|
+
lines.push(`<details><summary>${lf.failureKind ?? 'dedupe'} output (last lines)</summary>`);
|
|
288
|
+
lines.push('');
|
|
289
|
+
lines.push('```');
|
|
290
|
+
lines.push(lf.lastLines);
|
|
291
|
+
lines.push('```');
|
|
292
|
+
lines.push('');
|
|
293
|
+
lines.push(`</details>`);
|
|
294
|
+
lines.push('');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
190
297
|
if (structured.overrides && structured.overrides.attempts.length > 0) {
|
|
191
298
|
const ok = structured.overrides.attempts.filter((a) => a.ok && !a.skipped);
|
|
192
299
|
const noOp = structured.overrides.attempts.filter((a) => a.ok && a.skipped);
|
|
@@ -261,6 +368,12 @@ export function renderSummaryHtml(structured, toolVersion) {
|
|
|
261
368
|
.replace(/>/g, '>')
|
|
262
369
|
.replace(/"/g, '"');
|
|
263
370
|
const out = [];
|
|
371
|
+
// Inline stylesheet first, then the scoping wrapper. The `<style>` tag is stripped by
|
|
372
|
+
// GitHub's sanitizer in issue / PR / step-summary contexts, in which case the HTML still
|
|
373
|
+
// renders as plain tables (graceful degradation). When the summary is saved to a file and
|
|
374
|
+
// opened in a browser — the primary `--summary html` use case — the stylesheet applies and
|
|
375
|
+
// the report gets chips + proper table styling without any external assets.
|
|
376
|
+
out.push(`<style>${SUMMARY_CSS}</style>`);
|
|
264
377
|
out.push(`<section class="dep-up-surgeon-report">`);
|
|
265
378
|
out.push(`<h2>dep-up-surgeon — upgrade report</h2>`);
|
|
266
379
|
out.push(`<p><em>${upgraded.length} upgraded, ${failed.length} failed, ${structured.skipped.length} skipped — dep-up-surgeon <code>${esc(toolVersion)}</code></em></p>`);
|
|
@@ -289,7 +402,7 @@ export function renderSummaryHtml(structured, toolVersion) {
|
|
|
289
402
|
: s.url
|
|
290
403
|
? `<a href="${esc(s.url)}" rel="noreferrer noopener">link</a>`
|
|
291
404
|
: '';
|
|
292
|
-
out.push(`<tr><td><code>${esc(r.name)}</code>${esc(workspaceTagPlain(r.workspace))}</td><td
|
|
405
|
+
out.push(`<tr><td><code>${esc(r.name)}</code>${esc(workspaceTagPlain(r.workspace))}</td><td>${severityChip(s.severity, esc)}</td><td>${advCell}</td><td><code>${esc(r.from ?? '?')}</code> → <code>${esc(r.to ?? '?')}</code></td><td>${esc(s.title ?? '')}</td></tr>`);
|
|
293
406
|
}
|
|
294
407
|
out.push(`</tbody></table>`);
|
|
295
408
|
}
|
|
@@ -308,11 +421,22 @@ export function renderSummaryHtml(structured, toolVersion) {
|
|
|
308
421
|
}
|
|
309
422
|
out.push(`</ul>`);
|
|
310
423
|
}
|
|
424
|
+
const peerResolvedHtml = upgraded.filter((r) => r.resolvedPeer);
|
|
425
|
+
if (peerResolvedHtml.length > 0) {
|
|
426
|
+
out.push(`<h3>Peer-range resolutions</h3>`);
|
|
427
|
+
out.push(`<p><em>${peerResolvedHtml.length} package${peerResolvedHtml.length === 1 ? ' was' : 's were'} pinned below the requested latest because a linked-group peer constraint would otherwise have broken the install.</em></p>`);
|
|
428
|
+
out.push(`<table><thead><tr><th>Package</th><th>Group</th><th>Requested</th><th>Installed</th><th>Tuples explored</th></tr></thead><tbody>`);
|
|
429
|
+
for (const r of peerResolvedHtml) {
|
|
430
|
+
const rp = r.resolvedPeer;
|
|
431
|
+
out.push(`<tr><td><code>${esc(r.name)}</code></td><td><code>${esc(r.linkedGroupId ?? '?')}</code></td><td><code>${esc(rp.originalTarget)}</code></td><td><code>${esc(r.to ?? '?')}</code></td><td>${rp.tuplesExplored}</td></tr>`);
|
|
432
|
+
}
|
|
433
|
+
out.push(`</tbody></table>`);
|
|
434
|
+
}
|
|
311
435
|
if (upgraded.length) {
|
|
312
436
|
out.push(`<h3>Upgraded</h3>`);
|
|
313
437
|
out.push(`<table><thead><tr><th>Package</th><th>Workspace</th><th>From</th><th>To</th><th>Notes</th></tr></thead><tbody>`);
|
|
314
438
|
for (const r of upgraded) {
|
|
315
|
-
out.push(`<tr><td><code>${esc(r.name)}</code></td><td>${esc(r.workspace ?? 'root')}</td><td><code>${esc(r.from ?? '?')}</code></td><td><code>${esc(r.to ?? '?')}</code></td><td>${
|
|
439
|
+
out.push(`<tr><td><code>${esc(r.name)}</code></td><td>${esc(r.workspace ?? 'root')}</td><td><code>${esc(r.from ?? '?')}</code></td><td><code>${esc(r.to ?? '?')}</code></td><td>${formatUpgradeNoteHtml(r, esc)}</td></tr>`);
|
|
316
440
|
}
|
|
317
441
|
out.push(`</tbody></table>`);
|
|
318
442
|
const withChangelog = upgraded.filter((r) => r.changelog?.body);
|
|
@@ -357,9 +481,66 @@ export function renderSummaryHtml(structured, toolVersion) {
|
|
|
357
481
|
out.push(`<h3>Ignored</h3>`);
|
|
358
482
|
out.push(`<p>${structured.ignored.map((n) => `<code>${esc(n)}</code>`).join(', ')}</p>`);
|
|
359
483
|
}
|
|
484
|
+
if (structured.lockfileFix) {
|
|
485
|
+
const lf = structured.lockfileFix;
|
|
486
|
+
out.push(`<h3>Lockfile fix</h3>`);
|
|
487
|
+
out.push(`<p><em>${esc(renderLockfileFixSummaryLine(lf))}</em></p>`);
|
|
488
|
+
const interesting = lf.dedupeChanges.filter((c) => c.change === 'merged' || c.change === 'updated');
|
|
489
|
+
if (interesting.length > 0) {
|
|
490
|
+
out.push(`<table><thead><tr><th>Package</th><th>Change</th><th>Before</th><th>After</th></tr></thead><tbody>`);
|
|
491
|
+
for (const c of interesting.slice(0, 50)) {
|
|
492
|
+
const chipKind = c.change === 'merged' ? 'chip-peer' : 'chip-low';
|
|
493
|
+
const beforeCell = c.before.length > 0 ? c.before.map((v) => `<code>${esc(v)}</code>`).join(', ') : '—';
|
|
494
|
+
const afterCell = c.after.length > 0 ? c.after.map((v) => `<code>${esc(v)}</code>`).join(', ') : '—';
|
|
495
|
+
out.push(`<tr><td><code>${esc(c.name)}</code></td><td><span class="chip ${chipKind}">${esc(c.change)}</span></td><td>${beforeCell}</td><td>${afterCell}</td></tr>`);
|
|
496
|
+
}
|
|
497
|
+
out.push(`</tbody></table>`);
|
|
498
|
+
if (interesting.length > 50) {
|
|
499
|
+
out.push(`<p><em>…and ${interesting.length - 50} more not shown.</em></p>`);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
if (lf.stale.length > 0) {
|
|
503
|
+
out.push(`<details><summary>Stale transitives (${lf.stale.length} — <code>package.json</code> untouched)</summary>`);
|
|
504
|
+
out.push(`<table><thead><tr><th>Package</th><th>Installed</th><th>Latest</th><th>Major behind</th><th>Minor behind</th></tr></thead><tbody>`);
|
|
505
|
+
for (const s of lf.stale.slice(0, 25)) {
|
|
506
|
+
out.push(`<tr><td><code>${esc(s.name)}</code></td><td>${s.installed.map((v) => `<code>${esc(v)}</code>`).join(', ')}</td><td><code>${esc(s.latest)}</code></td><td>${s.majorBehind}</td><td>${s.minorBehind}</td></tr>`);
|
|
507
|
+
}
|
|
508
|
+
out.push(`</tbody></table>`);
|
|
509
|
+
if (lf.stale.length > 25) {
|
|
510
|
+
out.push(`<p><em>…and ${lf.stale.length - 25} more not shown.</em></p>`);
|
|
511
|
+
}
|
|
512
|
+
out.push(`</details>`);
|
|
513
|
+
}
|
|
514
|
+
if (lf.status === 'failed' && lf.lastLines) {
|
|
515
|
+
out.push(`<details><summary>${esc(lf.failureKind ?? 'dedupe')} output (last lines)</summary><pre>${esc(lf.lastLines)}</pre></details>`);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
360
518
|
out.push(`</section>`);
|
|
361
519
|
return out.join('\n');
|
|
362
520
|
}
|
|
521
|
+
/**
|
|
522
|
+
* One-line human summary of a lockfile-fix report. Shared by the Markdown and HTML
|
|
523
|
+
* renderers so the wording stays consistent.
|
|
524
|
+
*/
|
|
525
|
+
function renderLockfileFixSummaryLine(lf) {
|
|
526
|
+
if (lf.status === 'skipped') {
|
|
527
|
+
const reason = lf.skipReason === 'no-lockfile'
|
|
528
|
+
? 'no lockfile was present on disk'
|
|
529
|
+
: 'package manager has no dedupe subcommand (yarn classic)';
|
|
530
|
+
return `Skipped — ${reason}.`;
|
|
531
|
+
}
|
|
532
|
+
if (lf.status === 'dry-run') {
|
|
533
|
+
return `Dry-run — would execute \`${lf.command}\`.`;
|
|
534
|
+
}
|
|
535
|
+
if (lf.status === 'failed') {
|
|
536
|
+
const kind = lf.failureKind === 'validation' ? 'validator' : 'dedupe';
|
|
537
|
+
return `Failed — ${kind} exited non-zero; lockfile was restored to its pre-dedupe state.`;
|
|
538
|
+
}
|
|
539
|
+
const merged = lf.dedupeChanges.filter((c) => c.change === 'merged').length;
|
|
540
|
+
const updated = lf.dedupeChanges.filter((c) => c.change === 'updated').length;
|
|
541
|
+
const stale = lf.stale.length;
|
|
542
|
+
return `Ran \`${lf.command}\` — ${merged} merged, ${updated} updated, ${stale} stale transitive${stale === 1 ? '' : 's'} flagged.`;
|
|
543
|
+
}
|
|
363
544
|
function formatUpgradeNote(r) {
|
|
364
545
|
const bits = [];
|
|
365
546
|
if (r.changelog?.breaking?.hasBreaking) {
|
|
@@ -375,11 +556,49 @@ function formatUpgradeNote(r) {
|
|
|
375
556
|
if (r.usedFallback && r.requestedLatest) {
|
|
376
557
|
bits.push(`fallback (latest was \`${r.requestedLatest}\`)`);
|
|
377
558
|
}
|
|
559
|
+
if (r.resolvedPeer) {
|
|
560
|
+
bits.push(`peer-resolved from \`${r.resolvedPeer.originalTarget}\``);
|
|
561
|
+
}
|
|
378
562
|
if (r.forced) {
|
|
379
563
|
bits.push('forced');
|
|
380
564
|
}
|
|
381
565
|
return bits.join(', ');
|
|
382
566
|
}
|
|
567
|
+
/**
|
|
568
|
+
* HTML variant of `formatUpgradeNote` — emits severity + classification chips + clickable
|
|
569
|
+
* advisory IDs instead of a flat markdown string. Used only by `renderSummaryHtml`; the
|
|
570
|
+
* Markdown renderer keeps `formatUpgradeNote` because chips don't render in plain MD.
|
|
571
|
+
*/
|
|
572
|
+
function formatUpgradeNoteHtml(r, esc) {
|
|
573
|
+
const parts = [];
|
|
574
|
+
if (r.changelog?.breaking?.hasBreaking) {
|
|
575
|
+
parts.push(`<span class="chip chip-breaking">breaking</span>`);
|
|
576
|
+
}
|
|
577
|
+
if (r.security) {
|
|
578
|
+
const id = r.security.ids[0];
|
|
579
|
+
const idCell = id
|
|
580
|
+
? r.security.url
|
|
581
|
+
? ` <a href="${esc(r.security.url)}" rel="noreferrer noopener"><code>${esc(id)}</code></a>`
|
|
582
|
+
: ` <code>${esc(id)}</code>`
|
|
583
|
+
: '';
|
|
584
|
+
parts.push(`${severityChip(r.security.severity, esc)}${idCell}`);
|
|
585
|
+
}
|
|
586
|
+
if (r.linkedGroupId) {
|
|
587
|
+
parts.push(`<span class="chip chip-low">group <code>${esc(r.linkedGroupId)}</code></span>`);
|
|
588
|
+
}
|
|
589
|
+
if (r.usedFallback && r.requestedLatest) {
|
|
590
|
+
parts.push(`<span class="chip chip-fallback">fallback</span> <em>(latest was <code>${esc(r.requestedLatest)}</code>)</em>`);
|
|
591
|
+
}
|
|
592
|
+
if (r.resolvedPeer) {
|
|
593
|
+
parts.push(`<span class="chip chip-peer">peer-resolved</span> <em>from <code>${esc(r.resolvedPeer.originalTarget)}</code></em>`);
|
|
594
|
+
}
|
|
595
|
+
if (r.forced) {
|
|
596
|
+
parts.push(`<span class="chip chip-forced">forced</span>`);
|
|
597
|
+
}
|
|
598
|
+
if (parts.length === 0)
|
|
599
|
+
return '';
|
|
600
|
+
return `<span class="note-bits">${parts.join(' ')}</span>`;
|
|
601
|
+
}
|
|
383
602
|
function formatFailureNote(f) {
|
|
384
603
|
if (f.reason === 'validation-script' && f.validation) {
|
|
385
604
|
return `validator \`${f.validation.command ?? '?'}\` exited \`${f.validation.exitCode ?? '?'}\``;
|
package/dist/cli/summary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/cli/summary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/cli/summary.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -113,6 +113,15 @@ async function postRunInteractive(cwd, report) {
|
|
|
113
113
|
}
|
|
114
114
|
async function main() {
|
|
115
115
|
const version = await readSelfVersion();
|
|
116
|
+
// `doctor` is a read-only diagnostic subcommand — we dispatch it BEFORE the main commander
|
|
117
|
+
// program is wired up so it doesn't have to inherit the upgrade flow's 70+ options (most
|
|
118
|
+
// of which don't apply to a read-only run). `doctor` has its own small commander program
|
|
119
|
+
// with a focused option set; when it runs, it prints its report and exits directly.
|
|
120
|
+
if (process.argv[2] === 'doctor') {
|
|
121
|
+
const { runDoctorCommand } = await import('./cli/doctorCommand.js');
|
|
122
|
+
await runDoctorCommand(process.argv, version);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
116
125
|
program
|
|
117
126
|
.name('dep-up-surgeon')
|
|
118
127
|
.description('Upgrade npm dependencies one-by-one with install + test/build validation and rollback on failure.')
|
|
@@ -132,7 +141,8 @@ async function main() {
|
|
|
132
141
|
.option('--workspaces-only', 'Traverse only workspace members; skip the root package.json. Implies --workspaces.', false)
|
|
133
142
|
.option('--workspace <names>', 'Comma-separated workspace member names to traverse (use the package `name` from each child package.json). Pass `root` to also include the root. Example: --workspace "@org/core,@org/web,root".')
|
|
134
143
|
.option('--install-mode <mode>', 'Workspace install strategy: `root` (default; always install the whole tree from the workspace root — safest) or `filtered` (npm `-w <name>` / pnpm `--filter <name>` per child target). Yarn falls back to a full install with a warning. Only matters with --workspaces / --workspace.', 'root')
|
|
135
|
-
.option('--concurrency <n>', 'Maximum number of workspace targets to scan/plan in parallel (1-16; default 1). Higher values overlap registry fetches across targets while a shared mutex keeps installs and validation serialized (the lockfile is shared). Requires --json to keep per-target log lines from interleaving — non-JSON mode silently downgrades to 1 with a warning.', '1')
|
|
144
|
+
.option('--concurrency <n>', 'Maximum number of workspace targets to scan/plan in parallel (1-16; default 1). Higher values overlap registry fetches across targets while a shared mutex keeps installs and validation serialized (the lockfile is shared). In **isolated-lockfile** monorepos (pnpm `shared-workspace-lockfile=false`, or every workspace member shipping its own lockfile) the installs + validation ALSO run in parallel, keyed per workspace directory. Requires --json to keep per-target log lines from interleaving — non-JSON mode silently downgrades to 1 with a warning.', '1')
|
|
145
|
+
.option('--no-parallel-installs', 'Force installs + validation to stay serialized even when an isolated-lockfile monorepo is detected. Useful when debugging a flaky install step (parallel installs mask the ordering) or when a per-workspace postinstall script touches shared state outside the workspace tree.')
|
|
136
146
|
.option('--no-persist-report', `Do not write the structured report to ${LAST_RUN_FILENAME} after the run. By default the report is written next to the workspace root for inspection by CI / --retry-failed.`)
|
|
137
147
|
.option('--retry-failed', `Read ${LAST_RUN_FILENAME} from the previous run and only reattempt entries that failed for non-terminal reasons (i.e. NOT 'peer' or 'validation-script'). Successful upgrades + terminal failures from the last run are added to the ignore list automatically.`, false)
|
|
138
148
|
.option('--summary <format>', 'Write a human-friendly summary of the run as `md` (default) or `html`. Destination: $GITHUB_STEP_SUMMARY if set (appended), otherwise --summary-file <path>, otherwise ./dep-up-surgeon-summary.<ext>.')
|
|
@@ -150,8 +160,11 @@ async function main() {
|
|
|
150
160
|
.option('--min-severity <level>', 'Minimum advisory severity to consider under --security-only: one of "low", "moderate", "high", "critical". Lower severities are filtered out. Default: "low" (accept all).', 'low')
|
|
151
161
|
.option('--blast-radius', 'Scan project source files to list which files actually import each upgraded package. Attaches the file list to every upgrade record + surfaces it in --summary. Default ON when --summary is active.')
|
|
152
162
|
.option('--no-blast-radius', 'Disable blast-radius source scanning. Useful in very large monorepos where the scan is slower than the install itself.')
|
|
163
|
+
.option('--resolve-peers', 'When a linked-group bump (e.g. `react` + `react-dom`) fails with a peer-dependency conflict, attempt to compute a compatible version tuple by intersecting each member\'s peer ranges across the registry packument. If a satisfiable tuple exists and it passes install + validate, the batch succeeds with members possibly downgraded off `latest`. Default: ON.')
|
|
164
|
+
.option('--no-resolve-peers', 'Disable the peer-range intersection resolver. A linked batch that fails with a peer conflict rolls back exactly like before. Useful when you WANT the failure to surface instead of having the tool silently nudge versions off latest.')
|
|
153
165
|
.option('--apply-overrides', 'After the main upgrade loop, attempt to fix transitive CVEs that no direct bump could reach by writing a package-manager override (`overrides` for npm, `pnpm.overrides` for pnpm, `resolutions` for yarn) pinning each vulnerable package to its audit-recommended safe version. Runs install + validator after each pin and rolls back the pin on failure. Requires --security-only.', false)
|
|
154
166
|
.option('--override-force', 'Used with --apply-overrides. Overwrite an existing override whose value conflicts with the audit-recommended version. By default we refuse and record a `conflict` reason so the user can reconcile manually.', false)
|
|
167
|
+
.option('--fix-lockfile', 'Run the package manager\'s native dedupe pass (`npm dedupe` / `pnpm dedupe` / `yarn dedupe`) to collapse redundant transitive copies WITHOUT touching package.json, and scan for transitives more than one minor or a full major behind registry `latest`. The lockfile is backed up before dedupe and restored if the dedupe command OR the post-dedupe validator fails. Yarn classic (v1) has no dedupe subcommand and is recorded as `skipped: "unsupported"`.', false)
|
|
155
168
|
.option('--open-pr', 'Push the branch created by --git-branch and open a GitHub PR using the `gh` CLI (must be installed + authenticated). The PR body is the --summary markdown (falls back to a minimal default). Never fatal: a missing `gh`, an auth failure, or a push reject is recorded in the structured report as `pullRequest.error` without aborting the upgrade run.', false)
|
|
156
169
|
.option('--open-pr-title <title>', 'Override the PR title. Default: a deterministic title derived from the upgrade counts (e.g. "deps: [security] bump 3 packages").')
|
|
157
170
|
.option('--open-pr-draft', 'Open the PR as a draft. Useful on Fridays or when --force was used so the PR cannot be auto-merged by a queue bot.', false)
|
|
@@ -416,8 +429,14 @@ async function main() {
|
|
|
416
429
|
workspaceMode,
|
|
417
430
|
installMode,
|
|
418
431
|
concurrency,
|
|
432
|
+
// commander turns `--no-parallel-installs` into `parallelInstalls: false`; everything
|
|
433
|
+
// else (undefined, true, or the flag absent) means "auto-detect from project info".
|
|
434
|
+
...(opts.parallelInstalls === false ? { forceSerialInstalls: true } : {}),
|
|
419
435
|
restrictToNames,
|
|
420
436
|
policy,
|
|
437
|
+
// `--no-resolve-peers` sets opts.resolvePeers to false (commander convention);
|
|
438
|
+
// anything else (undefined, true) means "default on" inside the engine.
|
|
439
|
+
resolvePeers: opts.resolvePeers !== false,
|
|
421
440
|
onUpgradeApplied: gitFlow?.onUpgradeApplied,
|
|
422
441
|
onTargetComplete: gitFlow
|
|
423
442
|
? async (ev) => {
|
|
@@ -595,6 +614,66 @@ async function main() {
|
|
|
595
614
|
}
|
|
596
615
|
}
|
|
597
616
|
}
|
|
617
|
+
// --fix-lockfile: dedupe + stale-transitive scan. Runs AFTER the main upgrade loop and
|
|
618
|
+
// overrides pass so we dedupe the FINAL tree. We roll back on any failure, so in the
|
|
619
|
+
// worst case the user ends up with the same lockfile the upgrade loop produced.
|
|
620
|
+
if (opts.fixLockfile && !dryRun) {
|
|
621
|
+
try {
|
|
622
|
+
const { runLockfileFix } = await import('./cli/lockfileFix.js');
|
|
623
|
+
const fixManager = packageManager !== 'auto' ? packageManager : report.project?.manager ?? 'npm';
|
|
624
|
+
const yarnMajorVersion = report.project?.yarnMajorVersion;
|
|
625
|
+
const fixRes = await runLockfileFix({
|
|
626
|
+
cwd,
|
|
627
|
+
manager: fixManager,
|
|
628
|
+
...(yarnMajorVersion !== undefined ? { yarnMajorVersion } : {}),
|
|
629
|
+
json: jsonOutput,
|
|
630
|
+
runValidator: async () => {
|
|
631
|
+
if (validate.skip)
|
|
632
|
+
return { ok: true };
|
|
633
|
+
try {
|
|
634
|
+
const { validateProject } = await import('./core/validator.js');
|
|
635
|
+
const pkg = await fs.readJson(path.join(cwd, 'package.json'));
|
|
636
|
+
const vr = await validateProject(cwd, pkg, {
|
|
637
|
+
...(validate.command ? { command: validate.command } : {}),
|
|
638
|
+
manager: fixManager,
|
|
639
|
+
...(validate.source ? { source: validate.source } : {}),
|
|
640
|
+
});
|
|
641
|
+
return {
|
|
642
|
+
ok: vr.ok,
|
|
643
|
+
...(vr.command ? { command: vr.command } : {}),
|
|
644
|
+
...(vr.output ? { lastLines: vr.output } : {}),
|
|
645
|
+
};
|
|
646
|
+
}
|
|
647
|
+
catch {
|
|
648
|
+
return { ok: true };
|
|
649
|
+
}
|
|
650
|
+
},
|
|
651
|
+
runInstallAfterRollback: async () => {
|
|
652
|
+
const { runInstall } = await import('./utils/npm.js');
|
|
653
|
+
await runInstall(cwd, fixManager);
|
|
654
|
+
},
|
|
655
|
+
});
|
|
656
|
+
report.lockfileFix = fixRes.report;
|
|
657
|
+
if (!jsonOutput) {
|
|
658
|
+
const r = fixRes.report;
|
|
659
|
+
if (r.status === 'ok') {
|
|
660
|
+
const mergedOrUpdated = r.dedupeChanges.filter((c) => c.change === 'merged' || c.change === 'updated').length;
|
|
661
|
+
log.success(`--fix-lockfile: ${r.command} succeeded (${mergedOrUpdated} package${mergedOrUpdated === 1 ? '' : 's'} deduped/updated, ${r.stale.length} stale transitive${r.stale.length === 1 ? '' : 's'} flagged).`);
|
|
662
|
+
}
|
|
663
|
+
else if (r.status === 'failed') {
|
|
664
|
+
log.warn(`--fix-lockfile: ${r.failureKind === 'validation' ? 'validator' : 'dedupe'} failed; lockfile was restored.`);
|
|
665
|
+
}
|
|
666
|
+
else if (r.status === 'skipped') {
|
|
667
|
+
log.info(`--fix-lockfile: skipped (${r.skipReason === 'no-lockfile' ? 'no lockfile on disk' : 'yarn classic has no dedupe subcommand'}).`);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
catch (e) {
|
|
672
|
+
if (!jsonOutput) {
|
|
673
|
+
log.warn(`--fix-lockfile: skipped due to error: ${e instanceof Error ? e.message : String(e)}`);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
}
|
|
598
677
|
// Write the --summary file BEFORE emitting the primary report so we can reuse it as the
|
|
599
678
|
// PR body (when --open-pr is set) and so the JSON consumer sees `pullRequest` reflected in
|
|
600
679
|
// the final structured report.
|