ccman 0.1.2 → 2.0.0

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 (78) hide show
  1. package/.github/workflows/release.yml +5 -5
  2. package/CLAUDE.md +246 -185
  3. package/README.md +282 -249
  4. package/README_zh.md +283 -250
  5. package/dev-test.sh +40 -0
  6. package/dist/cli.js +421 -369
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/lang.d.ts +3 -0
  9. package/dist/commands/lang.d.ts.map +1 -0
  10. package/dist/commands/lang.js +99 -0
  11. package/dist/commands/lang.js.map +1 -0
  12. package/dist/core/CCMConfigManager.d.ts +52 -0
  13. package/dist/core/CCMConfigManager.d.ts.map +1 -0
  14. package/dist/core/CCMConfigManager.js +203 -0
  15. package/dist/core/CCMConfigManager.js.map +1 -0
  16. package/dist/core/ClaudeConfigManager.d.ts +35 -0
  17. package/dist/core/ClaudeConfigManager.d.ts.map +1 -0
  18. package/dist/core/ClaudeConfigManager.js +151 -0
  19. package/dist/core/ClaudeConfigManager.js.map +1 -0
  20. package/dist/i18n/LanguageManager.d.ts +43 -0
  21. package/dist/i18n/LanguageManager.d.ts.map +1 -0
  22. package/dist/i18n/LanguageManager.js +157 -0
  23. package/dist/i18n/LanguageManager.js.map +1 -0
  24. package/dist/i18n/messages.d.ts +65 -0
  25. package/dist/i18n/messages.d.ts.map +1 -0
  26. package/dist/i18n/messages.js +144 -0
  27. package/dist/i18n/messages.js.map +1 -0
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3 -8
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/ProviderManager.d.ts +55 -0
  33. package/dist/providers/ProviderManager.d.ts.map +1 -0
  34. package/dist/providers/ProviderManager.js +326 -0
  35. package/dist/providers/ProviderManager.js.map +1 -0
  36. package/dist/types/index.d.ts +78 -38
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +1 -0
  39. package/dist/types/index.js.map +1 -1
  40. package/dist/utils/version.d.ts +2 -64
  41. package/dist/utils/version.d.ts.map +1 -1
  42. package/dist/utils/version.js +12 -158
  43. package/dist/utils/version.js.map +1 -1
  44. package/package.json +2 -2
  45. package/release-temp/README.md +282 -249
  46. package/release-temp/package.json +2 -2
  47. package/scripts/modules/version-bump.sh +2 -2
  48. package/scripts/smart-release-v3.sh +20 -26
  49. package/src/cli.ts +458 -394
  50. package/src/commands/lang.ts +105 -0
  51. package/src/core/CCMConfigManager.ts +185 -0
  52. package/src/core/ClaudeConfigManager.ts +127 -0
  53. package/src/i18n/LanguageManager.ts +169 -0
  54. package/src/i18n/messages.ts +233 -0
  55. package/src/index.ts +4 -5
  56. package/src/providers/ProviderManager.ts +380 -0
  57. package/src/types/index.ts +80 -39
  58. package/src/utils/version.ts +11 -184
  59. package/dist/config/ConfigManager.d.ts +0 -67
  60. package/dist/config/ConfigManager.d.ts.map +0 -1
  61. package/dist/config/ConfigManager.js +0 -226
  62. package/dist/config/ConfigManager.js.map +0 -1
  63. package/dist/config/EnvironmentManager.d.ts +0 -83
  64. package/dist/config/EnvironmentManager.d.ts.map +0 -1
  65. package/dist/config/EnvironmentManager.js +0 -280
  66. package/dist/config/EnvironmentManager.js.map +0 -1
  67. package/dist/config/constants.d.ts +0 -40
  68. package/dist/config/constants.d.ts.map +0 -1
  69. package/dist/config/constants.js +0 -97
  70. package/dist/config/constants.js.map +0 -1
  71. package/dist/shell/ShellManager.d.ts +0 -81
  72. package/dist/shell/ShellManager.d.ts.map +0 -1
  73. package/dist/shell/ShellManager.js +0 -490
  74. package/dist/shell/ShellManager.js.map +0 -1
  75. package/src/config/ConfigManager.ts +0 -227
  76. package/src/config/EnvironmentManager.ts +0 -327
  77. package/src/config/constants.ts +0 -64
  78. package/src/shell/ShellManager.ts +0 -526
@@ -33,167 +33,21 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.VersionManager = void 0;
37
- exports.getCurrentVersion = getCurrentVersion;
38
- exports.getVersionInfo = getVersionInfo;
39
- exports.getNextVersion = getNextVersion;
40
- exports.getVersionSuggestion = getVersionSuggestion;
41
- const fs_1 = require("fs");
42
- const path_1 = require("path");
36
+ exports.getPackageVersion = getPackageVersion;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
43
39
  /**
44
- * 版本工具类
40
+ * 读取 package.json 中的版本号
45
41
  */
