pcu 0.3.6 → 0.4.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.
Files changed (34) hide show
  1. package/README.md +95 -1
  2. package/README.zh-CN.md +91 -1
  3. package/dist/application/services/CatalogUpdateService.d.ts +15 -8
  4. package/dist/application/services/CatalogUpdateService.d.ts.map +1 -1
  5. package/dist/application/services/CatalogUpdateService.js +259 -47
  6. package/dist/application/services/CatalogUpdateService.js.map +1 -1
  7. package/dist/cli/commands/CheckCommand.d.ts +2 -3
  8. package/dist/cli/commands/CheckCommand.d.ts.map +1 -1
  9. package/dist/cli/commands/CheckCommand.js +16 -9
  10. package/dist/cli/commands/CheckCommand.js.map +1 -1
  11. package/dist/cli/commands/UpdateCommand.d.ts +2 -3
  12. package/dist/cli/commands/UpdateCommand.d.ts.map +1 -1
  13. package/dist/cli/commands/UpdateCommand.js +19 -12
  14. package/dist/cli/commands/UpdateCommand.js.map +1 -1
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +21 -12
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/common/config/ConfigLoader.d.ts +45 -0
  19. package/dist/common/config/ConfigLoader.d.ts.map +1 -0
  20. package/dist/common/config/ConfigLoader.js +161 -0
  21. package/dist/common/config/ConfigLoader.js.map +1 -0
  22. package/dist/common/config/PackageFilterConfig.d.ts +55 -0
  23. package/dist/common/config/PackageFilterConfig.d.ts.map +1 -0
  24. package/dist/common/config/PackageFilterConfig.js +93 -0
  25. package/dist/common/config/PackageFilterConfig.js.map +1 -0
  26. package/dist/common/config/index.d.ts +2 -0
  27. package/dist/common/config/index.d.ts.map +1 -1
  28. package/dist/common/config/index.js +2 -0
  29. package/dist/common/config/index.js.map +1 -1
  30. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +10 -2
  31. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -1
  32. package/dist/infrastructure/external-services/NpmRegistryService.js +48 -18
  33. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -1
  34. package/package.json +1 -1
package/README.md CHANGED
@@ -292,7 +292,7 @@ pcu -t --interactive # Interactive theme setup
292
292
 
293
293
  ### Configuration
294
294
 
295
- Create a `.pcurc.json` file in your project root:
295
+ Create a `.pcurc.json` file (PCU configuration file) in your project root:
296
296
 
297
297
  ```json
298
298
  {
@@ -323,6 +323,100 @@ Create a `.pcurc.json` file in your project root:
323
323
  }
324
324
  ```
325
325
 
