pcu 0.3.5 → 0.4.0

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 (49) hide show
  1. package/README.md +45 -0
  2. package/README.zh-CN.md +64 -0
  3. package/dist/application/services/CatalogUpdateService.d.ts +15 -8
  4. package/dist/application/services/CatalogUpdateService.d.ts.map +1 -1
  5. package/dist/application/services/CatalogUpdateService.js +259 -47
  6. package/dist/application/services/CatalogUpdateService.js.map +1 -1
  7. package/dist/cli/commands/CheckCommand.d.ts +2 -3
  8. package/dist/cli/commands/CheckCommand.d.ts.map +1 -1
  9. package/dist/cli/commands/CheckCommand.js +16 -9
  10. package/dist/cli/commands/CheckCommand.js.map +1 -1
  11. package/dist/cli/commands/SecurityCommand.d.ts +113 -0
  12. package/dist/cli/commands/SecurityCommand.d.ts.map +1 -0
  13. package/dist/cli/commands/SecurityCommand.js +412 -0
  14. package/dist/cli/commands/SecurityCommand.js.map +1 -0
  15. package/dist/cli/commands/UpdateCommand.d.ts +2 -3
  16. package/dist/cli/commands/UpdateCommand.d.ts.map +1 -1
  17. package/dist/cli/commands/UpdateCommand.js +19 -12
  18. package/dist/cli/commands/UpdateCommand.js.map +1 -1
  19. package/dist/cli/formatters/OutputFormatter.d.ts +17 -0
  20. package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -1
  21. package/dist/cli/formatters/OutputFormatter.js +113 -0
  22. package/dist/cli/formatters/OutputFormatter.js.map +1 -1
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +66 -13
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/common/config/Config.d.ts +2 -2
  27. package/dist/common/config/Config.d.ts.map +1 -1
  28. package/dist/common/config/Config.js +31 -4
  29. package/dist/common/config/Config.js.map +1 -1
  30. package/dist/common/config/ConfigLoader.d.ts +45 -0
  31. package/dist/common/config/ConfigLoader.d.ts.map +1 -0
  32. package/dist/common/config/ConfigLoader.js +157 -0
  33. package/dist/common/config/ConfigLoader.js.map +1 -0
  34. package/dist/common/config/PackageFilterConfig.d.ts +54 -0
  35. package/dist/common/config/PackageFilterConfig.d.ts.map +1 -0
  36. package/dist/common/config/PackageFilterConfig.js +67 -0
  37. package/dist/common/config/PackageFilterConfig.js.map +1 -0
  38. package/dist/common/config/index.d.ts +2 -0
  39. package/dist/common/config/index.d.ts.map +1 -1
  40. package/dist/common/config/index.js +2 -0
  41. package/dist/common/config/index.js.map +1 -1
  42. package/dist/common/utils/validation.d.ts.map +1 -1
  43. package/dist/common/utils/validation.js +29 -2
  44. package/dist/common/utils/validation.js.map +1 -1
  45. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +10 -2
  46. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -1
  47. package/dist/infrastructure/external-services/NpmRegistryService.js +48 -18
  48. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -1
  49. package/package.json +23 -23