46
- class VersionManager {
47
- constructor() { }
48
- /**
49
- * 获取单例实例
50
- */
51
- static getInstance() {
52
- if (!VersionManager.instance) {
53
- VersionManager.instance = new VersionManager();
54
- }
55
- return VersionManager.instance;
42
+ function getPackageVersion() {
43
+ try {
44
+ const packageJsonPath = path.join(__dirname, '../../package.json');
45
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
46
+ return packageJson.version || '0.0.0';
56
47
  }
57
- /**
58
- * 获取当前版本信息
59
- */
60
- getCurrentVersion() {
61
- if (this.cachedVersion) {
62
- return this.cachedVersion;
63
- }
64
- try {
65
- const packageJsonPath = this.getPackageJsonPath();
66
- const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8'));
67
- const version = packageJson.version;
68
- this.cachedVersion = this.parseVersion(version);
69
- return this.cachedVersion;
70
- }
71
- catch (error) {
72
- console.warn('⚠️ 无法读取版本信息,使用默认版本');
73
- this.cachedVersion = this.parseVersion('0.0.1');
74
- return this.cachedVersion;
75
- }
48
+ catch (error) {
49
+ console.warn('Failed to read package.json version, using fallback');
50
+ return '0.0.0';
76
51
  }
77
- /**
78
- * 获取版本字符串
79
- */
80
- getVersionString() {
81
- return this.getCurrentVersion().version;
82
- }
83
- /**
84
- * 解析版本字符串
85
- */
86
- parseVersion(versionString) {
87
- const match = versionString.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);
88
- if (!match) {
89
- throw new Error(`无效的版本格式: ${versionString}`);
90
- }
91
- const [, major, minor, patch, prerelease] = match;
92
- return {
93
- version: versionString,
94
- major: parseInt(major, 10),
95
- minor: parseInt(minor, 10),
96
- patch: parseInt(patch, 10),
97
- prerelease
98
- };
99
- }
100
- /**
101
- * 获取 package.json 路径
102
- */
103
- getPackageJsonPath() {
104
- // 在构建后的环境中,package.json 在 ../package.json
105
- // 在开发环境中,可能在不同的位置
106
- const paths = [
107
- (0, path_1.join)(__dirname, '../package.json'), // 构建后
108
- (0, path_1.join)(__dirname, '../../package.json'), // 开发环境
109
- (0, path_1.join)(process.cwd(), 'package.json') // 当前工作目录
110
- ];
111
- for (const path of paths) {
112
- try {
113
- (0, fs_1.readFileSync)(path, 'utf8');
114
- return path;
115
- }
116
- catch {
117
- continue;
118
- }
119
- }
120
- throw new Error('找不到 package.json 文件');
121
- }
122
- /**
123
- * 预测下一个版本
124
- */
125
- getNextVersion(type) {
126
- const current = this.getCurrentVersion();
127
- switch (type) {
128
- case 'patch':
129
- return `${current.major}.${current.minor}.${current.patch + 1}`;
130
- case 'minor':
131
- return `${current.major}.${current.minor + 1}.0`;
132
- case 'major':
133
- return `${current.major + 1}.0.0`;
134
- default:
135
- throw new Error(`不支持的版本类型: ${type}`);
136
- }
137
- }
138
- /**
139
- * 获取版本变更建议(基于 git 历史分析)
140
- */
141
- async getVersionSuggestion() {
142
- try {
143
- // 这里可以添加 git 历史分析逻辑
144
- // 比如分析提交信息中的关键词来推荐版本类型
145
- const { exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
146
- const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
147
- const execAsync = promisify(exec);
148
- // 获取最近的提交信息
149
- const { stdout } = await execAsync('git log --oneline -10');
150
- const commits = stdout.toLowerCase();
151
- // 简单的启发式规则
152
- if (commits.includes('breaking') || commits.includes('major')) {
153
- return 'major';
154
- }
155
- else if (commits.includes('feat') || commits.includes('feature') || commits.includes('add')) {
156
- return 'minor';
157
- }
158
- else {
159
- return 'patch';
160
- }
161
- }
162
- catch {
163
- // 默认推荐 patch
164
- return 'patch';
165
- }
166
- }
167
- /**
168
- * 清除缓存(测试用)
169
- */
170
- clearCache() {
171
- this.cachedVersion = undefined;
172
- }
173
- }
174
- exports.VersionManager = VersionManager;
175
- /**
176
- * 便捷函数:获取当前版本字符串
177
- */
178
- function getCurrentVersion() {
179
- return VersionManager.getInstance().getVersionString();
180
- }
181
- /**
182
- * 便捷函数:获取版本信息
183
- */
184
- function getVersionInfo() {
185
- return VersionManager.getInstance().getCurrentVersion();
186
- }
187
- /**
188
- * 便捷函数:获取下一个版本
189
- */
190
- function getNextVersion(type) {
191
- return VersionManager.getInstance().getNextVersion(type);
192
- }
193
- /**
194
- * 便捷函数:获取版本建议
195
- */
196
- async function getVersionSuggestion() {
197
- return VersionManager.getInstance().getVersionSuggestion();
198
52
  }
199
53
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CASC;AAfD,uCAAyB;AACzB,2CAA6B;AAE7B;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACzE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ccman",
3
- "version": "0.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "Claude Code Manager - A TypeScript tool to manage Claude Code API configurations",
5
5
  "main": "dist/index.js",
6
- "packageManager": "pnpm@8.15.1",
6
+ "packageManager": "pnpm@7.33.7",
7
7
  "bin": {
8
8
  "ccman": "./dist/cli.js"
9
9
  },