xray-manager 1.0.0 → 1.1.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.
- package/README.md +86 -5
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +12 -11
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/interactive.d.ts +1 -1
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +44 -27
- package/dist/commands/interactive.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +18 -14
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/service.d.ts.map +1 -1
- package/dist/commands/service.js +9 -8
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +10 -9
- package/dist/commands/user.js.map +1 -1
- package/dist/constants/ui-symbols.d.ts +38 -0
- package/dist/constants/ui-symbols.d.ts.map +1 -0
- package/dist/constants/ui-symbols.js +39 -0
- package/dist/constants/ui-symbols.js.map +1 -0
- package/dist/types/terminal.d.ts +35 -0
- package/dist/types/terminal.d.ts.map +1 -0
- package/dist/types/terminal.js +20 -0
- package/dist/types/terminal.js.map +1 -0
- package/dist/utils/icons.d.ts +53 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/icons.js +143 -0
- package/dist/utils/icons.js.map +1 -0
- package/dist/utils/logger.d.ts +35 -14
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +139 -85
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/terminal.d.ts +32 -0
- package/dist/utils/terminal.d.ts.map +1 -0
- package/dist/utils/terminal.js +93 -0
- package/dist/utils/terminal.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
<strong>最新协议 | 安全可靠 | 5分钟部署 | 全平台支持</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
+
[](https://www.npmjs.com/package/xray-manager)
|
|
12
|
+
[](https://www.npmjs.com/package/xray-manager)
|
|
11
13
|
[](https://github.com/DanOps-1/Xray-VPN-OneClick/stargazers)
|
|
12
14
|
[](https://github.com/DanOps-1/Xray-VPN-OneClick/blob/main/LICENSE)
|
|
13
15
|
[](https://github.com/DanOps-1/Xray-VPN-OneClick/commits/main)
|
|
14
|
-
[](https://github.com/DanOps-1/Xray-VPN-OneClick)
|
|
15
16
|
|
|
16
17
|
[](https://github.com/DanOps-1/Xray-VPN-OneClick)
|
|
17
18
|
[](https://github.com/XTLS/REALITY)
|
|
@@ -277,15 +278,33 @@ vless://xxxxxxxx@YOUR_IP:443?...
|
|
|
277
278
|
|
|
278
279
|
#### 安装 CLI 工具
|
|
279
280
|
|
|
281
|
+
**方式一:从 npm 安装(推荐)⭐**
|
|
282
|
+
|
|
280
283
|
```bash
|
|
281
|
-
#
|
|
282
|
-
|
|
284
|
+
# 全局安装(推荐)
|
|
285
|
+
npm install -g xray-manager
|
|
286
|
+
|
|
287
|
+
# 或使用 npx(无需安装)
|
|
288
|
+
npx xray-manager
|
|
289
|
+
```
|
|
283
290
|
|
|
284
|
-
|
|
291
|
+
**方式二:从源代码安装**
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# 克隆仓库
|
|
295
|
+
git clone https://github.com/DanOps-1/Xray-VPN-OneClick.git
|
|
296
|
+
cd Xray-VPN-OneClick
|
|
297
|
+
|
|
298
|
+
# 安装依赖并全局安装
|
|
285
299
|
npm install
|
|
286
|
-
npm
|
|
300
|
+
sudo npm install -g .
|
|
287
301
|
```
|
|
288
302
|
|
|
303
|
+
**npm 包信息**
|
|
304
|
+
- 📦 包名: `xray-manager`
|
|
305
|
+
- 🔗 npm 主页: https://www.npmjs.com/package/xray-manager
|
|
306
|
+
- 📥 每周下载: [](https://www.npmjs.com/package/xray-manager)
|
|
307
|
+
|
|
289
308
|
#### 启动交互式菜单
|
|
290
309
|
|
|
291
310
|
```bash
|
|
@@ -341,6 +360,55 @@ xm
|
|
|
341
360
|
</tr>
|
|
342
361
|
</table>
|
|
343
362
|
|
|
363
|
+
#### 终端兼容性 🌍
|
|
364
|
+
|
|
365
|
+
CLI 工具现已支持多种终端环境,自动适配不同系统:
|
|
366
|
+
|
|
367
|
+
**🖥️ 支持的终端**
|
|
368
|
+
- ✅ **现代终端**: xterm, iTerm2, GNOME Terminal, Konsole(Unicode + 彩色)
|
|
369
|
+
- ✅ **Windows CMD**: 完全兼容(纯 ASCII 文本图标)
|
|
370
|
+
- ✅ **SSH 会话**: 自动检测并适配远程终端
|
|
371
|
+
- ✅ **传统终端**: vt100, dumb terminal(降级到 ASCII)
|
|
372
|
+
- ✅ **管道输出**: 重定向时自动切换到纯文本 + 时间戳模式
|
|
373
|
+
|
|
374
|
+
**🎨 三种输出模式**
|
|
375
|
+
|
|
376
|
+
| 模式 | 使用场景 | 特性 |
|
|
377
|
+
|------|---------|------|
|
|
378
|
+
| **RICH** | 现代终端(默认) | 彩色 + Unicode 图标 + 格式化 |
|
|
379
|
+
| **PLAIN_TTY** | 无彩色终端 | ASCII 图标 + 格式化(无彩色) |
|
|
380
|
+
| **PIPE** | 管道/日志文件 | 纯文本 + 时间戳 + 结构化输出 |
|
|
381
|
+
|
|
382
|
+
**🔧 自动检测特性**
|
|
383
|
+
- TTY 状态检测
|
|
384
|
+
- 颜色支持检测(支持 NO_COLOR 环境变量)
|
|
385
|
+
- Unicode 支持检测(基于 TERM 环境变量和平台)
|
|
386
|
+
- 终端宽度自适应(80-160 列优化)
|
|
387
|
+
|
|
388
|
+
**📐 80 列兼容**
|
|
389
|
+
|
|
390
|
+
所有 UI 元素已优化为 80 列布局,确保在各种终端宽度下正确显示:
|
|
391
|
+
- 菜单选项 + 描述 ≤ 80 列
|
|
392
|
+
- 表格和分隔符自适应终端宽度
|
|
393
|
+
- 窄终端(40-80 列)友好
|
|
394
|
+
|
|
395
|
+
**示例输出**
|
|
396
|
+
|
|
397
|
+
```
|
|
398
|
+
# 现代终端 (RICH 模式)
|
|
399
|
+
✓ 服务启动成功!
|
|
400
|
+
[查看] 查看服务状态
|
|
401
|
+
[启动] 启动服务
|
|
402
|
+
|
|
403
|
+
# Windows CMD (PLAIN_TTY 模式)
|
|
404
|
+
[OK] 服务启动成功!
|
|
405
|
+
[查看] 查看服务状态
|
|
406
|
+
[启动] 启动服务
|
|
407
|
+
|
|
408
|
+
# 管道输出 (PIPE 模式)
|
|
409
|
+
2026-01-08T10:30:45.123Z [OK] 服务启动成功
|
|
410
|
+
```
|
|
411
|
+
|
|
344
412
|
#### 菜单结构
|
|
345
413
|
|
|
346
414
|
```
|
|
@@ -694,6 +762,19 @@ sudo sysctl -p
|
|
|
694
762
|
|
|
695
763
|
## 📝 更新日志
|
|
696
764
|
|
|
765
|
+
### v1.1.0 (2026-01-08)
|
|
766
|
+
|
|
767
|
+
**CLI 用户界面优化**
|
|
768
|
+
|
|
769
|
+
- ✅ 终端能力自动检测系统(TTY/颜色/Unicode/宽度)
|
|
770
|
+
- ✅ 智能图标解析器(Unicode ↔️ ASCII 自动适配)
|
|
771
|
+
- ✅ 三种输出模式(RICH/PLAIN_TTY/PIPE)
|
|
772
|
+
- ✅ Windows CMD 完全兼容(纯 ASCII 文本图标)
|
|
773
|
+
- ✅ 所有 emoji 替换为文本标签 [标签] 格式
|
|
774
|
+
- ✅ 菜单清晰分组(服务操作/管理功能/退出)
|
|
775
|
+
- ✅ 80 列布局优化(所有 UI 元素宽度验证)
|
|
776
|
+
- ✅ 210 个测试全部通过,覆盖率 >90%
|
|
777
|
+
|
|
697
778
|
### v1.0.0 (2026-01-07)
|
|
698
779
|
|
|
699
780
|
**首次发布**
|
package/dist/cli.js
CHANGED
|
@@ -90,7 +90,7 @@ async function main() {
|
|
|
90
90
|
// Handle SIGINT (Ctrl+C)
|
|
91
91
|
process.on('SIGINT', async () => {
|
|
92
92
|
logger_1.default.newline();
|
|
93
|
-
logger_1.default.info('
|
|
93
|
+
logger_1.default.info('[退出] 程序已中断');
|
|
94
94
|
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SIGINT);
|
|
95
95
|
});
|
|
96
96
|
// Handle uncaught errors
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ClF;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CnF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqErF;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGpF"}
|
package/dist/commands/config.js
CHANGED
|
@@ -22,6 +22,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
22
22
|
const ora_1 = __importDefault(require("ora"));
|
|
23
23
|
const prompts_1 = require("@inquirer/prompts");
|
|
24
24
|
const path_1 = require("path");
|
|
25
|
+
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
25
26
|
/**
|
|
26
27
|
* Display current configuration
|
|
27
28
|
*
|
|
@@ -37,7 +38,7 @@ async function viewConfig(options = {}) {
|
|
|
37
38
|
}
|
|
38
39
|
logger_1.default.newline();
|
|
39
40
|
logger_1.default.separator();
|
|
40
|
-
console.log(chalk_1.default.bold.cyan(
|
|
41
|
+
console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.CONFIG} 当前配置`));
|
|
41
42
|
logger_1.default.separator();
|
|
42
43
|
logger_1.default.newline();
|
|
43
44
|
// Display main config sections
|
|
@@ -82,7 +83,7 @@ async function backupConfig(options = {}) {
|
|
|
82
83
|
const manager = new config_manager_1.ConfigManager(options.configPath);
|
|
83
84
|
const spinner = (0, ora_1.default)('正在备份配置...').start();
|
|
84
85
|
const backupPath = await manager.backupConfig();
|
|
85
|
-
spinner.succeed(chalk_1.default.green('
|
|
86
|
+
spinner.succeed(chalk_1.default.green('配置备份成功!'));
|
|
86
87
|
logger_1.default.newline();
|
|
87
88
|
console.log(chalk_1.default.cyan(' 备份文件: ') + chalk_1.default.white(backupPath));
|
|
88
89
|
logger_1.default.newline();
|
|
@@ -169,7 +170,7 @@ async function restoreConfig(options = {}) {
|
|
|
169
170
|
}
|
|
170
171
|
// Confirm restoration
|
|
171
172
|
const confirmed = await (0, prompts_1.confirm)({
|
|
172
|
-
message: chalk_1.default.yellow(
|
|
173
|
+
message: chalk_1.default.yellow(`确定要从备份恢复配置吗?当前配置将被覆盖(会先自动备份)。`),
|
|
173
174
|
default: false,
|
|
174
175
|
});
|
|
175
176
|
if (!confirmed) {
|
|
@@ -178,7 +179,7 @@ async function restoreConfig(options = {}) {
|
|
|
178
179
|
}
|
|
179
180
|
const spinner = (0, ora_1.default)('正在恢复配置...').start();
|
|
180
181
|
await manager.restoreConfig(targetBackup);
|
|
181
|
-
spinner.succeed(chalk_1.default.green('
|
|
182
|
+
spinner.succeed(chalk_1.default.green('配置恢复成功!'));
|
|
182
183
|
logger_1.default.newline();
|
|
183
184
|
// Ask if user wants to restart service
|
|
184
185
|
const shouldRestart = await (0, prompts_1.confirm)({
|
|
@@ -188,10 +189,10 @@ async function restoreConfig(options = {}) {
|
|
|
188
189
|
if (shouldRestart) {
|
|
189
190
|
const restartSpinner = (0, ora_1.default)('正在重启服务...').start();
|
|
190
191
|
await systemdManager.restart();
|
|
191
|
-
restartSpinner.succeed(chalk_1.default.green('
|
|
192
|
+
restartSpinner.succeed(chalk_1.default.green('服务重启成功!'));
|
|
192
193
|
}
|
|
193
194
|
else {
|
|
194
|
-
logger_1.default.
|
|
195
|
+
logger_1.default.hint('请记得手动重启服务以应用新配置');
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
catch (error) {
|
|
@@ -209,7 +210,7 @@ async function modifyConfig(options = {}) {
|
|
|
209
210
|
const manager = new config_manager_1.ConfigManager(options.configPath);
|
|
210
211
|
const systemdManager = new systemd_manager_1.SystemdManager(options.serviceName || 'xray');
|
|
211
212
|
logger_1.default.newline();
|
|
212
|
-
console.log(chalk_1.default.bold(
|
|
213
|
+
console.log(chalk_1.default.bold(`${ui_symbols_1.menuIcons.CONFIG} 配置修改`));
|
|
213
214
|
logger_1.default.newline();
|
|
214
215
|
// Common config items
|
|
215
216
|
const configItems = [
|
|
@@ -259,7 +260,7 @@ async function modifyConfig(options = {}) {
|
|
|
259
260
|
}
|
|
260
261
|
// Confirm modification
|
|
261
262
|
const confirmed = await (0, prompts_1.confirm)({
|
|
262
|
-
message: chalk_1.default.yellow(
|
|
263
|
+
message: chalk_1.default.yellow(`确定要修改配置项 "${path}" 吗?`),
|
|
263
264
|
default: false,
|
|
264
265
|
});
|
|
265
266
|
if (!confirmed) {
|
|
@@ -271,7 +272,7 @@ async function modifyConfig(options = {}) {
|
|
|
271
272
|
await manager.backupConfig();
|
|
272
273
|
// Modify
|
|
273
274
|
await manager.modifyConfigItem(path, newValue);
|
|
274
|
-
spinner.succeed(chalk_1.default.green('
|
|
275
|
+
spinner.succeed(chalk_1.default.green('配置修改成功!'));
|
|
275
276
|
logger_1.default.newline();
|
|
276
277
|
// Ask if user wants to restart service
|
|
277
278
|
const shouldRestart = await (0, prompts_1.confirm)({
|
|
@@ -281,10 +282,10 @@ async function modifyConfig(options = {}) {
|
|
|
281
282
|
if (shouldRestart) {
|
|
282
283
|
const restartSpinner = (0, ora_1.default)('正在重启服务...').start();
|
|
283
284
|
await systemdManager.restart();
|
|
284
|
-
restartSpinner.succeed(chalk_1.default.green('
|
|
285
|
+
restartSpinner.succeed(chalk_1.default.green('服务重启成功!'));
|
|
285
286
|
}
|
|
286
287
|
else {
|
|
287
|
-
logger_1.default.
|
|
288
|
+
logger_1.default.hint('请记得手动重启服务以应用新配置');
|
|
288
289
|
}
|
|
289
290
|
}
|
|
290
291
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export declare function getMainMenuOptions(): any[];
|
|
|
58
58
|
*/
|
|
59
59
|
export declare function getMenuDepth(): number;
|
|
60
60
|
/**
|
|
61
|
-
* Format a menu option
|
|
61
|
+
* Format a menu option with appropriate icon
|
|
62
62
|
*/
|
|
63
63
|
export declare function formatMenuOption(name: string, value: string): {
|
|
64
64
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgB;IAE7B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,GAAG,IAAI,MAAM;IAOb,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,KAAK,IAAI,MAAM;IAIf,SAAS,IAAI,OAAO;IAIpB,KAAK,IAAI,IAAI;CAGd;AAKD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAO7D;AAED;;GAEG;AAEH,wBAAgB,kBAAkB,IAAI,GAAG,EAAE,CAwC1C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwB7F;AAED;;GAEG;AAEH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAiEnG;AAqED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAQrD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D9E"}
|
|
@@ -28,6 +28,7 @@ const systemd_manager_1 = require("../services/systemd-manager");
|
|
|
28
28
|
const user_manager_1 = require("../services/user-manager");
|
|
29
29
|
const service_1 = require("./service");
|
|
30
30
|
const user_1 = require("./user");
|
|
31
|
+
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
31
32
|
/**
|
|
32
33
|
* Menu stack for navigation
|
|
33
34
|
*/
|
|
@@ -102,38 +103,41 @@ function formatMenuHeader(context) {
|
|
|
102
103
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
103
104
|
function getMainMenuOptions() {
|
|
104
105
|
return [
|
|
106
|
+
// Service Operations Group
|
|
105
107
|
{
|
|
106
|
-
name: chalk_1.default.cyan(
|
|
108
|
+
name: chalk_1.default.cyan(`${ui_symbols_1.menuIcons.STATUS} 查看服务状态`),
|
|
107
109
|
value: 'service-status',
|
|
108
110
|
},
|
|
109
111
|
{
|
|
110
|
-
name: chalk_1.default.green(
|
|
112
|
+
name: chalk_1.default.green(`${ui_symbols_1.menuIcons.START} 启动服务`),
|
|
111
113
|
value: 'service-start',
|
|
112
114
|
},
|
|
113
115
|
{
|
|
114
|
-
name: chalk_1.default.red(
|
|
116
|
+
name: chalk_1.default.red(`${ui_symbols_1.menuIcons.STOP} 停止服务`),
|
|
115
117
|
value: 'service-stop',
|
|
116
118
|
},
|
|
117
119
|
{
|
|
118
|
-
name: chalk_1.default.yellow(
|
|
120
|
+
name: chalk_1.default.yellow(`${ui_symbols_1.menuIcons.RESTART} 重启服务`),
|
|
119
121
|
value: 'service-restart',
|
|
120
122
|
},
|
|
121
123
|
{ type: 'separator' },
|
|
124
|
+
// Management Group
|
|
122
125
|
{
|
|
123
|
-
name: chalk_1.default.blue(
|
|
126
|
+
name: chalk_1.default.blue(`${ui_symbols_1.menuIcons.USER} 用户管理`),
|
|
124
127
|
value: 'user',
|
|
125
128
|
},
|
|
126
129
|
{
|
|
127
|
-
name: chalk_1.default.magenta(
|
|
130
|
+
name: chalk_1.default.magenta(`${ui_symbols_1.menuIcons.CONFIG} 配置管理`),
|
|
128
131
|
value: 'config',
|
|
129
132
|
},
|
|
130
133
|
{
|
|
131
|
-
name: chalk_1.default.gray(
|
|
134
|
+
name: chalk_1.default.gray(`${ui_symbols_1.menuIcons.LOGS} 查看日志`),
|
|
132
135
|
value: 'logs',
|
|
133
136
|
},
|
|
134
137
|
{ type: 'separator' },
|
|
138
|
+
// Exit Group
|
|
135
139
|
{
|
|
136
|
-
name: chalk_1.default.red(
|
|
140
|
+
name: chalk_1.default.red(`${ui_symbols_1.menuIcons.EXIT} 退出`),
|
|
137
141
|
value: 'exit',
|
|
138
142
|
},
|
|
139
143
|
];
|
|
@@ -146,19 +150,32 @@ function getMenuDepth() {
|
|
|
146
150
|
return 3;
|
|
147
151
|
}
|
|
148
152
|
/**
|
|
149
|
-
* Format a menu option
|
|
153
|
+
* Format a menu option with appropriate icon
|
|
150
154
|
*/
|
|
151
155
|
function formatMenuOption(name, value) {
|
|
152
|
-
// Add icon based on value type
|
|
156
|
+
// Add icon based on value type using menuIcons
|
|
153
157
|
let icon = '•';
|
|
154
|
-
if (value.includes('service'))
|
|
155
|
-
icon =
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
else if (value.includes('
|
|
161
|
-
icon =
|
|
158
|
+
if (value.includes('service') || value.includes('status')) {
|
|
159
|
+
icon = ui_symbols_1.menuIcons.STATUS;
|
|
160
|
+
}
|
|
161
|
+
else if (value.includes('user')) {
|
|
162
|
+
icon = ui_symbols_1.menuIcons.USER;
|
|
163
|
+
}
|
|
164
|
+
else if (value.includes('config')) {
|
|
165
|
+
icon = ui_symbols_1.menuIcons.CONFIG;
|
|
166
|
+
}
|
|
167
|
+
else if (value.includes('log')) {
|
|
168
|
+
icon = ui_symbols_1.menuIcons.LOGS;
|
|
169
|
+
}
|
|
170
|
+
else if (value.includes('start')) {
|
|
171
|
+
icon = ui_symbols_1.menuIcons.START;
|
|
172
|
+
}
|
|
173
|
+
else if (value.includes('stop')) {
|
|
174
|
+
icon = ui_symbols_1.menuIcons.STOP;
|
|
175
|
+
}
|
|
176
|
+
else if (value.includes('restart')) {
|
|
177
|
+
icon = ui_symbols_1.menuIcons.RESTART;
|
|
178
|
+
}
|
|
162
179
|
return {
|
|
163
180
|
name: `${icon} ${name}`,
|
|
164
181
|
value,
|
|
@@ -195,7 +212,7 @@ async function handleMenuSelection(selection, options) {
|
|
|
195
212
|
case 'service-stop':
|
|
196
213
|
logger_1.default.newline();
|
|
197
214
|
const confirmStop = await (0, prompts_1.confirm)({
|
|
198
|
-
message: chalk_1.default.yellow('
|
|
215
|
+
message: chalk_1.default.yellow('确定要停止服务吗?这将中断所有连接。'),
|
|
199
216
|
default: false,
|
|
200
217
|
});
|
|
201
218
|
if (confirmStop) {
|
|
@@ -209,7 +226,7 @@ async function handleMenuSelection(selection, options) {
|
|
|
209
226
|
case 'service-restart':
|
|
210
227
|
logger_1.default.newline();
|
|
211
228
|
const confirmRestart = await (0, prompts_1.confirm)({
|
|
212
|
-
message: chalk_1.default.yellow('
|
|
229
|
+
message: chalk_1.default.yellow('确定要重启服务吗?'),
|
|
213
230
|
default: true,
|
|
214
231
|
});
|
|
215
232
|
if (confirmRestart) {
|
|
@@ -243,16 +260,16 @@ async function handleUserManagementMenu(options) {
|
|
|
243
260
|
while (true) {
|
|
244
261
|
logger_1.default.newline();
|
|
245
262
|
logger_1.default.separator();
|
|
246
|
-
console.log(chalk_1.default.bold.cyan(
|
|
263
|
+
console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.USER} 用户管理`));
|
|
247
264
|
logger_1.default.separator();
|
|
248
265
|
logger_1.default.newline();
|
|
249
266
|
const userMenuOptions = [
|
|
250
|
-
{ name: chalk_1.default.cyan('
|
|
251
|
-
{ name: chalk_1.default.green('
|
|
252
|
-
{ name: chalk_1.default.red('
|
|
253
|
-
{ name: chalk_1.default.blue('
|
|
267
|
+
{ name: chalk_1.default.cyan('[列表] 查看用户列表'), value: 'user-list' },
|
|
268
|
+
{ name: chalk_1.default.green('[添加] 添加用户'), value: 'user-add' },
|
|
269
|
+
{ name: chalk_1.default.red('[删除] 删除用户'), value: 'user-delete' },
|
|
270
|
+
{ name: chalk_1.default.blue('[分享] 显示分享链接'), value: 'user-share' },
|
|
254
271
|
{ type: 'separator' },
|
|
255
|
-
{ name: chalk_1.default.gray('
|
|
272
|
+
{ name: chalk_1.default.gray('[返回] 返回主菜单'), value: 'back' },
|
|
256
273
|
];
|
|
257
274
|
const selection = await showMenu(userMenuOptions, chalk_1.default.bold('请选择操作:'));
|
|
258
275
|
switch (selection) {
|
|
@@ -299,7 +316,7 @@ async function promptContinue() {
|
|
|
299
316
|
async function handleSigInt() {
|
|
300
317
|
logger_1.default.newline();
|
|
301
318
|
const shouldExit = await (0, prompts_1.confirm)({
|
|
302
|
-
message: chalk_1.default.yellow('
|
|
319
|
+
message: chalk_1.default.yellow('确定要退出吗?'),
|
|
303
320
|
default: false,
|
|
304
321
|
});
|
|
305
322
|
return shouldExit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgFD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD9E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDhF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEhF"}
|
package/dist/commands/logs.js
CHANGED
|
@@ -17,6 +17,10 @@ const log_manager_1 = require("../services/log-manager");
|
|
|
17
17
|
const logger_1 = __importDefault(require("../utils/logger"));
|
|
18
18
|
const chalk_1 = __importDefault(require("chalk"));
|
|
19
19
|
const prompts_1 = require("@inquirer/prompts");
|
|
20
|
+
const terminal_1 = require("../utils/terminal");
|
|
21
|
+
const icons_1 = require("../utils/icons");
|
|
22
|
+
const logger_2 = require("../utils/logger");
|
|
23
|
+
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
20
24
|
/**
|
|
21
25
|
* Get color for log level
|
|
22
26
|
*
|
|
@@ -43,29 +47,29 @@ function getColorForLevel(level) {
|
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
46
|
-
* Get
|
|
50
|
+
* Get icon for log level using terminal capability detection
|
|
47
51
|
*
|
|
48
52
|
* @param level - Log level
|
|
49
|
-
* @returns
|
|
53
|
+
* @returns Icon string (Unicode or ASCII based on terminal capabilities)
|
|
50
54
|
*/
|
|
51
|
-
function
|
|
55
|
+
function getIconForLevel(level) {
|
|
56
|
+
const capabilities = (0, terminal_1.detectTerminalCapabilities)();
|
|
57
|
+
// Map systemd log levels to LogLevel enum
|
|
52
58
|
switch (level.toLowerCase()) {
|
|
53
59
|
case 'emergency':
|
|
54
60
|
case 'alert':
|
|
55
|
-
return '🚨';
|
|
56
61
|
case 'critical':
|
|
57
62
|
case 'error':
|
|
58
|
-
return
|
|
63
|
+
return (0, icons_1.resolveIcon)(logger_2.LogLevel.ERROR, capabilities);
|
|
59
64
|
case 'warning':
|
|
60
|
-
return
|
|
65
|
+
return (0, icons_1.resolveIcon)(logger_2.LogLevel.WARN, capabilities);
|
|
61
66
|
case 'notice':
|
|
62
|
-
return '📢';
|
|
63
67
|
case 'info':
|
|
64
|
-
return
|
|
68
|
+
return (0, icons_1.resolveIcon)(logger_2.LogLevel.INFO, capabilities);
|
|
65
69
|
case 'debug':
|
|
66
|
-
return
|
|
70
|
+
return (0, icons_1.resolveIcon)(logger_2.LogLevel.DEBUG, capabilities);
|
|
67
71
|
default:
|
|
68
|
-
return
|
|
72
|
+
return (0, icons_1.resolveIcon)(logger_2.LogLevel.INFO, capabilities);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
/**
|
|
@@ -76,7 +80,7 @@ function getEmojiForLevel(level) {
|
|
|
76
80
|
*/
|
|
77
81
|
function formatLogEntry(entry) {
|
|
78
82
|
const colorFn = getColorForLevel(entry.level);
|
|
79
|
-
const
|
|
83
|
+
const icon = getIconForLevel(entry.level);
|
|
80
84
|
const timestamp = entry.timestamp.toLocaleString('zh-CN', {
|
|
81
85
|
year: 'numeric',
|
|
82
86
|
month: '2-digit',
|
|
@@ -86,7 +90,7 @@ function formatLogEntry(entry) {
|
|
|
86
90
|
second: '2-digit',
|
|
87
91
|
});
|
|
88
92
|
const level = entry.level.toUpperCase().padEnd(9);
|
|
89
|
-
return `${chalk_1.default.gray(timestamp)} ${
|
|
93
|
+
return `${chalk_1.default.gray(timestamp)} ${icon} ${colorFn(level)} ${entry.message}`;
|
|
90
94
|
}
|
|
91
95
|
/**
|
|
92
96
|
* View recent logs
|
|
@@ -114,7 +118,7 @@ async function viewLogs(options = {}) {
|
|
|
114
118
|
}
|
|
115
119
|
logger_1.default.newline();
|
|
116
120
|
logger_1.default.separator();
|
|
117
|
-
console.log(chalk_1.default.bold.cyan(
|
|
121
|
+
console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} 服务日志 (${serviceName})`));
|
|
118
122
|
if (options.level) {
|
|
119
123
|
console.log(chalk_1.default.gray(` 过滤器: 级别 ≥ ${options.level}`));
|
|
120
124
|
}
|
|
@@ -156,7 +160,7 @@ async function followLogs(options = {}) {
|
|
|
156
160
|
}
|
|
157
161
|
logger_1.default.newline();
|
|
158
162
|
logger_1.default.separator();
|
|
159
|
-
console.log(chalk_1.default.bold.cyan(
|
|
163
|
+
console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} 实时日志 (${serviceName})`));
|
|
160
164
|
if (options.level) {
|
|
161
165
|
console.log(chalk_1.default.gray(` 过滤器: 级别 ≥ ${options.level}`));
|
|
162
166
|
}
|