pcu 0.5.7 → 0.6.3

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 (223) hide show
  1. package/bin/pcu.js +1 -1
  2. package/dist/index.js +9559 -32
  3. package/dist/index.js.map +1 -1
  4. package/package.json +36 -84
  5. package/src/cli/commands/checkCommand.ts +227 -0
  6. package/src/cli/commands/initCommand.ts +394 -0
  7. package/src/cli/commands/securityCommand.ts +569 -0
  8. package/src/cli/commands/updateCommand.ts +245 -0
  9. package/src/cli/formatters/outputFormatter.ts +830 -0
  10. package/src/cli/formatters/progressBar.ts +700 -0
  11. package/src/cli/index.ts +565 -0
  12. package/src/cli/interactive/interactivePrompts.ts +517 -0
  13. package/src/cli/options/globalOptions.ts +380 -0
  14. package/src/cli/options/index.ts +5 -0
  15. package/src/cli/themes/colorTheme.ts +379 -0
  16. package/src/cli/validators/commandValidator.ts +395 -0
  17. package/src/cli/validators/index.ts +5 -0
  18. package/src/index.ts +4 -0
  19. package/README.ja.md +0 -587
  20. package/README.md +0 -694
  21. package/README.zh-CN.md +0 -634
  22. package/dist/application/services/CatalogUpdateService.d.ts +0 -209
  23. package/dist/application/services/CatalogUpdateService.d.ts.map +0 -1
  24. package/dist/application/services/CatalogUpdateService.js +0 -839
  25. package/dist/application/services/CatalogUpdateService.js.map +0 -1
  26. package/dist/application/services/WorkspaceService.d.ts +0 -139
  27. package/dist/application/services/WorkspaceService.d.ts.map +0 -1
  28. package/dist/application/services/WorkspaceService.js +0 -340
  29. package/dist/application/services/WorkspaceService.js.map +0 -1
  30. package/dist/cli/commands/CheckCommand.d.ts +0 -40
  31. package/dist/cli/commands/CheckCommand.d.ts.map +0 -1
  32. package/dist/cli/commands/CheckCommand.js +0 -177
  33. package/dist/cli/commands/CheckCommand.js.map +0 -1
  34. package/dist/cli/commands/InitCommand.d.ts +0 -53
  35. package/dist/cli/commands/InitCommand.d.ts.map +0 -1
  36. package/dist/cli/commands/InitCommand.js +0 -338
  37. package/dist/cli/commands/InitCommand.js.map +0 -1
  38. package/dist/cli/commands/SecurityCommand.d.ts +0 -113
  39. package/dist/cli/commands/SecurityCommand.d.ts.map +0 -1
  40. package/dist/cli/commands/SecurityCommand.js +0 -410
  41. package/dist/cli/commands/SecurityCommand.js.map +0 -1
  42. package/dist/cli/commands/UpdateCommand.d.ts +0 -44
  43. package/dist/cli/commands/UpdateCommand.d.ts.map +0 -1
  44. package/dist/cli/commands/UpdateCommand.js +0 -189
  45. package/dist/cli/commands/UpdateCommand.js.map +0 -1
  46. package/dist/cli/formatters/OutputFormatter.d.ts +0 -116
  47. package/dist/cli/formatters/OutputFormatter.d.ts.map +0 -1
  48. package/dist/cli/formatters/OutputFormatter.js +0 -664
  49. package/dist/cli/formatters/OutputFormatter.js.map +0 -1
  50. package/dist/cli/formatters/ProgressBar.d.ts +0 -195
  51. package/dist/cli/formatters/ProgressBar.d.ts.map +0 -1
  52. package/dist/cli/formatters/ProgressBar.js +0 -622
  53. package/dist/cli/formatters/ProgressBar.js.map +0 -1
  54. package/dist/cli/index.d.ts +0 -12
  55. package/dist/cli/index.d.ts.map +0 -1
  56. package/dist/cli/index.js +0 -492
  57. package/dist/cli/index.js.map +0 -1
  58. package/dist/cli/interactive/InteractivePrompts.d.ts +0 -85
  59. package/dist/cli/interactive/InteractivePrompts.d.ts.map +0 -1
  60. package/dist/cli/interactive/InteractivePrompts.js +0 -434
  61. package/dist/cli/interactive/InteractivePrompts.js.map +0 -1
  62. package/dist/cli/options/GlobalOptions.d.ts +0 -117
  63. package/dist/cli/options/GlobalOptions.d.ts.map +0 -1
  64. package/dist/cli/options/GlobalOptions.js +0 -278
  65. package/dist/cli/options/GlobalOptions.js.map +0 -1
  66. package/dist/cli/options/index.d.ts +0 -5
  67. package/dist/cli/options/index.d.ts.map +0 -1
  68. package/dist/cli/options/index.js +0 -5
  69. package/dist/cli/options/index.js.map +0 -1
  70. package/dist/cli/themes/ColorTheme.d.ts +0 -211
  71. package/dist/cli/themes/ColorTheme.d.ts.map +0 -1
  72. package/dist/cli/themes/ColorTheme.js +0 -267
  73. package/dist/cli/themes/ColorTheme.js.map +0 -1
  74. package/dist/cli/validators/CommandValidator.d.ts +0 -60
  75. package/dist/cli/validators/CommandValidator.d.ts.map +0 -1
  76. package/dist/cli/validators/CommandValidator.js +0 -319
  77. package/dist/cli/validators/CommandValidator.js.map +0 -1
  78. package/dist/cli/validators/index.d.ts +0 -5
  79. package/dist/cli/validators/index.d.ts.map +0 -1
  80. package/dist/cli/validators/index.js +0 -5
  81. package/dist/cli/validators/index.js.map +0 -1
  82. package/dist/common/config/Config.d.ts +0 -142
  83. package/dist/common/config/Config.d.ts.map +0 -1
  84. package/dist/common/config/Config.js +0 -382
  85. package/dist/common/config/Config.js.map +0 -1
  86. package/dist/common/config/ConfigLoader.d.ts +0 -49
  87. package/dist/common/config/ConfigLoader.d.ts.map +0 -1
  88. package/dist/common/config/ConfigLoader.js +0 -180
  89. package/dist/common/config/ConfigLoader.js.map +0 -1
  90. package/dist/common/config/PackageFilterConfig.d.ts +0 -56
  91. package/dist/common/config/PackageFilterConfig.d.ts.map +0 -1
  92. package/dist/common/config/PackageFilterConfig.js +0 -94
  93. package/dist/common/config/PackageFilterConfig.js.map +0 -1
  94. package/dist/common/config/index.d.ts +0 -8
  95. package/dist/common/config/index.d.ts.map +0 -1
  96. package/dist/common/config/index.js +0 -8
  97. package/dist/common/config/index.js.map +0 -1
  98. package/dist/common/error-handling/ErrorTracker.d.ts +0 -48
  99. package/dist/common/error-handling/ErrorTracker.d.ts.map +0 -1
  100. package/dist/common/error-handling/ErrorTracker.js +0 -93
  101. package/dist/common/error-handling/ErrorTracker.js.map +0 -1
  102. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts +0 -74
  103. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts.map +0 -1
  104. package/dist/common/error-handling/UserFriendlyErrorHandler.js +0 -703
  105. package/dist/common/error-handling/UserFriendlyErrorHandler.js.map +0 -1
  106. package/dist/common/error-handling/index.d.ts +0 -11
  107. package/dist/common/error-handling/index.d.ts.map +0 -1
  108. package/dist/common/error-handling/index.js +0 -9
  109. package/dist/common/error-handling/index.js.map +0 -1
  110. package/dist/common/logger/Logger.d.ts +0 -110
  111. package/dist/common/logger/Logger.d.ts.map +0 -1
  112. package/dist/common/logger/Logger.js +0 -289
  113. package/dist/common/logger/Logger.js.map +0 -1
  114. package/dist/common/logger/index.d.ts +0 -6
  115. package/dist/common/logger/index.d.ts.map +0 -1
  116. package/dist/common/logger/index.js +0 -6
  117. package/dist/common/logger/index.js.map +0 -1
  118. package/dist/common/types/cli.d.ts +0 -265
  119. package/dist/common/types/cli.d.ts.map +0 -1
  120. package/dist/common/types/cli.js +0 -5
  121. package/dist/common/types/cli.js.map +0 -1
  122. package/dist/common/types/core.d.ts +0 -270
  123. package/dist/common/types/core.d.ts.map +0 -1
  124. package/dist/common/types/core.js +0 -32
  125. package/dist/common/types/core.js.map +0 -1
  126. package/dist/common/types/index.d.ts +0 -8
  127. package/dist/common/types/index.d.ts.map +0 -1
  128. package/dist/common/types/index.js +0 -8
  129. package/dist/common/types/index.js.map +0 -1
  130. package/dist/common/utils/VersionChecker.d.ts +0 -54
  131. package/dist/common/utils/VersionChecker.d.ts.map +0 -1
  132. package/dist/common/utils/VersionChecker.js +0 -180
  133. package/dist/common/utils/VersionChecker.js.map +0 -1
  134. package/dist/common/utils/async.d.ts +0 -74
  135. package/dist/common/utils/async.d.ts.map +0 -1
  136. package/dist/common/utils/async.js +0 -228
  137. package/dist/common/utils/async.js.map +0 -1
  138. package/dist/common/utils/format.d.ts +0 -32
  139. package/dist/common/utils/format.d.ts.map +0 -1
  140. package/dist/common/utils/format.js +0 -121
  141. package/dist/common/utils/format.js.map +0 -1
  142. package/dist/common/utils/git.d.ts +0 -44
  143. package/dist/common/utils/git.d.ts.map +0 -1
  144. package/dist/common/utils/git.js +0 -147
  145. package/dist/common/utils/git.js.map +0 -1
  146. package/dist/common/utils/index.d.ts +0 -12
  147. package/dist/common/utils/index.d.ts.map +0 -1
  148. package/dist/common/utils/index.js +0 -12
  149. package/dist/common/utils/index.js.map +0 -1
  150. package/dist/common/utils/string.d.ts +0 -56
  151. package/dist/common/utils/string.d.ts.map +0 -1
  152. package/dist/common/utils/string.js +0 -134
  153. package/dist/common/utils/string.js.map +0 -1
  154. package/dist/common/utils/validation.d.ts +0 -88
  155. package/dist/common/utils/validation.d.ts.map +0 -1
  156. package/dist/common/utils/validation.js +0 -308
  157. package/dist/common/utils/validation.js.map +0 -1
  158. package/dist/domain/entities/Catalog.d.ts +0 -117
  159. package/dist/domain/entities/Catalog.d.ts.map +0 -1
  160. package/dist/domain/entities/Catalog.js +0 -240
  161. package/dist/domain/entities/Catalog.js.map +0 -1
  162. package/dist/domain/entities/Package.d.ts +0 -143
  163. package/dist/domain/entities/Package.d.ts.map +0 -1
  164. package/dist/domain/entities/Package.js +0 -272
  165. package/dist/domain/entities/Package.js.map +0 -1
  166. package/dist/domain/entities/Workspace.d.ts +0 -95
  167. package/dist/domain/entities/Workspace.d.ts.map +0 -1
  168. package/dist/domain/entities/Workspace.js +0 -173
  169. package/dist/domain/entities/Workspace.js.map +0 -1
  170. package/dist/domain/repositories/WorkspaceRepository.d.ts +0 -41
  171. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +0 -1
  172. package/dist/domain/repositories/WorkspaceRepository.js +0 -8
  173. package/dist/domain/repositories/WorkspaceRepository.js.map +0 -1
  174. package/dist/domain/value-objects/CatalogCollection.d.ts +0 -106
  175. package/dist/domain/value-objects/CatalogCollection.d.ts.map +0 -1
  176. package/dist/domain/value-objects/CatalogCollection.js +0 -230
  177. package/dist/domain/value-objects/CatalogCollection.js.map +0 -1
  178. package/dist/domain/value-objects/PackageCollection.d.ts +0 -122
  179. package/dist/domain/value-objects/PackageCollection.d.ts.map +0 -1
  180. package/dist/domain/value-objects/PackageCollection.js +0 -263
  181. package/dist/domain/value-objects/PackageCollection.js.map +0 -1
  182. package/dist/domain/value-objects/Version.d.ts +0 -141
  183. package/dist/domain/value-objects/Version.d.ts.map +0 -1
  184. package/dist/domain/value-objects/Version.js +0 -268
  185. package/dist/domain/value-objects/Version.js.map +0 -1
  186. package/dist/domain/value-objects/WorkspaceConfig.d.ts +0 -144
  187. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +0 -1
  188. package/dist/domain/value-objects/WorkspaceConfig.js +0 -357
  189. package/dist/domain/value-objects/WorkspaceConfig.js.map +0 -1
  190. package/dist/domain/value-objects/WorkspaceId.d.ts +0 -51
  191. package/dist/domain/value-objects/WorkspaceId.d.ts.map +0 -1
  192. package/dist/domain/value-objects/WorkspaceId.js +0 -104
  193. package/dist/domain/value-objects/WorkspaceId.js.map +0 -1
  194. package/dist/domain/value-objects/WorkspacePath.d.ts +0 -75
  195. package/dist/domain/value-objects/WorkspacePath.d.ts.map +0 -1
  196. package/dist/domain/value-objects/WorkspacePath.js +0 -128
  197. package/dist/domain/value-objects/WorkspacePath.js.map +0 -1
  198. package/dist/index.d.ts +0 -25
  199. package/dist/index.d.ts.map +0 -1
  200. package/dist/infrastructure/cache/Cache.d.ts +0 -161
  201. package/dist/infrastructure/cache/Cache.d.ts.map +0 -1
  202. package/dist/infrastructure/cache/Cache.js +0 -398
  203. package/dist/infrastructure/cache/Cache.js.map +0 -1
  204. package/dist/infrastructure/cache/index.d.ts +0 -6
  205. package/dist/infrastructure/cache/index.d.ts.map +0 -1
  206. package/dist/infrastructure/cache/index.js +0 -6
  207. package/dist/infrastructure/cache/index.js.map +0 -1
  208. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +0 -153
  209. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  210. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -511
  211. package/dist/infrastructure/external-services/NpmRegistryService.js.map +0 -1
  212. package/dist/infrastructure/file-system/FileSystemService.d.ts +0 -120
  213. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +0 -1
  214. package/dist/infrastructure/file-system/FileSystemService.js +0 -663
  215. package/dist/infrastructure/file-system/FileSystemService.js.map +0 -1
  216. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +0 -57
  217. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +0 -1
  218. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +0 -179
  219. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +0 -1
  220. package/dist/infrastructure/utils/NpmrcParser.d.ts +0 -40
  221. package/dist/infrastructure/utils/NpmrcParser.d.ts.map +0 -1
  222. package/dist/infrastructure/utils/NpmrcParser.js +0 -157
  223. package/dist/infrastructure/utils/NpmrcParser.js.map +0 -1
