pcu 0.2.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 (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +478 -0
  3. package/bin/pcu.js +15 -0
  4. package/dist/application/services/CatalogUpdateService.d.ts +190 -0
  5. package/dist/application/services/CatalogUpdateService.d.ts.map +1 -0
  6. package/dist/application/services/CatalogUpdateService.js +521 -0
  7. package/dist/application/services/CatalogUpdateService.js.map +1 -0
  8. package/dist/application/services/WorkspaceService.d.ts +139 -0
  9. package/dist/application/services/WorkspaceService.d.ts.map +1 -0
  10. package/dist/application/services/WorkspaceService.js +340 -0
  11. package/dist/application/services/WorkspaceService.js.map +1 -0
  12. package/dist/cli/commands/CheckCommand.d.ts +41 -0
  13. package/dist/cli/commands/CheckCommand.d.ts.map +1 -0
  14. package/dist/cli/commands/CheckCommand.js +168 -0
  15. package/dist/cli/commands/CheckCommand.js.map +1 -0
  16. package/dist/cli/commands/UpdateCommand.d.ts +69 -0
  17. package/dist/cli/commands/UpdateCommand.d.ts.map +1 -0
  18. package/dist/cli/commands/UpdateCommand.js +361 -0
  19. package/dist/cli/commands/UpdateCommand.js.map +1 -0
  20. package/dist/cli/formatters/OutputFormatter.d.ts +99 -0
  21. package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -0
  22. package/dist/cli/formatters/OutputFormatter.js +551 -0
  23. package/dist/cli/formatters/OutputFormatter.js.map +1 -0
  24. package/dist/cli/index.d.ts +12 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/cli/index.js +271 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/cli/options/GlobalOptions.d.ts +117 -0
  29. package/dist/cli/options/GlobalOptions.d.ts.map +1 -0
  30. package/dist/cli/options/GlobalOptions.js +278 -0
  31. package/dist/cli/options/GlobalOptions.js.map +1 -0
  32. package/dist/cli/options/index.d.ts +5 -0
  33. package/dist/cli/options/index.d.ts.map +1 -0
  34. package/dist/cli/options/index.js +5 -0
  35. package/dist/cli/options/index.js.map +1 -0
  36. package/dist/cli/validators/CommandValidator.d.ts +60 -0
  37. package/dist/cli/validators/CommandValidator.d.ts.map +1 -0
  38. package/dist/cli/validators/CommandValidator.js +319 -0
  39. package/dist/cli/validators/CommandValidator.js.map +1 -0
  40. package/dist/cli/validators/index.d.ts +5 -0
  41. package/dist/cli/validators/index.d.ts.map +1 -0
  42. package/dist/cli/validators/index.js +5 -0
  43. package/dist/cli/validators/index.js.map +1 -0
  44. package/dist/common/config/Config.d.ts +142 -0
  45. package/dist/common/config/Config.d.ts.map +1 -0
  46. package/dist/common/config/Config.js +355 -0
  47. package/dist/common/config/Config.js.map +1 -0
  48. package/dist/common/config/index.d.ts +6 -0
  49. package/dist/common/config/index.d.ts.map +1 -0
  50. package/dist/common/config/index.js +6 -0
  51. package/dist/common/config/index.js.map +1 -0
  52. package/dist/common/logger/Logger.d.ts +110 -0
  53. package/dist/common/logger/Logger.d.ts.map +1 -0
  54. package/dist/common/logger/Logger.js +289 -0
  55. package/dist/common/logger/Logger.js.map +1 -0
  56. package/dist/common/logger/index.d.ts +6 -0
  57. package/dist/common/logger/index.d.ts.map +1 -0
  58. package/dist/common/logger/index.js +6 -0
  59. package/dist/common/logger/index.js.map +1 -0
  60. package/dist/common/types/cli.d.ts +265 -0
  61. package/dist/common/types/cli.d.ts.map +1 -0
  62. package/dist/common/types/cli.js +5 -0
  63. package/dist/common/types/cli.js.map +1 -0
  64. package/dist/common/types/core.d.ts +270 -0
  65. package/dist/common/types/core.d.ts.map +1 -0
  66. package/dist/common/types/core.js +32 -0
  67. package/dist/common/types/core.js.map +1 -0
  68. package/dist/common/types/index.d.ts +8 -0
  69. package/dist/common/types/index.d.ts.map +1 -0
  70. package/dist/common/types/index.js +8 -0
  71. package/dist/common/types/index.js.map +1 -0
  72. package/dist/common/utils/async.d.ts +74 -0
  73. package/dist/common/utils/async.d.ts.map +1 -0
  74. package/dist/common/utils/async.js +228 -0
  75. package/dist/common/utils/async.js.map +1 -0
  76. package/dist/common/utils/format.d.ts +32 -0
  77. package/dist/common/utils/format.d.ts.map +1 -0
  78. package/dist/common/utils/format.js +121 -0
  79. package/dist/common/utils/format.js.map +1 -0
  80. package/dist/common/utils/git.d.ts +44 -0
  81. package/dist/common/utils/git.d.ts.map +1 -0
  82. package/dist/common/utils/git.js +147 -0
  83. package/dist/common/utils/git.js.map +1 -0
  84. package/dist/common/utils/index.d.ts +11 -0
  85. package/dist/common/utils/index.d.ts.map +1 -0
  86. package/dist/common/utils/index.js +11 -0
  87. package/dist/common/utils/index.js.map +1 -0
  88. package/dist/common/utils/string.d.ts +56 -0
  89. package/dist/common/utils/string.d.ts.map +1 -0
  90. package/dist/common/utils/string.js +134 -0
  91. package/dist/common/utils/string.js.map +1 -0
  92. package/dist/common/utils/validation.d.ts +88 -0
  93. package/dist/common/utils/validation.d.ts.map +1 -0
  94. package/dist/common/utils/validation.js +281 -0
  95. package/dist/common/utils/validation.js.map +1 -0
  96. package/dist/domain/entities/Catalog.d.ts +117 -0
  97. package/dist/domain/entities/Catalog.d.ts.map +1 -0
  98. package/dist/domain/entities/Catalog.js +240 -0
  99. package/dist/domain/entities/Catalog.js.map +1 -0
  100. package/dist/domain/entities/Package.d.ts +143 -0
  101. package/dist/domain/entities/Package.d.ts.map +1 -0
  102. package/dist/domain/entities/Package.js +272 -0
  103. package/dist/domain/entities/Package.js.map +1 -0
  104. package/dist/domain/entities/Workspace.d.ts +95 -0
  105. package/dist/domain/entities/Workspace.d.ts.map +1 -0
  106. package/dist/domain/entities/Workspace.js +173 -0
  107. package/dist/domain/entities/Workspace.js.map +1 -0
  108. package/dist/domain/repositories/WorkspaceRepository.d.ts +41 -0
  109. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +1 -0
  110. package/dist/domain/repositories/WorkspaceRepository.js +8 -0
  111. package/dist/domain/repositories/WorkspaceRepository.js.map +1 -0
  112. package/dist/domain/value-objects/CatalogCollection.d.ts +106 -0
  113. package/dist/domain/value-objects/CatalogCollection.d.ts.map +1 -0
  114. package/dist/domain/value-objects/CatalogCollection.js +230 -0
  115. package/dist/domain/value-objects/CatalogCollection.js.map +1 -0
  116. package/dist/domain/value-objects/PackageCollection.d.ts +122 -0
  117. package/dist/domain/value-objects/PackageCollection.d.ts.map +1 -0
  118. package/dist/domain/value-objects/PackageCollection.js +263 -0
  119. package/dist/domain/value-objects/PackageCollection.js.map +1 -0
  120. package/dist/domain/value-objects/Version.d.ts +141 -0
  121. package/dist/domain/value-objects/Version.d.ts.map +1 -0
  122. package/dist/domain/value-objects/Version.js +268 -0
  123. package/dist/domain/value-objects/Version.js.map +1 -0
  124. package/dist/domain/value-objects/WorkspaceConfig.d.ts +144 -0
  125. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +1 -0
  126. package/dist/domain/value-objects/WorkspaceConfig.js +357 -0
  127. package/dist/domain/value-objects/WorkspaceConfig.js.map +1 -0
  128. package/dist/domain/value-objects/WorkspaceId.d.ts +51 -0
  129. package/dist/domain/value-objects/WorkspaceId.d.ts.map +1 -0
  130. package/dist/domain/value-objects/WorkspaceId.js +104 -0
  131. package/dist/domain/value-objects/WorkspaceId.js.map +1 -0
  132. package/dist/domain/value-objects/WorkspacePath.d.ts +75 -0
  133. package/dist/domain/value-objects/WorkspacePath.d.ts.map +1 -0
  134. package/dist/domain/value-objects/WorkspacePath.js +128 -0
  135. package/dist/domain/value-objects/WorkspacePath.js.map +1 -0
  136. package/dist/infrastructure/cache/Cache.d.ts +161 -0
  137. package/dist/infrastructure/cache/Cache.d.ts.map +1 -0
  138. package/dist/infrastructure/cache/Cache.js +398 -0
  139. package/dist/infrastructure/cache/Cache.js.map +1 -0
  140. package/dist/infrastructure/cache/index.d.ts +6 -0
  141. package/dist/infrastructure/cache/index.d.ts.map +1 -0
  142. package/dist/infrastructure/cache/index.js +6 -0
  143. package/dist/infrastructure/cache/index.js.map +1 -0
  144. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +106 -0
  145. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -0
  146. package/dist/infrastructure/external-services/NpmRegistryService.js +305 -0
  147. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -0
  148. package/dist/infrastructure/file-system/FileSystemService.d.ts +120 -0
  149. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +1 -0
  150. package/dist/infrastructure/file-system/FileSystemService.js +663 -0
  151. package/dist/infrastructure/file-system/FileSystemService.js.map +1 -0
  152. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +57 -0
  153. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +1 -0
  154. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +179 -0
  155. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +1 -0
  156. package/package.json +127 -0
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Check Command
3
+ *
4
+ * CLI command to check for outdated catalog dependencies.
5
+ * Provides detailed information about available updates.
6
+ */
7
+ import chalk from 'chalk';
8
+ export class CheckCommand {
9
+ catalogUpdateService;
10
+ outputFormatter;
11
+ constructor(catalogUpdateService, outputFormatter) {
12
+ this.catalogUpdateService = catalogUpdateService;
13
+ this.outputFormatter = outputFormatter;
14
+ }
15
+ /**
16
+ * Execute the check command
17
+ */
18
+ async execute(options = {}) {
19
+ try {
20
+ // Show loading message
21
+ if (options.verbose) {
22
+ console.log(chalk.blue('šŸ” Checking for outdated catalog dependencies...'));
23
+ console.log(chalk.gray(`Workspace: ${options.workspace || process.cwd()}`));
24
+ if (options.catalog) {
25
+ console.log(chalk.gray(`Catalog: ${options.catalog}`));
26
+ }
27
+ if (options.target && options.target !== 'latest') {
28
+ console.log(chalk.gray(`Target: ${options.target}`));
29
+ }
30
+ console.log('');
31
+ }
32
+ // Prepare check options
33
+ const checkOptions = {
34
+ workspacePath: options.workspace,
35
+ catalogName: options.catalog,
36
+ target: options.target || 'latest',
37
+ includePrerelease: options.prerelease || false,
38
+ include: options.include,
39
+ exclude: options.exclude,
40
+ };
41
+ // Execute check
42
+ const report = await this.catalogUpdateService.checkOutdatedDependencies(checkOptions);
43
+ // Format and display results
44
+ const formattedOutput = this.outputFormatter.formatOutdatedReport(report);
45
+ console.log(formattedOutput);
46
+ // Show summary
47
+ if (options.verbose || options.format === 'table') {
48
+ this.showSummary(report, options);
49
+ }
50
+ // Always exit with 0 since this is just a check command
51
+ // and finding updates is not an error condition
52
+ process.exit(0);
53
+ }
54
+ catch (error) {
55
+ console.error(chalk.red('āŒ Error checking dependencies:'));
56
+ console.error(chalk.red(String(error)));
57
+ if (options.verbose && error instanceof Error) {
58
+ console.error(chalk.gray('Stack trace:'));
59
+ console.error(chalk.gray(error.stack || 'No stack trace available'));
60
+ }
61
+ process.exit(1);
62
+ }
63
+ }
64
+ /**
65
+ * Show command summary
66
+ */
67
+ showSummary(report, _options) {
68
+ const lines = [];
69
+ if (!report.hasUpdates) {
70
+ lines.push(chalk.green('šŸŽ‰ All catalog dependencies are up to date!'));
71
+ }
72
+ else {
73
+ lines.push(chalk.yellow(`\nšŸ“‹ Summary:`));
74
+ lines.push(` • ${report.totalOutdated} outdated dependencies found`);
75
+ lines.push(` • ${report.catalogs.length} catalogs checked`);
76
+ const totalPackages = report.catalogs.reduce((sum, cat) => sum + cat.totalPackages, 0);
77
+ lines.push(` • ${totalPackages} total catalog entries`);
78
+ // Show breakdown by update type
79
+ const updateTypes = { major: 0, minor: 0, patch: 0 };
80
+ for (const catalog of report.catalogs) {
81
+ for (const dep of catalog.outdatedDependencies) {
82
+ updateTypes[dep.updateType]++;
83
+ }
84
+ }
85
+ if (updateTypes.major > 0) {
86
+ lines.push(chalk.red(` • ${updateTypes.major} major updates`));
87
+ }
88
+ if (updateTypes.minor > 0) {
89
+ lines.push(chalk.yellow(` • ${updateTypes.minor} minor updates`));
90
+ }
91
+ if (updateTypes.patch > 0) {
92
+ lines.push(chalk.green(` • ${updateTypes.patch} patch updates`));
93
+ }
94
+ // Security updates
95
+ const securityUpdates = report.catalogs.reduce((sum, cat) => {
96
+ return sum + cat.outdatedDependencies.filter((dep) => dep.isSecurityUpdate).length;
97
+ }, 0);
98
+ if (securityUpdates > 0) {
99
+ lines.push(chalk.red(` • ${securityUpdates} security updates`));
100
+ }
101
+ lines.push('');
102
+ lines.push(chalk.blue('šŸ’” Run with --update to apply updates'));
103
+ if (updateTypes.major > 0) {
104
+ lines.push(chalk.yellow('āš ļø Major updates may contain breaking changes'));
105
+ }
106
+ }
107
+ console.log(lines.join('\n'));
108
+ }
109
+ /**
110
+ * Validate command options
111
+ */
112
+ static validateOptions(options) {
113
+ const errors = [];
114
+ // Validate format
115
+ if (options.format && !['table', 'json', 'yaml', 'minimal'].includes(options.format)) {
116
+ errors.push('Invalid format. Must be one of: table, json, yaml, minimal');
117
+ }
118
+ // Validate target
119
+ if (options.target &&
120
+ !['latest', 'greatest', 'minor', 'patch', 'newest'].includes(options.target)) {
121
+ errors.push('Invalid target. Must be one of: latest, greatest, minor, patch, newest');
122
+ }
123
+ // Validate include/exclude patterns
124
+ if (options.include && options.include.some((pattern) => !pattern.trim())) {
125
+ errors.push('Include patterns cannot be empty');
126
+ }
127
+ if (options.exclude && options.exclude.some((pattern) => !pattern.trim())) {
128
+ errors.push('Exclude patterns cannot be empty');
129
+ }
130
+ return errors;
131
+ }
132
+ /**
133
+ * Get command help text
134
+ */
135
+ static getHelpText() {
136
+ return `
137
+ Check for outdated catalog dependencies
138
+
139
+ Usage:
140
+ pcu check [options]
141
+
142
+ Options:
143
+ --workspace <path> Workspace directory (default: current directory)
144
+ --catalog <name> Check specific catalog only
145
+ --format <type> Output format: table, json, yaml, minimal (default: table)
146
+ --target <type> Update target: latest, greatest, minor, patch, newest (default: latest)
147
+ --prerelease Include prerelease versions
148
+ --include <pattern> Include packages matching pattern (can be used multiple times)
149
+ --exclude <pattern> Exclude packages matching pattern (can be used multiple times)
150
+ --verbose Show detailed information
151
+ --no-color Disable colored output
152
+
153
+ Examples:
154
+ pcu check # Check all catalogs
155
+ pcu check --catalog react17 # Check specific catalog
156
+ pcu check --target minor # Check for minor updates only
157
+ pcu check --format json # Output as JSON
158
+ pcu check --include "react*" # Include only React packages
159
+ pcu check --exclude "@types/*" # Exclude TypeScript types
160
+
161
+ Exit Codes:
162
+ 0 All dependencies are up to date
163
+ 1 Updates are available
164
+ 2 Error occurred
165
+ `;
166
+ }
167
+ }
168
+ //# sourceMappingURL=CheckCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/CheckCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
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 } from '../../application/services/CatalogUpdateService.js';
8
+ import { OutputFormatter, OutputFormat } from '../formatters/OutputFormatter.js';
9
+ export interface UpdateCommandOptions {
10
+ workspace?: string;
11
+ catalog?: string;
12
+ format?: OutputFormat;
13
+ target?: 'latest' | 'greatest' | 'minor' | 'patch' | 'newest';
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 catalogUpdateService;
26
+ private readonly outputFormatter;
27
+ constructor(catalogUpdateService: CatalogUpdateService, outputFormatter: OutputFormatter);
28
+ /**
29
+ * Execute the update command
30
+ */
31
+ execute(options?: UpdateCommandOptions): Promise<void>;
32
+ /**
33
+ * Show the update plan
34
+ */
35
+ private showUpdatePlan;
36
+ /**
37
+ * Show version conflicts
38
+ */
39
+ private showConflicts;
40
+ /**
41
+ * Interactive update selection
42
+ */
43
+ private interactiveSelection;
44
+ /**
45
+ * Select individual updates
46
+ */
47
+ private selectIndividualUpdates;
48
+ /**
49
+ * Confirm updates before execution
50
+ */
51
+ private confirmUpdates;
52
+ /**
53
+ * Show update summary
54
+ */
55
+ private showUpdateSummary;
56
+ /**
57
+ * Get color for update type
58
+ */
59
+ private getUpdateTypeColor;
60
+ /**
61
+ * Validate command options
62
+ */
63
+ static validateOptions(options: UpdateCommandOptions): string[];
64
+ /**
65
+ * Get command help text
66
+ */
67
+ static getHelpText(): string;
68
+ }
69
+ //# sourceMappingURL=UpdateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,oBAAoB,EAGrB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEjF,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,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9D,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;IAEtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,EAAE,eAAe;IAGnD;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+GhE;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;YACW,oBAAoB;IAgFlC;;OAEG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAwB/D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CAqC7B"}
@@ -0,0 +1,361 @@
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 chalk from 'chalk';
8
+ import inquirer from 'inquirer';
9
+ export class UpdateCommand {
10
+ catalogUpdateService;
11
+ outputFormatter;
12
+ constructor(catalogUpdateService, outputFormatter) {
13
+ this.catalogUpdateService = catalogUpdateService;
14
+ this.outputFormatter = outputFormatter;
15
+ }
16
+ /**
17
+ * Execute the update command
18
+ */
19
+ async execute(options = {}) {
20
+ try {
21
+ // Show loading message
22
+ if (options.verbose) {
23
+ console.log(chalk.blue('šŸ”„ Planning catalog dependency updates...'));
24
+ console.log(chalk.gray(`Workspace: ${options.workspace || process.cwd()}`));
25
+ if (options.catalog) {
26
+ console.log(chalk.gray(`Catalog: ${options.catalog}`));
27
+ }
28
+ if (options.dryRun) {
29
+ console.log(chalk.yellow('šŸ” Dry run mode - no files will be modified'));
30
+ }
31
+ console.log('');
32
+ }
33
+ // Prepare update options
34
+ const updateOptions = {
35
+ workspacePath: options.workspace,
36
+ catalogName: options.catalog,
37
+ target: options.target || 'latest',
38
+ interactive: options.interactive || false,
39
+ dryRun: options.dryRun || false,
40
+ force: options.force || false,
41
+ includePrerelease: options.prerelease || false,
42
+ include: options.include,
43
+ exclude: options.exclude,
44
+ createBackup: options.createBackup || false,
45
+ };
46
+ // Plan updates
47
+ const plan = await this.catalogUpdateService.planUpdates(updateOptions);
48
+ // Show plan
49
+ if (options.verbose || options.dryRun) {
50
+ this.showUpdatePlan(plan, options);
51
+ }
52
+ // Check if there are any updates
53
+ if (plan.totalUpdates === 0) {
54
+ console.log(chalk.green('āœ… All catalog dependencies are already up to date!'));
55
+ return;
56
+ }
57
+ // Show conflicts if any
58
+ if (plan.hasConflicts && !options.force) {
59
+ this.showConflicts(plan, options);
60
+ if (!options.interactive) {
61
+ console.log(chalk.red('āŒ Cannot proceed due to conflicts. Use --force to override or --interactive to resolve.'));
62
+ process.exit(1);
63
+ }
64
+ }
65
+ // Interactive selection
66
+ let finalPlan = plan;
67
+ if (options.interactive) {
68
+ finalPlan = await this.interactiveSelection(plan, options);
69
+ }
70
+ // Confirm before proceeding (unless in non-interactive mode)
71
+ if (!options.dryRun && options.interactive) {
72
+ const confirmed = await this.confirmUpdates(finalPlan, options);
73
+ if (!confirmed) {
74
+ console.log(chalk.yellow('āŒ Update cancelled by user'));
75
+ return;
76
+ }
77
+ }
78
+ // Execute updates
79
+ if (!options.dryRun) {
80
+ if (options.verbose) {
81
+ console.log(chalk.blue('šŸš€ Executing updates...'));
82
+ }
83
+ const result = await this.catalogUpdateService.executeUpdates(finalPlan, updateOptions);
84
+ // Show results
85
+ const formattedOutput = this.outputFormatter.formatUpdateResult(result);
86
+ console.log(formattedOutput);
87
+ // Show summary
88
+ if (options.verbose || options.format === 'table') {
89
+ this.showUpdateSummary(result, options);
90
+ }
91
+ // Exit with appropriate code
92
+ process.exit(result.success ? 0 : 1);
93
+ }
94
+ else {
95
+ console.log(chalk.blue('šŸ” Dry run completed - no changes made'));
96
+ console.log(chalk.gray(`Would update ${finalPlan.totalUpdates} dependencies`));
97
+ }
98
+ }
99
+ catch (error) {
100
+ console.error(chalk.red('āŒ Error updating dependencies:'));
101
+ console.error(chalk.red(String(error)));
102
+ if (options.verbose && error instanceof Error) {
103
+ console.error(chalk.gray('Stack trace:'));
104
+ console.error(chalk.gray(error.stack || 'No stack trace available'));
105
+ }
106
+ process.exit(1);
107
+ }
108
+ }
109
+ /**
110
+ * Show the update plan
111
+ */
112
+ showUpdatePlan(plan, options) {
113
+ console.log(chalk.bold(`šŸ“‹ Update Plan (${plan.totalUpdates} updates):`));
114
+ console.log('');
115
+ const updatesByType = { major: 0, minor: 0, patch: 0 };
116
+ for (const update of plan.updates) {
117
+ const typeColor = this.getUpdateTypeColor(update.updateType);
118
+ console.log(` ${chalk.cyan(update.catalogName)}:${chalk.white(update.packageName)} ${chalk.gray(update.currentVersion)} → ${typeColor(update.newVersion)} ${chalk.gray(`(${update.updateType})`)}`);
119
+ updatesByType[update.updateType]++;
120
+ if (options.verbose && update.affectedPackages.length > 0) {
121
+ console.log(chalk.gray(` Affects: ${update.affectedPackages.join(', ')}`));
122
+ }
123
+ }
124
+ console.log('');
125
+ console.log(chalk.gray(`Summary: ${updatesByType.major} major, ${updatesByType.minor} minor, ${updatesByType.patch} patch`));
126
+ console.log('');
127
+ }
128
+ /**
129
+ * Show version conflicts
130
+ */
131
+ showConflicts(plan, _options) {
132
+ console.log(chalk.red('āš ļø Version Conflicts Detected:'));
133
+ console.log('');
134
+ for (const conflict of plan.conflicts) {
135
+ console.log(chalk.yellow(`${conflict.packageName}:`));
136
+ for (const catalog of conflict.catalogs) {
137
+ console.log(` ${catalog.catalogName}: ${catalog.currentVersion} → ${catalog.proposedVersion}`);
138
+ }
139
+ console.log(chalk.gray(` Recommendation: ${conflict.recommendation}`));
140
+ console.log('');
141
+ }
142
+ }
143
+ /**
144
+ * Interactive update selection
145
+ */
146
+ async interactiveSelection(plan, _options) {
147
+ console.log(chalk.blue('šŸŽÆ Interactive Update Selection'));
148
+ console.log('');
149
+ const selectedUpdates = [];
150
+ // Group updates by type for better UX
151
+ const updatesByType = {
152
+ major: plan.updates.filter((u) => u.updateType === 'major'),
153
+ minor: plan.updates.filter((u) => u.updateType === 'minor'),
154
+ patch: plan.updates.filter((u) => u.updateType === 'patch'),
155
+ };
156
+ // Ask about patch updates first (safest)
157
+ if (updatesByType.patch.length > 0) {
158
+ const patchChoice = await inquirer.prompt([
159
+ {
160
+ type: 'confirm',
161
+ name: 'applyPatch',
162
+ message: `Apply all ${updatesByType.patch.length} patch updates? (recommended)`,
163
+ default: true,
164
+ },
165
+ ]);
166
+ if (patchChoice.applyPatch) {
167
+ selectedUpdates.push(...updatesByType.patch);
168
+ }
169
+ else {
170
+ // Let user select individual patch updates
171
+ const patchSelections = await this.selectIndividualUpdates(updatesByType.patch, 'patch');
172
+ selectedUpdates.push(...patchSelections);
173
+ }
174
+ }
175
+ // Ask about minor updates
176
+ if (updatesByType.minor.length > 0) {
177
+ const minorChoice = await inquirer.prompt([
178
+ {
179
+ type: 'confirm',
180
+ name: 'applyMinor',
181
+ message: `Apply all ${updatesByType.minor.length} minor updates?`,
182
+ default: true,
183
+ },
184
+ ]);
185
+ if (minorChoice.applyMinor) {
186
+ selectedUpdates.push(...updatesByType.minor);
187
+ }
188
+ else {
189
+ const minorSelections = await this.selectIndividualUpdates(updatesByType.minor, 'minor');
190
+ selectedUpdates.push(...minorSelections);
191
+ }
192
+ }
193
+ // Ask about major updates (most risky)
194
+ if (updatesByType.major.length > 0) {
195
+ const majorChoice = await inquirer.prompt([
196
+ {
197
+ type: 'confirm',
198
+ name: 'applyMajor',
199
+ message: chalk.yellow(`Apply ${updatesByType.major.length} major updates? (may contain breaking changes)`),
200
+ default: false,
201
+ },
202
+ ]);
203
+ if (majorChoice.applyMajor) {
204
+ selectedUpdates.push(...updatesByType.major);
205
+ }
206
+ else {
207
+ const majorSelections = await this.selectIndividualUpdates(updatesByType.major, 'major');
208
+ selectedUpdates.push(...majorSelections);
209
+ }
210
+ }
211
+ return {
212
+ ...plan,
213
+ updates: selectedUpdates,
214
+ totalUpdates: selectedUpdates.length,
215
+ };
216
+ }
217
+ /**
218
+ * Select individual updates
219
+ */
220
+ async selectIndividualUpdates(updates, type) {
221
+ if (updates.length === 0)
222
+ return [];
223
+ const choices = updates.map((update) => ({
224
+ name: `${update.catalogName}:${update.packageName} ${update.currentVersion} → ${update.newVersion}`,
225
+ value: update,
226
+ checked: type === 'patch', // Default to checked for patch updates
227
+ }));
228
+ const selection = await inquirer.prompt([
229
+ {
230
+ type: 'checkbox',
231
+ name: 'selectedUpdates',
232
+ message: `Select ${type} updates to apply:`,
233
+ choices,
234
+ pageSize: 10,
235
+ },
236
+ ]);
237
+ return selection.selectedUpdates;
238
+ }
239
+ /**
240
+ * Confirm updates before execution
241
+ */
242
+ async confirmUpdates(plan, options) {
243
+ if (plan.totalUpdates === 0) {
244
+ return false;
245
+ }
246
+ console.log(chalk.blue(`\nšŸš€ Ready to update ${plan.totalUpdates} dependencies`));
247
+ if (plan.hasConflicts && !options.force) {
248
+ console.log(chalk.yellow('āš ļø Some conflicts will be resolved with --force behavior'));
249
+ }
250
+ const confirmation = await inquirer.prompt([
251
+ {
252
+ type: 'confirm',
253
+ name: 'proceed',
254
+ message: 'Proceed with updates?',
255
+ default: true,
256
+ },
257
+ ]);
258
+ return confirmation.proceed;
259
+ }
260
+ /**
261
+ * Show update summary
262
+ */
263
+ showUpdateSummary(result, _options) {
264
+ const lines = [];
265
+ if (result.success) {
266
+ lines.push(chalk.green('\nšŸŽ‰ Update completed successfully!'));
267
+ }
268
+ else {
269
+ lines.push(chalk.red('\nāŒ Update completed with errors'));
270
+ }
271
+ lines.push('');
272
+ lines.push(`šŸ“Š Summary:`);
273
+ lines.push(` • ${result.totalUpdated} dependencies updated`);
274
+ lines.push(` • ${result.totalSkipped} dependencies skipped`);
275
+ lines.push(` • ${result.totalErrors} errors occurred`);
276
+ if (result.totalUpdated > 0) {
277
+ lines.push('');
278
+ lines.push(chalk.blue('šŸ’” Next steps:'));
279
+ lines.push(' • Test your application thoroughly');
280
+ lines.push(' • Update package-lock.json/pnpm-lock.yaml if needed');
281
+ lines.push(' • Check for any breaking changes in updated packages');
282
+ }
283
+ console.log(lines.join('\n'));
284
+ }
285
+ /**
286
+ * Get color for update type
287
+ */
288
+ getUpdateTypeColor(updateType) {
289
+ switch (updateType) {
290
+ case 'major':
291
+ return chalk.red;
292
+ case 'minor':
293
+ return chalk.yellow;
294
+ case 'patch':
295
+ return chalk.green;
296
+ default:
297
+ return chalk.gray;
298
+ }
299
+ }
300
+ /**
301
+ * Validate command options
302
+ */
303
+ static validateOptions(options) {
304
+ const errors = [];
305
+ // Validate format
306
+ if (options.format && !['table', 'json', 'yaml', 'minimal'].includes(options.format)) {
307
+ errors.push('Invalid format. Must be one of: table, json, yaml, minimal');
308
+ }
309
+ // Validate target
310
+ if (options.target &&
311
+ !['latest', 'greatest', 'minor', 'patch', 'newest'].includes(options.target)) {
312
+ errors.push('Invalid target. Must be one of: latest, greatest, minor, patch, newest');
313
+ }
314
+ // Interactive and dry-run conflict
315
+ if (options.interactive && options.dryRun) {
316
+ errors.push('Cannot use --interactive with --dry-run');
317
+ }
318
+ return errors;
319
+ }
320
+ /**
321
+ * Get command help text
322
+ */
323
+ static getHelpText() {
324
+ return `
325
+ Update catalog dependencies
326
+
327
+ Usage:
328
+ pcu update [options]
329
+
330
+ Options:
331
+ --workspace <path> Workspace directory (default: current directory)
332
+ --catalog <name> Update specific catalog only
333
+ --format <type> Output format: table, json, yaml, minimal (default: table)
334
+ --target <type> Update target: latest, greatest, minor, patch, newest (default: latest)
335
+ -i, --interactive Interactive mode to choose updates
336
+ -d, --dry-run Preview changes without writing files
337
+ --force Force updates even if conflicts exist
338
+ --prerelease Include prerelease versions
339
+ --include <pattern> Include packages matching pattern (can be used multiple times)
340
+ --exclude <pattern> Exclude packages matching pattern (can be used multiple times)
341
+ --create-backup Create backup files before updating
342
+ --verbose Show detailed information
343
+ --no-color Disable colored output
344
+
345
+ Examples:
346
+ pcu update # Update all catalogs
347
+ pcu update --interactive # Interactive update selection
348
+ pcu update --dry-run # Preview updates without applying
349
+ pcu update --catalog react17 # Update specific catalog
350
+ pcu update --target minor # Update to latest minor versions only
351
+ pcu update --force # Force updates despite conflicts
352
+ pcu update --include "react*" # Update only React packages
353
+
354
+ Exit Codes:
355
+ 0 Updates completed successfully
356
+ 1 Updates failed or were cancelled
357
+ 2 Error occurred
358
+ `;
359
+ }
360
+ }
361
+ //# sourceMappingURL=UpdateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"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"}