From 34c408398240f161d9ef9ffac18e8b8fdf3d24d3 Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Fri, 7 Nov 2025 14:22:54 -0600 Subject: [PATCH 1/7] fix: improve error message when package.json is missing --- src/commands/analyze.ts | 35 ++++++++++-- src/test/__snapshots__/cli.test.ts.snap | 56 +++++++++---------- .../duplicate-dependencies.test.ts.snap | 26 ++++----- src/test/cli.test.ts | 6 +- src/test/tarball-file-system.test.ts | 2 +- 5 files changed, 76 insertions(+), 49 deletions(-) diff --git a/src/commands/analyze.ts b/src/commands/analyze.ts index 1dc4080..e3448de 100644 --- a/src/commands/analyze.ts +++ b/src/commands/analyze.ts @@ -50,15 +50,38 @@ export async function run(ctx: CommandContext) { root = providedPath; } + // Check if package.json exists in the root directory + const packageJsonPath = root ? `${root}/package.json` : './package.json'; + + try { + await fsp.access(packageJsonPath); + } catch { + prompts.cancel( + c.red( + `No package.json found in ${root || 'the current directory'}. Make sure you are in a package directory before running this command.` + ) + ); + process.exit(1); + } + // Then analyze the tarball const customManifests = ctx.values['manifest']; - const {stats, messages} = await report({ - root, - manifest: customManifests, - baseTarball, - targetTarball - }); + let stats, messages; + try { + const result = await report({ + root, + manifest: customManifests, + baseTarball, + targetTarball + }); + stats = result.stats; + messages = result.messages; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + prompts.cancel(c.red(`Analysis failed: ${errorMessage}`)); + process.exit(1); + } prompts.log.info('Summary'); diff --git a/src/test/__snapshots__/cli.test.ts.snap b/src/test/__snapshots__/cli.test.ts.snap index 82bec78..4c9a97b 100644 --- a/src/test/__snapshots__/cli.test.ts.snap +++ b/src/test/__snapshots__/cli.test.ts.snap @@ -1,21 +1,21 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`CLI > should display package report 1`] = ` -"e18e (cli ) +"e18e (cli ) -┌ Analyzing... -│ -● Summary -│ Package Name mock-package -│ Version 1.0.0 -│ Install Size 53.0 B -│ Dependencies 1 (1 production, 0 development) -│ ES Modules 100% (1 ESM, 0 CJS) -│ -● Results: -│ -│ -└ Done! +┌ Analyzing... +│ +● Summary +│ Package Name mock-package +│ Version 1.0.0 +│ Install Size 53.0 B +│ Dependencies 1 (1 production, 0 development) +│ ES Modules 100% (1 ESM, 0 CJS) +│ +● Results: +│ +│ +└ Done! " `; @@ -23,21 +23,21 @@ exports[`CLI > should display package report 1`] = ` exports[`CLI > should display package report 2`] = `""`; exports[`CLI > should run successfully with default options 1`] = ` -"e18e (cli ) +"e18e (cli ) -┌ Analyzing... -│ -● Summary -│ Package Name mock-package -│ Version 1.0.0 -│ Install Size 53.0 B -│ Dependencies 1 (1 production, 0 development) -│ ES Modules 100% (1 ESM, 0 CJS) -│ -● Results: -│ -│ -└ Done! +┌ Analyzing... +│ +● Summary +│ Package Name mock-package +│ Version 1.0.0 +│ Install Size 53.0 B +│ Dependencies 1 (1 production, 0 development) +│ ES Modules 100% (1 ESM, 0 CJS) +│ +● Results: +│ +│ +└ Done! " `; diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index 6e3200f..ea9ae53 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -4,10 +4,10 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -31,11 +31,11 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = { "messages": [ { - "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib -Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 3 installed versions: + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib +Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -59,10 +59,10 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, diff --git a/src/test/cli.test.ts b/src/test/cli.test.ts index 2261c5a..24e5122 100644 --- a/src/test/cli.test.ts +++ b/src/test/cli.test.ts @@ -56,8 +56,12 @@ function runCliProcess( ): Promise<{stdout: string; stderr: string; code: number | null}> { return new Promise((resolve) => { const cliPath = path.resolve(__dirname, '../../lib/cli.js'); + // Remove conflicting color environment variables to avoid warnings + const env = {...process.env}; + delete env.NO_COLOR; + delete env.FORCE_COLOR; const proc = spawn('node', [cliPath, ...args], { - env: process.env, + env, cwd: cwd || process.cwd() }); let stdout = ''; diff --git a/src/test/tarball-file-system.test.ts b/src/test/tarball-file-system.test.ts index ecbcf41..f557ba5 100644 --- a/src/test/tarball-file-system.test.ts +++ b/src/test/tarball-file-system.test.ts @@ -35,7 +35,7 @@ async function createTarballBuffer(cwd: string): Promise { return buffer.buffer.slice( buffer.byteOffset, buffer.byteOffset + buffer.byteLength - ); + ) as ArrayBuffer; } describe('TarballFileSystem', () => { From 909b7e0b6b117904389cfe5a1b0fe00ddf4b18df Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Fri, 7 Nov 2025 14:33:16 -0600 Subject: [PATCH 2/7] update: snapshots --- .../duplicate-dependencies.test.ts.snap | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index ea9ae53..6e3200f 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -4,10 +4,10 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -31,11 +31,11 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = { "messages": [ { - "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib -Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 3 installed versions: + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib +Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -59,10 +59,10 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, From 5b18f6a243b0c9eb24efc319d66ee8e8e0af9163 Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Sat, 8 Nov 2025 01:24:46 -0600 Subject: [PATCH 3/7] refactor: enhance CLI environment variable handling for consistent output --- .../duplicate-dependencies.test.ts.snap | 26 +++++++++---------- src/test/cli.test.ts | 8 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index 6e3200f..ea9ae53 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -4,10 +4,10 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -31,11 +31,11 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = { "messages": [ { - "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib -Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 3 installed versions: + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib +Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, @@ -59,10 +59,10 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic { "messages": [ { - "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib -Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", + "message": "[duplicate dependency] shared-lib has 2 installed versions: + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib +Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", }, diff --git a/src/test/cli.test.ts b/src/test/cli.test.ts index 24e5122..85d6f1b 100644 --- a/src/test/cli.test.ts +++ b/src/test/cli.test.ts @@ -56,10 +56,10 @@ function runCliProcess( ): Promise<{stdout: string; stderr: string; code: number | null}> { return new Promise((resolve) => { const cliPath = path.resolve(__dirname, '../../lib/cli.js'); - // Remove conflicting color environment variables to avoid warnings - const env = {...process.env}; - delete env.NO_COLOR; - delete env.FORCE_COLOR; + // Set NO_COLOR to ensure consistent plain text output for snapshots + // Remove FORCE_COLOR as it overrides NO_COLOR + const {FORCE_COLOR, ...envWithoutForceColor} = process.env; + const env = {...envWithoutForceColor, NO_COLOR: '1'}; const proc = spawn('node', [cliPath, ...args], { env, cwd: cwd || process.cwd() From 02b62553652863c67eaa62cc44dda6c94aceb272 Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Sat, 8 Nov 2025 01:31:34 -0600 Subject: [PATCH 4/7] fix: adjust formatting for duplicate dependency messages in output --- src/analyze/dependencies.ts | 2 +- .../duplicate-dependencies.test.ts.snap | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/analyze/dependencies.ts b/src/analyze/dependencies.ts index 94abdbb..2d6891e 100644 --- a/src/analyze/dependencies.ts +++ b/src/analyze/dependencies.ts @@ -310,7 +310,7 @@ export async function runDependencyAnalysis( let message = `${severityColor('[duplicate dependency]')} ${colors.bold(duplicate.name)} has ${duplicate.versions.length} installed versions:`; for (const version of duplicate.versions) { - message += `\n ${colors.gray(version.version)} via ${colors.gray(version.path)}`; + message += `\n ${colors.gray(version.version)} via ${colors.gray(version.path)}`; } if (duplicate.suggestions && duplicate.suggestions.length > 0) { diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index ea9ae53..df7a8f9 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -5,8 +5,8 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -32,9 +32,9 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = "messages": [ { "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -60,8 +60,8 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", From 012567ad75fe8c758e66cc63a712556830d2d88c Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Sat, 8 Nov 2025 01:33:44 -0600 Subject: [PATCH 5/7] moar tests --- src/analyze/dependencies.ts | 2 +- .../duplicate-dependencies.test.ts.snap | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/analyze/dependencies.ts b/src/analyze/dependencies.ts index 2d6891e..67e946b 100644 --- a/src/analyze/dependencies.ts +++ b/src/analyze/dependencies.ts @@ -310,7 +310,7 @@ export async function runDependencyAnalysis( let message = `${severityColor('[duplicate dependency]')} ${colors.bold(duplicate.name)} has ${duplicate.versions.length} installed versions:`; for (const version of duplicate.versions) { - message += `\n ${colors.gray(version.version)} via ${colors.gray(version.path)}`; + message += `\n ${colors.gray(version.version)} via ${colors.gray(version.path)}`; } if (duplicate.suggestions && duplicate.suggestions.length > 0) { diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index df7a8f9..e887f9c 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -5,8 +5,8 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -32,9 +32,9 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = "messages": [ { "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -60,8 +60,8 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", From a9ab03297d365230481fbfd2dc3781f37d3768ca Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Sat, 8 Nov 2025 02:02:17 -0600 Subject: [PATCH 6/7] fix: update color handling in dependency analysis and adjust test snapshots for consistent output --- src/analyze/dependencies.ts | 16 +++++++++++----- .../duplicate-dependencies.test.ts.snap | 14 +++++++------- vitest.config.ts | 2 +- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/analyze/dependencies.ts b/src/analyze/dependencies.ts index 67e946b..751424f 100644 --- a/src/analyze/dependencies.ts +++ b/src/analyze/dependencies.ts @@ -304,19 +304,25 @@ export async function runDependencyAnalysis( stats.dependencyCount.duplicate = duplicateDependencies.length; for (const duplicate of duplicateDependencies) { - const severityColor = - duplicate.severity === 'exact' ? colors.blue : colors.yellow; + // Disable colors completely when NO_COLOR is set (for consistent test snapshots) + const noColor = process.env.NO_COLOR === '1'; + const severityColor = noColor + ? (str: string) => str + : (duplicate.severity === 'exact' ? colors.blue : colors.yellow); + const bold = noColor ? (str: string) => str : colors.bold; + const gray = noColor ? (str: string) => str : colors.gray; + const blue = noColor ? (str: string) => str : colors.blue; - let message = `${severityColor('[duplicate dependency]')} ${colors.bold(duplicate.name)} has ${duplicate.versions.length} installed versions:`; + let message = `${severityColor('[duplicate dependency]')} ${bold(duplicate.name)} has ${duplicate.versions.length} installed versions:`; for (const version of duplicate.versions) { - message += `\n ${colors.gray(version.version)} via ${colors.gray(version.path)}`; + message += `\n ${gray(version.version)} via ${gray(version.path)}`; } if (duplicate.suggestions && duplicate.suggestions.length > 0) { message += '\nSuggestions:'; for (const suggestion of duplicate.suggestions) { - message += ` ${colors.blue('💡')} ${colors.gray(suggestion)}`; + message += ` ${blue('💡')} ${gray(suggestion)}`; } } diff --git a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap index e887f9c..ea9ae53 100644 --- a/src/test/__snapshots__/duplicate-dependencies.test.ts.snap +++ b/src/test/__snapshots__/duplicate-dependencies.test.ts.snap @@ -5,8 +5,8 @@ exports[`Duplicate Dependency Detection > should detect exact duplicate dependen "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -32,9 +32,9 @@ exports[`Duplicate Dependency Detection > should detect version conflicts 1`] = "messages": [ { "message": "[duplicate dependency] shared-lib has 3 installed versions: - 1.0.0 via root > package-a > shared-lib - 1.0.0 via root > package-b > shared-lib - 2.0.0 via shared-lib + 1.0.0 via root > package-a > shared-lib + 1.0.0 via root > package-b > shared-lib + 2.0.0 via shared-lib Suggestions: 💡 Consider standardizing on version 1.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", @@ -60,8 +60,8 @@ exports[`Duplicate Dependency Detection > should generate suggestions for duplic "messages": [ { "message": "[duplicate dependency] shared-lib has 2 installed versions: - 2.0.0 via root > package-a > shared-lib - 2.0.0 via root > package-b > shared-lib + 2.0.0 via root > package-a > shared-lib + 2.0.0 via root > package-b > shared-lib Suggestions: 💡 Consider standardizing on version 2.0.0 (used by 2 dependencies) 💡 Check if newer versions of consuming packages (package-a, package-b) would resolve this duplicate", "score": 0, "severity": "warning", diff --git a/vitest.config.ts b/vitest.config.ts index 9ce1dd7..254d512 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -5,7 +5,7 @@ export default defineConfig({ ], test: { env: { - FORCE_COLOR: '1' + NO_COLOR: '1' }, reporters: 'dot', include: [ From 3cd1dc82f4fe14d76831e6342e6a56f72decab99 Mon Sep 17 00:00:00 2001 From: Paul Valladares <85648028+dreyfus92@users.noreply.github.com> Date: Sat, 8 Nov 2025 02:03:49 -0600 Subject: [PATCH 7/7] format --- src/analyze/dependencies.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/analyze/dependencies.ts b/src/analyze/dependencies.ts index 751424f..a36be0c 100644 --- a/src/analyze/dependencies.ts +++ b/src/analyze/dependencies.ts @@ -306,9 +306,11 @@ export async function runDependencyAnalysis( for (const duplicate of duplicateDependencies) { // Disable colors completely when NO_COLOR is set (for consistent test snapshots) const noColor = process.env.NO_COLOR === '1'; - const severityColor = noColor + const severityColor = noColor ? (str: string) => str - : (duplicate.severity === 'exact' ? colors.blue : colors.yellow); + : duplicate.severity === 'exact' + ? colors.blue + : colors.yellow; const bold = noColor ? (str: string) => str : colors.bold; const gray = noColor ? (str: string) => str : colors.gray; const blue = noColor ? (str: string) => str : colors.blue;