@@ -0,0 +1,412 @@
1
+ /**
2
+ * Security Command
3
+ *
4
+ * CLI command to perform security vulnerability scanning and automated fixes.
5
+ * Integrates with npm audit and snyk for comprehensive security analysis.
6
+ */
7
+ import { execSync } from 'child_process';
8
+ import * as fs from 'fs-extra';
9
+ import * as path from 'path';
10
+ import { EnhancedProgressBar } from '../formatters/ProgressBar.js';
11
+ import { StyledText, ThemeManager } from '../themes/ColorTheme.js';
12
+ export class SecurityCommand {
13
+ outputFormatter;
14
+ constructor(outputFormatter) {
15
+ this.outputFormatter = outputFormatter;
16
+ }
17
+ /**
18
+ * Execute the security command
19
+ */
20
+ async execute(options = {}) {
21
+ let progressBar;
22
+ try {
23
+ // Initialize theme
24
+ ThemeManager.setTheme('default');
25
+ // Show loading with progress bar
26
+ progressBar = new EnhancedProgressBar({
27
+ text: 'Performing security analysis...',
28
+ color: 'cyan',
29
+ spinner: 'dots',
30
+ });
31
+ progressBar.start();
32
+ if (options.verbose) {
33
+ console.log(StyledText.iconAnalysis('Security vulnerability scanning'));
34
+ console.log(StyledText.muted(`Workspace: ${options.workspace || process.cwd()}`));
35
+ console.log(StyledText.muted(`Severity filter: ${options.severity || 'all'}`));
36
+ console.log('');
37
+ }
38
+ // Execute security scan
39
+ const report = await this.performSecurityScan(options);
40
+ progressBar.succeed('Security analysis completed');
41
+ // Format and display results
42
+ const formattedOutput = this.outputFormatter.formatSecurityReport(report);
43
+ console.log(formattedOutput);
44
+ // Show recommendations if available
45
+ if (report.recommendations.length > 0) {
46
+ this.showRecommendations(report);
47
+ }
48
+ // Auto-fix vulnerabilities if requested
49
+ if (options.fixVulns) {
50
+ await this.autoFixVulnerabilities(report, options);
51
+ }
52
+ // Exit with appropriate code based on findings
53
+ const exitCode = report.summary.critical > 0 ? 1 : 0;
54
+ process.exit(exitCode);
55
+ }
56
+ catch (error) {
57
+ if (progressBar) {
58
+ progressBar.fail('Security analysis failed');
59
+ }
60
+ console.error(StyledText.iconError('Error performing security scan:'));
61
+ console.error(StyledText.error(String(error)));
62
+ if (options.verbose && error instanceof Error) {
63
+ console.error(StyledText.muted('Stack trace:'));
64
+ console.error(StyledText.muted(error.stack || 'No stack trace available'));
65
+ }
66
+ process.exit(1);
67
+ }
68
+ }
69
+ /**
70
+ * Perform comprehensive security scan
71
+ */
72
+ async performSecurityScan(options) {
73
+ const workspacePath = options.workspace || process.cwd();
74
+ const vulnerabilities = [];
75
+ const recommendations = [];
76
+ // Check if package.json exists
77
+ const packageJsonPath = path.join(workspacePath, 'package.json');
78
+ if (!(await fs.pathExists(packageJsonPath))) {
79
+ throw new Error(`No package.json found in ${workspacePath}`);
80
+ }
81
+ // Run npm audit
82
+ if (options.audit !== false) {
83
+ const npmVulns = await this.runNpmAudit(workspacePath, options);
84
+ vulnerabilities.push(...npmVulns);
85
+ }
86
+ // Run snyk scan if available
87
+ if (options.snyk) {
88
+ const snykVulns = await this.runSnykScan(workspacePath, options);
89
+ vulnerabilities.push(...snykVulns);
90
+ }
91
+ // Generate recommendations
92
+ recommendations.push(...this.generateRecommendations(vulnerabilities));
93
+ // Filter by severity if specified
94
+ const filteredVulnerabilities = options.severity
95
+ ? vulnerabilities.filter((v) => this.severityToNumber(v.severity) >= this.severityToNumber(options.severity))
96
+ : vulnerabilities;
97
+ return {
98
+ summary: this.generateSummary(filteredVulnerabilities),
99
+ vulnerabilities: filteredVulnerabilities,
100
+ recommendations: recommendations,
101
+ metadata: {
102
+ scanDate: new Date().toISOString(),
103
+ scanTools: ['npm-audit', ...(options.snyk ? ['snyk'] : [])],
104
+ workspacePath: workspacePath,
105
+ },
106
+ };
107
+ }
108
+ /**
109
+ * Run npm audit scan
110
+ */
111
+ async runNpmAudit(workspacePath, options) {
112
+ try {
113
+ const auditArgs = ['audit', '--json'];
114
+ if (!options.includeDev) {
115
+ auditArgs.push('--omit=dev');
116
+ }
117
+ const auditOutput = execSync(`npm ${auditArgs.join(' ')}`, {
118
+ cwd: workspacePath,
119
+ encoding: 'utf8',
120
+ stdio: ['pipe', 'pipe', 'pipe'],
121
+ });
122
+ const auditData = JSON.parse(auditOutput);
123
+ return this.parseNpmAuditResults(auditData);
124
+ }
125
+ catch (error) {
126
+ if (error.status === 1) {
127
+ // npm audit returns 1 when vulnerabilities are found
128
+ try {
129
+ const auditData = JSON.parse(error.stdout);
130
+ return this.parseNpmAuditResults(auditData);
131
+ }
132
+ catch (parseError) {
133
+ throw new Error(`Failed to parse npm audit output: ${error.message}`);
134
+ }
135
+ }
136
+ else {
137
+ throw new Error(`npm audit failed: ${error.message}`);
138
+ }
139
+ }
140
+ }
141
+ /**
142
+ * Run snyk scan
143
+ */
144
+ async runSnykScan(workspacePath, options) {
145
+ try {
146
+ // Check if snyk is installed
147
+ execSync('snyk --version', { stdio: 'pipe' });
148
+ const snykArgs = ['test', '--json'];
149
+ if (!options.includeDev) {
150
+ snykArgs.push('--dev');
151
+ }
152
+ const snykOutput = execSync(`snyk ${snykArgs.join(' ')}`, {
153
+ cwd: workspacePath,
154
+ encoding: 'utf8',
155
+ stdio: ['pipe', 'pipe', 'pipe'],
156
+ });
157
+ const snykData = JSON.parse(snykOutput);
158
+ return this.parseSnykResults(snykData);
159
+ }
160
+ catch (error) {
161
+ if (error.code === 'ENOENT') {
162
+ console.warn(StyledText.iconWarning('Snyk not found. Install with: npm install -g snyk'));
163
+ return [];
164
+ }
165
+ throw new Error(`Snyk scan failed: ${error.message}`);
166
+ }
167
+ }
168
+ /**
169
+ * Parse npm audit results
170
+ */
171
+ parseNpmAuditResults(auditData) {
172
+ const vulnerabilities = [];
173
+ if (!auditData.vulnerabilities) {
174
+ return vulnerabilities;
175
+ }
176
+ for (const [id, vuln] of Object.entries(auditData.vulnerabilities)) {
177
+ const vulnerability = vuln;
178
+ vulnerabilities.push({
179
+ id: id,
180
+ package: vulnerability.name,
181
+ severity: vulnerability.severity,
182
+ title: vulnerability.title || vulnerability.name,
183
+ url: vulnerability.url || `https://npmjs.com/advisories/${id}`,
184
+ range: vulnerability.range,
185
+ fixAvailable: vulnerability.fixAvailable,
186
+ fixVersion: vulnerability.fixAvailable === true ? vulnerability.fixAvailable : undefined,
187
+ paths: vulnerability.via?.map((v) => v.source || v.name) || [vulnerability.name],
188
+ cwe: vulnerability.cwe,
189
+ cve: vulnerability.cve,
190
+ });
191
+ }
192
+ return vulnerabilities;
193
+ }
194
+ /**
195
+ * Parse snyk results
196
+ */
197
+ parseSnykResults(snykData) {
198
+ const vulnerabilities = [];
199
+ if (!snykData.vulnerabilities) {
200
+ return vulnerabilities;
201
+ }
202
+ for (const vuln of snykData.vulnerabilities) {
203
+ vulnerabilities.push({
204
+ id: vuln.id,
205
+ package: vuln.packageName,
206
+ severity: vuln.severity,
207
+ title: vuln.title,
208
+ url: vuln.url,
209
+ range: vuln.semver?.vulnerable?.join(' || ') || vuln.version,
210
+ fixAvailable: vuln.fixedIn?.length > 0,
211
+ fixVersion: vuln.fixedIn?.[0],
212
+ paths: vuln.from || [vuln.packageName],
213
+ cwe: vuln.identifiers?.CWE || [],
214
+ cve: vuln.identifiers?.CVE || [],
215
+ });
216
+ }
217
+ return vulnerabilities;
218
+ }
219
+ /**
220
+ * Generate security recommendations
221
+ */
222
+ generateRecommendations(vulnerabilities) {
223
+ const recommendations = [];
224
+ const packages = new Set(vulnerabilities.map((v) => v.package));
225
+ for (const pkg of packages) {
226
+ const pkgVulns = vulnerabilities.filter((v) => v.package === pkg);
227
+ const criticalVulns = pkgVulns.filter((v) => v.severity === 'critical' || v.severity === 'high');
228
+ if (criticalVulns.length > 0) {
229
+ const fixVersions = [
230
+ ...new Set(criticalVulns.map((v) => v.fixVersion).filter((v) => v && typeof v === 'string')),
231
+ ];
232
+ if (fixVersions.length > 0) {
233
+ const currentVersion = pkgVulns[0]?.range?.split(' ')[0] || 'unknown';
234
+ const recommendedVersion = fixVersions[0] || 'unknown';
235
+ recommendations.push({
236
+ package: pkg,
237
+ currentVersion: currentVersion,
238
+ recommendedVersion: recommendedVersion,
239
+ type: 'update',
240
+ reason: `${criticalVulns.length} critical vulnerabilities found`,
241
+ impact: 'High - Security vulnerability fix',
242
+ });
243
+ }
244
+ }
245
+ }
246
+ return recommendations;
247
+ }
248
+ /**
249
+ * Generate summary from vulnerabilities
250
+ */
251
+ generateSummary(vulnerabilities) {
252
+ const summary = {
253
+ totalVulnerabilities: vulnerabilities.length,
254
+ critical: 0,
255
+ high: 0,
256
+ moderate: 0,
257
+ low: 0,
258
+ info: 0,
259
+ };
260
+ for (const vuln of vulnerabilities) {
261
+ const severity = vuln.severity;
262
+ switch (severity) {
263
+ case 'critical':
264
+ summary.critical++;
265
+ break;
266
+ case 'high':
267
+ summary.high++;
268
+ break;
269
+ case 'moderate':
270
+ summary.moderate++;
271
+ break;
272
+ case 'low':
273
+ summary.low++;
274
+ break;
275
+ case 'info':
276
+ summary.info++;
277
+ break;
278
+ default:
279
+ summary.info++;
280
+ break;
281
+ }
282
+ }
283
+ return summary;
284
+ }
285
+ /**
286
+ * Convert severity string to number for filtering
287
+ */
288
+ severityToNumber(severity) {
289
+ switch (severity) {
290
+ case 'critical':
291
+ return 4;
292
+ case 'high':
293
+ return 3;
294
+ case 'moderate':
295
+ return 2;
296
+ case 'low':
297
+ return 1;
298
+ case 'info':
299
+ return 0;
300
+ default:
301
+ return 0;
302
+ }
303
+ }
304
+ /**
305
+ * Show security recommendations
306
+ */
307
+ showRecommendations(report) {
308
+ if (report.recommendations.length === 0) {
309
+ return;
310
+ }
311
+ console.log('\n' + StyledText.iconInfo('Security Recommendations:'));
312
+ for (const rec of report.recommendations) {
313
+ console.log(` ${StyledText.iconWarning()} ${rec.package}: ${rec.currentVersion} → ${rec.recommendedVersion}`);
314
+ console.log(` ${StyledText.muted(rec.reason)}`);
315
+ console.log(` ${StyledText.muted(rec.impact)}`);
316
+ }
317
+ console.log('');
318
+ console.log(StyledText.iconUpdate('Run with --fix-vulns to apply automatic fixes'));
319
+ }
320
+ /**
321
+ * Auto-fix vulnerabilities
322
+ */
323
+ async autoFixVulnerabilities(report, options) {
324
+ if (report.recommendations.length === 0) {
325
+ console.log(StyledText.iconSuccess('No security fixes available'));
326
+ return;
327
+ }
328
+ console.log('\n' + StyledText.iconUpdate('Applying security fixes...'));
329
+ const workspacePath = options.workspace || process.cwd();
330
+ const fixableVulns = report.recommendations.filter((r) => r.type === 'update');
331
+ if (fixableVulns.length === 0) {
332
+ console.log(StyledText.iconInfo('No automatic fixes available'));
333
+ return;
334
+ }
335
+ try {
336
+ // Run npm audit fix
337
+ const fixArgs = ['audit', 'fix'];
338
+ if (!options.includeDev) {
339
+ fixArgs.push('--omit=dev');
340
+ }
341
+ execSync(`npm ${fixArgs.join(' ')}`, {
342
+ cwd: workspacePath,
343
+ encoding: 'utf8',
344
+ stdio: 'inherit',
345
+ });
346
+ console.log(StyledText.iconSuccess('Security fixes applied successfully'));
347
+ // Re-run scan to verify fixes
348
+ console.log(StyledText.iconInfo('Re-running security scan to verify fixes...'));
349
+ const newReport = await this.performSecurityScan({ ...options, fixVulns: false });
350
+ if (newReport.summary.critical === 0 && newReport.summary.high === 0) {
351
+ console.log(StyledText.iconSuccess('All critical and high severity vulnerabilities have been fixed!'));
352
+ }
353
+ else {
354
+ console.log(StyledText.iconWarning(`${newReport.summary.critical} critical and ${newReport.summary.high} high severity vulnerabilities remain`));
355
+ }
356
+ }
357
+ catch (error) {
358
+ console.error(StyledText.iconError('Failed to apply security fixes:'));
359
+ console.error(StyledText.error(error.message));
360
+ }
361
+ }
362
+ /**
363
+ * Validate command options
364
+ */
365
+ static validateOptions(options) {
366
+ const errors = [];
367
+ // Validate format
368
+ if (options.format && !['table', 'json', 'yaml', 'minimal'].includes(options.format)) {
369
+ errors.push('Invalid format. Must be one of: table, json, yaml, minimal');
370
+ }
371
+ // Validate severity
372
+ if (options.severity && !['low', 'moderate', 'high', 'critical'].includes(options.severity)) {
373
+ errors.push('Invalid severity. Must be one of: low, moderate, high, critical');
374
+ }
375
+ return errors;
376
+ }
377
+ /**
378
+ * Get command help text
379
+ */
380
+ static getHelpText() {
381
+ return `
382
+ Security vulnerability scanning and automated fixes
383
+
384
+ Usage:
385
+ pcu security [options]
386
+
387
+ Options:
388
+ --workspace <path> Workspace directory (default: current directory)
389
+ --format <type> Output format: table, json, yaml, minimal (default: table)
390
+ --audit Perform npm audit scan (default: true)
391
+ --fix-vulns Automatically fix vulnerabilities
392
+ --severity <level> Filter by severity: low, moderate, high, critical
393
+ --include-dev Include dev dependencies in scan
394
+ --snyk Include Snyk scan (requires snyk CLI)
395
+ --verbose Show detailed information
396
+ --no-color Disable colored output
397
+
398
+ Examples:
399
+ pcu security # Basic security scan
400
+ pcu security --fix-vulns # Scan and fix vulnerabilities
401
+ pcu security --severity high # Show only high severity issues
402
+ pcu security --snyk # Include Snyk scan
403
+ pcu security --format json # Output as JSON
404
+
405
+ Exit Codes:
406
+ 0 No vulnerabilities found
407
+ 1 Vulnerabilities found
408
+ 2 Error occurred
409
+ `;
410
+ }
411
+ }
412
+ //# sourceMappingURL=SecurityCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SecurityCommand.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Supports interactive mode, dry-run, and various update strategies.
6
6
  */
