pnpm-catalog-updates 0.5.6 → 0.6.5

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 (220) hide show
  1. package/bin/pcu.js +1 -1
  2. package/dist/index.js +9559 -32
  3. package/dist/index.js.map +1 -1
  4. package/package.json +61 -103
  5. package/src/cli/commands/checkCommand.ts +227 -0
  6. package/src/cli/commands/initCommand.ts +394 -0
  7. package/src/cli/commands/securityCommand.ts +569 -0
  8. package/src/cli/commands/updateCommand.ts +245 -0
  9. package/src/cli/formatters/outputFormatter.ts +830 -0
  10. package/src/cli/formatters/progressBar.ts +700 -0
  11. package/src/cli/index.ts +565 -0
  12. package/src/cli/interactive/interactivePrompts.ts +517 -0
  13. package/src/cli/options/globalOptions.ts +380 -0
  14. package/src/cli/options/index.ts +5 -0
  15. package/src/cli/themes/colorTheme.ts +379 -0
  16. package/src/cli/validators/commandValidator.ts +395 -0
  17. package/src/cli/validators/index.ts +5 -0
  18. package/src/index.ts +4 -0
  19. package/LICENSE +0 -21
  20. package/README.ja.md +0 -582
  21. package/README.md +0 -690
  22. package/README.zh-CN.md +0 -630
  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 -836
  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 -145
  210. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  211. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -466
  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