326
+ #### Package Filtering Configuration
327
+
328
+ You can also configure package-specific update rules by creating a `.pcurc.json`
329
+ (PCU configuration file) with filtering options:
330
+
331
+ ```json
332
+ {
333
+ // Exclude packages you never want to update
334
+ "exclude": ["typescript", "@types/node", "react", "react-dom"],
335
+
336
+ // Only update specific packages (optional - if not specified, all packages are considered)
337
+ "include": ["lodash*", "chalk", "commander"],
338
+
339
+ // Package-specific update rules
340
+ "packageRules": [
341
+ {
342
+ "patterns": ["react", "react-dom"],
343
+ "target": "minor", // Only minor updates for React
344
+ "requireConfirmation": true, // Always ask before updating
345
+ "relatedPackages": ["@types/react", "@types/react-dom"] // Related packages automatically follow same strategy
346
+ },
347
+ {
348
+ "patterns": ["vue"],
349
+ "target": "minor",
350
+ "relatedPackages": ["@vue/compiler-sfc", "@vue/runtime-core"] // Vue ecosystem packages
351
+ },
352
+ {
353
+ "patterns": ["@types/node"],
354
+ "target": "minor", // Conservative updates for Node.js type definitions
355
+ "requireConfirmation": true
356
+ },
357
+ {
358
+ "patterns": ["@types/*"],
359
+ "target": "latest", // Other type definitions can update more freely
360
+ "autoUpdate": true
361
+ },
362
+ {
363
+ "patterns": ["eslint*", "prettier"],
364
+ "target": "minor", // Minor updates for dev tools
365
+ "groupUpdate": true // Update related packages together
366
+ }
367
+ ],
368
+
369
+ // Security configuration
370
+ "security": {
371
+ "autoFixVulnerabilities": true, // Automatically check and fix security vulnerabilities
372
+ "allowMajorForSecurity": true, // Allow major version upgrades for security fixes
373
+ "notifyOnSecurityUpdate": true // Show notifications on security updates
374
+ },
375
+
376
+ // Advanced configuration
377
+ "advanced": {
378
+ "concurrency": 5, // Number of concurrent network requests (default: 5)
379
+ "timeout": 30000, // Network request timeout in ms (default: 30000)
380
+ "retries": 3, // Number of retries on failure (default: 3)
381
+ "cacheValidityMinutes": 60 // Cache validity period in minutes (default: 60, set to 0 to disable caching)
382
+ },
383
+
384
+ // Monorepo configuration
385
+ "monorepo": {
386
+ "syncVersions": ["react", "react-dom"], // Packages that need version sync across multiple catalogs
387
+ "catalogPriority": ["default", "latest", "react17"] // Catalog priority order
388
+ },
389
+
390
+ // Override defaults
391
+ "defaults": {
392
+ "target": "minor",
393
+ "createBackup": true
394
+ }
395
+ }
396
+ ```
397
+
398
+ **Related Packages Feature**: `relatedPackages` allows related packages to
399
+ automatically follow the same version strategy
400
+
401
+ - When you configure `react` with `target: "minor"`, `@types/react` will
402
+ automatically apply the same strategy
403
+ - Avoid manually duplicating update rules for related packages
404
+ - Ensures version consistency across ecosystem packages
405
+
406
+ **Configuration priority**: relatedPackages > direct pattern matching > CLI
407
+ options > default configuration
408
+
409
+ **Priority Examples**:
410
+
411
+ ```
412
+ @types/react → matches react rule's relatedPackages → uses "minor" strategy
413
+ @types/node → matches @types/node specific rule → uses "minor" strategy
414
+ @types/lodash → matches @types/* general rule → uses "latest" strategy
415
+ ```
416
+
417
+ **Pattern matching**: Supports glob patterns like `react*`, `@types/*`,
418
+ `eslint*`
419
+
326
420
  ## 📁 Project Structure
327
421
 
328
422
  This project follows Domain-Driven Design (DDD) principles:
package/README.zh-CN.md CHANGED
@@ -285,7 +285,7 @@ pcu -t --interactive # 交互式主题设置
285
285
 
286
286
  ### 配置
287
287
 
288
- 在项目根目录创建 `.pcurc.json` 文件:
288
+ 在项目根目录创建 `.pcurc.json` 文件(PCU配置文件):
289
289
 
290
290
  ```json
291
291
  {
@@ -316,6 +316,96 @@ pcu -t --interactive # 交互式主题设置
316
316
  }
317
317
  ```
318
318
 