7
7
  import { CatalogUpdateService, UpdateTarget } from '../../application/services/CatalogUpdateService.js';
8
- import { OutputFormat, OutputFormatter } from '../formatters/OutputFormatter.js';
8
+ import { OutputFormat } from '../formatters/OutputFormatter.js';
9
9
  export interface UpdateCommandOptions {
10
10
  workspace?: string;
11
11
  catalog?: string;
@@ -23,8 +23,7 @@ export interface UpdateCommandOptions {
23
23
  }
24
24
  export declare class UpdateCommand {
25
25
  private readonly updateService;
26
- private readonly outputFormatter;
27
- constructor(updateService: CatalogUpdateService, outputFormatter: OutputFormatter);
26
+ constructor(updateService: CatalogUpdateService);
28
27
  /**
29
28
  * Execute the update command
30
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,oBAAoB,EAGpB,YAAY,EACb,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKjF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe;IAKjF;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGhE;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAwB/D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CAqC7B"}
1
+ {"version":3,"file":"UpdateCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,oBAAoB,EAGpB,YAAY,EACb,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAMjF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAEzC,aAAa,EAAE,oBAAoB;IAI/C;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsHhE;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAwB/D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CAqC7B"}
@@ -4,15 +4,15 @@
4
4
  * CLI command to update catalog dependencies.
5
5
  * Supports interactive mode, dry-run, and various update strategies.
6
6
  */
7
+ import { OutputFormatter } from '../formatters/OutputFormatter.js';
7
8
  import { EnhancedProgressBar, MultiStepProgress } from '../formatters/ProgressBar.js';
8
9
  import { InteractivePrompts } from '../interactive/InteractivePrompts.js';
9
10
  import { StyledText, ThemeManager } from '../themes/ColorTheme.js';
11
+ import { ConfigLoader } from '../../common/config/ConfigLoader.js';
10
12
  export class UpdateCommand {
11
13
  updateService;
12
- outputFormatter;
13
- constructor(updateService, outputFormatter) {
14
+ constructor(updateService) {
14
15
  this.updateService = updateService;
15
- this.outputFormatter = outputFormatter;
16
16
  }
17
17
  /**
18
18
  * Execute the update command
@@ -28,18 +28,25 @@ export class UpdateCommand {
28
28
  try {
29
29
  // Initialize theme
30
30
  ThemeManager.setTheme('default');
31
- // Convert command options to service options
31
+ // Load configuration file first
32
+ const config = ConfigLoader.loadConfig(options.workspace || process.cwd());
33
+ // Use format from CLI options first, then config file, then default
34
+ const effectiveFormat = options.format || config.defaults?.format || 'table';
35
+ // Create output formatter with effective format
36
+ const formatter = new OutputFormatter(effectiveFormat, options.color !== false);
37
+ // Merge CLI options with configuration file settings
32
38
  const updateOptions = {
33
39
  workspacePath: options.workspace,
34
40
  catalogName: options.catalog,
35
- target: options.target,
36
- includePrerelease: options.prerelease ?? false,
37
- include: options.include,
38
- exclude: options.exclude,
39
- interactive: options.interactive ?? false,
40
- dryRun: options.dryRun ?? false,
41
+ target: options.target || config.defaults?.target,
42
+ includePrerelease: options.prerelease ?? config.defaults?.includePrerelease ?? false,
43
+ // CLI include/exclude options take priority over config file
44
+ include: options.include?.length ? options.include : config.include,
45
+ exclude: options.exclude?.length ? options.exclude : config.exclude,
46
+ interactive: options.interactive ?? config.defaults?.interactive ?? false,
47
+ dryRun: options.dryRun ?? config.defaults?.dryRun ?? false,
41
48
  force: options.force ?? false,
42
- createBackup: options.createBackup ?? false,
49
+ createBackup: options.createBackup ?? config.defaults?.createBackup ?? false,
43
50
  };
44
51
  multiStep.start();
45
52
  // Step 1: Loading workspace
@@ -82,7 +89,7 @@ export class UpdateCommand {
82
89
  progressBar.start();
83
90
  const result = await this.updateService.executeUpdates(finalPlan, updateOptions);
84
91
  progressBar.succeed(`Applied ${finalPlan.updates.length} updates`);
85
- console.log(this.outputFormatter.formatUpdateResult(result));
92
+ console.log(formatter.formatUpdateResult(result));
86
93
  }
87
94
  else {
88
95
  console.log(StyledText.iconInfo('Dry run - no changes made'));
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { ImpactAnalysis, OutdatedReport, UpdateResult } from '../../application/services/CatalogUpdateService.js';
8
8
  import { WorkspaceStats, WorkspaceValidationReport } from '../../application/services/WorkspaceService.js';
9
+ import { SecurityReport } from '../commands/SecurityCommand.js';
9
10
  export type OutputFormat = 'table' | 'json' | 'yaml' | 'minimal';
10
11
  export declare class OutputFormatter {
11
12
  private readonly format;
@@ -31,6 +32,10 @@ export declare class OutputFormatter {
31
32
  * Format workspace statistics
32
33
  */
33
34
  formatWorkspaceStats(stats: WorkspaceStats): string;
35
+ /**
36
+ * Format security report
37
+ */
38
+ formatSecurityReport(report: SecurityReport): string;
34
39
  /**
35
40
  * Format simple message with optional styling
36
41
  */
@@ -75,6 +80,18 @@ export declare class OutputFormatter {
75
80
  * Format workspace statistics minimally
76
81
  */
77
82
  private formatStatsMinimal;
83
+ /**
84
+ * Format security report as table
85
+ */
86
+ private formatSecurityTable;
87
+ /**
88
+ * Format security report minimally
89
+ */
90
+ private formatSecurityMinimal;
91
+ /**
92
+ * Get color for severity level
93
+ */
94
+ private getSeverityColor;
78
95
  /**
79
96
  * Apply color if color is enabled
80
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OutputFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/OutputFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,yBAAyB,EAC1B,MAAM,gDAAgD,CAAC;AAMxD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAMjE,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,MAAM,GAAE,YAAsB,EAC9B,QAAQ,GAAE,OAAc;IAG3C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAcpD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAchD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IActD;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM;IAcjE;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAcnD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAe,GAAG,MAAM;IAkB/F;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsD3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwD7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA6E5B"}
1
+ {"version":3,"file":"OutputFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/OutputFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,yBAAyB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAMhE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAMjE,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,MAAM,GAAE,YAAsB,EAC9B,QAAQ,GAAE,OAAc;IAG3C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAcpD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAchD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IActD;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM;IAcjE;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAcnD;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAcpD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAe,GAAG,MAAM;IAkB/F;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsD3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwD7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6E3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA6E5B"}