ccman 2.1.7 → 3.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 (96) hide show
  1. package/README.md +103 -227
  2. package/package.json +27 -61
  3. package/LICENSE +0 -21
  4. package/README_en.md +0 -294
  5. package/dist/cli.d.ts +0 -3
  6. package/dist/cli.d.ts.map +0 -1
  7. package/dist/cli.js +0 -948
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/lang.d.ts +0 -3
  10. package/dist/commands/lang.d.ts.map +0 -1
  11. package/dist/commands/lang.js +0 -99
  12. package/dist/commands/lang.js.map +0 -1
  13. package/dist/config/default-providers.d.ts +0 -34
  14. package/dist/config/default-providers.d.ts.map +0 -1
  15. package/dist/config/default-providers.js +0 -96
  16. package/dist/config/default-providers.js.map +0 -1
  17. package/dist/config/static-env.d.ts +0 -14
  18. package/dist/config/static-env.d.ts.map +0 -1
  19. package/dist/config/static-env.js +0 -17
  20. package/dist/config/static-env.js.map +0 -1
  21. package/dist/core/CCMConfigManager.d.ts +0 -64
  22. package/dist/core/CCMConfigManager.d.ts.map +0 -1
  23. package/dist/core/CCMConfigManager.js +0 -267
  24. package/dist/core/CCMConfigManager.js.map +0 -1
  25. package/dist/core/ClaudeConfigManager.d.ts +0 -36
  26. package/dist/core/ClaudeConfigManager.d.ts.map +0 -1
  27. package/dist/core/ClaudeConfigManager.js +0 -158
  28. package/dist/core/ClaudeConfigManager.js.map +0 -1
  29. package/dist/core/EnvironmentManager.d.ts +0 -27
  30. package/dist/core/EnvironmentManager.d.ts.map +0 -1
  31. package/dist/core/EnvironmentManager.js +0 -46
  32. package/dist/core/EnvironmentManager.js.map +0 -1
  33. package/dist/i18n/LanguageManager.d.ts +0 -43
  34. package/dist/i18n/LanguageManager.d.ts.map +0 -1
  35. package/dist/i18n/LanguageManager.js +0 -157
  36. package/dist/i18n/LanguageManager.js.map +0 -1
  37. package/dist/i18n/messages.d.ts +0 -95
  38. package/dist/i18n/messages.d.ts.map +0 -1
  39. package/dist/i18n/messages.js +0 -206
  40. package/dist/i18n/messages.js.map +0 -1
  41. package/dist/index.d.ts +0 -5
  42. package/dist/index.d.ts.map +0 -1
  43. package/dist/index.js +0 -21
  44. package/dist/index.js.map +0 -1
  45. package/dist/providers/ProviderManager.d.ts +0 -63
  46. package/dist/providers/ProviderManager.d.ts.map +0 -1
  47. package/dist/providers/ProviderManager.js +0 -350
  48. package/dist/providers/ProviderManager.js.map +0 -1
  49. package/dist/setup/checker.d.ts +0 -33
  50. package/dist/setup/checker.d.ts.map +0 -1
  51. package/dist/setup/checker.js +0 -169
  52. package/dist/setup/checker.js.map +0 -1
  53. package/dist/setup/installer.d.ts +0 -17
  54. package/dist/setup/installer.d.ts.map +0 -1
  55. package/dist/setup/installer.js +0 -108
  56. package/dist/setup/installer.js.map +0 -1
  57. package/dist/setup/planner.d.ts +0 -22
  58. package/dist/setup/planner.d.ts.map +0 -1
  59. package/dist/setup/planner.js +0 -213
  60. package/dist/setup/planner.js.map +0 -1
  61. package/dist/setup/strategies/base.d.ts +0 -26
  62. package/dist/setup/strategies/base.d.ts.map +0 -1
  63. package/dist/setup/strategies/base.js +0 -32
  64. package/dist/setup/strategies/base.js.map +0 -1
  65. package/dist/setup/strategies/node.d.ts +0 -9
  66. package/dist/setup/strategies/node.d.ts.map +0 -1
  67. package/dist/setup/strategies/node.js +0 -141
  68. package/dist/setup/strategies/node.js.map +0 -1
  69. package/dist/setup/strategies/nvm.d.ts +0 -9
  70. package/dist/setup/strategies/nvm.d.ts.map +0 -1
  71. package/dist/setup/strategies/nvm.js +0 -106
  72. package/dist/setup/strategies/nvm.js.map +0 -1
  73. package/dist/setup/strategies/volta.d.ts +0 -9
  74. package/dist/setup/strategies/volta.d.ts.map +0 -1
  75. package/dist/setup/strategies/volta.js +0 -111
  76. package/dist/setup/strategies/volta.js.map +0 -1
  77. package/dist/setup/types.d.ts +0 -95
  78. package/dist/setup/types.d.ts.map +0 -1
  79. package/dist/setup/types.js +0 -6
  80. package/dist/setup/types.js.map +0 -1
  81. package/dist/types/index.d.ts +0 -95
  82. package/dist/types/index.d.ts.map +0 -1
  83. package/dist/types/index.js +0 -7
  84. package/dist/types/index.js.map +0 -1
  85. package/dist/utils/command.d.ts +0 -33
  86. package/dist/utils/command.d.ts.map +0 -1
  87. package/dist/utils/command.js +0 -73
  88. package/dist/utils/command.js.map +0 -1
  89. package/dist/utils/env-config.d.ts +0 -27
  90. package/dist/utils/env-config.d.ts.map +0 -1
  91. package/dist/utils/env-config.js +0 -83
  92. package/dist/utils/env-config.js.map +0 -1
  93. package/dist/utils/version.d.ts +0 -5
  94. package/dist/utils/version.d.ts.map +0 -1
  95. package/dist/utils/version.js +0 -53
  96. package/dist/utils/version.js.map +0 -1
