xray-manager 1.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +798 -0
  3. package/dist/cli.d.ts +11 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +113 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/config.d.ts +49 -0
  8. package/dist/commands/config.d.ts.map +1 -0
  9. package/dist/commands/config.js +295 -0
  10. package/dist/commands/config.js.map +1 -0
  11. package/dist/commands/interactive.d.ts +83 -0
  12. package/dist/commands/interactive.d.ts.map +1 -0
  13. package/dist/commands/interactive.js +362 -0
  14. package/dist/commands/interactive.js.map +1 -0
  15. package/dist/commands/logs.d.ts +43 -0
  16. package/dist/commands/logs.d.ts.map +1 -0
  17. package/dist/commands/logs.js +257 -0
  18. package/dist/commands/logs.js.map +1 -0
  19. package/dist/commands/service.d.ts +43 -0
  20. package/dist/commands/service.d.ts.map +1 -0
  21. package/dist/commands/service.js +177 -0
  22. package/dist/commands/service.js.map +1 -0
  23. package/dist/commands/user.d.ts +43 -0
  24. package/dist/commands/user.d.ts.map +1 -0
  25. package/dist/commands/user.js +212 -0
  26. package/dist/commands/user.js.map +1 -0
  27. package/dist/constants/exit-codes.d.ts +49 -0
  28. package/dist/constants/exit-codes.d.ts.map +1 -0
  29. package/dist/constants/exit-codes.js +100 -0
  30. package/dist/constants/exit-codes.js.map +1 -0
  31. package/dist/constants/paths.d.ts +57 -0
  32. package/dist/constants/paths.d.ts.map +1 -0
  33. package/dist/constants/paths.js +72 -0
  34. package/dist/constants/paths.js.map +1 -0
  35. package/dist/constants/timeouts.d.ts +84 -0
  36. package/dist/constants/timeouts.d.ts.map +1 -0
  37. package/dist/constants/timeouts.js +111 -0
  38. package/dist/constants/timeouts.js.map +1 -0
  39. package/dist/services/config-manager.d.ts +66 -0
  40. package/dist/services/config-manager.d.ts.map +1 -0
  41. package/dist/services/config-manager.js +206 -0
  42. package/dist/services/config-manager.js.map +1 -0
  43. package/dist/services/log-manager.d.ts +113 -0
  44. package/dist/services/log-manager.d.ts.map +1 -0
  45. package/dist/services/log-manager.js +288 -0
  46. package/dist/services/log-manager.js.map +1 -0
  47. package/dist/services/systemd-manager.d.ts +197 -0
  48. package/dist/services/systemd-manager.d.ts.map +1 -0
  49. package/dist/services/systemd-manager.js +458 -0
  50. package/dist/services/systemd-manager.js.map +1 -0
  51. package/dist/services/user-manager.d.ts +63 -0
  52. package/dist/services/user-manager.d.ts.map +1 -0
  53. package/dist/services/user-manager.js +219 -0
  54. package/dist/services/user-manager.js.map +1 -0
  55. package/dist/types/config.d.ts +256 -0
  56. package/dist/types/config.d.ts.map +1 -0
  57. package/dist/types/config.js +7 -0
  58. package/dist/types/config.js.map +1 -0
  59. package/dist/types/service.d.ts +96 -0
  60. package/dist/types/service.d.ts.map +1 -0
  61. package/dist/types/service.js +7 -0
  62. package/dist/types/service.js.map +1 -0
  63. package/dist/types/user.d.ts +114 -0
  64. package/dist/types/user.d.ts.map +1 -0
  65. package/dist/types/user.js +7 -0
  66. package/dist/types/user.js.map +1 -0
  67. package/dist/utils/clipboard.d.ts +21 -0
  68. package/dist/utils/clipboard.d.ts.map +1 -0
  69. package/dist/utils/clipboard.js +45 -0
  70. package/dist/utils/clipboard.js.map +1 -0
  71. package/dist/utils/format.d.ts +93 -0
  72. package/dist/utils/format.d.ts.map +1 -0
  73. package/dist/utils/format.js +242 -0
  74. package/dist/utils/format.js.map +1 -0
  75. package/dist/utils/logger.d.ts +113 -0
  76. package/dist/utils/logger.d.ts.map +1 -0
  77. package/dist/utils/logger.js +260 -0
  78. package/dist/utils/logger.js.map +1 -0
  79. package/dist/utils/preflight.d.ts +57 -0
  80. package/dist/utils/preflight.d.ts.map +1 -0
  81. package/dist/utils/preflight.js +215 -0
  82. package/dist/utils/preflight.js.map +1 -0
  83. package/dist/utils/validator.d.ts +102 -0
  84. package/dist/utils/validator.d.ts.map +1 -0
  85. package/dist/utils/validator.js +238 -0
  86. package/dist/utils/validator.js.map +1 -0
  87. package/dist/utils/which.d.ts +13 -0
  88. package/dist/utils/which.d.ts.map +1 -0
  89. package/dist/utils/which.js +28 -0
  90. package/dist/utils/which.js.map +1 -0
  91. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Service Command Handler
