Skip to content

Commit fcb45f4

Browse files
committed
fix(cli): improve optimize dry-run and remove unused logger imports
- optimize: Now detects package environment before dry-run output, showing actual package manager (npm/pnpm/yarn) and version - Remove unused logger imports from 21 command files introduced by previous dry-run changes - Add .claude/ to .gitignore for local analysis docs
1 parent d5672b2 commit fcb45f4

23 files changed

+37
-59
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,4 @@ packages/socket/*.png
130130
!/.vscode/extensions.json
131131
!docs/build/
132132
!src/types/**/*.d.ts
133+
.claude/

packages/cli/src/commands/analytics/cmd-analytics.mts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { handleAnalytics } from './handle-analytics.mts'
42
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mts'
53
import { outputDryRunFetch } from '../../utils/dry-run/output.mts'
@@ -20,8 +18,6 @@ import type {
2018
CliCommandContext,
2119
} from '../../utils/cli/with-subcommands.mjs'
2220

23-
const logger = getDefaultLogger()
24-
2521
// Flags interface for type safety.
2622
interface AnalyticsFlags {
2723
file: string

packages/cli/src/commands/audit-log/cmd-audit-log.mts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { handleAuditLog } from './handle-audit-log.mts'
42
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mts'
53
import { outputDryRunFetch } from '../../utils/dry-run/output.mts'

packages/cli/src/commands/ci/cmd-ci.mts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { getDefaultOrgSlug } from './fetch-default-org-slug.mts'
42
import { handleCi } from './handle-ci.mts'
53
import { commonFlags } from '../../flags.mts'
@@ -17,8 +15,6 @@ import type {
1715
CliCommandContext,
1816
} from '../../utils/cli/with-subcommands.mjs'
1917

20-
const logger = getDefaultLogger()
21-
2218
const config: CliCommandConfig = {
2319
commandName: 'ci',
2420
description:

packages/cli/src/commands/config/cmd-config-list.mts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { outputConfigList } from './output-config-list.mts'
42
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mjs'
53
import { outputDryRunFetch } from '../../utils/dry-run/output.mts'
@@ -14,8 +12,6 @@ import type {
1412
CliCommandContext,
1513
} from '../../utils/cli/with-subcommands.mjs'
1614

17-
const logger = getDefaultLogger()
18-
1915
const config: CliCommandConfig = {
2016
commandName: 'list',
2117
description: 'Show all local CLI config items and their values',

packages/cli/src/commands/npm/cmd-npm.mts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { NPM } from '@socketsecurity/lib/constants/agents'
2-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
32

43
import { commonFlags } from '../../flags.mts'
54
import { meowOrExit } from '../../utils/cli/with-subcommands.mjs'
@@ -17,8 +16,6 @@ import type {
1716
CliCommandContext,
1817
} from '../../utils/cli/with-subcommands.mjs'
1918

20-
const logger = getDefaultLogger()
21-
2219
export const CMD_NAME = NPM
2320

2421
const description = 'Run npm with Socket Firewall security'

packages/cli/src/commands/npx/cmd-npx.mts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { NPX } from '@socketsecurity/lib/constants/agents'
2-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
32

43
import { commonFlags } from '../../flags.mts'
54
import { meowOrExit } from '../../utils/cli/with-subcommands.mjs'
@@ -17,8 +16,6 @@ import type {
1716
CliCommandContext,
1817
} from '../../utils/cli/with-subcommands.mjs'
1918

20-
const logger = getDefaultLogger()
21-
2219
const CMD_NAME = NPX
2320

2421
const description = 'Run npx with Socket Firewall security'

packages/cli/src/commands/optimize/cmd-optimize.mts

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import path from 'node:path'
22

33
import { handleOptimize } from './handle-optimize.mts'
4+
import { CMD_NAME as CMD_NAME_FULL } from './shared.mts'
45
import { commonFlags } from '../../flags.mts'
56
import { meowOrExit } from '../../utils/cli/with-subcommands.mjs'
67
import { outputDryRunPreview } from '../../utils/dry-run/output.mts'
8+
import { detectAndValidatePackageEnvironment } from '../../utils/ecosystem/environment.mjs'
79
import {
810
getFlagApiRequirementsOutput,
911
getFlagListOutput,
@@ -85,29 +87,58 @@ async function run(
8587
const outputKind = getOutputKind(json, markdown)
8688

8789
if (dryRun) {
90+
// Detect package environment to show meaningful dry-run output.
91+
const pkgEnvCResult = await detectAndValidatePackageEnvironment(cwd, {
92+
cmdName: CMD_NAME_FULL,
93+
prod: Boolean(prod),
94+
})
95+
96+
if (!pkgEnvCResult.ok) {
97+
outputDryRunPreview({
98+
summary: 'Optimize dependencies with @socketregistry overrides',
99+
actions: [
100+
{
101+
type: 'fetch',
102+
description: 'Detect package environment',
103+
target: cwd,
104+
},
105+
],
106+
wouldSucceed: false,
107+
})
108+
return
109+
}
110+
111+
const pkgEnvDetails = pkgEnvCResult.data
112+
const { agent, agentVersion, pkgPath } = pkgEnvDetails
113+
88114
const actions: DryRunAction[] = [
89115
{
90116
type: 'fetch',
91-
description: 'Analyze dependencies for @socketregistry overrides',
92-
target: cwd,
117+
description: `Detected ${agent} v${agentVersion}`,
118+
target: pkgPath,
119+
},
120+
{
121+
type: 'fetch',
122+
description: 'Analyze dependencies against @socketregistry overrides',
123+
target: 'package.json and lockfile',
93124
},
94125
{
95126
type: 'modify',
96127
description: 'Add or update overrides section in package.json',
97-
target: 'package.json',
128+
target: path.join(pkgPath, 'package.json'),
98129
details: {
99130
pin: pin ? 'Yes - pin to specific versions' : 'No - use version ranges',
100131
prod: prod ? 'Yes - production dependencies only' : 'No - all dependencies',
101132
},
102133
},
103134
{
104135
type: 'execute',
105-
description: 'Run package manager to install optimized dependencies',
136+
description: `Run ${agent} to install optimized dependencies`,
106137
},
107138
]
108139

109140
outputDryRunPreview({
110-
summary: 'Optimize dependencies with @socketregistry overrides',
141+
summary: `Optimize dependencies with @socketregistry overrides (${agent} v${agentVersion})`,
111142
actions,
112143
wouldSucceed: true,
113144
})

packages/cli/src/commands/organization/cmd-organization-dependencies.mts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { handleDependencies } from './handle-dependencies.mts'
42
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mts'
53
import { outputDryRunFetch } from '../../utils/dry-run/output.mts'

packages/cli/src/commands/organization/cmd-organization-list.mts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { getDefaultLogger } from '@socketsecurity/lib/logger'
2-
31
import { handleOrganizationList } from './handle-organization-list.mts'
42
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mts'
53
import { outputDryRunFetch } from '../../utils/dry-run/output.mts'

0 commit comments

Comments
 (0)