@@ -1,113 +0,0 @@
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 { OutputFormatter, OutputFormat } from '../formatters/OutputFormatter.js';
8
- export interface SecurityCommandOptions {
9
- workspace?: string;
10
- format?: OutputFormat;
11
- audit?: boolean;
12
- fixVulns?: boolean;
13
- severity?: 'low' | 'moderate' | 'high' | 'critical';
14
- includeDev?: boolean;
15
- snyk?: boolean;
16
- verbose?: boolean;
17
- color?: boolean;
18
- }
19
- export interface SecurityReport {
20
- summary: {
21
- totalVulnerabilities: number;
22
- critical: number;
23
- high: number;
24
- moderate: number;
25
- low: number;
26
- info: number;
27
- };
28
- vulnerabilities: Vulnerability[];
29
- recommendations: SecurityRecommendation[];
30
- metadata: {
31
- scanDate: string;
32
- scanTools: string[];
33
- workspacePath: string;
34
- };
35
- }
36
- export interface Vulnerability {
37
- id: string;
38
- package: string;
39
- severity: 'low' | 'moderate' | 'high' | 'critical';
40
- title: string;
41
- url: string;
42
- range: string;
43
- fixAvailable: boolean | string;
44
- fixVersion?: string;
45
- paths: string[];
46
- cwe?: string[];
47
- cve?: string[];
48
- }
49
- export interface SecurityRecommendation {
50
- package: string;
51
- currentVersion: string;
52
- recommendedVersion: string;
53
- type: 'update' | 'remove' | 'replace';
54
- reason: string;
55
- impact: string;
56
- }
57
- export declare class SecurityCommand {
58
- private readonly outputFormatter;
59
- constructor(outputFormatter: OutputFormatter);
60
- /**
61
- * Execute the security command
62
- */
63
- execute(options?: SecurityCommandOptions): Promise<void>;
64
- /**
65
- * Perform comprehensive security scan
66
- */
67
- private performSecurityScan;
68
- /**
69
- * Run npm audit scan
70
- */
71
- private runNpmAudit;
72
- /**
73
- * Run snyk scan
74
- */
75
- private runSnykScan;
76
- /**
77
- * Parse npm audit results
78
- */
79
- private parseNpmAuditResults;
80
- /**
81
- * Parse snyk results
82
- */
83
- private parseSnykResults;
84
- /**
85
- * Generate security recommendations
86
- */
87
- private generateRecommendations;
88
- /**
89
- * Generate summary from vulnerabilities
90
- */
91
- private generateSummary;
92
- /**
93
- * Convert severity string to number for filtering
94
- */
95
- private severityToNumber;
96
- /**
97
- * Show security recommendations
98
- */
99
- private showRecommendations;
100
- /**
101
- * Auto-fix vulnerabilities
102
- */
103
- private autoFixVulnerabilities;
104
- /**
105
- * Validate command options
106
- */
107
- static validateOptions(options: SecurityCommandOptions): string[];
108
- /**
109
- * Get command help text
110
- */
111
- static getHelpText(): string;
112
- }
113
- //# sourceMappingURL=SecurityCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecurityCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/SecurityCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAIjF,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAE7D;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DlE;;OAEG;YACW,mBAAmB;IA6CjC;;OAEG;YACW,WAAW;IAkCzB;;OAEG;YACW,WAAW;IA+BzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoC/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;YACW,sBAAsB;IAuDpC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,EAAE;IAgBjE;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CA+B7B"}
@@ -1,410 +0,0 @@
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 { ProgressBar } 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 ProgressBar({
27
- text: 'Performing security analysis...',
28
- });
29
- progressBar.start();
30
- if (options.verbose) {
31
- console.log(StyledText.iconAnalysis('Security vulnerability scanning'));
32
- console.log(StyledText.muted(`Workspace: ${options.workspace || process.cwd()}`));
33
- console.log(StyledText.muted(`Severity filter: ${options.severity || 'all'}`));
34
- console.log('');
35
- }
36
- // Execute security scan
37
- const report = await this.performSecurityScan(options);
38
- progressBar.succeed('Security analysis completed');
39
- // Format and display results
40
- const formattedOutput = this.outputFormatter.formatSecurityReport(report);
41
- console.log(formattedOutput);
42
- // Show recommendations if available
43
- if (report.recommendations.length > 0) {
44
- this.showRecommendations(report);
45
- }
46
- // Auto-fix vulnerabilities if requested
47
- if (options.fixVulns) {
48
- await this.autoFixVulnerabilities(report, options);
49
- }
50
- // Exit with appropriate code based on findings
51
- const exitCode = report.summary.critical > 0 ? 1 : 0;
52
- process.exit(exitCode);
53
- }
54
- catch (error) {
55
- if (progressBar) {
56
- progressBar.fail('Security analysis failed');
57
- }
58
- console.error(StyledText.iconError('Error performing security scan:'));
59
- console.error(StyledText.error(String(error)));
60
- if (options.verbose && error instanceof Error) {
61
- console.error(StyledText.muted('Stack trace:'));
62
- console.error(StyledText.muted(error.stack || 'No stack trace available'));
63
- }
64
- process.exit(1);
65
- }
66
- }
67
- /**
68
- * Perform comprehensive security scan
69
- */
70
- async performSecurityScan(options) {
71
- const workspacePath = options.workspace || process.cwd();
72
- const vulnerabilities = [];
73
- const recommendations = [];
74
- // Check if package.json exists
75
- const packageJsonPath = path.join(workspacePath, 'package.json');
76
- if (!(await fs.pathExists(packageJsonPath))) {
77
- throw new Error(`No package.json found in ${workspacePath}`);
78
- }
79
- // Run npm audit
80
- if (options.audit !== false) {
81
- const npmVulns = await this.runNpmAudit(workspacePath, options);
82
- vulnerabilities.push(...npmVulns);
83
- }
84
- // Run snyk scan if available
85
- if (options.snyk) {
86
- const snykVulns = await this.runSnykScan(workspacePath, options);
87
- vulnerabilities.push(...snykVulns);
88
- }
89
- // Generate recommendations
90
- recommendations.push(...this.generateRecommendations(vulnerabilities));
91
- // Filter by severity if specified
92
- const filteredVulnerabilities = options.severity
93
- ? vulnerabilities.filter((v) => this.severityToNumber(v.severity) >= this.severityToNumber(options.severity))
94
- : vulnerabilities;
95
- return {
96
- summary: this.generateSummary(filteredVulnerabilities),
97
- vulnerabilities: filteredVulnerabilities,
98
- recommendations: recommendations,
99
- metadata: {
100
- scanDate: new Date().toISOString(),
101
- scanTools: ['npm-audit', ...(options.snyk ? ['snyk'] : [])],
102
- workspacePath: workspacePath,
103
- },
104
- };
105
- }
106
- /**
107
- * Run npm audit scan
108
- */
109
- async runNpmAudit(workspacePath, options) {
110
- try {
111
- const auditArgs = ['audit', '--json'];
112
- if (!options.includeDev) {
113
- auditArgs.push('--omit=dev');
114
- }
115
- const auditOutput = execSync(`npm ${auditArgs.join(' ')}`, {
116
- cwd: workspacePath,
117
- encoding: 'utf8',
118
- stdio: ['pipe', 'pipe', 'pipe'],
119
- });
120
- const auditData = JSON.parse(auditOutput);
121
- return this.parseNpmAuditResults(auditData);
122
- }
123
- catch (error) {
124
- if (error.status === 1) {
125
- // npm audit returns 1 when vulnerabilities are found
126
- try {
127
- const auditData = JSON.parse(error.stdout);
128
- return this.parseNpmAuditResults(auditData);
129
- }
130
- catch (parseError) {
131
- throw new Error(`Failed to parse npm audit output: ${error.message}`);
132
- }
133
- }
134
- else {
135
- throw new Error(`npm audit failed: ${error.message}`);
136
- }
137
- }
138
- }
139
- /**
140
- * Run snyk scan
141
- */
142
- async runSnykScan(workspacePath, options) {
143
- try {
144
- // Check if snyk is installed
145
- execSync('snyk --version', { stdio: 'pipe' });
146
- const snykArgs = ['test', '--json'];
147
- if (!options.includeDev) {
148
- snykArgs.push('--dev');
149
- }
150
- const snykOutput = execSync(`snyk ${snykArgs.join(' ')}`, {
151
- cwd: workspacePath,
152
- encoding: 'utf8',
153
- stdio: ['pipe', 'pipe', 'pipe'],
154
- });
155
- const snykData = JSON.parse(snykOutput);
156
- return this.parseSnykResults(snykData);
157
- }
158
- catch (error) {
159
- if (error.code === 'ENOENT') {
160
- console.warn(StyledText.iconWarning('Snyk not found. Install with: npm install -g snyk'));
161
- return [];
162
- }
163
- throw new Error(`Snyk scan failed: ${error.message}`);
164
- }
165
- }
166
- /**
167
- * Parse npm audit results
168
- */
169
- parseNpmAuditResults(auditData) {
170
- const vulnerabilities = [];
171
- if (!auditData.vulnerabilities) {
172
- return vulnerabilities;
173
- }
174
- for (const [id, vuln] of Object.entries(auditData.vulnerabilities)) {
175
- const vulnerability = vuln;
176
- vulnerabilities.push({
177
- id: id,
178
- package: vulnerability.name,
179
- severity: vulnerability.severity,
180
- title: vulnerability.title || vulnerability.name,
181
- url: vulnerability.url || `https://npmjs.com/advisories/${id}`,
182
- range: vulnerability.range,
183
- fixAvailable: vulnerability.fixAvailable,
184
- fixVersion: vulnerability.fixAvailable === true ? vulnerability.fixAvailable : undefined,
185
- paths: vulnerability.via?.map((v) => v.source || v.name) || [vulnerability.name],
186
- cwe: vulnerability.cwe,
187
- cve: vulnerability.cve,
188
- });
189
- }
190
- return vulnerabilities;
191
- }
192
- /**
193
- * Parse snyk results
194
- */
195
- parseSnykResults(snykData) {
196
- const vulnerabilities = [];
197
- if (!snykData.vulnerabilities) {
198
- return vulnerabilities;
199
- }
200
- for (const vuln of snykData.vulnerabilities) {
201
- vulnerabilities.push({
202
- id: vuln.id,
203
- package: vuln.packageName,
204
- severity: vuln.severity,
205
- title: vuln.title,
206
- url: vuln.url,
207
- range: vuln.semver?.vulnerable?.join(' || ') || vuln.version,
208
- fixAvailable: vuln.fixedIn?.length > 0,
209
- fixVersion: vuln.fixedIn?.[0],
210
- paths: vuln.from || [vuln.packageName],
211
- cwe: vuln.identifiers?.CWE || [],
212
- cve: vuln.identifiers?.CVE || [],
213
- });
214
- }
215
- return vulnerabilities;
216
- }
217
- /**
218
- * Generate security recommendations
219
- */
220
- generateRecommendations(vulnerabilities) {
221
- const recommendations = [];
222
- const packages = new Set(vulnerabilities.map((v) => v.package));
223
- for (const pkg of packages) {
224
- const pkgVulns = vulnerabilities.filter((v) => v.package === pkg);
225
- const criticalVulns = pkgVulns.filter((v) => v.severity === 'critical' || v.severity === 'high');
226
- if (criticalVulns.length > 0) {
227
- const fixVersions = [
228
- ...new Set(criticalVulns.map((v) => v.fixVersion).filter((v) => v && typeof v === 'string')),
229
- ];
230
- if (fixVersions.length > 0) {
231
- const currentVersion = pkgVulns[0]?.range?.split(' ')[0] || 'unknown';
232
- const recommendedVersion = fixVersions[0] || 'unknown';
233
- recommendations.push({
234
- package: pkg,
235
- currentVersion: currentVersion,
236
- recommendedVersion: recommendedVersion,
237
- type: 'update',
238
- reason: `${criticalVulns.length} critical vulnerabilities found`,
239
- impact: 'High - Security vulnerability fix',
240
- });
241
- }
242
- }
243
- }
244
- return recommendations;
245
- }
246
- /**
247
- * Generate summary from vulnerabilities
248
- */
249
- generateSummary(vulnerabilities) {
250
- const summary = {
251
- totalVulnerabilities: vulnerabilities.length,
252
- critical: 0,
253
- high: 0,
254
- moderate: 0,
255
- low: 0,
256
- info: 0,
257
- };
258
- for (const vuln of vulnerabilities) {
259
- const severity = vuln.severity;
260
- switch (severity) {
261
- case 'critical':
262
- summary.critical++;
263
- break;
264
- case 'high':
265
- summary.high++;
266
- break;
267
- case 'moderate':
268
- summary.moderate++;
269
- break;
270
- case 'low':
271
- summary.low++;
272
- break;
273
- case 'info':
274
- summary.info++;
275
- break;
276
- default:
277
- summary.info++;
278
- break;
279
- }
280
- }
281
- return summary;
282
- }
283
- /**
284
- * Convert severity string to number for filtering
285
- */
286
- severityToNumber(severity) {
287
- switch (severity) {
288
- case 'critical':
289
- return 4;
290
- case 'high':
291
- return 3;
292
- case 'moderate':
293
- return 2;
294
- case 'low':
295
- return 1;
296
- case 'info':
297
- return 0;
298
- default:
299
- return 0;
300
- }
301
- }
302
- /**
303
- * Show security recommendations
304
- */
305
- showRecommendations(report) {
306
- if (report.recommendations.length === 0) {
307
- return;
308
- }
309
- console.log('\n' + StyledText.iconInfo('Security Recommendations:'));
310
- for (const rec of report.recommendations) {
311
- console.log(` ${StyledText.iconWarning()} ${rec.package}: ${rec.currentVersion} → ${rec.recommendedVersion}`);
312
- console.log(` ${StyledText.muted(rec.reason)}`);
313
- console.log(` ${StyledText.muted(rec.impact)}`);
314
- }
315
- console.log('');
316
- console.log(StyledText.iconUpdate('Run with --fix-vulns to apply automatic fixes'));
317
- }
318
- /**
319
- * Auto-fix vulnerabilities
320
- */
321
- async autoFixVulnerabilities(report, options) {
322
- if (report.recommendations.length === 0) {
323
- console.log(StyledText.iconSuccess('No security fixes available'));
324
- return;
325
- }
326
- console.log('\n' + StyledText.iconUpdate('Applying security fixes...'));
327
- const workspacePath = options.workspace || process.cwd();
328
- const fixableVulns = report.recommendations.filter((r) => r.type === 'update');
329
- if (fixableVulns.length === 0) {
330
- console.log(StyledText.iconInfo('No automatic fixes available'));
331
- return;
332
- }
333
- try {
334
- // Run npm audit fix
335
- const fixArgs = ['audit', 'fix'];
336
- if (!options.includeDev) {
337
- fixArgs.push('--omit=dev');
338
- }
339
- execSync(`npm ${fixArgs.join(' ')}`, {
340
- cwd: workspacePath,
341
- encoding: 'utf8',
342
- stdio: 'inherit',
343
- });
344
- console.log(StyledText.iconSuccess('Security fixes applied successfully'));
345
- // Re-run scan to verify fixes
346
- console.log(StyledText.iconInfo('Re-running security scan to verify fixes...'));
347
- const newReport = await this.performSecurityScan({ ...options, fixVulns: false });
348
- if (newReport.summary.critical === 0 && newReport.summary.high === 0) {
349
- console.log(StyledText.iconSuccess('All critical and high severity vulnerabilities have been fixed!'));
350
- }
351
- else {
352
- console.log(StyledText.iconWarning(`${newReport.summary.critical} critical and ${newReport.summary.high} high severity vulnerabilities remain`));
353
- }
354
- }
355
- catch (error) {
356
- console.error(StyledText.iconError('Failed to apply security fixes:'));
357
- console.error(StyledText.error(error.message));
358
- }
359
- }
360
- /**
361
- * Validate command options
362
- */
363
- static validateOptions(options) {
364
- const errors = [];
365
- // Validate format
366
- if (options.format && !['table', 'json', 'yaml', 'minimal'].includes(options.format)) {
367
- errors.push('Invalid format. Must be one of: table, json, yaml, minimal');
368
- }
369
- // Validate severity
370
- if (options.severity && !['low', 'moderate', 'high', 'critical'].includes(options.severity)) {
371
- errors.push('Invalid severity. Must be one of: low, moderate, high, critical');
372
- }
373
- return errors;
374
- }
375
- /**
376
- * Get command help text
377
- */
378
- static getHelpText() {
379
- return `
380
- Security vulnerability scanning and automated fixes
381
-
382
- Usage:
383
- pcu security [options]
384
-
385
- Options:
386
- --workspace <path> Workspace directory (default: current directory)
387
- --format <type> Output format: table, json, yaml, minimal (default: table)
388
- --audit Perform npm audit scan (default: true)
389
- --fix-vulns Automatically fix vulnerabilities
390
- --severity <level> Filter by severity: low, moderate, high, critical
391
- --include-dev Include dev dependencies in scan
392
- --snyk Include Snyk scan (requires snyk CLI)
393
- --verbose Show detailed information
394
- --no-color Disable colored output
395
-
396
- Examples:
397
- pcu security # Basic security scan
398
- pcu security --fix-vulns # Scan and fix vulnerabilities
399
- pcu security --severity high # Show only high severity issues
400
- pcu security --snyk # Include Snyk scan
401
- pcu security --format json # Output as JSON
402
-
403
- Exit Codes:
404
- 0 No vulnerabilities found
405
- 1 Vulnerabilities found
406
- 2 Error occurred
407
- `;
408
- }
409
- }
410
- //# sourceMappingURL=SecurityCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecurityCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SecurityCommand.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Update Command
3
- *
4
- * CLI command to update catalog dependencies.
5
- * Supports interactive mode, dry-run, and various update strategies.
6
- */
7
- import { CatalogUpdateService, UpdateTarget } from '../../application/services/CatalogUpdateService.js';
8
- import { OutputFormat } from '../formatters/OutputFormatter.js';
9
- export interface UpdateCommandOptions {
10
- workspace?: string;
11
- catalog?: string;
12
- format?: OutputFormat;
13
- target?: UpdateTarget;
14
- interactive?: boolean;
15
- dryRun?: boolean;
16
- force?: boolean;
17
- prerelease?: boolean;
18
- include?: string[];
19
- exclude?: string[];
20
- createBackup?: boolean;
21
- verbose?: boolean;
22
- color?: boolean;
23
- }
24
- export declare class UpdateCommand {
25
- private readonly updateService;
26
- constructor(updateService: CatalogUpdateService);
27
- /**
28
- * Execute the update command
29
- */
30
- execute(options?: UpdateCommandOptions): Promise<void>;
31
- /**
32
- * Interactive update selection
33
- */
34
- private interactiveSelection;
35
- /**
36
- * Validate command options
37
- */
38
- static validateOptions(options: UpdateCommandOptions): string[];
39
- /**
40
- * Get command help text
41
- */
42
- static getHelpText(): string;
43
- }
44
- //# sourceMappingURL=UpdateCommand.d.ts.map
@@ -1 +0,0 @@
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;IA6GhE;;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"}