319
+ #### 包过滤配置
320
+
321
+ 您还可以通过创建包含过滤选项的
322
+ `.pcurc.json`(PCU配置文件)来配置特定包的更新规则:
323
+
324
+ ```json
325
+ {
326
+ // 排除您永远不想更新的包
327
+ "exclude": ["typescript", "@types/node", "react", "react-dom"],
328
+
329
+ // 仅更新特定包(可选 - 如果不指定,将考虑所有包)
330
+ "include": ["lodash*", "chalk", "commander"],
331
+
332
+ // 特定包的更新规则
333
+ "packageRules": [
334
+ {
335
+ "patterns": ["react", "react-dom"],
336
+ "target": "minor", // React 只进行 minor 更新
337
+ "requireConfirmation": true, // 更新前总是询问
338
+ "relatedPackages": ["@types/react", "@types/react-dom"] // 相关包自动遵循相同策略
339
+ },
340
+ {
341
+ "patterns": ["vue"],
342
+ "target": "minor",
343
+ "relatedPackages": ["@vue/compiler-sfc", "@vue/runtime-core"] // Vue 生态系统包
344
+ },
345
+ {
346
+ "patterns": ["@types/node"],
347
+ "target": "minor", // Node.js 类型定义保守更新
348
+ "requireConfirmation": true
349
+ },
350
+ {
351
+ "patterns": ["@types/*"],
352
+ "target": "latest", // 其他类型定义可以自由更新
353
+ "autoUpdate": true
354
+ },
355
+ {
356
+ "patterns": ["eslint*", "prettier"],
357
+ "target": "minor", // 开发工具进行 minor 更新
358
+ "groupUpdate": true // 相关包一起更新
359
+ }
360
+ ],
361
+
362
+ // 安全配置
363
+ "security": {
364
+ "autoFixVulnerabilities": true, // 自动检查并修复安全漏洞
365
+ "allowMajorForSecurity": true, // 为安全修复允许主版本升级
366
+ "notifyOnSecurityUpdate": true // 安全更新时显示通知
367
+ },
368
+
369
+ // 高级配置
370
+ "advanced": {
371
+ "concurrency": 5, // 并发网络请求数量(默认: 5)
372
+ "timeout": 30000, // 网络请求超时时间(毫秒,默认: 30000)
373
+ "retries": 3, // 失败重试次数(默认: 3)
374
+ "cacheValidityMinutes": 60 // 缓存有效期(分钟,默认: 60,设为0禁用缓存)
375
+ },
376
+
377
+ // Monorepo 配置
378
+ "monorepo": {
379
+ "syncVersions": ["react", "react-dom"], // 需要在多个 catalog 间同步版本的包
380
+ "catalogPriority": ["default", "latest", "react17"] // catalog 优先级顺序
381
+ },
382
+
383
+ // 覆盖默认设置
384
+ "defaults": {
385
+ "target": "minor",
386
+ "createBackup": true
387
+ }
388
+ }
389
+ ```
390
+
391
+ **关联包功能**: `relatedPackages` 允许相关包自动遵循相同的版本策略
392
+
393
+ - 当配置了 `react` 的 `target: "minor"`,`@types/react` 也会自动应用相同策略
394
+ - 避免手动重复配置相关包的更新规则
395
+ - 确保生态系统包的版本一致性
396
+
397
+ **配置优先级**: relatedPackages > 直接pattern匹配 > CLI选项 > 默认配置
398
+
399
+ **优先级示例**:
400
+
401
+ ```
402
+ @types/react → 匹配react规则的relatedPackages → 使用"minor"策略
403
+ @types/node → 匹配@types/node专门规则 → 使用"minor"策略
404
+ @types/lodash → 匹配@types/*通用规则 → 使用"latest"策略
405
+ ```
406
+
407
+ **模式匹配**: 支持 glob 模式,如 `react*`、`@types/*`、`eslint*`
408
+
319
409
  ## 📁 项目结构
320
410
 
321
411
  本项目遵循领域驱动设计 (DDD) 原则:
@@ -63,6 +63,9 @@ export interface PlannedUpdate {
63
63
  updateType: 'major' | 'minor' | 'patch';
64
64
  reason: string;
65
65
  affectedPackages: string[];
66
+ requireConfirmation?: boolean;
67
+ autoUpdate?: boolean;
68
+ groupUpdate?: boolean;
66
69
  }
67
70
  export interface VersionConflict {
68
71
  packageName: string;
@@ -134,6 +137,10 @@ export declare class CatalogUpdateService {
134
137
  private readonly workspaceRepository;
135
138
  private readonly registryService;
136
139
  constructor(workspaceRepository: WorkspaceRepository, registryService: NpmRegistryService);
140
+ /**
141
+ * Create a new CatalogUpdateService with advanced configuration
142
+ */
143
+ static createWithConfig(workspaceRepository: WorkspaceRepository, workspacePath?: string): CatalogUpdateService;
137
144
  /**
138
145
  * Check for outdated catalog dependencies
139
146
  */
@@ -150,14 +157,6 @@ export declare class CatalogUpdateService {
150
157
  * Analyze the impact of updating a specific dependency
151
158
  */
152
159
  analyzeImpact(catalogName: string, packageName: string, newVersion: string, workspacePath?: string): Promise<ImpactAnalysis>;
153
- /**
154
- * Check if a specific package should be updated based on filters
155
- */
156
- private shouldCheckPackage;
157
- /**
158
- * Check if package matches a pattern (simple glob-like matching)
159
- */
160
- private matchesPattern;
161
160
  /**
162
161
  * Check if a package needs updating
163
162
  */
@@ -186,5 +185,13 @@ export declare class CatalogUpdateService {
186
185
  * Generate recommendations based on analysis
187
186
  */
188
187
  private generateRecommendations;
188
+ /**
189
+ * Create sync version updates for packages that should be synchronized across catalogs
190
+ */
191
+ private createSyncVersionUpdates;
192
+ /**
193
+ * Resolve version conflicts using catalog priority
194
+ */
195
+ private resolveVersionConflict;
189
196
  }
190
197
  //# sourceMappingURL=CatalogUpdateService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogUpdateService.d.ts","sourceRoot":"","sources":["../../../src/application/services/CatalogUpdateService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CatalogUpdateService.d.ts","sourceRoot":"","sources":["../../../src/application/services/CatalogUpdateService.ts"],"names":[],"mappings":"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"}