@@ -1,108 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Installer = void 0;
7
- /**
8
- * 安装执行器
9
- */
10
- const chalk_1 = __importDefault(require("chalk"));
11
- /**
12
- * 安装执行器类
13
- */
14
- class Installer {
15
- constructor(options = {}) {
16
- this.options = {
17
- dryRun: options.dryRun ?? false,
18
- auto: options.auto ?? false
19
- };
20
- }
21
- /**
22
- * 执行安装步骤
23
- */
24
- async executeSteps(steps) {
25
- const stepsExecuted = [];
26
- const stepsFailed = [];
27
- console.log();
28
- if (this.options.dryRun) {
29
- console.log(chalk_1.default.yellow('🔍 演示模式: 不会真正执行安装命令'));
30
- console.log();
31
- }
32
- for (const step of steps) {
33
- console.log(chalk_1.default.blue(`➤ ${step.description}`));
34
- // 跳过可选步骤的提示
35
- if (step.optional) {
36
- console.log(chalk_1.default.gray(' (可选步骤,可以跳过)'));
37
- }
38
- // 手动步骤
39
- if (step.manual) {
40
- console.log(chalk_1.default.cyan(` 📋 ${step.command}`));
41
- console.log(chalk_1.default.gray(' 请手动完成此步骤'));
42
- stepsExecuted.push(step.name);
43
- console.log();
44
- continue;
45
- }
46
- // 显示命令
47
- console.log(chalk_1.default.gray(` $ ${step.command}`));
48
- // Dry run 模式:不执行,只显示
49
- if (this.options.dryRun) {
50
- console.log(chalk_1.default.green(' ✓ (演示模式,未实际执行)'));
51
- stepsExecuted.push(step.name);
52
- console.log();
53
- continue;
54
- }
55
- // 实际执行模式(当前不实现,避免真正安装)
56
- // 如果需要实际执行,取消下面的注释
57
- /*
58
- try {
59
- const result = await executeCommand(step.command, { timeout: 120000 });
60
-
61
- if (result.code === 0) {
62
- console.log(chalk.green(' ✓ 完成'));
63
- stepsExecuted.push(step.name);
64
- } else {
65
- console.log(chalk.red(' ✗ 失败'));
66
- console.log(chalk.red(` Error: ${result.stderr}`));
67
- stepsFailed.push(step.name);
68
-
69
- if (!step.optional) {
70
- // 非可选步骤失败,终止安装
71
- break;
72
- }
73
- }
74
- } catch (error) {
75
- console.log(chalk.red(' ✗ 执行出错'));
76
- console.log(chalk.red(` ${error}`));
77
- stepsFailed.push(step.name);
78
-
79
- if (!step.optional) {
80
- break;
81
- }
82
- }
83
- */
84
- // 当前版本:所有非手动步骤在非 dry-run 模式下也只显示
85
- console.log(chalk_1.default.yellow(' ⚠️ 实际执行功能尚未启用(避免意外安装)'));
86
- stepsExecuted.push(step.name);
87
- console.log();
88
- }
89
- const success = stepsFailed.length === 0;
90
- const message = success
91
- ? `✅ 所有步骤完成 (${stepsExecuted.length}/${steps.length})`
92
- : `⚠️ 部分步骤失败 (${stepsFailed.length} 失败)`;
93
- return {
94
- success,
95
- message,
96
- stepsExecuted,
97
- stepsFailed
98
- };
99
- }
100
- /**
101
- * 设置选项
102
- */
103
- setOptions(options) {
104
- this.options = { ...this.options, ...options };
105
- }
106
- }
107
- exports.Installer = Installer;
108
- //# sourceMappingURL=installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/setup/installer.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 安装计划生成器
3
- */
4
- import { EnvironmentCheckResult, InstallationPlan } from './types';
5
- /**
6
- * 安装计划生成器类
7
- */
8
- export declare class InstallationPlanner {
9
- /**
10
- * 根据环境检查结果生成安装计划
11
- */
12
- generatePlan(checkResult: EnvironmentCheckResult): Promise<InstallationPlan>;
13
- /**
14
- * 生成 Node.js 安装选项
15
- */
16
- private generateNodeOptions;
17
- /**
18
- * 生成 Claude Code 安装步骤
19
- */
20
- private generateClaudeCodeSteps;
21
- }
22
- //# sourceMappingURL=planner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/setup/planner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA8B,MAAM,SAAS,CAAC;AAK/F;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBlF;;OAEG;YACW,mBAAmB;IA4KjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAWhC"}
@@ -1,213 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstallationPlanner = void 0;
4
- const volta_1 = require("./strategies/volta");
5
- const nvm_1 = require("./strategies/nvm");
6
- const node_1 = require("./strategies/node");
7
- /**
8
- * 安装计划生成器类
9
- */
10
- class InstallationPlanner {
11
- /**
12
- * 根据环境检查结果生成安装计划
13
- */
14
- async generatePlan(checkResult) {
15
- const plan = {
16
- needsNode: false,
17
- needsClaudeCode: false,
18
- nodeOptions: [],
19
- claudeCodeSteps: []
20
- };
21
- // 判断是否需要安装/升级 Node.js
22
- if (!checkResult.node.installed || !checkResult.node.versionValid) {
23
- plan.needsNode = true;
24
- plan.nodeOptions = await this.generateNodeOptions(checkResult);
25
- }
26
- // 判断是否需要安装 Claude Code
27
- if (!checkResult.claudeCode.installed) {
28
- plan.needsClaudeCode = true;
29
- plan.claudeCodeSteps = this.generateClaudeCodeSteps();
30
- }
31
- return plan;
32
- }
33
- /**
34
- * 生成 Node.js 安装选项
35
- */
36
- async generateNodeOptions(checkResult) {
37
- const options = [];
38
- // 场景1: Node.js 已安装但版本过低
39
- if (checkResult.node.installed && !checkResult.node.versionValid) {
40
- // 如果已有版本管理器,使用它升级
41
- if (checkResult.versionManagers.volta) {
42
- options.push({
43
- id: 'upgrade-via-volta',
44
- name: '使用已安装的 Volta 升级 Node.js',
45
- description: `当前版本 ${checkResult.node.version},需要 ${checkResult.requirements.nodeVersion}`,
46
- priority: 1,
47
- reason: '检测到 Volta 已安装',
48
- steps: [
49
- {
50
- name: 'install-node',
51
- description: '安装 Node.js 20 LTS',
52
- command: 'volta install node@20'
53
- }
54
- ]
55
- });
56
- }
57
- else if (checkResult.versionManagers.nvm) {
58
- options.push({
59
- id: 'upgrade-via-nvm',
60
- name: '使用已安装的 nvm 升级 Node.js',
61
- description: `当前版本 ${checkResult.node.version},需要 ${checkResult.requirements.nodeVersion}`,
62
- priority: 1,
63
- reason: '检测到 nvm 已安装',
64
- steps: [
65
- {
66
- name: 'install-node',
67
- description: '安装 Node.js 20',
68
- command: 'nvm install 20'
69
- },
70
- {
71
- name: 'use-node',
72
- description: '切换到 Node.js 20',
73
- command: 'nvm use 20'
74
- },
75
- {
76
- name: 'set-default',
77
- description: '设置为默认版本',
78
- command: 'nvm alias default 20'
79
- }
80
- ]
81
- });
82
- }
83
- else {
84
- // 没有版本管理器,提供安装版本管理器的选项
85
- options.push({
86
- id: 'upgrade-manual',
87
- name: '手动升级 Node.js',
88
- description: '访问 nodejs.org 下载最新版本',
89
- priority: 3,
90
- steps: [
91
- {
92
- name: 'download-node',
93
- description: '访问 https://nodejs.org/',
94
- command: 'open https://nodejs.org/',
95
- manual: true
96
- }
97
- ]
98
- });
99
- // 同时提供安装版本管理器的选项
100
- const voltaOptions = await new volta_1.VoltaStrategy().getOptions();
101
- const nvmOptions = await new nvm_1.NvmStrategy().getOptions();
102
- options.push(...voltaOptions, ...nvmOptions);
103
- }
104
- }
105
- // 场景2: Node.js 未安装
106
- if (!checkResult.node.installed) {
107
- // 如果已有版本管理器,使用它安装
108
- if (checkResult.versionManagers.volta) {
109
- options.push({
110
- id: 'install-via-volta',
111
- name: '使用已安装的 Volta 安装 Node.js',
112
- description: '推荐使用 Volta 管理 Node.js 版本',
113
- priority: 1,
114
- reason: '检测到 Volta 已安装',
115
- steps: [
116
- {
117
- name: 'install-node',
118
- description: '安装 Node.js 20 LTS',
119
- command: 'volta install node@20'
120
- }
121
- ]
122
- });
123
- }
124
- else if (checkResult.versionManagers.nvm) {
125
- options.push({
126
- id: 'install-via-nvm',
127
- name: '使用已安装的 nvm 安装 Node.js',
128
- description: '使用 nvm 管理 Node.js 版本',
129
- priority: 1,
130
- reason: '检测到 nvm 已安装',
131
- steps: [
132
- {
133
- name: 'install-node',
134
- description: '安装 Node.js 20',
135
- command: 'nvm install 20'
136
- },
137
- {
138
- name: 'use-node',
139
- description: '切换到 Node.js 20',
140
- command: 'nvm use 20'
141
- },
142
- {
143
- name: 'set-default',
144
- description: '设置为默认版本',
145
- command: 'nvm alias default 20'
146
- }
147
- ]
148
- });
149
- }
150
- else {
151
- // 没有版本管理器,提供多种安装选项
152
- // 选项1: 推荐安装 Volta + Node.js
153
- const voltaStrategy = new volta_1.VoltaStrategy();
154
- const voltaOptions = await voltaStrategy.getOptions();
155
- // 为 Volta 选项添加安装 Node.js 的步骤
156
- voltaOptions.forEach(option => {
157
- option.steps.push({
158
- name: 'install-node',
159
- description: '安装 Node.js 20 LTS',
160
- command: 'volta install node@20'
161
- });
162
- option.name = option.name.replace('安装 Volta', '安装 Volta + Node.js');
163
- });
164
- // 选项2: 安装 nvm + Node.js
165
- const nvmStrategy = new nvm_1.NvmStrategy();
166
- const nvmOptions = await nvmStrategy.getOptions();
167
- nvmOptions.forEach(option => {
168
- option.priority += 1; // 降低优先级
169
- option.steps.push({
170
- name: 'install-node',
171
- description: '安装 Node.js 20',
172
- command: 'nvm install 20'
173
- }, {
174
- name: 'use-node',
175
- description: '切换到 Node.js 20',
176
- command: 'nvm use 20'
177
- }, {
178
- name: 'set-default',
179
- description: '设置为默认版本',
180
- command: 'nvm alias default 20'
181
- });
182
- option.name = option.name.replace('安装 nvm', '安装 nvm + Node.js');
183
- });
184
- // 选项3: 直接安装 Node.js(无版本管理)
185
- const nodeStrategy = new node_1.NodeStrategy();
186
- const nodeOptions = await nodeStrategy.getOptions();
187
- nodeOptions.forEach(option => {
188
- option.priority += 2; // 最低优先级
189
- });
190
- options.push(...voltaOptions, ...nvmOptions, ...nodeOptions);
191
- }
192
- }
193
- // 按优先级排序
194
- options.sort((a, b) => a.priority - b.priority);
195
- return options;
196
- }
197
- /**
198
- * 生成 Claude Code 安装步骤
199
- */
200
- generateClaudeCodeSteps() {
201
- // TODO: 从官方文档获取实际的安装命令
202
- // 这里使用假设的安装方式
203
- return [
204
- {
205
- name: 'install-claude-code',
206
- description: '全局安装 Claude Code CLI',
207
- command: 'npm install -g @anthropic-ai/claude-code'
208
- }
209
- ];
210
- }
211
- }
212
- exports.InstallationPlanner = InstallationPlanner;
213
- //# sourceMappingURL=planner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/setup/planner.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * 安装策略基础类
3
- */
4
- import { InstallOption, Platform } from '../types';
5
- /**
6
- * 安装策略基类
7
- */
8
- export declare abstract class InstallStrategy {
9
- protected platform: Platform;
10
- constructor();
11
- /**
12
- * 获取安装选项
13
- */
14
- abstract getOptions(): Promise<InstallOption[]>;
15
- /**
16
- * 检查平台工具是否存在
17
- */
18
- protected checkPlatformTools(): Promise<{
19
- brew?: boolean;
20
- apt?: boolean;
21
- yum?: boolean;
22
- choco?: boolean;
23
- scoop?: boolean;
24
- }>;
25
- }
26
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/setup/strategies/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAe,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGhE;;GAEG;AACH,8BAAsB,eAAe;IACnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;;IAM7B;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAE/C;;OAEG;cACa,kBAAkB,IAAI,OAAO,CAAC;QAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CAeH"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstallStrategy = void 0;
4
- const command_1 = require("../../utils/command");
5
- /**
6
- * 安装策略基类
7
- */
8
- class InstallStrategy {
9
- constructor() {
10
- this.platform = process.platform;
11
- }
12
- /**
13
- * 检查平台工具是否存在
14
- */
15
- async checkPlatformTools() {
16
- const tools = {};
17
- if (this.platform === 'darwin') {
18
- tools.brew = await (0, command_1.commandExists)('brew');
19
- }
20
- else if (this.platform === 'linux') {
21
- tools.apt = await (0, command_1.commandExists)('apt');
22
- tools.yum = await (0, command_1.commandExists)('yum');
23
- }
24
- else if (this.platform === 'win32') {
25
- tools.choco = await (0, command_1.commandExists)('choco');
26
- tools.scoop = await (0, command_1.commandExists)('scoop');
27
- }
28
- return tools;
29
- }
30
- }
31
- exports.InstallStrategy = InstallStrategy;
32
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/setup/strategies/base.ts"],"names":[],"mappings":";;;AAIA,iDAAoD;AAEpD;;GAEG;AACH,MAAsB,eAAe;IAGnC;QACE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAoB,CAAC;IAC/C,CAAC;IAOD;;OAEG;IACO,KAAK,CAAC,kBAAkB;QAOhC,MAAM,KAAK,GAAQ,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,GAAG,MAAM,IAAA,uBAAa,EAAC,KAAK,CAAC,CAAC;YACvC,KAAK,CAAC,GAAG,GAAG,MAAM,IAAA,uBAAa,EAAC,KAAK,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,CAAC,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AApCD,0CAoCC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * 直接安装 Node.js 策略
3
- */
4
- import { InstallStrategy } from './base';
5
- import { InstallOption } from '../types';
6
- export declare class NodeStrategy extends InstallStrategy {
7
- getOptions(): Promise<InstallOption[]>;
8
- }
9
- //# sourceMappingURL=node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/setup/strategies/node.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,YAAa,SAAQ,eAAe;IACzC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAyI7C"}
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NodeStrategy = void 0;
4
- /**
5
- * 直接安装 Node.js 策略
6
- */
7
- const base_1 = require("./base");
8
- class NodeStrategy extends base_1.InstallStrategy {
9
- async getOptions() {
10
- const options = [];
11
- const tools = await this.checkPlatformTools();
12
- // macOS
13
- if (this.platform === 'darwin') {
14
- // 选项1: 官方安装器
15
- options.push({
16
- id: 'node-official-macos',
17
- name: '下载 Node.js 官方安装器(推荐)',
18
- description: '访问 nodejs.org 下载 LTS 版本',
19
- priority: 1,
20
- steps: [
21
- {
22
- name: 'download-node',
23
- description: '访问 https://nodejs.org/',
24
- command: 'open https://nodejs.org/',
25
- manual: true
26
- },
27
- {
28
- name: 'install-node',
29
- description: '下载并安装 LTS 版本 .pkg 文件',
30
- command: 'manual',
31
- manual: true
32
- }
33
- ]
34
- });
35
- // 选项2: Homebrew
36
- if (tools.brew) {
37
- options.push({
38
- id: 'node-brew',
39
- name: '使用 Homebrew 安装 Node.js',
40
- description: '通过包管理器安装',
41
- priority: 2,
42
- steps: [
43
- {
44
- name: 'install-node',
45
- description: '通过 Homebrew 安装 Node.js 20 LTS',
46
- command: 'brew install node@20'
47
- }
48
- ]
49
- });
50
- }
51
- }
52
- // Linux
53
- if (this.platform === 'linux') {
54
- // Ubuntu/Debian - NodeSource 仓库
55
- if (tools.apt) {
56
- options.push({
57
- id: 'node-nodesource-apt',
58
- name: '使用 NodeSource 仓库安装(推荐)',
59
- description: 'Ubuntu/Debian 官方推荐方式',
60
- priority: 1,
61
- steps: [
62
- {
63
- name: 'setup-repo',
64
- description: '添加 NodeSource 仓库',
65
- command: 'curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -'
66
- },
67
- {
68
- name: 'install-node',
69
- description: '安装 Node.js',
70
- command: 'sudo apt-get install -y nodejs'
71
- }
72
- ]
73
- });
74
- }
75
- // CentOS/RHEL/Fedora - NodeSource 仓库
76
- if (tools.yum) {
77
- options.push({
78
- id: 'node-nodesource-yum',
79
- name: '使用 NodeSource 仓库安装(推荐)',
80
- description: 'CentOS/RHEL/Fedora 官方推荐方式',
81
- priority: 1,
82
- steps: [
83
- {
84
- name: 'setup-repo',
85
- description: '添加 NodeSource 仓库',
86
- command: 'curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -'
87
- },
88
- {
89
- name: 'install-node',
90
- description: '安装 Node.js',
91
- command: 'sudo yum install -y nodejs'
92
- }
93
- ]
94
- });
95
- }
96
- }
97
- // Windows
98
- if (this.platform === 'win32') {
99
- // 选项1: 官方安装器
100
- options.push({
101
- id: 'node-official-windows',
102
- name: '下载 Node.js 官方安装器(推荐)',
103
- description: '访问 nodejs.org 下载 LTS 版本',
104
- priority: 1,
105
- steps: [
106
- {
107
- name: 'download-node',
108
- description: '访问 https://nodejs.org/',
109
- command: 'start https://nodejs.org/',
110
- manual: true
111
- },
112
- {
113
- name: 'install-node',
114
- description: '下载并运行 LTS 版本 .msi 安装器',
115
- command: 'manual',
116
- manual: true
117
- }
118
- ]
119
- });
120
- // 选项2: Chocolatey
121
- if (tools.choco) {
122
- options.push({
123
- id: 'node-choco',
124
- name: '使用 Chocolatey 安装 Node.js',
125
- description: '通过包管理器安装 LTS 版本',
126
- priority: 2,
127
- steps: [
128
- {
129
- name: 'install-node',
130
- description: '通过 Chocolatey 安装 Node.js LTS',
131
- command: 'choco install nodejs-lts'
132
- }
133
- ]
134
- });
135
- }
136
- }
137
- return options;
138
- }
139
- }
140
- exports.NodeStrategy = NodeStrategy;
141
- //# sourceMappingURL=node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/setup/strategies/node.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,iCAAyC;AAGzC,MAAa,YAAa,SAAQ,sBAAe;IAC/C,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,QAAQ;QACR,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,aAAa;YACb,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,eAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,OAAO,EAAE,0BAA0B;wBACnC,MAAM,EAAE,IAAI;qBACb;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,WAAW,EAAE,sBAAsB;wBACnC,OAAO,EAAE,QAAQ;wBACjB,MAAM,EAAE,IAAI;qBACb;iBACF;aACF,CAAC,CAAC;YAEH,gBAAgB;YAChB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,cAAc;4BACpB,WAAW,EAAE,+BAA+B;4BAC5C,OAAO,EAAE,sBAAsB;yBAChC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,gCAAgC;YAChC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,qBAAqB;oBACzB,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,sBAAsB;oBACnC,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,YAAY;4BAClB,WAAW,EAAE,kBAAkB;4BAC/B,OAAO,EAAE,mEAAmE;yBAC7E;wBACD;4BACE,IAAI,EAAE,cAAc;4BACpB,WAAW,EAAE,YAAY;4BACzB,OAAO,EAAE,gCAAgC;yBAC1C;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YAED,qCAAqC;YACrC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,qBAAqB;oBACzB,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,2BAA2B;oBACxC,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,YAAY;4BAClB,WAAW,EAAE,kBAAkB;4BAC/B,OAAO,EAAE,gEAAgE;yBAC1E;wBACD;4BACE,IAAI,EAAE,cAAc;4BACpB,WAAW,EAAE,YAAY;4BACzB,OAAO,EAAE,4BAA4B;yBACtC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,aAAa;YACb,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,eAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,OAAO,EAAE,2BAA2B;wBACpC,MAAM,EAAE,IAAI;qBACb;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,WAAW,EAAE,uBAAuB;wBACpC,OAAO,EAAE,QAAQ;wBACjB,MAAM,EAAE,IAAI;qBACb;iBACF;aACF,CAAC,CAAC;YAEH,kBAAkB;YAClB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,0BAA0B;oBAChC,WAAW,EAAE,iBAAiB;oBAC9B,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,cAAc;4BACpB,WAAW,EAAE,8BAA8B;4BAC3C,OAAO,EAAE,0BAA0B;yBACpC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1ID,oCA0IC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * nvm 安装策略
3
- */
4
- import { InstallStrategy } from './base';
5
- import { InstallOption } from '../types';
6
- export declare class NvmStrategy extends InstallStrategy {
7
- getOptions(): Promise<InstallOption[]>;
8
- }
9
- //# sourceMappingURL=nvm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nvm.d.ts","sourceRoot":"","sources":["../../../src/setup/strategies/nvm.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,WAAY,SAAQ,eAAe;IACxC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAoG7C"}