pcu 0.5.6 → 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 (219) 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 -582
  20. package/README.md +0 -690
  21. package/README.zh-CN.md +0 -630
  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 -836
  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 -145
  209. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  210. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -466
  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
package/dist/cli/index.js DELETED
@@ -1,492 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * pnpm-catalog-updates CLI Entry Point
4
- *
5
- * A CLI tool for checking and updating pnpm workspace catalog dependencies.
6
- * This is the main entry point that handles command parsing and execution.
7
- */
8
- import { dirname, join } from 'path';
9
- import { OutputFormatter } from './formatters/OutputFormatter.js';
10
- // Services and Dependencies
11
- import { CatalogUpdateService } from '../application/services/CatalogUpdateService.js';
12
- // CLI Commands
13
- import chalk from 'chalk';
14
- import { Command } from 'commander';
15
- import { readFileSync } from 'fs';
16
- import { fileURLToPath } from 'url';
17
- import { WorkspaceService } from '../application/services/WorkspaceService.js';
18
- import { NpmRegistryService } from '../infrastructure/external-services/NpmRegistryService.js';
19
- import { FileSystemService } from '../infrastructure/file-system/FileSystemService.js';
20
- import { FileWorkspaceRepository } from '../infrastructure/repositories/FileWorkspaceRepository.js';
21
- import { CheckCommand } from './commands/CheckCommand.js';
22
- import { UpdateCommand } from './commands/UpdateCommand.js';
23
- import { SecurityCommand } from './commands/SecurityCommand.js';
24
- import { InitCommand } from './commands/InitCommand.js';
25
- import { InteractivePrompts } from './interactive/InteractivePrompts.js';
26
- import { ThemeManager, StyledText } from './themes/ColorTheme.js';
27
- import { VersionChecker } from '../common/utils/VersionChecker.js';
28
- import { ConfigLoader } from '../common/config/ConfigLoader.js';
29
- // Get package.json for version info
30
- const __filename = fileURLToPath(import.meta.url);
31
- const __dirname = dirname(__filename);
32
- const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
33
- /**
34
- * Create service dependencies with configuration support
35
- */
36
- function createServices(workspacePath) {
37
- const fileSystemService = new FileSystemService();
38
- const workspaceRepository = new FileWorkspaceRepository(fileSystemService);
39
- // Use factory method to create CatalogUpdateService with configuration
40
- const catalogUpdateService = CatalogUpdateService.createWithConfig(workspaceRepository, workspacePath);
41
- const workspaceService = new WorkspaceService(workspaceRepository);
42
- return {
43
- fileSystemService,
44
- workspaceRepository,
45
- catalogUpdateService,
46
- workspaceService,
47
- };
48
- }
49
- /**
50
- * Main CLI function
51
- */
52
- export async function main() {
53
- const program = new Command();
54
- // Parse arguments first to get workspace path
55
- let workspacePath;
56
- // Extract workspace path from arguments for service creation
57
- const workspaceIndex = process.argv.findIndex((arg) => arg === '-w' || arg === '--workspace');
58
- if (workspaceIndex !== -1 && workspaceIndex + 1 < process.argv.length) {
59
- workspacePath = process.argv[workspaceIndex + 1];
60
- }
61
- // Load configuration to check if version updates are enabled
62
- const config = ConfigLoader.loadConfig(workspacePath || process.cwd());
63
- // Check for version updates (skip in CI environments or if disabled)
64
- if (VersionChecker.shouldCheckForUpdates() && config.advanced?.checkForUpdates !== false) {
65
- try {
66
- const versionResult = await VersionChecker.checkVersion(packageJson.version, {
67
- skipPrompt: false,
68
- timeout: 3000, // Short timeout to not delay CLI startup
69
- });
70
- if (versionResult.shouldPrompt) {
71
- const didUpdate = await VersionChecker.promptAndUpdate(versionResult);
72
- if (didUpdate) {
73
- // Exit after successful update to allow user to restart with new version
74
- console.log(chalk.blue('Please run your command again to use the updated version.'));
75
- process.exit(0);
76
- }
77
- }
78
- }
79
- catch (error) {
80
- // Silently fail version check to not interrupt CLI usage (only show warning in verbose mode)
81
- if (process.argv.includes('-v') || process.argv.includes('--verbose')) {
82
- console.warn(chalk.yellow('⚠️ Could not check for updates:'), error);
83
- }
84
- }
85
- }
86
- // Create services with workspace path for configuration loading
87
- const services = createServices(workspacePath);
88
- // Configure the main command
89
- program
90
- .name('pcu')
91
- .description('A CLI tool to check and update pnpm workspace catalog dependencies')
92
- .option('--version', 'show version information')
93
- .option('-v, --verbose', 'enable verbose logging')
94
- .option('-w, --workspace <path>', 'workspace directory path')
95
- .option('--no-color', 'disable colored output')
96
- .option('-u, --update', 'shorthand for update command')
97
- .option('-c, --check', 'shorthand for check command')
98
- .option('-a, --analyze', 'shorthand for analyze command')
99
- .option('-s, --workspace-info', 'shorthand for workspace command')
100
- .option('-t, --theme', 'shorthand for theme command')
101
- .option('--security-audit', 'shorthand for security command')
102
- .option('--security-fix', 'shorthand for security --fix-vulns command');
103
- // Check command
104
- program
105
- .command('check')
106
- .alias('chk')
107
- .description('check for outdated catalog dependencies')
108
- .option('--catalog <name>', 'check specific catalog only')
109
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
110
- .option('-t, --target <type>', 'update target: latest, greatest, minor, patch, newest', 'latest')
111
- .option('--prerelease', 'include prerelease versions')
112
- .option('--include <pattern>', 'include packages matching pattern', [])
113
- .option('--exclude <pattern>', 'exclude packages matching pattern', [])
114
- .action(async (options, command) => {
115
- try {
116
- const globalOptions = command.parent.opts();
117
- const checkCommand = new CheckCommand(services.catalogUpdateService);
118
- await checkCommand.execute({
119
- workspace: globalOptions.workspace,
120
- catalog: options.catalog,
121
- format: options.format,
122
- target: options.target,
123
- prerelease: options.prerelease,
124
- include: Array.isArray(options.include)
125
- ? options.include
126
- : [options.include].filter(Boolean),
127
- exclude: Array.isArray(options.exclude)
128
- ? options.exclude
129
- : [options.exclude].filter(Boolean),
130
- verbose: globalOptions.verbose,
131
- color: !globalOptions.noColor,
132
- });
133
- }
134
- catch (error) {
135
- console.error(chalk.red('❌ Error:'), error);
136
- process.exit(1);
137
- }
138
- });
139
- // Update command
140
- program
141
- .command('update')
142
- .alias('u')
143
- .description('update catalog dependencies')
144
- .option('-i, --interactive', 'interactive mode to choose updates')
145
- .option('-d, --dry-run', 'preview changes without writing files')
146
- .option('-t, --target <type>', 'update target: latest, greatest, minor, patch, newest', 'latest')
147
- .option('--catalog <name>', 'update specific catalog only')
148
- .option('--include <pattern>', 'include packages matching pattern', [])
149
- .option('--exclude <pattern>', 'exclude packages matching pattern', [])
150
- .option('--force', 'force updates even if risky')
151
- .option('--prerelease', 'include prerelease versions')
152
- .option('-b, --create-backup', 'create backup files before updating')
153
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
154
- .action(async (options, command) => {
155
- try {
156
- const globalOptions = command.parent.opts();
157
- const updateCommand = new UpdateCommand(services.catalogUpdateService);
158
- await updateCommand.execute({
159
- workspace: globalOptions.workspace,
160
- catalog: options.catalog,
161
- format: options.format,
162
- target: options.target,
163
- interactive: options.interactive,
164
- dryRun: options.dryRun,
165
- force: options.force,
166
- prerelease: options.prerelease,
167
- include: Array.isArray(options.include)
168
- ? options.include
169
- : [options.include].filter(Boolean),
170
- exclude: Array.isArray(options.exclude)
171
- ? options.exclude
172
- : [options.exclude].filter(Boolean),
173
- createBackup: options.createBackup,
174
- verbose: globalOptions.verbose,
175
- color: !globalOptions.noColor,
176
- });
177
- }
178
- catch (error) {
179
- console.error(chalk.red('❌ Error:'), error);
180
- process.exit(1);
181
- }
182
- });
183
- // Analyze command
184
- program
185
- .command('analyze')
186
- .alias('a')
187
- .description('analyze the impact of updating a specific dependency')
188
- .argument('<catalog>', 'catalog name')
189
- .argument('<package>', 'package name')
190
- .argument('[version]', 'new version (default: latest)')
191
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
192
- .action(async (catalog, packageName, version, options, command) => {
193
- try {
194
- const globalOptions = command.parent.opts();
195
- const formatter = new OutputFormatter(options.format, !globalOptions.noColor);
196
- // Get latest version if not specified
197
- let targetVersion = version;
198
- if (!targetVersion) {
199
- // Create a temporary registry service for version fetching
200
- const tempRegistryService = new NpmRegistryService();
201
- targetVersion = (await tempRegistryService.getLatestVersion(packageName)).toString();
202
- }
203
- const analysis = await services.catalogUpdateService.analyzeImpact(catalog, packageName, targetVersion, globalOptions.workspace);
204
- const formattedOutput = formatter.formatImpactAnalysis(analysis);
205
- console.log(formattedOutput);
206
- }
207
- catch (error) {
208
- console.error(chalk.red('❌ Error:'), error);
209
- process.exit(1);
210
- }
211
- });
212
- // Workspace command
213
- program
214
- .command('workspace')
215
- .alias('w')
216
- .description('workspace information and validation')
217
- .option('--validate', 'validate workspace configuration')
218
- .option('-s, --stats', 'show workspace statistics')
219
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
220
- .action(async (options, command) => {
221
- try {
222
- const globalOptions = command.parent.opts();
223
- const formatter = new OutputFormatter(options.format, !globalOptions.noColor);
224
- if (options.validate) {
225
- const report = await services.workspaceService.validateWorkspace(globalOptions.workspace);
226
- const formattedOutput = formatter.formatValidationReport(report);
227
- console.log(formattedOutput);
228
- process.exit(report.isValid ? 0 : 1);
229
- }
230
- else if (options.stats) {
231
- const stats = await services.workspaceService.getWorkspaceStats(globalOptions.workspace);
232
- const formattedOutput = formatter.formatWorkspaceStats(stats);
233
- console.log(formattedOutput);
234
- }
235
- else {
236
- const info = await services.workspaceService.getWorkspaceInfo(globalOptions.workspace);
237
- console.log(formatter.formatMessage(`Workspace: ${info.name}`, 'info'));
238
- console.log(formatter.formatMessage(`Path: ${info.path}`, 'info'));
239
- console.log(formatter.formatMessage(`Packages: ${info.packageCount}`, 'info'));
240
- console.log(formatter.formatMessage(`Catalogs: ${info.catalogCount}`, 'info'));
241
- if (info.catalogNames.length > 0) {
242
- console.log(formatter.formatMessage(`Catalog names: ${info.catalogNames.join(', ')}`, 'info'));
243
- }
244
- }
245
- }
246
- catch (error) {
247
- console.error(chalk.red('❌ Error:'), error);
248
- process.exit(1);
249
- }
250
- });
251
- // Theme command
252
- program
253
- .command('theme')
254
- .alias('t')
255
- .description('configure color theme')
256
- .option('-s, --set <theme>', 'set theme: default, modern, minimal, neon')
257
- .option('-l, --list', 'list available themes')
258
- .option('-i, --interactive', 'interactive theme selection')
259
- .action(async (options, _command) => {
260
- try {
261
- if (options.list) {
262
- const themes = ThemeManager.listThemes();
263
- console.log(StyledText.iconInfo('Available themes:'));
264
- themes.forEach((theme) => {
265
- console.log(` • ${theme}`);
266
- });
267
- return;
268
- }
269
- if (options.set) {
270
- const themes = ThemeManager.listThemes();
271
- if (!themes.includes(options.set)) {
272
- console.error(StyledText.iconError(`Invalid theme: ${options.set}`));
273
- console.log(StyledText.muted(`Available themes: ${themes.join(', ')}`));
274
- process.exit(1);
275
- }
276
- ThemeManager.setTheme(options.set);
277
- console.log(StyledText.iconSuccess(`Theme set to: ${options.set}`));
278
- // Show a preview
279
- console.log('\nTheme preview:');
280
- const theme = ThemeManager.getTheme();
281
- console.log(` ${theme.success('✓ Success message')}`);
282
- console.log(` ${theme.warning('⚠ Warning message')}`);
283
- console.log(` ${theme.error('✗ Error message')}`);
284
- console.log(` ${theme.info('ℹ Info message')}`);
285
- console.log(` ${theme.major('Major update')} | ${theme.minor('Minor update')} | ${theme.patch('Patch update')}`);
286
- return;
287
- }
288
- if (options.interactive) {
289
- const interactivePrompts = new InteractivePrompts();
290
- const config = await interactivePrompts.configurationWizard();
291
- if (config.theme) {
292
- ThemeManager.setTheme(config.theme);
293
- console.log(StyledText.iconSuccess(`Theme configured: ${config.theme}`));
294
- }
295
- return;
296
- }
297
- // Default: show current theme and list
298
- const currentTheme = ThemeManager.getTheme();
299
- console.log(StyledText.iconInfo('Current theme settings:'));
300
- console.log(` Theme: ${currentTheme ? 'custom' : 'default'}`);
301
- console.log('\nAvailable themes:');
302
- ThemeManager.listThemes().forEach((theme) => {
303
- console.log(` • ${theme}`);
304
- });
305
- console.log(StyledText.muted('\nUse --set <theme> to change theme or --interactive for guided setup'));
306
- }
307
- catch (error) {
308
- console.error(StyledText.iconError('Error configuring theme:'), error);
309
- process.exit(1);
310
- }
311
- });
312
- // Security command
313
- program
314
- .command('security')
315
- .alias('sec')
316
- .description('security vulnerability scanning and automated fixes')
317
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
318
- .option('--audit', 'perform npm audit scan (default: true)', true)
319
- .option('--fix-vulns', 'automatically fix vulnerabilities')
320
- .option('--severity <level>', 'filter by severity: low, moderate, high, critical')
321
- .option('--include-dev', 'include dev dependencies in scan')
322
- .option('--snyk', 'include Snyk scan (requires snyk CLI)')
323
- .action(async (options, command) => {
324
- try {
325
- const globalOptions = command.parent.opts();
326
- const formatter = new OutputFormatter(options.format, !globalOptions.noColor);
327
- const securityCommand = new SecurityCommand(formatter);
328
- await securityCommand.execute({
329
- workspace: globalOptions.workspace,
330
- format: options.format,
331
- audit: options.audit,
332
- fixVulns: options.fixVulns,
333
- severity: options.severity,
334
- includeDev: options.includeDev,
335
- snyk: options.snyk,
336
- verbose: globalOptions.verbose,
337
- color: !globalOptions.noColor,
338
- });
339
- }
340
- catch (error) {
341
- console.error(chalk.red('❌ Error:'), error);
342
- process.exit(1);
343
- }
344
- });
345
- // Init command
346
- program
347
- .command('init')
348
- .alias('i')
349
- .description('initialize PCU configuration and PNPM workspace')
350
- .option('--force', 'overwrite existing configuration file')
351
- .option('--full', 'generate full configuration with all options')
352
- .option('--create-workspace', 'create PNPM workspace structure if missing (default: true)', true)
353
- .option('--no-create-workspace', 'skip creating PNPM workspace structure')
354
- .option('-f, --format <type>', 'output format: table, json, yaml, minimal', 'table')
355
- .action(async (options, command) => {
356
- try {
357
- const globalOptions = command.parent.opts();
358
- const initCommand = new InitCommand();
359
- await initCommand.execute({
360
- workspace: globalOptions.workspace,
361
- force: options.force,
362
- full: options.full,
363
- createWorkspace: options.createWorkspace,
364
- verbose: globalOptions.verbose,
365
- color: !globalOptions.noColor,
366
- });
367
- }
368
- catch (error) {
369
- console.error(chalk.red('❌ Error:'), error);
370
- process.exit(1);
371
- }
372
- });
373
- // Add help command
374
- program
375
- .command('help')
376
- .alias('h')
377
- .argument('[command]', 'command to get help for')
378
- .description('display help for command')
379
- .action((command) => {
380
- if (command) {
381
- const cmd = program.commands.find((c) => c.name() === command);
382
- if (cmd) {
383
- cmd.help();
384
- }
385
- else {
386
- console.log(chalk.red(`Unknown command: ${command}`));
387
- }
388
- }
389
- else {
390
- program.help();
391
- }
392
- });
393
- // Let commander handle help and version normally
394
- // program.exitOverride() removed to fix help/version output
395
- // Handle shorthand options and single-letter commands by rewriting arguments
396
- const args = [...process.argv];
397
- // Map single-letter command 'i' -> init (changed from interactive mode)
398
- if (args.includes('i') &&
399
- !args.some((a) => a === 'init' || a === 'update' || a === '-u' || a === '--update' || a === '-i' || a === '--interactive')) {
400
- const index = args.findIndex((arg) => arg === 'i');
401
- args.splice(index, 1, 'init');
402
- }
403
- if (args.includes('-u') || args.includes('--update')) {
404
- const index = args.findIndex((arg) => arg === '-u' || arg === '--update');
405
- args.splice(index, 1, 'update');
406
- }
407
- else if ((args.includes('-i') || args.includes('--interactive')) &&
408
- !args.some((a) => a === 'update' || a === '-u' || a === '--update')) {
409
- // Map standalone -i to `update -i`
410
- const index = args.findIndex((arg) => arg === '-i' || arg === '--interactive');
411
- // Replace the flag position with 'update' and keep the flag after it
412
- args.splice(index, 1, 'update', '-i');
413
- }
414
- else if (args.includes('-c') || args.includes('--check')) {
415
- const index = args.findIndex((arg) => arg === '-c' || arg === '--check');
416
- args.splice(index, 1, 'check');
417
- }
418
- else if (args.includes('-a') || args.includes('--analyze')) {
419
- const index = args.findIndex((arg) => arg === '-a' || arg === '--analyze');
420
- args.splice(index, 1, 'analyze');
421
- }
422
- else if (args.includes('-s') || args.includes('--workspace-info')) {
423
- const index = args.findIndex((arg) => arg === '-s' || arg === '--workspace-info');
424
- args.splice(index, 1, 'workspace');
425
- }
426
- else if (args.includes('-t') || args.includes('--theme')) {
427
- const index = args.findIndex((arg) => arg === '-t' || arg === '--theme');
428
- args.splice(index, 1, 'theme');
429
- }
430
- else if (args.includes('--security-audit')) {
431
- const index = args.findIndex((arg) => arg === '--security-audit');
432
- args.splice(index, 1, 'security');
433
- }
434
- else if (args.includes('--security-fix')) {
435
- const index = args.findIndex((arg) => arg === '--security-fix');
436
- args.splice(index, 1, 'security', '--fix-vulns');
437
- }
438
- // Show help if no arguments provided
439
- if (args.length <= 2) {
440
- program.help();
441
- }
442
- // Handle custom --version with update checking
443
- if (args.includes('--version')) {
444
- console.log(packageJson.version);
445
- // Check for updates if not in CI and enabled in config
446
- if (VersionChecker.shouldCheckForUpdates() && config.advanced?.checkForUpdates !== false) {
447
- try {
448
- console.log(chalk.gray('Checking for updates...'));
449
- const versionResult = await VersionChecker.checkVersion(packageJson.version, {
450
- skipPrompt: false,
451
- timeout: 5000, // Longer timeout for explicit version check
452
- });
453
- if (versionResult.shouldPrompt) {
454
- const didUpdate = await VersionChecker.promptAndUpdate(versionResult);
455
- if (didUpdate) {
456
- console.log(chalk.blue('Please run your command again to use the updated version.'));
457
- process.exit(0);
458
- }
459
- }
460
- else if (versionResult.isLatest) {
461
- console.log(chalk.green('You are using the latest version!'));
462
- }
463
- }
464
- catch (error) {
465
- // Silently fail update check for version command
466
- if (args.includes('-v') || args.includes('--verbose')) {
467
- console.warn(chalk.yellow('⚠️ Could not check for updates:'), error);
468
- }
469
- }
470
- }
471
- process.exit(0);
472
- }
473
- // Parse command line arguments
474
- try {
475
- await program.parseAsync(args);
476
- }
477
- catch (error) {
478
- console.error(chalk.red('❌ Unexpected error:'), error);
479
- if (error instanceof Error && error.stack) {
480
- console.error(chalk.gray(error.stack));
481
- }
482
- process.exit(1);
483
- }
484
- }
485
- // Run the CLI if this file is executed directly
486
- if (import.meta.url === `file://${process.argv[1]}`) {
487
- main().catch((error) => {
488
- console.error(chalk.red('❌ Fatal error:'), error);
489
- process.exit(1);
490
- });
491
- }
492
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- /**
2
- * Interactive Prompts
3
- *
4
- * Provides smart prompts and auto-completion for CLI commands
5
- */
6
- export interface AutoCompleteOption {
7
- name: string;
8
- value: string;
9
- description?: string;
10
- }
11
- export declare class InteractivePrompts {
12
- private fsService;
13
- constructor();
14
- /**
15
- * Interactive package selection with search
16
- */
17
- selectPackages(packages: Array<{
18
- name: string;
19
- current: string;
20
- latest: string;
21
- type: string;
22
- }>): Promise<string[]>;
23
- /**
24
- * Interactive catalog selection
25
- */
26
- selectCatalog(catalogs: string[]): Promise<string | null>;
27
- /**
28
- * Update strategy selection
29
- */
30
- selectUpdateStrategy(): Promise<string>;
31
- /**
32
- * Confirm dangerous operations
33
- */
34
- confirmDangerousOperation(operation: string, details?: string): Promise<boolean>;
35
- /**
36
- * Auto-complete for package names
37
- */
38
- autoCompletePackage(packages: string[], message?: string): Promise<string>;
39
- /**
40
- * Workspace path selection with auto-complete
41
- */
42
- selectWorkspacePath(): Promise<string>;
43
- /**
44
- * Browse directory structure
45
- */
46
- private browseDirectory;
47
- /**
48
- * Multi-step configuration wizard
49
- */
50
- configurationWizard(): Promise<any>;
51
- /**
52
- * Impact preview before update
53
- */
54
- previewImpact(impact: any): Promise<boolean>;
55
- /**
56
- * Error recovery options
57
- */
58
- errorRecoveryOptions(error: string): Promise<string>;
59
- /**
60
- * Confirm tool update
61
- */
62
- confirmUpdate(message: string): Promise<boolean>;
63
- /**
64
- * Format package choice for display
65
- */
66
- private formatPackageChoice;
67
- }
68
- /**
69
- * Auto-completion utilities
70
- */
71
- export declare class AutoCompleteManager {
72
- static suggestWorkspaces(current: string): Promise<string[]>;
73
- static suggestCatalogs(): Promise<string[]>;
74
- static suggestPackages(): Promise<string[]>;
75
- }
76
- /**
77
- * Interactive command builder
78
- */
79
- export declare class InteractiveCommandBuilder {
80
- static buildCommand(): Promise<{
81
- command: string;
82
- options: Record<string, any>;
83
- }>;
84
- }
85
- //# sourceMappingURL=InteractivePrompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractivePrompts.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/InteractivePrompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAoB;;IAMrC;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/E,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBpB;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2B/D;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB7C;;OAEG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBtF;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,MAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuB5C;;OAEG;YACW,eAAe;IA0D7B;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;IAmDzC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BlD;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB1D;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAW5B;AAED;;GAEG;AACH,qBAAa,mBAAmB;WACjB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WA6BrD,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAIpC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGlD;AAED;;GAEG;AACH,qBAAa,yBAAyB;WACvB,YAAY,IAAI,OAAO,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;CA+EH"}