ccman 1.0.1 → 2.0.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 (91) hide show
  1. package/.env.development +3 -0
  2. package/.env.production +3 -0
  3. package/.github/workflows/release.yml +5 -5
  4. package/CLAUDE.md +246 -185
  5. package/README.md +282 -249
  6. package/README_zh.md +283 -250
  7. package/dev-test.sh +40 -0
  8. package/dist/cli.js +425 -369
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/lang.d.ts +3 -0
  11. package/dist/commands/lang.d.ts.map +1 -0
  12. package/dist/commands/lang.js +99 -0
  13. package/dist/commands/lang.js.map +1 -0
  14. package/dist/config/static-env.d.ts +14 -0
  15. package/dist/config/static-env.d.ts.map +1 -0
  16. package/dist/config/static-env.js +17 -0
  17. package/dist/config/static-env.js.map +1 -0
  18. package/dist/core/CCMConfigManager.d.ts +52 -0
  19. package/dist/core/CCMConfigManager.d.ts.map +1 -0
  20. package/dist/core/CCMConfigManager.js +203 -0
  21. package/dist/core/CCMConfigManager.js.map +1 -0
  22. package/dist/core/ClaudeConfigManager.d.ts +35 -0
  23. package/dist/core/ClaudeConfigManager.d.ts.map +1 -0
  24. package/dist/core/ClaudeConfigManager.js +149 -0
  25. package/dist/core/ClaudeConfigManager.js.map +1 -0
  26. package/dist/i18n/LanguageManager.d.ts +43 -0
  27. package/dist/i18n/LanguageManager.d.ts.map +1 -0
  28. package/dist/i18n/LanguageManager.js +157 -0
  29. package/dist/i18n/LanguageManager.js.map +1 -0
  30. package/dist/i18n/messages.d.ts +65 -0
  31. package/dist/i18n/messages.d.ts.map +1 -0
  32. package/dist/i18n/messages.js +144 -0
  33. package/dist/i18n/messages.js.map +1 -0
  34. package/dist/index.d.ts +3 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/providers/ProviderManager.d.ts +58 -0
  39. package/dist/providers/ProviderManager.d.ts.map +1 -0
  40. package/dist/providers/ProviderManager.js +335 -0
  41. package/dist/providers/ProviderManager.js.map +1 -0
  42. package/dist/types/index.d.ts +78 -38
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/index.js +1 -0
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/utils/env-config.d.ts +27 -0
  47. package/dist/utils/env-config.d.ts.map +1 -0
  48. package/dist/{config/constants.js → utils/env-config.js} +36 -50
  49. package/dist/utils/env-config.js.map +1 -0
  50. package/dist/utils/version.d.ts +2 -64
  51. package/dist/utils/version.d.ts.map +1 -1
  52. package/dist/utils/version.js +12 -158
  53. package/dist/utils/version.js.map +1 -1
  54. package/package.json +17 -16
  55. package/release-temp/README.md +282 -249
  56. package/release-temp/package.json +17 -16
  57. package/scripts/build-env.js +75 -0
  58. package/scripts/modules/create-tag.sh +53 -10
  59. package/scripts/modules/monitor-release.sh +40 -12
  60. package/scripts/modules/version-bump.sh +14 -17
  61. package/scripts/smart-release-v3.sh +20 -26
  62. package/src/cli.ts +462 -394
  63. package/src/commands/lang.ts +105 -0
  64. package/src/core/CCMConfigManager.ts +185 -0
  65. package/src/core/ClaudeConfigManager.ts +125 -0
  66. package/src/i18n/LanguageManager.ts +169 -0
  67. package/src/i18n/messages.ts +233 -0
  68. package/src/index.ts +4 -5
  69. package/src/providers/ProviderManager.ts +393 -0
  70. package/src/types/index.ts +80 -39
  71. package/src/utils/env-config.ts +53 -0
  72. package/src/utils/version.ts +11 -184
  73. package/dist/config/ConfigManager.d.ts +0 -67
  74. package/dist/config/ConfigManager.d.ts.map +0 -1
  75. package/dist/config/ConfigManager.js +0 -226
  76. package/dist/config/ConfigManager.js.map +0 -1
  77. package/dist/config/EnvironmentManager.d.ts +0 -83
  78. package/dist/config/EnvironmentManager.d.ts.map +0 -1
  79. package/dist/config/EnvironmentManager.js +0 -280
  80. package/dist/config/EnvironmentManager.js.map +0 -1
  81. package/dist/config/constants.d.ts +0 -40
  82. package/dist/config/constants.d.ts.map +0 -1
  83. package/dist/config/constants.js.map +0 -1
  84. package/dist/shell/ShellManager.d.ts +0 -81
  85. package/dist/shell/ShellManager.d.ts.map +0 -1
  86. package/dist/shell/ShellManager.js +0 -490
  87. package/dist/shell/ShellManager.js.map +0 -1
  88. package/src/config/ConfigManager.ts +0 -227
  89. package/src/config/EnvironmentManager.ts +0 -327
  90. package/src/config/constants.ts +0 -64
  91. package/src/shell/ShellManager.ts +0 -526
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * CCMan (Claude Code Manager) 配置常量
4
- * 简化版本 - 只保留实际需要的常量
5
- */
6
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
3
  if (k2 === undefined) k2 = k;