3
+ *
4
+ * Handles service-related commands (status, start, stop, restart)
5
+ *
6
+ * @module commands/service
7
+ */
8
+ /**
9
+ * Service command options
10
+ */
11
+ export interface ServiceCommandOptions {
12
+ /** Service name (default: xray) */
13
+ service?: string;
14
+ /** JSON output mode */
15
+ json?: boolean;
16
+ /** Verbose mode */
17
+ verbose?: boolean;
18
+ }
19
+ /**
20
+ * Display service status
21
+ *
22
+ * @param options - Command options
23
+ */
24
+ export declare function displayServiceStatus(options?: ServiceCommandOptions): Promise<void>;
25
+ /**
26
+ * Start service
27
+ *
28
+ * @param options - Command options
29
+ */
30
+ export declare function startService(options?: ServiceCommandOptions): Promise<void>;
31
+ /**
32
+ * Stop service
33
+ *
34
+ * @param options - Command options
35
+ */
36
+ export declare function stopService(options?: ServiceCommandOptions): Promise<void>;
37
+ /**
38
+ * Restart service
39
+ *
40
+ * @param options - Command options
41
+ */
42
+ export declare function restartService(options?: ServiceCommandOptions): Promise<void>;
43
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D7F;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCvF"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /**
3
+ * Service Command Handler
4
+ *
5
+ * Handles service-related commands (status, start, stop, restart)
6
+ *
7
+ * @module commands/service
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.displayServiceStatus = displayServiceStatus;
14
+ exports.startService = startService;
15
+ exports.stopService = stopService;
16
+ exports.restartService = restartService;
17
+ const systemd_manager_1 = require("../services/systemd-manager");
18
+ const logger_1 = __importDefault(require("../utils/logger"));
19
+ const chalk_1 = __importDefault(require("chalk"));
20
+ const ora_1 = __importDefault(require("ora"));
21
+ /**
22
+ * Display service status
23
+ *
24
+ * @param options - Command options
25
+ */
26
+ async function displayServiceStatus(options = {}) {
27
+ const serviceName = options.service || 'xray';
28
+ const manager = new systemd_manager_1.SystemdManager(serviceName);
29
+ try {
30
+ const spinner = (0, ora_1.default)(`正在获取 ${serviceName} 服务状态...`).start();
31
+ const status = await manager.getStatus();
32
+ spinner.stop();
33
+ if (options.json) {
34
+ // JSON 输出模式
35
+ console.log(JSON.stringify(status, null, 2));
36
+ return;
37
+ }
38
+ // 格式化显示
39
+ logger_1.default.newline();
40
+ logger_1.default.separator();
41
+ console.log(chalk_1.default.bold.cyan(`📊 服务状态: ${serviceName}`));
42
+ logger_1.default.separator();
43
+ logger_1.default.newline();
44
+ // 状态指示器
45
+ const statusIcon = status.healthy ? '🟢' : status.active ? '🟡' : '🔴';
46
+ const statusText = status.healthy
47
+ ? chalk_1.default.green('运行中')
48
+ : status.active
49
+ ? chalk_1.default.yellow(status.subState)
50
+ : chalk_1.default.red('已停止');
51
+ console.log(`${statusIcon} 状态: ${statusText}`);
52
+ console.log(` 活动状态: ${chalk_1.default.cyan(status.activeState)}`);
53
+ console.log(` 子状态: ${chalk_1.default.cyan(status.subState)}`);
54
+ console.log(` 已加载: ${status.loaded ? chalk_1.default.green('是') : chalk_1.default.red('否')}`);
55
+ if (status.pid) {
56
+ console.log(` 进程 PID: ${chalk_1.default.cyan(status.pid)}`);
57
+ }
58
+ if (status.memory) {
59
+ console.log(` 内存占用: ${chalk_1.default.cyan(status.memory)}`);
60
+ }
61
+ if (status.uptime) {
62
+ console.log(` 运行时长: ${chalk_1.default.cyan(status.uptime)}`);
63
+ }
64
+ if (status.restarts !== undefined && status.restarts > 0) {
65
+ console.log(` 重启次数: ${chalk_1.default.yellow(status.restarts)}`);
66
+ }
67
+ logger_1.default.newline();
68
+ }
69
+ catch (error) {
70
+ if (options.json) {
71
+ console.error(JSON.stringify({ error: error.message }));
72
+ process.exit(1);
73
+ }
74
+ else {
75
+ logger_1.default.error(error.message);
76
+ process.exit(1);
77
+ }
78
+ }
79
+ }
80
+ /**
81
+ * Start service
82
+ *
83
+ * @param options - Command options
84
+ */
85
+ async function startService(options = {}) {
86
+ const serviceName = options.service || 'xray';
87
+ const manager = new systemd_manager_1.SystemdManager(serviceName);
88
+ try {
89
+ const spinner = (0, ora_1.default)(`正在启动 ${serviceName} 服务...`).start();
90
+ const result = await manager.start();
91
+ if (result.success) {
92
+ spinner.succeed(chalk_1.default.green(`✅ ${serviceName} 服务启动成功!`));
93
+ if (options.verbose) {
94
+ console.log(chalk_1.default.gray(` 耗时: ${result.duration}ms`));
95
+ }
96
+ }
97
+ else {
98
+ spinner.fail(chalk_1.default.red(`❌ ${serviceName} 服务启动失败`));
99
+ if (result.stderr) {
100
+ logger_1.default.error(result.stderr);
101
+ }
102
+ process.exit(1);
103
+ }
104
+ }
105
+ catch (error) {
106
+ logger_1.default.error(error.message);
107
+ process.exit(1);
108
+ }
109
+ }
110
+ /**
111
+ * Stop service
112
+ *
113
+ * @param options - Command options
114
+ */
115
+ async function stopService(options = {}) {
116
+ const serviceName = options.service || 'xray';
117
+ const manager = new systemd_manager_1.SystemdManager(serviceName);
118
+ try {
119
+ const spinner = (0, ora_1.default)(`正在停止 ${serviceName} 服务...`).start();
120
+ const result = await manager.stop();
121
+ if (result.success) {
122
+ spinner.succeed(chalk_1.default.green(`✅ ${serviceName} 服务已停止`));
123
+ if (options.verbose) {
124
+ console.log(chalk_1.default.gray(` 耗时: ${result.duration}ms`));
125
+ }
126
+ }
127
+ else {
128
+ spinner.fail(chalk_1.default.red(`❌ ${serviceName} 服务停止失败`));
129
+ if (result.stderr) {
130
+ logger_1.default.error(result.stderr);
131
+ }
132
+ process.exit(1);
133
+ }
134
+ }
135
+ catch (error) {
136
+ logger_1.default.error(error.message);
137
+ process.exit(1);
138
+ }
139
+ }
140
+ /**
141
+ * Restart service
142
+ *
143
+ * @param options - Command options
144
+ */
145
+ async function restartService(options = {}) {
146
+ const serviceName = options.service || 'xray';
147
+ const manager = new systemd_manager_1.SystemdManager(serviceName);
148
+ try {
149
+ // 显示预估停机时间
150
+ const estimatedDowntime = manager.estimateDowntime();
151
+ logger_1.default.info(`预计停机时间: ${chalk_1.default.cyan(`${estimatedDowntime / 1000}秒`)}`);
152
+ const spinner = (0, ora_1.default)(`正在重启 ${serviceName} 服务...`).start();
153
+ const result = await manager.restart();
154
+ if (result.success) {
155
+ spinner.succeed(chalk_1.default.green(`✅ ${serviceName} 服务重启成功!`));
156
+ if (result.downtime) {
157
+ const downtimeSeconds = (result.downtime / 1000).toFixed(2);
158
+ console.log(chalk_1.default.gray(` 实际停机时间: ${downtimeSeconds}秒`));
159
+ }
160
+ if (options.verbose) {
161
+ console.log(chalk_1.default.gray(` 总耗时: ${result.duration}ms`));
162
+ }
163
+ }
164
+ else {
165
+ spinner.fail(chalk_1.default.red(`❌ ${serviceName} 服务重启失败`));
166
+ if (result.stderr) {
167
+ logger_1.default.error(result.stderr);
168
+ }
169
+ process.exit(1);
170
+ }
171
+ }
172
+ catch (error) {
173
+ logger_1.default.error(error.message);
174
+ process.exit(1);
175
+ }
176
+ }
177
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AA0BH,oDA+DC;AAOD,oCA0BC;AAOD,kCA0BC;AAOD,wCAmCC;AAnMD,iEAA6D;AAC7D,6DAAqC;AACrC,kDAA0B;AAC1B,8CAAsB;AAgBtB;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,QAAQ,WAAW,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAEzC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,YAAY;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,QAAQ;QACR,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC;QACxD,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,QAAQ;QACR,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO;YAC/B,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,MAAM;gBACb,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,QAAQ,UAAU,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,WAAW,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE5E,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,cAAc,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,YAAY,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,YAAY,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,YAAY,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,UAAiC,EAAE;IACpE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,QAAQ,WAAW,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,WAAW,UAAU,CAAC,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,WAAW,SAAS,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAAC,UAAiC,EAAE;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,QAAQ,WAAW,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,WAAW,QAAQ,CAAC,CAAC,CAAC;YAEvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,WAAW,SAAS,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,UAAiC,EAAE;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,WAAW;QACX,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACrD,gBAAM,CAAC,IAAI,CAAC,WAAW,eAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,QAAQ,WAAW,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAEvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,WAAW,UAAU,CAAC,CAAC,CAAC;YAEzD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,eAAe,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,WAAW,SAAS,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * User Command Handler
3
+ *
4
+ * Handles user-related commands (list, add, delete, show)
5
+ *
6
+ * @module commands/user
7
+ */
8
+ /**
9
+ * User command options
10
+ */
11
+ export interface UserCommandOptions {
12
+ /** Config file path */
13
+ configPath?: string;
14
+ /** Service name */
15
+ serviceName?: string;
16
+ /** JSON output mode */
17
+ json?: boolean;
18
+ }
19
+ /**
20
+ * List all users
21
+ *
22
+ * @param options - Command options
23
+ */
24
+ export declare function listUsers(options?: UserCommandOptions): Promise<void>;
25
+ /**
26
+ * Add a new user
27
+ *
28
+ * @param options - Command options
29
+ */
30
+ export declare function addUser(options?: UserCommandOptions): Promise<void>;
31
+ /**
32
+ * Delete a user
33
+ *
34
+ * @param options - Command options
35
+ */
36
+ export declare function deleteUser(options?: UserCommandOptions): Promise<void>;
37
+ /**
38
+ * Show user share information
39
+ *
40
+ * @param options - Command options
41
+ */
42
+ export declare function showUserShare(options?: UserCommandOptions): Promise<void>;
43
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,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,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC/E;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDhF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DnF"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ /**
3
+ * User Command Handler
4
+ *
5
+ * Handles user-related commands (list, add, delete, show)
6
+ *
7
+ * @module commands/user
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.listUsers = listUsers;
14
+ exports.addUser = addUser;
15
+ exports.deleteUser = deleteUser;
16
+ exports.showUserShare = showUserShare;
17
+ const user_manager_1 = require("../services/user-manager");
18
+ const format_1 = require("../utils/format");
19
+ const clipboard_1 = require("../utils/clipboard");
20
+ const logger_1 = __importDefault(require("../utils/logger"));
21
+ const chalk_1 = __importDefault(require("chalk"));
22
+ const ora_1 = __importDefault(require("ora"));
23
+ const prompts_1 = require("@inquirer/prompts");
24
+ /**
25
+ * List all users
26
+ *
27
+ * @param options - Command options
28
+ */
29
+ async function listUsers(options = {}) {
30
+ try {
31
+ const manager = new user_manager_1.UserManager(options.configPath, options.serviceName);
32
+ const users = await manager.listUsers();
33
+ if (options.json) {
34
+ console.log(JSON.stringify(users, null, 2));
35
+ return;
36
+ }
37
+ logger_1.default.newline();
38
+ logger_1.default.separator();
39
+ console.log(chalk_1.default.bold.cyan(`👥 用户列表 (共 ${users.length} 个用户)`));
40
+ logger_1.default.separator();
41
+ logger_1.default.newline();
42
+ if (users.length === 0) {
43
+ console.log(chalk_1.default.gray(' 暂无用户'));
44
+ logger_1.default.newline();
45
+ return;
46
+ }
47
+ // Display users in table format
48
+ for (const user of users) {
49
+ const maskedId = (0, format_1.maskSensitiveValue)(user.id);
50
+ console.log(chalk_1.default.cyan(` 📧 ${user.email}`));
51
+ console.log(chalk_1.default.gray(` UUID: ${maskedId}`));
52
+ console.log(chalk_1.default.gray(` 等级: ${user.level}`));
53
+ if (user.flow) {
54
+ console.log(chalk_1.default.gray(` Flow: ${user.flow}`));
55
+ }
56
+ logger_1.default.newline();
57
+ }
58
+ }
59
+ catch (error) {
60
+ logger_1.default.error(error.message);
61
+ process.exit(1);
62
+ }
63
+ }
64
+ /**
65
+ * Add a new user
66
+ *
67
+ * @param options - Command options
68
+ */
69
+ async function addUser(options = {}) {
70
+ try {
71
+ const manager = new user_manager_1.UserManager(options.configPath, options.serviceName);
72
+ // Prompt for email
73
+ const email = await (0, prompts_1.input)({
74
+ message: '请输入用户邮箱:',
75
+ validate: (value) => {
76
+ if (!value || !value.includes('@')) {
77
+ return '请输入有效的邮箱地址';
78
+ }
79
+ return true;
80
+ },
81
+ });
82
+ // Prompt for level
83
+ const levelStr = await (0, prompts_1.input)({
84
+ message: '请输入用户等级 (默认 0):',
85
+ default: '0',
86
+ });
87
+ const level = parseInt(levelStr, 10);
88
+ const spinner = (0, ora_1.default)('正在添加用户...').start();
89
+ const user = await manager.addUser({ email, level });
90
+ spinner.succeed(chalk_1.default.green('✅ 用户添加成功!'));
91
+ logger_1.default.newline();
92
+ console.log(chalk_1.default.cyan(' 📧 邮箱: ') + chalk_1.default.white(user.email));
93
+ console.log(chalk_1.default.cyan(' 🆔 UUID: ') + chalk_1.default.white(user.id));
94
+ console.log(chalk_1.default.cyan(' 📊 等级: ') + chalk_1.default.white(user.level));
95
+ logger_1.default.newline();
96
+ logger_1.default.success('服务已自动重启');
97
+ }
98
+ catch (error) {
99
+ logger_1.default.error(error.message);
100
+ process.exit(1);
101
+ }
102
+ }
103
+ /**
104
+ * Delete a user
105
+ *
106
+ * @param options - Command options
107
+ */
108
+ async function deleteUser(options = {}) {
109
+ try {
110
+ const manager = new user_manager_1.UserManager(options.configPath, options.serviceName);
111
+ // List users first
112
+ const users = await manager.listUsers();
113
+ if (users.length === 0) {
114
+ logger_1.default.warn('暂无用户可删除');
115
+ return;
116
+ }
117
+ logger_1.default.newline();
118
+ console.log(chalk_1.default.bold('📋 现有用户:'));
119
+ users.forEach((u, i) => {
120
+ console.log(` ${i + 1}. ${u.email} (${(0, format_1.maskSensitiveValue)(u.id)})`);
121
+ });
122
+ logger_1.default.newline();
123
+ // Prompt for user ID
124
+ const userId = await (0, prompts_1.input)({
125
+ message: '请输入要删除的用户 UUID (或输入序号):',
126
+ });
127
+ // Check if input is a number (index)
128
+ let targetId = userId;
129
+ const index = parseInt(userId, 10) - 1;
130
+ if (!isNaN(index) && index >= 0 && index < users.length) {
131
+ targetId = users[index].id;
132
+ }
133
+ // Confirm deletion
134
+ const confirmed = await (0, prompts_1.confirm)({
135
+ message: chalk_1.default.yellow(`⚠️ 确定要删除用户吗?此操作不可恢复。`),
136
+ default: false,
137
+ });
138
+ if (!confirmed) {
139
+ logger_1.default.info('已取消删除操作');
140
+ return;
141
+ }
142
+ const spinner = (0, ora_1.default)('正在删除用户...').start();
143
+ await manager.deleteUser(targetId);
144
+ spinner.succeed(chalk_1.default.green('✅ 用户删除成功!'));
145
+ logger_1.default.success('服务已自动重启');
146
+ }
147
+ catch (error) {
148
+ logger_1.default.error(error.message);
149
+ process.exit(1);
150
+ }
151
+ }
152
+ /**
153
+ * Show user share information
154
+ *
155
+ * @param options - Command options
156
+ */
157
+ async function showUserShare(options = {}) {
158
+ try {
159
+ const manager = new user_manager_1.UserManager(options.configPath, options.serviceName);
160
+ // List users first
161
+ const users = await manager.listUsers();
162
+ if (users.length === 0) {
163
+ logger_1.default.warn('暂无用户');
164
+ return;
165
+ }
166
+ logger_1.default.newline();
167
+ console.log(chalk_1.default.bold('📋 现有用户:'));
168
+ users.forEach((u, i) => {
169
+ console.log(` ${i + 1}. ${u.email}`);
170
+ });
171
+ logger_1.default.newline();
172
+ // Prompt for user ID
173
+ const userId = await (0, prompts_1.input)({
174
+ message: '请输入要查看的用户 UUID (或输入序号):',
175
+ });
176
+ // Check if input is a number (index)
177
+ let targetId = userId;
178
+ const index = parseInt(userId, 10) - 1;
179
+ if (!isNaN(index) && index >= 0 && index < users.length) {
180
+ targetId = users[index].id;
181
+ }
182
+ const shareInfo = await manager.getShareInfo(targetId);
183
+ if (options.json) {
184
+ console.log(JSON.stringify(shareInfo, null, 2));
185
+ return;
186
+ }
187
+ logger_1.default.newline();
188
+ logger_1.default.separator();
189
+ console.log(chalk_1.default.bold.cyan('📤 分享信息'));
190
+ logger_1.default.separator();
191
+ logger_1.default.newline();
192
+ console.log(chalk_1.default.cyan(' 邮箱: ') + chalk_1.default.white(shareInfo.user.email));
193
+ console.log(chalk_1.default.cyan(' UUID: ') + chalk_1.default.white(shareInfo.user.id));
194
+ logger_1.default.newline();
195
+ console.log(chalk_1.default.cyan(' VLESS 链接:'));
196
+ console.log(chalk_1.default.white(` ${shareInfo.shareLink}`));
197
+ logger_1.default.newline();
198
+ // Try to copy to clipboard
199
+ const copied = await (0, clipboard_1.copyToClipboard)(shareInfo.shareLink);
200
+ if (copied) {
201
+ logger_1.default.success('✅ 链接已复制到剪贴板');
202
+ }
203
+ else {
204
+ logger_1.default.info('💡 可以手动复制上方链接');
205
+ }
206
+ }
207
+ catch (error) {
208
+ logger_1.default.error(error.message);
209
+ process.exit(1);
210
+ }
211
+ }
212
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 标准化退出代码
3
+ * @module constants/exit-codes
4
+ */
5
+ /**
6
+ * CLI 工具退出代码常量
7
+ * 遵循 Unix/Linux 退出代码规范
8
+ */
9
+ export declare const ExitCode: {
10
+ /** 成功 */
11
+ readonly SUCCESS: 0;
12
+ /** 通用错误 */
13
+ readonly GENERAL_ERROR: 1;
14
+ /** 参数错误 - 无效的命令行参数或选项 */
15
+ readonly INVALID_ARGUMENT: 2;
16
+ /** 配置错误 - 配置文件错误、缺失或无法解析 */
17
+ readonly CONFIG_ERROR: 3;
18
+ /** 权限错误 - 需要 root/sudo 权限但未提供 */
19
+ readonly PERMISSION_ERROR: 4;
20
+ /** 服务错误 - systemd 服务操作失败 */
21
+ readonly SERVICE_ERROR: 5;
22
+ /** 网络错误 - 网络连接失败或超时 */
23
+ readonly NETWORK_ERROR: 6;
24
+ /** 文件错误 - 文件读写操作失败 */
25
+ readonly FILE_ERROR: 7;
26
+ /** 验证错误 - 输入验证失败(邮箱、UUID 等) */
27
+ readonly VALIDATION_ERROR: 8;
28
+ /** 未找到 - 资源不存在(用户、服务等) */
29
+ readonly NOT_FOUND: 9;
30
+ /** 用户中断 - Ctrl+C 中断程序执行 */
31
+ readonly SIGINT: 130;
32
+ };
33
+ /**
34
+ * 退出代码类型
35
+ */
36
+ export type ExitCodeType = (typeof ExitCode)[keyof typeof ExitCode];
37
+ /**
38
+ * 退出代码到描述的映射
39
+ */
40
+ export declare const ExitCodeDescription: Record<number, string>;
41
+ /**
42
+ * 根据错误类型获取退出代码
43
+ */
44
+ export declare function getExitCodeForError(error: Error): ExitCodeType;
45
+ /**
46
+ * 优雅退出(清理资源后退出)
47
+ */
48
+ export declare function gracefulExit(code: ExitCodeType, cleanup?: () => Promise<void>): Promise<never>;
49
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/constants/exit-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,SAAS;;IAGT,WAAW;;IAGX,yBAAyB;;IAGzB,4BAA4B;;IAG5B,iCAAiC;;IAGjC,4BAA4B;;IAG5B,uBAAuB;;IAGvB,sBAAsB;;IAGtB,+BAA+B;;IAG/B,0BAA0B;;IAG1B,2BAA2B;;CAEnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CA4B9D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAUpG"}