pnpm-catalog-updates 0.1.1
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.
- package/LICENSE +21 -0
- package/README.md +335 -0
- package/bin/pcu.js +15 -0
- package/dist/application/services/CatalogUpdateService.d.ts +190 -0
- package/dist/application/services/CatalogUpdateService.d.ts.map +1 -0
- package/dist/application/services/CatalogUpdateService.js +521 -0
- package/dist/application/services/CatalogUpdateService.js.map +1 -0
- package/dist/application/services/WorkspaceService.d.ts +139 -0
- package/dist/application/services/WorkspaceService.d.ts.map +1 -0
- package/dist/application/services/WorkspaceService.js +340 -0
- package/dist/application/services/WorkspaceService.js.map +1 -0
- package/dist/cli/commands/CheckCommand.d.ts +41 -0
- package/dist/cli/commands/CheckCommand.d.ts.map +1 -0
- package/dist/cli/commands/CheckCommand.js +168 -0
- package/dist/cli/commands/CheckCommand.js.map +1 -0
- package/dist/cli/commands/UpdateCommand.d.ts +69 -0
- package/dist/cli/commands/UpdateCommand.d.ts.map +1 -0
- package/dist/cli/commands/UpdateCommand.js +361 -0
- package/dist/cli/commands/UpdateCommand.js.map +1 -0
- package/dist/cli/formatters/OutputFormatter.d.ts +95 -0
- package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/OutputFormatter.js +437 -0
- package/dist/cli/formatters/OutputFormatter.js.map +1 -0
- package/dist/cli/index.d.ts +12 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +244 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/options/GlobalOptions.d.ts +117 -0
- package/dist/cli/options/GlobalOptions.d.ts.map +1 -0
- package/dist/cli/options/GlobalOptions.js +278 -0
- package/dist/cli/options/GlobalOptions.js.map +1 -0
- package/dist/cli/options/index.d.ts +5 -0
- package/dist/cli/options/index.d.ts.map +1 -0
- package/dist/cli/options/index.js +5 -0
- package/dist/cli/options/index.js.map +1 -0
- package/dist/cli/validators/CommandValidator.d.ts +60 -0
- package/dist/cli/validators/CommandValidator.d.ts.map +1 -0
- package/dist/cli/validators/CommandValidator.js +319 -0
- package/dist/cli/validators/CommandValidator.js.map +1 -0
- package/dist/cli/validators/index.d.ts +5 -0
- package/dist/cli/validators/index.d.ts.map +1 -0
- package/dist/cli/validators/index.js +5 -0
- package/dist/cli/validators/index.js.map +1 -0
- package/dist/common/config/Config.d.ts +142 -0
- package/dist/common/config/Config.d.ts.map +1 -0
- package/dist/common/config/Config.js +355 -0
- package/dist/common/config/Config.js.map +1 -0
- package/dist/common/config/index.d.ts +6 -0
- package/dist/common/config/index.d.ts.map +1 -0
- package/dist/common/config/index.js +6 -0
- package/dist/common/config/index.js.map +1 -0
- package/dist/common/logger/Logger.d.ts +110 -0
- package/dist/common/logger/Logger.d.ts.map +1 -0
- package/dist/common/logger/Logger.js +289 -0
- package/dist/common/logger/Logger.js.map +1 -0
- package/dist/common/logger/index.d.ts +6 -0
- package/dist/common/logger/index.d.ts.map +1 -0
- package/dist/common/logger/index.js +6 -0
- package/dist/common/logger/index.js.map +1 -0
- package/dist/common/types/cli.d.ts +265 -0
- package/dist/common/types/cli.d.ts.map +1 -0
- package/dist/common/types/cli.js +5 -0
- package/dist/common/types/cli.js.map +1 -0
- package/dist/common/types/core.d.ts +270 -0
- package/dist/common/types/core.d.ts.map +1 -0
- package/dist/common/types/core.js +32 -0
- package/dist/common/types/core.js.map +1 -0
- package/dist/common/types/index.d.ts +8 -0
- package/dist/common/types/index.d.ts.map +1 -0
- package/dist/common/types/index.js +8 -0
- package/dist/common/types/index.js.map +1 -0
- package/dist/common/utils/async.d.ts +74 -0
- package/dist/common/utils/async.d.ts.map +1 -0
- package/dist/common/utils/async.js +228 -0
- package/dist/common/utils/async.js.map +1 -0
- package/dist/common/utils/format.d.ts +32 -0
- package/dist/common/utils/format.d.ts.map +1 -0
- package/dist/common/utils/format.js +121 -0
- package/dist/common/utils/format.js.map +1 -0
- package/dist/common/utils/git.d.ts +44 -0
- package/dist/common/utils/git.d.ts.map +1 -0
- package/dist/common/utils/git.js +147 -0
- package/dist/common/utils/git.js.map +1 -0
- package/dist/common/utils/index.d.ts +11 -0
- package/dist/common/utils/index.d.ts.map +1 -0
- package/dist/common/utils/index.js +11 -0
- package/dist/common/utils/index.js.map +1 -0
- package/dist/common/utils/string.d.ts +56 -0
- package/dist/common/utils/string.d.ts.map +1 -0
- package/dist/common/utils/string.js +134 -0
- package/dist/common/utils/string.js.map +1 -0
- package/dist/common/utils/validation.d.ts +88 -0
- package/dist/common/utils/validation.d.ts.map +1 -0
- package/dist/common/utils/validation.js +281 -0
- package/dist/common/utils/validation.js.map +1 -0
- package/dist/domain/entities/Catalog.d.ts +117 -0
- package/dist/domain/entities/Catalog.d.ts.map +1 -0
- package/dist/domain/entities/Catalog.js +240 -0
- package/dist/domain/entities/Catalog.js.map +1 -0
- package/dist/domain/entities/Package.d.ts +142 -0
- package/dist/domain/entities/Package.d.ts.map +1 -0
- package/dist/domain/entities/Package.js +275 -0
- package/dist/domain/entities/Package.js.map +1 -0
- package/dist/domain/entities/Workspace.d.ts +95 -0
- package/dist/domain/entities/Workspace.d.ts.map +1 -0
- package/dist/domain/entities/Workspace.js +170 -0
- package/dist/domain/entities/Workspace.js.map +1 -0
- package/dist/domain/repositories/WorkspaceRepository.d.ts +41 -0
- package/dist/domain/repositories/WorkspaceRepository.d.ts.map +1 -0
- package/dist/domain/repositories/WorkspaceRepository.js +8 -0
- package/dist/domain/repositories/WorkspaceRepository.js.map +1 -0
- package/dist/domain/value-objects/CatalogCollection.d.ts +106 -0
- package/dist/domain/value-objects/CatalogCollection.d.ts.map +1 -0
- package/dist/domain/value-objects/CatalogCollection.js +230 -0
- package/dist/domain/value-objects/CatalogCollection.js.map +1 -0
- package/dist/domain/value-objects/PackageCollection.d.ts +122 -0
- package/dist/domain/value-objects/PackageCollection.d.ts.map +1 -0
- package/dist/domain/value-objects/PackageCollection.js +263 -0
- package/dist/domain/value-objects/PackageCollection.js.map +1 -0
- package/dist/domain/value-objects/Version.d.ts +141 -0
- package/dist/domain/value-objects/Version.d.ts.map +1 -0
- package/dist/domain/value-objects/Version.js +268 -0
- package/dist/domain/value-objects/Version.js.map +1 -0
- package/dist/domain/value-objects/WorkspaceConfig.d.ts +135 -0
- package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspaceConfig.js +307 -0
- package/dist/domain/value-objects/WorkspaceConfig.js.map +1 -0
- package/dist/domain/value-objects/WorkspaceId.d.ts +51 -0
- package/dist/domain/value-objects/WorkspaceId.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspaceId.js +104 -0
- package/dist/domain/value-objects/WorkspaceId.js.map +1 -0
- package/dist/domain/value-objects/WorkspacePath.d.ts +75 -0
- package/dist/domain/value-objects/WorkspacePath.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspacePath.js +128 -0
- package/dist/domain/value-objects/WorkspacePath.js.map +1 -0
- package/dist/infrastructure/cache/Cache.d.ts +161 -0
- package/dist/infrastructure/cache/Cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/Cache.js +398 -0
- package/dist/infrastructure/cache/Cache.js.map +1 -0
- package/dist/infrastructure/cache/index.d.ts +6 -0
- package/dist/infrastructure/cache/index.d.ts.map +1 -0
- package/dist/infrastructure/cache/index.js +6 -0
- package/dist/infrastructure/cache/index.js.map +1 -0
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts +106 -0
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -0
- package/dist/infrastructure/external-services/NpmRegistryService.js +303 -0
- package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -0
- package/dist/infrastructure/file-system/FileSystemService.d.ts +100 -0
- package/dist/infrastructure/file-system/FileSystemService.d.ts.map +1 -0
- package/dist/infrastructure/file-system/FileSystemService.js +284 -0
- package/dist/infrastructure/file-system/FileSystemService.js.map +1 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +57 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js +179 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +1 -0
- package/package.json +125 -0
|
@@ -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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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Formatter
|
|
3
|
+
*
|
|
4
|
+
* Provides formatted output for CLI commands in various formats.
|
|
5
|
+
* Supports table, JSON, YAML, and minimal output formats.
|
|
6
|
+
*/
|
|
7
|
+
import { OutdatedReport, UpdateResult, ImpactAnalysis } from '../../application/services/CatalogUpdateService.js';
|
|
8
|
+
import { WorkspaceValidationReport, WorkspaceStats } from '../../application/services/WorkspaceService.js';
|
|
9
|
+
export type OutputFormat = 'table' | 'json' | 'yaml' | 'minimal';
|
|
10
|
+
export declare class OutputFormatter {
|
|
11
|
+
private readonly format;
|
|
12
|
+
private readonly useColor;
|
|
13
|
+
constructor(format?: OutputFormat, useColor?: boolean);
|
|
14
|
+
/**
|
|
15
|
+
* Format outdated dependencies report
|
|
16
|
+
*/
|
|
17
|
+
formatOutdatedReport(report: OutdatedReport): string;
|
|
18
|
+
/**
|
|
19
|
+
* Format update result
|
|
20
|
+
*/
|
|
21
|
+
formatUpdateResult(result: UpdateResult): string;
|
|
22
|
+
/**
|
|
23
|
+
* Format impact analysis
|
|
24
|
+
*/
|
|
25
|
+
formatImpactAnalysis(analysis: ImpactAnalysis): string;
|
|
26
|
+
/**
|
|
27
|
+
* Format workspace validation report
|
|
28
|
+
*/
|
|
29
|
+
formatValidationReport(report: WorkspaceValidationReport): string;
|
|
30
|
+
/**
|
|
31
|
+
* Format workspace statistics
|
|
32
|
+
*/
|
|
33
|
+
formatWorkspaceStats(stats: WorkspaceStats): string;
|
|
34
|
+
/**
|
|
35
|
+
* Format simple message with optional styling
|
|
36
|
+
*/
|
|
37
|
+
formatMessage(message: string, type?: 'success' | 'error' | 'warning' | 'info'): string;
|
|
38
|
+
/**
|
|
39
|
+
* Format outdated dependencies as table
|
|
40
|
+
*/
|
|
41
|
+
private formatOutdatedTable;
|
|
42
|
+
/**
|
|
43
|
+
* Format outdated dependencies minimally
|
|
44
|
+
*/
|
|
45
|
+
private formatOutdatedMinimal;
|
|
46
|
+
/**
|
|
47
|
+
* Format update result as table
|
|
48
|
+
*/
|
|
49
|
+
private formatUpdateTable;
|
|
50
|
+
/**
|
|
51
|
+
* Format update result minimally
|
|
52
|
+
*/
|
|
53
|
+
private formatUpdateMinimal;
|
|
54
|
+
/**
|
|
55
|
+
* Format impact analysis as table
|
|
56
|
+
*/
|
|
57
|
+
private formatImpactTable;
|
|
58
|
+
/**
|
|
59
|
+
* Format impact analysis minimally
|
|
60
|
+
*/
|
|
61
|
+
private formatImpactMinimal;
|
|
62
|
+
/**
|
|
63
|
+
* Format validation report as table
|
|
64
|
+
*/
|
|
65
|
+
private formatValidationTable;
|
|
66
|
+
/**
|
|
67
|
+
* Format validation report minimally
|
|
68
|
+
*/
|
|
69
|
+
private formatValidationMinimal;
|
|
70
|
+
/**
|
|
71
|
+
* Format workspace statistics as table
|
|
72
|
+
*/
|
|
73
|
+
private formatStatsTable;
|
|
74
|
+
/**
|
|
75
|
+
* Format workspace statistics minimally
|
|
76
|
+
*/
|
|
77
|
+
private formatStatsMinimal;
|
|
78
|
+
/**
|
|
79
|
+
* Apply color if color is enabled
|
|
80
|
+
*/
|
|
81
|
+
private colorize;
|
|
82
|
+
/**
|
|
83
|
+
* Colorize table headers
|
|
84
|
+
*/
|
|
85
|
+
private colorizeHeaders;
|
|
86
|
+
/**
|
|
87
|
+
* Get color for update type
|
|
88
|
+
*/
|
|
89
|
+
private getUpdateTypeColor;
|
|
90
|
+
/**
|
|
91
|
+
* Get color for risk level
|
|
92
|
+
*/
|
|
93
|
+
private getRiskColor;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=OutputFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/OutputFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,cAAc,EACf,MAAM,gDAAgD,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjE,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,MAAM,GAAE,YAAsB,EAC9B,QAAQ,GAAE,OAAc;IAG3C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAcpD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAchD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IActD;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM;IAcjE;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAcnD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAe,GAAG,MAAM;IAkB/F;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8DzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,YAAY;CAYrB"}
|