pnpm-catalog-updates 0.5.7 → 0.6.6

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 (224) hide show
  1. package/README.md +70 -634
  2. package/bin/pcu.js +1 -1
  3. package/dist/index.js +9559 -32
  4. package/dist/index.js.map +1 -1
  5. package/package.json +59 -103
  6. package/src/cli/commands/checkCommand.ts +227 -0
  7. package/src/cli/commands/initCommand.ts +394 -0
  8. package/src/cli/commands/securityCommand.ts +569 -0
  9. package/src/cli/commands/updateCommand.ts +245 -0
  10. package/src/cli/formatters/outputFormatter.ts +830 -0
  11. package/src/cli/formatters/progressBar.ts +700 -0
  12. package/src/cli/index.ts +565 -0
  13. package/src/cli/interactive/interactivePrompts.ts +517 -0
  14. package/src/cli/options/globalOptions.ts +380 -0
  15. package/src/cli/options/index.ts +5 -0
  16. package/src/cli/themes/colorTheme.ts +379 -0
  17. package/src/cli/validators/commandValidator.ts +395 -0
  18. package/src/cli/validators/index.ts +5 -0
  19. package/src/index.ts +4 -0
  20. package/LICENSE +0 -21
  21. package/README.ja.md +0 -587
  22. package/README.zh-CN.md +0 -634
  23. package/dist/application/services/CatalogUpdateService.d.ts +0 -209
  24. package/dist/application/services/CatalogUpdateService.d.ts.map +0 -1
  25. package/dist/application/services/CatalogUpdateService.js +0 -839
  26. package/dist/application/services/CatalogUpdateService.js.map +0 -1
  27. package/dist/application/services/WorkspaceService.d.ts +0 -139
  28. package/dist/application/services/WorkspaceService.d.ts.map +0 -1
  29. package/dist/application/services/WorkspaceService.js +0 -340
  30. package/dist/application/services/WorkspaceService.js.map +0 -1
  31. package/dist/cli/commands/CheckCommand.d.ts +0 -40
  32. package/dist/cli/commands/CheckCommand.d.ts.map +0 -1
  33. package/dist/cli/commands/CheckCommand.js +0 -177
  34. package/dist/cli/commands/CheckCommand.js.map +0 -1
  35. package/dist/cli/commands/InitCommand.d.ts +0 -53
  36. package/dist/cli/commands/InitCommand.d.ts.map +0 -1
  37. package/dist/cli/commands/InitCommand.js +0 -338
  38. package/dist/cli/commands/InitCommand.js.map +0 -1
  39. package/dist/cli/commands/SecurityCommand.d.ts +0 -113
  40. package/dist/cli/commands/SecurityCommand.d.ts.map +0 -1
  41. package/dist/cli/commands/SecurityCommand.js +0 -410
  42. package/dist/cli/commands/SecurityCommand.js.map +0 -1
  43. package/dist/cli/commands/UpdateCommand.d.ts +0 -44
  44. package/dist/cli/commands/UpdateCommand.d.ts.map +0 -1
  45. package/dist/cli/commands/UpdateCommand.js +0 -189
  46. package/dist/cli/commands/UpdateCommand.js.map +0 -1
  47. package/dist/cli/formatters/OutputFormatter.d.ts +0 -116
  48. package/dist/cli/formatters/OutputFormatter.d.ts.map +0 -1
  49. package/dist/cli/formatters/OutputFormatter.js +0 -664
  50. package/dist/cli/formatters/OutputFormatter.js.map +0 -1
  51. package/dist/cli/formatters/ProgressBar.d.ts +0 -195
  52. package/dist/cli/formatters/ProgressBar.d.ts.map +0 -1
  53. package/dist/cli/formatters/ProgressBar.js +0 -622
  54. package/dist/cli/formatters/ProgressBar.js.map +0 -1
  55. package/dist/cli/index.d.ts +0 -12
  56. package/dist/cli/index.d.ts.map +0 -1
  57. package/dist/cli/index.js +0 -492
  58. package/dist/cli/index.js.map +0 -1
  59. package/dist/cli/interactive/InteractivePrompts.d.ts +0 -85
  60. package/dist/cli/interactive/InteractivePrompts.d.ts.map +0 -1
  61. package/dist/cli/interactive/InteractivePrompts.js +0 -434
  62. package/dist/cli/interactive/InteractivePrompts.js.map +0 -1
  63. package/dist/cli/options/GlobalOptions.d.ts +0 -117
  64. package/dist/cli/options/GlobalOptions.d.ts.map +0 -1
  65. package/dist/cli/options/GlobalOptions.js +0 -278
  66. package/dist/cli/options/GlobalOptions.js.map +0 -1
  67. package/dist/cli/options/index.d.ts +0 -5
  68. package/dist/cli/options/index.d.ts.map +0 -1
  69. package/dist/cli/options/index.js +0 -5
  70. package/dist/cli/options/index.js.map +0 -1
  71. package/dist/cli/themes/ColorTheme.d.ts +0 -211
  72. package/dist/cli/themes/ColorTheme.d.ts.map +0 -1
  73. package/dist/cli/themes/ColorTheme.js +0 -267
  74. package/dist/cli/themes/ColorTheme.js.map +0 -1
  75. package/dist/cli/validators/CommandValidator.d.ts +0 -60
  76. package/dist/cli/validators/CommandValidator.d.ts.map +0 -1
  77. package/dist/cli/validators/CommandValidator.js +0 -319
  78. package/dist/cli/validators/CommandValidator.js.map +0 -1
  79. package/dist/cli/validators/index.d.ts +0 -5
  80. package/dist/cli/validators/index.d.ts.map +0 -1
  81. package/dist/cli/validators/index.js +0 -5
  82. package/dist/cli/validators/index.js.map +0 -1
  83. package/dist/common/config/Config.d.ts +0 -142
  84. package/dist/common/config/Config.d.ts.map +0 -1
  85. package/dist/common/config/Config.js +0 -382
  86. package/dist/common/config/Config.js.map +0 -1
  87. package/dist/common/config/ConfigLoader.d.ts +0 -49
  88. package/dist/common/config/ConfigLoader.d.ts.map +0 -1
  89. package/dist/common/config/ConfigLoader.js +0 -180
  90. package/dist/common/config/ConfigLoader.js.map +0 -1
  91. package/dist/common/config/PackageFilterConfig.d.ts +0 -56
  92. package/dist/common/config/PackageFilterConfig.d.ts.map +0 -1
  93. package/dist/common/config/PackageFilterConfig.js +0 -94
  94. package/dist/common/config/PackageFilterConfig.js.map +0 -1
  95. package/dist/common/config/index.d.ts +0 -8
  96. package/dist/common/config/index.d.ts.map +0 -1
  97. package/dist/common/config/index.js +0 -8
  98. package/dist/common/config/index.js.map +0 -1
  99. package/dist/common/error-handling/ErrorTracker.d.ts +0 -48
  100. package/dist/common/error-handling/ErrorTracker.d.ts.map +0 -1
  101. package/dist/common/error-handling/ErrorTracker.js +0 -93
  102. package/dist/common/error-handling/ErrorTracker.js.map +0 -1
  103. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts +0 -74
  104. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts.map +0 -1
  105. package/dist/common/error-handling/UserFriendlyErrorHandler.js +0 -703
  106. package/dist/common/error-handling/UserFriendlyErrorHandler.js.map +0 -1
  107. package/dist/common/error-handling/index.d.ts +0 -11
  108. package/dist/common/error-handling/index.d.ts.map +0 -1
  109. package/dist/common/error-handling/index.js +0 -9
  110. package/dist/common/error-handling/index.js.map +0 -1
  111. package/dist/common/logger/Logger.d.ts +0 -110
  112. package/dist/common/logger/Logger.d.ts.map +0 -1
  113. package/dist/common/logger/Logger.js +0 -289
  114. package/dist/common/logger/Logger.js.map +0 -1
  115. package/dist/common/logger/index.d.ts +0 -6
  116. package/dist/common/logger/index.d.ts.map +0 -1
  117. package/dist/common/logger/index.js +0 -6
  118. package/dist/common/logger/index.js.map +0 -1
  119. package/dist/common/types/cli.d.ts +0 -265
  120. package/dist/common/types/cli.d.ts.map +0 -1
  121. package/dist/common/types/cli.js +0 -5
  122. package/dist/common/types/cli.js.map +0 -1
  123. package/dist/common/types/core.d.ts +0 -270
  124. package/dist/common/types/core.d.ts.map +0 -1
  125. package/dist/common/types/core.js +0 -32
  126. package/dist/common/types/core.js.map +0 -1
  127. package/dist/common/types/index.d.ts +0 -8
  128. package/dist/common/types/index.d.ts.map +0 -1
  129. package/dist/common/types/index.js +0 -8
  130. package/dist/common/types/index.js.map +0 -1
  131. package/dist/common/utils/VersionChecker.d.ts +0 -54
  132. package/dist/common/utils/VersionChecker.d.ts.map +0 -1
  133. package/dist/common/utils/VersionChecker.js +0 -180
  134. package/dist/common/utils/VersionChecker.js.map +0 -1
  135. package/dist/common/utils/async.d.ts +0 -74
  136. package/dist/common/utils/async.d.ts.map +0 -1
  137. package/dist/common/utils/async.js +0 -228
  138. package/dist/common/utils/async.js.map +0 -1
  139. package/dist/common/utils/format.d.ts +0 -32
  140. package/dist/common/utils/format.d.ts.map +0 -1
  141. package/dist/common/utils/format.js +0 -121
  142. package/dist/common/utils/format.js.map +0 -1
  143. package/dist/common/utils/git.d.ts +0 -44
  144. package/dist/common/utils/git.d.ts.map +0 -1
  145. package/dist/common/utils/git.js +0 -147
  146. package/dist/common/utils/git.js.map +0 -1
  147. package/dist/common/utils/index.d.ts +0 -12
  148. package/dist/common/utils/index.d.ts.map +0 -1
  149. package/dist/common/utils/index.js +0 -12
  150. package/dist/common/utils/index.js.map +0 -1
  151. package/dist/common/utils/string.d.ts +0 -56
  152. package/dist/common/utils/string.d.ts.map +0 -1
  153. package/dist/common/utils/string.js +0 -134
  154. package/dist/common/utils/string.js.map +0 -1
  155. package/dist/common/utils/validation.d.ts +0 -88
  156. package/dist/common/utils/validation.d.ts.map +0 -1
  157. package/dist/common/utils/validation.js +0 -308
  158. package/dist/common/utils/validation.js.map +0 -1
  159. package/dist/domain/entities/Catalog.d.ts +0 -117
  160. package/dist/domain/entities/Catalog.d.ts.map +0 -1
  161. package/dist/domain/entities/Catalog.js +0 -240
  162. package/dist/domain/entities/Catalog.js.map +0 -1
  163. package/dist/domain/entities/Package.d.ts +0 -143
  164. package/dist/domain/entities/Package.d.ts.map +0 -1
  165. package/dist/domain/entities/Package.js +0 -272
  166. package/dist/domain/entities/Package.js.map +0 -1
  167. package/dist/domain/entities/Workspace.d.ts +0 -95
  168. package/dist/domain/entities/Workspace.d.ts.map +0 -1
  169. package/dist/domain/entities/Workspace.js +0 -173
  170. package/dist/domain/entities/Workspace.js.map +0 -1
  171. package/dist/domain/repositories/WorkspaceRepository.d.ts +0 -41
  172. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +0 -1
  173. package/dist/domain/repositories/WorkspaceRepository.js +0 -8
  174. package/dist/domain/repositories/WorkspaceRepository.js.map +0 -1
  175. package/dist/domain/value-objects/CatalogCollection.d.ts +0 -106
  176. package/dist/domain/value-objects/CatalogCollection.d.ts.map +0 -1
  177. package/dist/domain/value-objects/CatalogCollection.js +0 -230
  178. package/dist/domain/value-objects/CatalogCollection.js.map +0 -1
  179. package/dist/domain/value-objects/PackageCollection.d.ts +0 -122
  180. package/dist/domain/value-objects/PackageCollection.d.ts.map +0 -1
  181. package/dist/domain/value-objects/PackageCollection.js +0 -263
  182. package/dist/domain/value-objects/PackageCollection.js.map +0 -1
  183. package/dist/domain/value-objects/Version.d.ts +0 -141
  184. package/dist/domain/value-objects/Version.d.ts.map +0 -1
  185. package/dist/domain/value-objects/Version.js +0 -268
  186. package/dist/domain/value-objects/Version.js.map +0 -1
  187. package/dist/domain/value-objects/WorkspaceConfig.d.ts +0 -144
  188. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +0 -1
  189. package/dist/domain/value-objects/WorkspaceConfig.js +0 -357
  190. package/dist/domain/value-objects/WorkspaceConfig.js.map +0 -1
  191. package/dist/domain/value-objects/WorkspaceId.d.ts +0 -51
  192. package/dist/domain/value-objects/WorkspaceId.d.ts.map +0 -1
  193. package/dist/domain/value-objects/WorkspaceId.js +0 -104
  194. package/dist/domain/value-objects/WorkspaceId.js.map +0 -1
  195. package/dist/domain/value-objects/WorkspacePath.d.ts +0 -75
  196. package/dist/domain/value-objects/WorkspacePath.d.ts.map +0 -1
  197. package/dist/domain/value-objects/WorkspacePath.js +0 -128
  198. package/dist/domain/value-objects/WorkspacePath.js.map +0 -1
  199. package/dist/index.d.ts +0 -25
  200. package/dist/index.d.ts.map +0 -1
  201. package/dist/infrastructure/cache/Cache.d.ts +0 -161
  202. package/dist/infrastructure/cache/Cache.d.ts.map +0 -1
  203. package/dist/infrastructure/cache/Cache.js +0 -398
  204. package/dist/infrastructure/cache/Cache.js.map +0 -1
  205. package/dist/infrastructure/cache/index.d.ts +0 -6
  206. package/dist/infrastructure/cache/index.d.ts.map +0 -1
  207. package/dist/infrastructure/cache/index.js +0 -6
  208. package/dist/infrastructure/cache/index.js.map +0 -1
  209. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +0 -153
  210. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  211. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -511
  212. package/dist/infrastructure/external-services/NpmRegistryService.js.map +0 -1
  213. package/dist/infrastructure/file-system/FileSystemService.d.ts +0 -120
  214. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +0 -1
  215. package/dist/infrastructure/file-system/FileSystemService.js +0 -663
  216. package/dist/infrastructure/file-system/FileSystemService.js.map +0 -1
  217. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +0 -57
  218. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +0 -1
  219. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +0 -179
  220. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +0 -1
  221. package/dist/infrastructure/utils/NpmrcParser.d.ts +0 -40
  222. package/dist/infrastructure/utils/NpmrcParser.d.ts.map +0 -1
  223. package/dist/infrastructure/utils/NpmrcParser.js +0 -157
  224. package/dist/infrastructure/utils/NpmrcParser.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"}