package/README.zh-CN.md DELETED
@@ -1,630 +0,0 @@
1
- # pnpm-catalog-updates
2
-
3
- 一个强大的 CLI 工具,用于检查和更新 pnpm 工作区目录依赖,灵感来自
4
- [npm-check-updates](https://github.com/raineorshine/npm-check-updates)。
5
-
6
- **📖 文档语言**: [English](README.md) | [中文](README.zh-CN.md) |
7
- [日本語](README.ja.md)
8
-
9
- [![CI](https://img.shields.io/github/actions/workflow/status/houko/pnpm-catalog-updates/ci.yml?label=CI&logo=github)](https://github.com/houko/pnpm-catalog-updates/actions)
10
- [![npm](https://img.shields.io/npm/v/pnpm-catalog-updates)](https://www.npmjs.com/package/pnpm-catalog-updates)
11
- [![Coverage](https://img.shields.io/coveralls/github/houko/pnpm-catalog-updates/main)](https://coveralls.io/github/houko/pnpm-catalog-updates)
12
-
13
- ## ✨ 特性
14
-
15
- - 🏗️ **一键初始化**: 使用 `pcu init` 命令初始化完整的 PNPM 工作区
16
- - 🔍 **智能检测**: 自动发现 pnpm 工作区和目录配置
17
- - 🎯 **目录专注**: 专门针对 pnpm 目录依赖管理
18
- - 🚀 **交互模式**: 通过直观的界面选择要更新的依赖
19
- - 📊 **影响分析**: 了解目录变更将影响哪些包
20
- - 🔒 **安全更新**: 试运行模式和安全选项确保依赖更新安全
21
- - ⚡ **高性能**: 并行 API 查询和智能缓存
22
- - 🛡️ **安全感知**: 内置安全漏洞扫描
23
- - 🎨 **美观界面**: 增强的进度条,6种视觉样式,颜色主题和交互式提示
24
- - 🌈 **进度条样式**: 选择渐变、华丽、简约、彩虹、霓虹或方块样式
25
- - 🎭 **自定义主题**: 多种颜色主题(默认、现代、简约、霓虹)
26
- - 📈 **实时进度**: 实时进度跟踪,带有速度指示器和时间估计
27
- - 🔄 **智能版本检查**: --version 命令自动更新通知
28
- - 🔧 **可配置**: 灵活的配置选项和更新策略
29
-
30
- ## 🚀 快速开始
31
-
32
- ```bash
33
- # 初始化新的 PNPM 工作区和 PCU 配置
34
- pcu init
35
-
36
- # 或者在现有工作区中检查更新
37
- pcu -c
38
- ```
39
-
40
- ![图片](https://github.com/user-attachments/assets/f05a970e-c58c-44f1-b3f1-351ae30b4a35)
41
-
42
- ### 安装
43
-
44
- ```bash
45
- # 全局安装
46
- npm install -g pnpm-catalog-updates
47
- # 或者
48
- npm install -g pcu
49
-
50
- # 或者使用 npx
51
- npx pnpm-catalog-updates
52
- # 或者
53
- npx pcu
54
-
55
- # 或者使用短别名
56
- pcu
57
- ```
58
-
59
- ### 基本用法
60
-
61
- ```bash
62
- # 初始化 PNPM 工作区和 PCU 配置
63
- pcu init
64
-
65
- # 快速检查更新
66
- pcu -c
67
-
68
- # 快速更新(交互式)
69
- pcu -i
70
-
71
- # 快速更新(试运行)
72
- pcu -u -d
73
-
74
- # 获取工作区信息
75
- pcu -s
76
- ```
77
-
78
- ### 常用命令
79
-
80
- | 命令 | 描述 | 示例 |
81
- | ---------- | ------------------------ | ------------------------- |
82
- | `pcu init` | 初始化工作区和配置 | `pcu init --verbose` |
83
- | `pcu -c` | 检查更新 | `pcu -c --catalog node18` |
84
- | `pcu -i` | 更新依赖(交互式) | `pcu -i -b` |
85
- | `pcu -a` | 分析影响 | `pcu -a default react` |
86
- | `pcu -s` | 工作区信息 | `pcu -s --validate` |
87
- | `pcu -t` | 配置颜色主题 | `pcu -t --set modern` |
88
- | `pcu -h` | 显示帮助 | `pcu -h update` |
89
-
90
- ## 📖 完整使用指南
91
-
92
- ### 所有命令和快捷方式
93
-
94
- | 完整命令 | 缩写 | 描述 |
95
- | --------------- | -------- | ---------------------- |
96
- | `pcu check` | `pcu -c` | 检查过时的目录依赖 |
97
- | `pcu update` | `pcu -u` | 更新目录依赖 |
98
- | `pcu analyze` | `pcu -a` | 分析依赖更新的影响 |
99
- | `pcu workspace` | `pcu -s` | 显示工作区信息和验证 |
100
- | `pcu theme` | `pcu -t` | 配置颜色主题和界面设置 |
101
- | `pcu help` | `pcu -h` | 显示帮助信息 |
102
-
103
- ### 命令
104
-
105
- #### `pcu check` / `pcu -c` / `pcu chk`
106
-
107
- 检查您的 pnpm 工作区目录中是否有过时的依赖。
108
-
109
- ```bash
110
- pcu check [选项]
111
- pcu -c [选项]
112
- pcu chk [选项]
113
-
114
- 选项:
115
- --catalog <名称> 仅检查特定目录
116
- -f, --format <类型> 输出格式:table、json、yaml、minimal(默认:table)
117
- - table:带有颜色和详细信息的丰富表格格式
118
- - minimal:简单的 npm-check-updates 风格(包 → 版本)
119
- - json:用于编程使用的 JSON 输出
120
- - yaml:配置文件用的 YAML 输出
121
- -t, --target <类型> 更新目标:latest、greatest、minor、patch、newest(默认:latest)
122
- --prerelease 包括预发布版本
123
- --include <模式> 包括匹配模式的包
124
- --exclude <模式> 排除匹配模式的包
125
- -w, --workspace <路径> 工作区目录(默认:当前目录)
126
- -v, --verbose 显示详细信息
127
- ```
128
-
129
- #### `pcu update` / `pcu -u`
130
-
131
- 将目录依赖更新到新版本。
132
-
133
- ```bash
134
- pcu update [选项]
135
- pcu -u [选项]
136
- pcu u [选项]
137
-
138
- 选项:
139
- -i, --interactive 交互模式以选择更新
140
- -d, --dry-run 预览更改而不写入文件
141
- -t, --target <类型> 更新目标:latest、greatest、minor、patch、newest(默认:latest)
142
- --catalog <名称> 仅更新特定目录
143
- --include <模式> 包括匹配模式的包
144
- --exclude <模式> 排除匹配模式的包
145
- --force 即使有风险也强制更新
146
- --prerelease 包括预发布版本
147
- -b, --create-backup 更新前创建备份文件
148
- -f, --format <类型> 输出格式:table、json、yaml、minimal(默认:table)
149
- - table:带有颜色和详细信息的丰富表格格式
150
- - minimal:简单的 npm-check-updates 风格(包 → 版本)
151
- - json:用于编程使用的 JSON 输出
152
- - yaml:配置文件用的 YAML 输出
153
- -w, --workspace <路径> 工作区目录(默认:当前目录)
154
- -v, --verbose 显示详细信息
155
- ```
156
-
157
- #### `pcu analyze` / `pcu -a`
158
-
159
- 分析更新特定依赖的影响。
160
-
161
- ```bash
162
- pcu analyze <目录> <包> [版本]
163
- pcu -a <目录> <包> [版本]
164
- pcu a <目录> <包> [版本]
165
-
166
- 参数:
167
- 目录 目录名称(例如:'default'、'react17')
168
- 包 包名称(例如:'react'、'@types/node')
169
- 版本 新版本(可选,默认为最新版本)
170
-
171
- 选项:
172
- -f, --format <类型> 输出格式:table、json、yaml、minimal(默认:table)
173
- -w, --workspace <路径> 工作区目录(默认:当前目录)
174
- -v, --verbose 显示详细信息
175
-
176
- 示例:
177
- pcu analyze default react
178
- pcu a default react 18.3.0
179
- pcu -a react17 @types/react
180
- ```
181
-
182
- #### `pcu workspace` / `pcu -s`
183
-
184
- 显示工作区信息和验证。
185
-
186
- ```bash
187
- pcu workspace [选项]
188
- pcu -s [选项]
189
- pcu w [选项]
190
-
191
- 选项:
192
- --validate 验证工作区配置
193
- -s, --stats 显示工作区统计信息
194
- -f, --format <类型> 输出格式:table、json、yaml、minimal(默认:table)
195
- -w, --workspace <路径> 工作区目录(默认:当前目录)
196
- -v, --verbose 显示详细信息
197
-
198
- 示例:
199
- pcu workspace # 显示基本工作区信息
200
- pcu -s --stats # 显示详细统计信息
201
- pcu w --validate # 验证工作区配置
202
- ```
203
-
204
- #### `pcu help` / `pcu -h`
205
-
206
- 显示帮助信息。
207
-
208
- ```bash
209
- pcu help [命令]
210
- pcu -h [命令]
211
-
212
- 示例:
213
- pcu help # 显示一般帮助
214
- pcu help update # 显示更新命令的帮助
215
- pcu -h check # 显示检查命令的帮助
216
- ```
217
-
218
- #### `pcu theme` / `pcu -t`
219
-
220
- 配置颜色主题和界面外观。
221
-
222
- ```bash
223
- pcu theme [选项]
224
- pcu -t [选项]
225
-
226
- 选项:
227
- -s, --set <主题> 设置颜色主题:default、modern、minimal、neon
228
- -l, --list 列出所有可用主题
229
- -i, --interactive 交互式主题配置向导
230
-
231
- 示例:
232
- pcu theme # 显示当前主题信息
233
- pcu -t --list # 列出所有可用主题
234
- pcu theme --set modern # 设置为现代主题
235
- pcu -t --interactive # 启动主题配置向导
236
- ```
237
-
238
- **可用主题:**
239
-
240
- - `default` - 均衡的颜色,适合一般使用
241
- - `modern` - 鲜艳的颜色,适合开发环境
242
- - `minimal` - 简洁的样式,适合生产环境
243
- - `neon` - 高对比度颜色,适合演示
244
-
245
- ### 全局选项
246
-
247
- 这些选项适用于所有命令:
248
-
249
- ```bash
250
- -w, --workspace <路径> 工作区目录路径
251
- -v, --verbose 启用详细日志记录
252
- --no-color 禁用彩色输出
253
- -V, --version 输出版本号
254
- -h, --help 显示命令帮助
255
- ```
256
-
257
- ### 常见使用模式
258
-
259
- ```bash
260
- # 快速检查更新
261
- pcu -c
262
-
263
- # 使用简单输出检查(类似 npm-check-updates)
264
- pcu -c --format minimal
265
-
266
- # 带备份的交互式更新
267
- pcu -i -b
268
-
269
- # 仅更新次要和补丁版本
270
- pcu -u --target minor
271
-
272
- # 检查特定目录
273
- pcu -c --catalog node18
274
-
275
- # 更新排除某些包
276
- pcu -u --exclude "eslint*"
277
-
278
- # 带详细输出的试运行
279
- pcu -u -d -v
280
-
281
- # 使用简单输出格式更新
282
- pcu -u --format minimal
283
-
284
- # 更新前分析影响
285
- pcu -a default react
286
- pcu -u --catalog default --include react
287
-
288
- # 验证工作区配置
289
- pcu -s --validate
290
-
291
- # 主题自定义
292
- pcu -t --list # 列出可用主题
293
- pcu -t --set modern # 设置现代主题
294
- pcu -t --interactive # 交互式主题设置
295
- ```
296
-
297
- ### 配置
298
-
299
- 在项目根目录创建 `.pcurc.json` 文件(PCU配置文件):
300
-
301
- ```json
302
- {
303
- "defaults": {
304
- "target": "latest",
305
- "timeout": 30000,
306
- "parallel": 5
307
- },
308
- "workspace": {
309
- "autoDiscover": true,
310
- "catalogMode": "strict"
311
- },
312
- "update": {
313
- "interactive": true,
314
- "dryRunFirst": true,
315
- "skipPrereleases": false
316
- },
317
- "output": {
318
- "format": "table",
319
- "color": true,
320
- "verbose": false
321
- },
322
- "ui": {
323
- "theme": "default",
324
- "progressBars": true,
325
- "animations": true
326
- }
327
- }
328
- ```
329
-
330
- #### 包过滤配置
331
-
332
- 您还可以通过创建包含过滤选项的
333
- `.pcurc.json`(PCU配置文件)来配置特定包的更新规则:
334
-
335
- ```json
336
- {
337
- // 排除您永远不想更新的包
338
- "exclude": ["typescript", "@types/node", "react", "react-dom"],
339
-
340
- // 仅更新特定包(可选 - 如果不指定,将考虑所有包)
341
- "include": ["lodash*", "chalk", "commander"],
342
-
343
- // 特定包的更新规则
344
- "packageRules": [
345
- {
346
- "patterns": ["react", "react-dom"],
347
- "target": "minor", // React 只进行 minor 更新
348
- "requireConfirmation": true, // 更新前总是询问
349
- "relatedPackages": ["@types/react", "@types/react-dom"] // 相关包自动遵循相同策略
350
- },
351
- {
352
- "patterns": ["vue"],
353
- "target": "minor",
354
- "relatedPackages": ["@vue/compiler-sfc", "@vue/runtime-core"] // Vue 生态系统包
355
- },
356
- {
357
- "patterns": ["@types/node"],
358
- "target": "minor", // Node.js 类型定义保守更新
359
- "requireConfirmation": true
360
- },
361
- {
362
- "patterns": ["@types/*"],
363
- "target": "latest", // 其他类型定义可以自由更新
364
- "autoUpdate": true
365
- },
366
- {
367
- "patterns": ["eslint*", "prettier"],
368
- "target": "minor", // 开发工具进行 minor 更新
369
- "groupUpdate": true // 相关包一起更新
370
- }
371
- ],
372
-
373
- // 安全配置
374
- "security": {
375
- "autoFixVulnerabilities": true, // 自动检查并修复安全漏洞
376
- "allowMajorForSecurity": true, // 为安全修复允许主版本升级
377
- "notifyOnSecurityUpdate": true // 安全更新时显示通知
378
- },
379
-
380
- // 高级配置
381
- "advanced": {
382
- "concurrency": 5, // 并发网络请求数量(默认: 5)
383
- "timeout": 30000, // 网络请求超时时间(毫秒,默认: 30000)
384
- "retries": 3, // 失败重试次数(默认: 3)
385
- "cacheValidityMinutes": 60, // 缓存有效期(分钟,默认: 60,设为0禁用缓存)
386
- "checkForUpdates": true // 启动时检查工具更新(默认: true)
387
- },
388
-
389
- // Monorepo 配置
390
- "monorepo": {
391
- "syncVersions": ["react", "react-dom"], // 需要在多个 catalog 间同步版本的包
392
- "catalogPriority": ["default", "latest", "react17"] // catalog 优先级顺序
393
- },
394
-
395
- // 覆盖默认设置
396
- "defaults": {
397
- "target": "minor",
398
- "createBackup": true
399
- }
400
- }
401
- ```
402
-
403
- **关联包功能**: `relatedPackages` 允许相关包自动遵循相同的版本策略
404
-
405
- - 当配置了 `react` 的 `target: "minor"`,`@types/react` 也会自动应用相同策略
406
- - 避免手动重复配置相关包的更新规则
407
- - 确保生态系统包的版本一致性
408
-
409
- **配置优先级**: relatedPackages > 直接pattern匹配 > CLI选项 > 默认配置
410
-
411
- **优先级示例**:
412
-
413
- ```text
414
- @types/react → 匹配react规则的relatedPackages → 使用"minor"策略
415
- @types/node → 匹配@types/node专门规则 → 使用"minor"策略
416
- @types/lodash → 匹配@types/*通用规则 → 使用"latest"策略
417
- ```
418
-
419
- **模式匹配**: 支持 glob 模式,如 `react*`、`@types/*`、`eslint*`
420
-
421
- ## 📁 项目结构
422
-
423
- 本项目遵循领域驱动设计 (DDD) 原则:
424
-
425
- ```text
426
- src/
427
- ├── cli/ # CLI 接口层
428
- │ ├── commands/ # 命令处理器
429
- │ ├── options/ # 选项解析器
430
- │ ├── formatters/ # 输出格式化器和进度条
431
- │ ├── interactive/ # 交互式提示和界面
432
- │ ├── themes/ # 颜色主题和样式
433
- │ └── validators/ # 输入验证
434
- ├── application/ # 应用服务
435
- │ ├── services/ # 应用服务
436
- │ ├── handlers/ # 命令处理器
437
- │ └── mappers/ # 数据映射器
438
- ├── domain/ # 领域模型
439
- │ ├── entities/ # 领域实体
440
- │ ├── value-objects/ # 值对象
441
- │ ├── aggregates/ # 聚合根
442
- │ ├── services/ # 领域服务
443
- │ └── repositories/ # 仓库接口
444
- ├── infrastructure/ # 基础设施层
445
- │ ├── repositories/ # 仓库实现
446
- │ ├── external-services/ # 外部服务客户端
447
- │ └── file-system/ # 文件系统操作
448
- ├── adapters/ # 适配器层
449
- │ ├── registry/ # 包注册表适配器
450
- │ └── package-managers/ # 包管理器适配器
451
- └── common/ # 公共工具
452
- ├── types/ # 类型定义
453
- ├── utils/ # 实用函数
454
- ├── config/ # 配置
455
- └── logger/ # 日志记录
456
- ```
457
-
458
- ## 🧪 开发
459
-
460
- ### 先决条件
461
-
462
- - Node.js >= 18.0.0
463
- - pnpm >= 8.15.0
464
-
465
- ### 设置
466
-
467
- ```bash
468
- # 克隆仓库
469
- git clone https://github.com/houko/pnpm-catalog-updates.git
470
- cd pnpm-catalog-updates
471
-
472
- # 安装依赖
473
- pnpm install
474
-
475
- # 构建项目
476
- pnpm build
477
-
478
- # 运行测试
479
- pnpm test
480
-
481
- # 在开发模式下运行
482
- pnpm dev --help
483
- ```
484
-
485
- ### 脚本
486
-
487
- ```bash
488
- # 开发
489
- pnpm dev # 在开发模式下运行
490
- pnpm build # 构建项目
491
- pnpm build:watch # 在观察模式下构建
492
-
493
- # 测试
494
- pnpm test # 运行单元测试
495
- pnpm test:watch # 在观察模式下运行测试
496
- pnpm test:coverage # 运行带覆盖率的测试
497
- pnpm test:e2e # 运行端到端测试
498
-
499
- # 代码质量
500
- pnpm lint # 代码检查
501
- pnpm lint:fix # 修复检查问题
502
- pnpm format # 格式化代码
503
- pnpm typecheck # 类型检查
504
-
505
- # 实用工具
506
- pnpm clean # 清理构建产物
507
- ```
508
-
509
- ### 测试
510
-
511
- 项目使用全面的测试策略:
512
-
513
- - **单元测试**:隔离测试各个组件
514
- - **集成测试**:测试组件交互
515
- - **端到端测试**:测试完整的 CLI 工作流
516
-
517
- ```bash
518
- # 运行所有测试
519
- pnpm test
520
-
521
- # 运行带覆盖率的测试
522
- pnpm test:coverage
523
-
524
- # 运行端到端测试
525
- pnpm test:e2e
526
-
527
- # 在观察模式下运行测试
528
- pnpm test:watch
529
- ```
530
-
531
- ## 📊 示例
532
-
533
- ### 基本工作区
534
-
535
- ```yaml
536
- # pnpm-workspace.yaml
537
- packages:
538
- - 'packages/*'
539
-
540
- catalog:
541
- react: ^18.2.0
542
- lodash: ^4.17.21
543
- typescript: ^5.0.0
544
- ```
545
-
546
- ### 多目录设置
547
-
548
- ```yaml
549
- # pnpm-workspace.yaml
550
- packages:
551
- - "apps/*"
552
- - "packages/*"
553
-
554
- catalog:
555
- # 默认目录
556
- react: ^18.2.0
557
- typescript: ^5.0.0
558
-
559
- catalogs:
560
- # 旧版本
561
- react17:
562
- react: ^17.0.2
563
- @types/react: ^17.0.62
564
-
565
- # 最新版本
566
- latest:
567
- react: ^18.2.0
568
- typescript: ^5.2.0
569
- ```
570
-
571
- ### 在 package.json 中使用
572
-
573
- ```json
574
- {
575
- "dependencies": {
576
- "react": "catalog:",
577
- "lodash": "catalog:",
578
- "legacy-lib": "catalog:react17"
579
- }
580
- }
581
- ```
582
-
583
- ## 🤝 贡献
584
-
585
- 我们欢迎贡献!请查看我们的[贡献指南](CONTRIBUTING.md)了解详情。
586
-
587
- ### 开发工作流
588
-
589
- 1. Fork 仓库
590
- 2. 创建特性分支: `git checkout -b feature/amazing-feature`
591
- 3. 进行更改
592
- 4. 为更改添加测试
593
- 5. 确保所有测试通过: `pnpm test`
594
- 6. 检查代码: `pnpm lint:fix`
595
- 7. 提交更改: `git commit -m 'feat: add amazing feature'`
596
- 8. 推送到分支: `git push origin feature/amazing-feature`
597
- 9. 打开拉取请求
598
-
599
- ### 提交消息约定
600
-
601
- 我们使用[约定式提交](https://conventionalcommits.org/):
602
-
603
- - `feat`:新功能
604
- - `fix`:错误修复
605
- - `docs`:仅文档更改
606
- - `style`:不影响代码含义的更改
607
- - `refactor`:既不修复错误也不添加功能的代码更改
608
- - `test`:添加缺失的测试或更正现有测试
609
- - `chore`:构建过程或辅助工具的更改
610
-
611
- ## 📄 许可证
612
-
613
- 本项目根据 MIT 许可证授权 - 查看 [LICENSE](LICENSE) 文件了解详情。
614
-
615
- ## 🙏 致谢
616
-
617
- - 灵感来自
618
- [npm-check-updates](https://github.com/raineorshine/npm-check-updates)
619
- - 为 pnpm 社区充满爱心地构建
620
- - 感谢所有贡献者和用户
621
-
622
- ## 📞 支持
623
-
624
- - 📖 [文档](https://github.com/houko/pnpm-catalog-updates#readme)
625
- - 🐛 [问题跟踪器](https://github.com/houko/pnpm-catalog-updates/issues)
626
- - 💬 [讨论](https://github.com/houko/pnpm-catalog-updates/discussions)
627
-
628
- ---
629
-
630
- 为 pnpm 社区充满爱心地制作 ❤️