8
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,61 +33,51 @@ var __importStar = (this && this.__importStar) || (function () {
37
33
  };
38
34
  })();
39
35
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.CONFIG = void 0;
41
- exports.getConfigDir = getConfigDir;
42
- exports.getConfigFile = getConfigFile;
43
- exports.getShellRCFile = getShellRCFile;
44
- exports.getDisplayPath = getDisplayPath;
36
+ exports.envConfig = exports.EnvConfigManager = void 0;
45
37
  const path = __importStar(require("path"));
46
38
  const os = __importStar(require("os"));
39
+ const static_env_1 = require("../config/static-env");
47
40
  /**
48
- * 应用配置常量
41
+ * 环境配置管理器
42
+ * 使用编译时生成的静态配置
49
43
  */
50
- exports.CONFIG = {
44
+ class EnvConfigManager {
45
+ constructor() { }
46
+ static getInstance() {
47
+ if (!EnvConfigManager.instance) {
48
+ EnvConfigManager.instance = new EnvConfigManager();
49
+ }
50
+ return EnvConfigManager.instance;
51
+ }
51
52
  /**
52
- * 路径配置
53
+ * 获取CCM配置目录路径
53
54
  */
54
- PATHS: {
55
- DIR: '.ccman',
56
- CONFIG_FILE: 'config.json',
57
- SHELL_RC: '.ccmanrc'
58
- },
55
+ getCCMConfigDir() {
56
+ return this.expandPath(static_env_1.CCM_CONFIG_DIR);
57
+ }
59
58
  /**
60
- * 环境变量名称
59
+ * 获取Claude配置文件路径
61
60
  */
62
- ENV_VARS: {
63
- BASE_URL: 'ANTHROPIC_BASE_URL',
64
- AUTH_TOKEN: 'ANTHROPIC_AUTH_TOKEN'
65
- },
61
+ getClaudeConfigPath() {
62
+ return this.expandPath(static_env_1.CLAUDE_CONFIG_PATH);
63
+ }
66
64
  /**
67
- * 应用元信息
65
+ * 扩展路径中的~符号
68
66
  */
69
- APP_NAME: 'CCMan',
70
- APP_FULL_NAME: 'Claude Code Manager'
71
- };
72
- /**
73
- * 获取完整路径的辅助函数
74
- */
75
- function getConfigDir() {
76
- return path.join(os.homedir(), exports.CONFIG.PATHS.DIR);
77
- }
78
- function getConfigFile() {
79
- return path.join(getConfigDir(), exports.CONFIG.PATHS.CONFIG_FILE);
80
- }
81
- function getShellRCFile() {
82
- return path.join(getConfigDir(), exports.CONFIG.PATHS.SHELL_RC);
83
- }
84
- /**
85
- * 获取显示用的路径字符串
86
- */
87
- function getDisplayPath(type) {
88
- switch (type) {
89
- case 'config':
90
- return `~/${exports.CONFIG.PATHS.DIR}/${exports.CONFIG.PATHS.CONFIG_FILE}`;
91
- case 'shellrc':
92
- return `~/${exports.CONFIG.PATHS.DIR}/${exports.CONFIG.PATHS.SHELL_RC}`;
93
- default:
94
- return `~/${exports.CONFIG.PATHS.DIR}`;
67
+ expandPath(configPath) {
68
+ return configPath.startsWith('~')
69
+ ? path.join(os.homedir(), configPath.slice(2))
70
+ : configPath;
71
+ }
72
+ /**
73
+ * 获取当前环境(从编译时确定的NODE_ENV)
74
+ */
75
+ getCurrentEnvironment() {
76
+ return static_env_1.STATIC_ENV.NODE_ENV;
95
77
  }
96
78
  }
97
- //# sourceMappingURL=constants.js.map
79
+ exports.EnvConfigManager = EnvConfigManager;
80
+ EnvConfigManager.instance = null;
81
+ // 全局实例
82
+ exports.envConfig = EnvConfigManager.getInstance();
83
+ //# sourceMappingURL=env-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../src/utils/env-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AACzB,qDAAsF;AAEtF;;;GAGG;AACH,MAAa,gBAAgB;IAG3B,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,2BAAc,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,+BAAkB,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,UAAkB;QACnC,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,UAAU,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,uBAAU,CAAC,QAAwC,CAAC;IAC7D,CAAC;;AAxCH,4CAyCC;AAxCgB,yBAAQ,GAA4B,IAAI,CAAC;AA0C1D,OAAO;AACM,QAAA,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC"}
@@ -1,67 +1,5 @@
1
1
  /**
2
- * 版本信息接口
2
+ * 读取 package.json 中的版本号
3
3
  */
4
- export interface VersionInfo {
5
- version: string;
6
- major: number;
7
- minor: number;
8
- patch: number;
9
- prerelease?: string;
10
- }
11
- /**
12
- * 版本工具类
13
- */
14
- export declare class VersionManager {
15
- private static instance;
16
- private cachedVersion?;
17
- private constructor();
18
- /**
19
- * 获取单例实例
20
- */
21
- static getInstance(): VersionManager;
22
- /**
23
- * 获取当前版本信息
24
- */
25
- getCurrentVersion(): VersionInfo;
26
- /**
27
- * 获取版本字符串
28
- */
29
- getVersionString(): string;
30
- /**
31
- * 解析版本字符串
32
- */
33
- private parseVersion;
34
- /**
35
- * 获取 package.json 路径
36
- */
37
- private getPackageJsonPath;
38
- /**
39
- * 预测下一个版本
40
- */
41
- getNextVersion(type: 'patch' | 'minor' | 'major'): string;
42
- /**
43
- * 获取版本变更建议(基于 git 历史分析)
44
- */
45
- getVersionSuggestion(): Promise<'patch' | 'minor' | 'major'>;
46
- /**
47
- * 清除缓存(测试用)
48
- */
49
- clearCache(): void;
50
- }
51
- /**
52
- * 便捷函数:获取当前版本字符串
53
- */
54
- export declare function getCurrentVersion(): string;
55
- /**
56
- * 便捷函数:获取版本信息
57
- */
58
- export declare function getVersionInfo(): VersionInfo;
59
- /**
60
- * 便捷函数:获取下一个版本
61
- */
62
- export declare function getNextVersion(type: 'patch' | 'minor' | 'major'): string;
63
- /**
64
- * 便捷函数:获取版本建议
65
- */
66
- export declare function getVersionSuggestion(): Promise<'patch' | 'minor' | 'major'>;
4
+ export declare function getPackageVersion(): string;
67
5
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAc;IAEpC,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,iBAAiB,IAAI,WAAW;IAmBhC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM;IAezD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IA0BlE;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAEjF"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C"}
@@ -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,17 +1,18 @@
1
1
  {
2
2
  "name": "ccman",
3
- "version": "1.0.1",
3
+ "version": "2.0.1",
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
  },
10
10
  "scripts": {
11
- "build": "tsc",
12
- "dev": "tsx src/cli.ts",
13
- "start": "node dist/cli.js",
14
- "test": "jest --passWithNoTests",
11
+ "prebuild": "NODE_ENV=production node scripts/build-env.js",
12
+ "prebuild:dev": "NODE_ENV=development node scripts/build-env.js",
13
+ "build": "pnpm prebuild && tsc",
14
+ "build:dev": "pnpm prebuild:dev && tsc",
15
+ "dev": "pnpm prebuild:dev && tsx src/cli.ts",
15
16
  "lint": "eslint src/**/*.ts",
16
17
  "clean": "rm -rf dist",
17
18
  "release": "./scripts/release.sh",
@@ -35,24 +36,24 @@
35
36
  "author": "",
36
37
  "license": "MIT",
37
38
  "dependencies": {
38
- "commander": "^11.0.0",
39
39
  "chalk": "^4.1.2",
40
- "inquirer": "^8.2.6",
41
- "fs-extra": "^11.0.0"
40
+ "commander": "^11.0.0",
41
+ "fs-extra": "^11.0.0",
42
+ "inquirer": "^8.2.6"
42
43
  },
43
44
  "devDependencies": {
44
- "@types/node": "^20.0.0",
45
- "@types/inquirer": "^9.0.0",
46
45
  "@types/fs-extra": "^11.0.0",
47
- "typescript": "^5.0.0",
48
- "tsx": "^4.0.0",
49
- "eslint": "^8.0.0",
46
+ "@types/inquirer": "^9.0.0",
47
+ "@types/jest": "^29.0.0",
48
+ "@types/node": "^20.0.0",
50
49
  "@typescript-eslint/eslint-plugin": "^6.0.0",
51
50
  "@typescript-eslint/parser": "^6.0.0",
51
+ "eslint": "^8.0.0",
52
52
  "jest": "^29.0.0",
53
- "@types/jest": "^29.0.0",
53
+ "prettier": "^3.0.0",
54
54
  "ts-jest": "^29.0.0",
55
- "prettier": "^3.0.0"
55
+ "tsx": "^4.0.0",
56
+ "typescript": "^5.0.0"
56
57
  },
57
58
  "engines": {
58
59
  "node": ">=16.0.0"