xray-manager 1.8.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +102 -42
  2. package/dist/cli.mjs +8587 -0
  3. package/dist/cli.mjs.map +7 -0
  4. package/package.json +13 -5
  5. package/dist/cli.d.ts +0 -11
  6. package/dist/cli.d.ts.map +0 -1
  7. package/dist/cli.js +0 -134
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/clash.d.ts +0 -20
  10. package/dist/commands/clash.d.ts.map +0 -1
  11. package/dist/commands/clash.js +0 -156
  12. package/dist/commands/clash.js.map +0 -1
  13. package/dist/commands/config.d.ts +0 -56
  14. package/dist/commands/config.d.ts.map +0 -1
  15. package/dist/commands/config.js +0 -461
  16. package/dist/commands/config.js.map +0 -1
  17. package/dist/commands/interactive.d.ts +0 -55
  18. package/dist/commands/interactive.d.ts.map +0 -1
  19. package/dist/commands/interactive.js +0 -418
  20. package/dist/commands/interactive.js.map +0 -1
  21. package/dist/commands/logs.d.ts +0 -62
  22. package/dist/commands/logs.d.ts.map +0 -1
  23. package/dist/commands/logs.js +0 -389
  24. package/dist/commands/logs.js.map +0 -1
  25. package/dist/commands/quota.d.ts +0 -54
  26. package/dist/commands/quota.d.ts.map +0 -1
  27. package/dist/commands/quota.js +0 -661
  28. package/dist/commands/quota.js.map +0 -1
  29. package/dist/commands/review.d.ts +0 -8
  30. package/dist/commands/review.d.ts.map +0 -1
  31. package/dist/commands/review.js +0 -79
  32. package/dist/commands/review.js.map +0 -1
  33. package/dist/commands/service.d.ts +0 -43
  34. package/dist/commands/service.d.ts.map +0 -1
  35. package/dist/commands/service.js +0 -202
  36. package/dist/commands/service.js.map +0 -1
  37. package/dist/commands/user.d.ts +0 -49
  38. package/dist/commands/user.d.ts.map +0 -1
  39. package/dist/commands/user.js +0 -371
  40. package/dist/commands/user.js.map +0 -1
  41. package/dist/components/dashboard-widget.d.ts +0 -21
  42. package/dist/components/dashboard-widget.d.ts.map +0 -1
  43. package/dist/components/dashboard-widget.js +0 -234
  44. package/dist/components/dashboard-widget.js.map +0 -1
  45. package/dist/components/progress-bar.d.ts +0 -67
  46. package/dist/components/progress-bar.d.ts.map +0 -1
  47. package/dist/components/progress-bar.js +0 -138
  48. package/dist/components/progress-bar.js.map +0 -1
  49. package/dist/components/user-table.d.ts +0 -8
  50. package/dist/components/user-table.d.ts.map +0 -1
  51. package/dist/components/user-table.js +0 -91
  52. package/dist/components/user-table.js.map +0 -1
  53. package/dist/config/i18n.d.ts +0 -136
  54. package/dist/config/i18n.d.ts.map +0 -1
  55. package/dist/config/i18n.js +0 -323
  56. package/dist/config/i18n.js.map +0 -1
  57. package/dist/constants/error-codes.d.ts +0 -344
  58. package/dist/constants/error-codes.d.ts.map +0 -1
  59. package/dist/constants/error-codes.js +0 -462
  60. package/dist/constants/error-codes.js.map +0 -1
  61. package/dist/constants/exit-codes.d.ts +0 -49
  62. package/dist/constants/exit-codes.d.ts.map +0 -1
  63. package/dist/constants/exit-codes.js +0 -100
  64. package/dist/constants/exit-codes.js.map +0 -1
  65. package/dist/constants/paths.d.ts +0 -63
  66. package/dist/constants/paths.d.ts.map +0 -1
  67. package/dist/constants/paths.js +0 -78
  68. package/dist/constants/paths.js.map +0 -1
  69. package/dist/constants/quota.d.ts +0 -126
  70. package/dist/constants/quota.d.ts.map +0 -1
  71. package/dist/constants/quota.js +0 -135
  72. package/dist/constants/quota.js.map +0 -1
  73. package/dist/constants/review.d.ts +0 -14
  74. package/dist/constants/review.d.ts.map +0 -1
  75. package/dist/constants/review.js +0 -33
  76. package/dist/constants/review.js.map +0 -1
  77. package/dist/constants/supported-distros.d.ts +0 -17
  78. package/dist/constants/supported-distros.d.ts.map +0 -1
  79. package/dist/constants/supported-distros.js +0 -68
  80. package/dist/constants/supported-distros.js.map +0 -1
  81. package/dist/constants/theme.d.ts +0 -34
  82. package/dist/constants/theme.d.ts.map +0 -1
  83. package/dist/constants/theme.js +0 -52
  84. package/dist/constants/theme.js.map +0 -1
  85. package/dist/constants/timeouts.d.ts +0 -84
  86. package/dist/constants/timeouts.d.ts.map +0 -1
  87. package/dist/constants/timeouts.js +0 -111
  88. package/dist/constants/timeouts.js.map +0 -1
  89. package/dist/constants/ui-symbols.d.ts +0 -47
  90. package/dist/constants/ui-symbols.d.ts.map +0 -1
  91. package/dist/constants/ui-symbols.js +0 -48
  92. package/dist/constants/ui-symbols.js.map +0 -1
  93. package/dist/services/clash-config.d.ts +0 -16
  94. package/dist/services/clash-config.d.ts.map +0 -1
  95. package/dist/services/clash-config.js +0 -107
  96. package/dist/services/clash-config.js.map +0 -1
  97. package/dist/services/config-manager.d.ts +0 -90
  98. package/dist/services/config-manager.d.ts.map +0 -1
  99. package/dist/services/config-manager.js +0 -307
  100. package/dist/services/config-manager.js.map +0 -1
  101. package/dist/services/layout-manager.d.ts +0 -94
  102. package/dist/services/layout-manager.d.ts.map +0 -1
  103. package/dist/services/layout-manager.js +0 -192
  104. package/dist/services/layout-manager.js.map +0 -1
  105. package/dist/services/log-manager.d.ts +0 -157
  106. package/dist/services/log-manager.d.ts.map +0 -1
  107. package/dist/services/log-manager.js +0 -397
  108. package/dist/services/log-manager.js.map +0 -1
  109. package/dist/services/navigation-manager.d.ts +0 -23
  110. package/dist/services/navigation-manager.d.ts.map +0 -1
  111. package/dist/services/navigation-manager.js +0 -39
  112. package/dist/services/navigation-manager.js.map +0 -1
  113. package/dist/services/platform-detector.d.ts +0 -10
  114. package/dist/services/platform-detector.d.ts.map +0 -1
  115. package/dist/services/platform-detector.js +0 -106
  116. package/dist/services/platform-detector.js.map +0 -1
  117. package/dist/services/public-ip-manager.d.ts +0 -78
  118. package/dist/services/public-ip-manager.d.ts.map +0 -1
  119. package/dist/services/public-ip-manager.js +0 -296
  120. package/dist/services/public-ip-manager.js.map +0 -1
  121. package/dist/services/quota-enforcer.d.ts +0 -86
  122. package/dist/services/quota-enforcer.d.ts.map +0 -1
  123. package/dist/services/quota-enforcer.js +0 -151
  124. package/dist/services/quota-enforcer.js.map +0 -1
  125. package/dist/services/quota-manager.d.ts +0 -101
  126. package/dist/services/quota-manager.d.ts.map +0 -1
  127. package/dist/services/quota-manager.js +0 -257
  128. package/dist/services/quota-manager.js.map +0 -1
  129. package/dist/services/review/areas/community.d.ts +0 -9
  130. package/dist/services/review/areas/community.d.ts.map +0 -1
  131. package/dist/services/review/areas/community.js +0 -59
  132. package/dist/services/review/areas/community.js.map +0 -1
  133. package/dist/services/review/areas/contribution.d.ts +0 -9
  134. package/dist/services/review/areas/contribution.d.ts.map +0 -1
  135. package/dist/services/review/areas/contribution.js +0 -107
  136. package/dist/services/review/areas/contribution.js.map +0 -1
  137. package/dist/services/review/areas/documentation.d.ts +0 -9
  138. package/dist/services/review/areas/documentation.d.ts.map +0 -1
  139. package/dist/services/review/areas/documentation.js +0 -110
  140. package/dist/services/review/areas/documentation.js.map +0 -1
  141. package/dist/services/review/areas/license.d.ts +0 -9
  142. package/dist/services/review/areas/license.d.ts.map +0 -1
  143. package/dist/services/review/areas/license.js +0 -86
  144. package/dist/services/review/areas/license.js.map +0 -1
  145. package/dist/services/review/areas/quality.d.ts +0 -9
  146. package/dist/services/review/areas/quality.d.ts.map +0 -1
  147. package/dist/services/review/areas/quality.js +0 -84
  148. package/dist/services/review/areas/quality.js.map +0 -1
  149. package/dist/services/review/areas/security.d.ts +0 -9
  150. package/dist/services/review/areas/security.d.ts.map +0 -1
  151. package/dist/services/review/areas/security.js +0 -64
  152. package/dist/services/review/areas/security.js.map +0 -1
  153. package/dist/services/review/evidence.d.ts +0 -10
  154. package/dist/services/review/evidence.d.ts.map +0 -1
  155. package/dist/services/review/evidence.js +0 -40
  156. package/dist/services/review/evidence.js.map +0 -1
  157. package/dist/services/review/recommendations-filter.d.ts +0 -12
  158. package/dist/services/review/recommendations-filter.d.ts.map +0 -1
  159. package/dist/services/review/recommendations-filter.js +0 -20
  160. package/dist/services/review/recommendations-filter.js.map +0 -1
  161. package/dist/services/review/repo-scanner.d.ts +0 -8
  162. package/dist/services/review/repo-scanner.d.ts.map +0 -1
  163. package/dist/services/review/repo-scanner.js +0 -15
  164. package/dist/services/review/repo-scanner.js.map +0 -1
  165. package/dist/services/review/report-renderer.d.ts +0 -15
  166. package/dist/services/review/report-renderer.d.ts.map +0 -1
  167. package/dist/services/review/report-renderer.js +0 -120
  168. package/dist/services/review/report-renderer.js.map +0 -1
  169. package/dist/services/review/review-engine.d.ts +0 -15
  170. package/dist/services/review/review-engine.d.ts.map +0 -1
  171. package/dist/services/review/review-engine.js +0 -61
  172. package/dist/services/review/review-engine.js.map +0 -1
  173. package/dist/services/review/summary-builder.d.ts +0 -8
  174. package/dist/services/review/summary-builder.d.ts.map +0 -1
  175. package/dist/services/review/summary-builder.js +0 -26
  176. package/dist/services/review/summary-builder.js.map +0 -1
  177. package/dist/services/screen-manager.d.ts +0 -13
  178. package/dist/services/screen-manager.d.ts.map +0 -1
  179. package/dist/services/screen-manager.js +0 -42
  180. package/dist/services/screen-manager.js.map +0 -1
  181. package/dist/services/stats-config-manager.d.ts +0 -110
  182. package/dist/services/stats-config-manager.d.ts.map +0 -1
  183. package/dist/services/stats-config-manager.js +0 -443
  184. package/dist/services/stats-config-manager.js.map +0 -1
  185. package/dist/services/systemd-manager.d.ts +0 -197
  186. package/dist/services/systemd-manager.d.ts.map +0 -1
  187. package/dist/services/systemd-manager.js +0 -458
  188. package/dist/services/systemd-manager.js.map +0 -1
  189. package/dist/services/traffic-manager.d.ts +0 -106
  190. package/dist/services/traffic-manager.d.ts.map +0 -1
  191. package/dist/services/traffic-manager.js +0 -368
  192. package/dist/services/traffic-manager.js.map +0 -1
  193. package/dist/services/user-manager.d.ts +0 -90
  194. package/dist/services/user-manager.d.ts.map +0 -1
  195. package/dist/services/user-manager.js +0 -347
  196. package/dist/services/user-manager.js.map +0 -1
  197. package/dist/services/user-metadata-manager.d.ts +0 -85
  198. package/dist/services/user-metadata-manager.d.ts.map +0 -1
  199. package/dist/services/user-metadata-manager.js +0 -181
  200. package/dist/services/user-metadata-manager.js.map +0 -1
  201. package/dist/types/config.d.ts +0 -340
  202. package/dist/types/config.d.ts.map +0 -1
  203. package/dist/types/config.js +0 -7
  204. package/dist/types/config.js.map +0 -1
  205. package/dist/types/layout.d.ts +0 -119
  206. package/dist/types/layout.d.ts.map +0 -1
  207. package/dist/types/layout.js +0 -142
  208. package/dist/types/layout.js.map +0 -1
  209. package/dist/types/platform.d.ts +0 -72
  210. package/dist/types/platform.d.ts.map +0 -1
  211. package/dist/types/platform.js +0 -38
  212. package/dist/types/platform.js.map +0 -1
  213. package/dist/types/quota.d.ts +0 -158
  214. package/dist/types/quota.d.ts.map +0 -1
  215. package/dist/types/quota.js +0 -26
  216. package/dist/types/quota.js.map +0 -1
  217. package/dist/types/review.d.ts +0 -62
  218. package/dist/types/review.d.ts.map +0 -1
  219. package/dist/types/review.js +0 -8
  220. package/dist/types/review.js.map +0 -1
  221. package/dist/types/server-config.d.ts +0 -53
  222. package/dist/types/server-config.d.ts.map +0 -1
  223. package/dist/types/server-config.js +0 -19
  224. package/dist/types/server-config.js.map +0 -1
  225. package/dist/types/service.d.ts +0 -96
  226. package/dist/types/service.d.ts.map +0 -1
  227. package/dist/types/service.js +0 -7
  228. package/dist/types/service.js.map +0 -1
  229. package/dist/types/terminal.d.ts +0 -35
  230. package/dist/types/terminal.d.ts.map +0 -1
  231. package/dist/types/terminal.js +0 -20
  232. package/dist/types/terminal.js.map +0 -1
  233. package/dist/types/ui-components.d.ts +0 -53
  234. package/dist/types/ui-components.d.ts.map +0 -1
  235. package/dist/types/ui-components.js +0 -3
  236. package/dist/types/ui-components.js.map +0 -1
  237. package/dist/types/user-metadata.d.ts +0 -43
  238. package/dist/types/user-metadata.d.ts.map +0 -1
  239. package/dist/types/user-metadata.js +0 -17
  240. package/dist/types/user-metadata.js.map +0 -1
  241. package/dist/types/user.d.ts +0 -134
  242. package/dist/types/user.d.ts.map +0 -1
  243. package/dist/types/user.js +0 -7
  244. package/dist/types/user.js.map +0 -1
  245. package/dist/utils/clipboard.d.ts +0 -21
  246. package/dist/utils/clipboard.d.ts.map +0 -1
  247. package/dist/utils/clipboard.js +0 -45
  248. package/dist/utils/clipboard.js.map +0 -1
  249. package/dist/utils/error-formatter.d.ts +0 -60
  250. package/dist/utils/error-formatter.d.ts.map +0 -1
  251. package/dist/utils/error-formatter.js +0 -244
  252. package/dist/utils/error-formatter.js.map +0 -1
  253. package/dist/utils/errors.d.ts +0 -92
  254. package/dist/utils/errors.d.ts.map +0 -1
  255. package/dist/utils/errors.js +0 -143
  256. package/dist/utils/errors.js.map +0 -1
  257. package/dist/utils/firewall.d.ts +0 -14
  258. package/dist/utils/firewall.d.ts.map +0 -1
  259. package/dist/utils/firewall.js +0 -78
  260. package/dist/utils/firewall.js.map +0 -1
  261. package/dist/utils/format.d.ts +0 -93
  262. package/dist/utils/format.d.ts.map +0 -1
  263. package/dist/utils/format.js +0 -240
  264. package/dist/utils/format.js.map +0 -1
  265. package/dist/utils/icons.d.ts +0 -53
  266. package/dist/utils/icons.d.ts.map +0 -1
  267. package/dist/utils/icons.js +0 -143
  268. package/dist/utils/icons.js.map +0 -1
  269. package/dist/utils/layout.d.ts +0 -142
  270. package/dist/utils/layout.d.ts.map +0 -1
  271. package/dist/utils/layout.js +0 -381
  272. package/dist/utils/layout.js.map +0 -1
  273. package/dist/utils/logger.d.ts +0 -160
  274. package/dist/utils/logger.d.ts.map +0 -1
  275. package/dist/utils/logger.js +0 -351
  276. package/dist/utils/logger.js.map +0 -1
  277. package/dist/utils/network.d.ts +0 -39
  278. package/dist/utils/network.d.ts.map +0 -1
  279. package/dist/utils/network.js +0 -227
  280. package/dist/utils/network.js.map +0 -1
  281. package/dist/utils/os-detection.d.ts +0 -10
  282. package/dist/utils/os-detection.d.ts.map +0 -1
  283. package/dist/utils/os-detection.js +0 -86
  284. package/dist/utils/os-detection.js.map +0 -1
  285. package/dist/utils/preflight.d.ts +0 -57
  286. package/dist/utils/preflight.d.ts.map +0 -1
  287. package/dist/utils/preflight.js +0 -215
  288. package/dist/utils/preflight.js.map +0 -1
  289. package/dist/utils/repo-scan.d.ts +0 -54
  290. package/dist/utils/repo-scan.d.ts.map +0 -1
  291. package/dist/utils/repo-scan.js +0 -165
  292. package/dist/utils/repo-scan.js.map +0 -1
  293. package/dist/utils/report-output.d.ts +0 -13
  294. package/dist/utils/report-output.d.ts.map +0 -1
  295. package/dist/utils/report-output.js +0 -33
  296. package/dist/utils/report-output.js.map +0 -1
  297. package/dist/utils/review-id.d.ts +0 -8
  298. package/dist/utils/review-id.d.ts.map +0 -1
  299. package/dist/utils/review-id.js +0 -17
  300. package/dist/utils/review-id.js.map +0 -1
  301. package/dist/utils/splash.d.ts +0 -21
  302. package/dist/utils/splash.d.ts.map +0 -1
  303. package/dist/utils/splash.js +0 -179
  304. package/dist/utils/splash.js.map +0 -1
  305. package/dist/utils/terminal.d.ts +0 -32
  306. package/dist/utils/terminal.d.ts.map +0 -1
  307. package/dist/utils/terminal.js +0 -93
  308. package/dist/utils/terminal.js.map +0 -1
  309. package/dist/utils/traffic-formatter.d.ts +0 -45
  310. package/dist/utils/traffic-formatter.d.ts.map +0 -1
  311. package/dist/utils/traffic-formatter.js +0 -131
  312. package/dist/utils/traffic-formatter.js.map +0 -1
  313. package/dist/utils/validator.d.ts +0 -102
  314. package/dist/utils/validator.d.ts.map +0 -1
  315. package/dist/utils/validator.js +0 -238
  316. package/dist/utils/validator.js.map +0 -1
  317. package/dist/utils/vless-link.d.ts +0 -27
  318. package/dist/utils/vless-link.d.ts.map +0 -1
  319. package/dist/utils/vless-link.js +0 -69
  320. package/dist/utils/vless-link.js.map +0 -1
  321. package/dist/utils/which.d.ts +0 -13
  322. package/dist/utils/which.d.ts.map +0 -1
  323. package/dist/utils/which.js +0 -28
  324. package/dist/utils/which.js.map +0 -1
@@ -1,84 +0,0 @@
1
- /**
2
- * 超时时间常量定义
3
- * @module constants/timeouts
4
- */
5
- /**
6
- * 超时配置(单位:毫秒)
7
- */
8
- export declare const TIMEOUTS: {
9
- /** systemctl 命令默认超时 */
10
- readonly SYSTEMCTL_DEFAULT: 30000;
11
- /** 服务启动超时 */
12
- readonly SERVICE_START: 15000;
13
- /** 服务停止超时(优雅关闭) */
14
- readonly SERVICE_STOP: 10000;
15
- /** 服务重启超时 */
16
- readonly SERVICE_RESTART: 25000;
17
- /** 服务状态查询超时 */
18
- readonly SERVICE_STATUS: 5000;
19
- /** 配置文件读写超时 */
20
- readonly CONFIG_IO: 5000;
21
- /** 配置备份操作超时 */
22
- readonly CONFIG_BACKUP: 10000;
23
- /** 日志查询超时 */
24
- readonly LOG_QUERY: 10000;
25
- /** 网络操作超时(下载、检查更新) */
26
- readonly NETWORK: 30000;
27
- /** 用户输入超时(交互式菜单) */
28
- readonly USER_INPUT: 60000;
29
- /** 文件系统操作超时 */
30
- readonly FILESYSTEM: 10000;
31
- /** 优雅关闭等待时间 */
32
- readonly GRACEFUL_SHUTDOWN: 10000;
33
- /** 进程杀死前等待时间 */
34
- readonly KILL_WAIT: 2000;
35
- /** 菜单刷新间隔 */
36
- readonly MENU_REFRESH: 1000;
37
- /** 状态轮询间隔 */
38
- readonly STATUS_POLL: 500;
39
- };
40
- /**
41
- * 性能要求(用于监控和测试)
42
- */
43
- export declare const PERFORMANCE_TARGETS: {
44
- /** 菜单启动时间目标 */
45
- readonly MENU_STARTUP: 500;
46
- /** 菜单导航响应时间目标 */
47
- readonly MENU_NAVIGATION: 100;
48
- /** 按键响应时间目标 */
49
- readonly KEY_RESPONSE: 50;
50
- /** 服务重启中断时间目标 */
51
- readonly SERVICE_DOWNTIME: 10000;
52
- };
53
- /**
54
- * 重试配置
55
- */
56
- export declare const RETRY_CONFIG: {
57
- /** 默认重试次数 */
58
- readonly DEFAULT_ATTEMPTS: 3;
59
- /** 重试间隔(毫秒) */
60
- readonly RETRY_DELAY: 1000;
61
- /** 指数退避基数 */
62
- readonly BACKOFF_MULTIPLIER: 2;
63
- /** 最大重试间隔 */
64
- readonly MAX_RETRY_DELAY: 10000;
65
- };
66
- /**
67
- * 计算指数退避延迟
68
- * @param attempt 当前尝试次数(从 0 开始)
69
- * @returns 延迟时间(毫秒)
70
- */
71
- export declare function getBackoffDelay(attempt: number): number;
72
- /**
73
- * 睡眠函数(用于延迟)
74
- * @param ms 毫秒数
75
- */
76
- export declare function sleep(ms: number): Promise<void>;
77
- /**
78
- * 带超时的 Promise
79
- * @param promise 原始 Promise
80
- * @param timeoutMs 超时时间(毫秒)
81
- * @param errorMessage 超时错误消息
82
- */
83
- export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, errorMessage?: string): Promise<T>;
84
- //# sourceMappingURL=timeouts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeouts.d.ts","sourceRoot":"","sources":["../../src/constants/timeouts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,uBAAuB;;IAGvB,aAAa;;IAGb,mBAAmB;;IAGnB,aAAa;;IAGb,eAAe;;IAGf,eAAe;;IAGf,eAAe;;IAGf,aAAa;;IAGb,sBAAsB;;IAGtB,oBAAoB;;IAGpB,eAAe;;IAGf,eAAe;;IAGf,gBAAgB;;IAGhB,aAAa;;IAGb,aAAa;;CAEL,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,eAAe;;IAGf,iBAAiB;;IAGjB,eAAe;;IAGf,iBAAiB;;CAET,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,aAAa;;IAGb,eAAe;;IAGf,aAAa;;IAGb,aAAa;;CAEL,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,SAAS,GACpB,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- /**
3
- * 超时时间常量定义
4
- * @module constants/timeouts
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.RETRY_CONFIG = exports.PERFORMANCE_TARGETS = exports.TIMEOUTS = void 0;
8
- exports.getBackoffDelay = getBackoffDelay;
9
- exports.sleep = sleep;
10
- exports.withTimeout = withTimeout;
11
- /**
12
- * 超时配置(单位:毫秒)
13
- */
14
- exports.TIMEOUTS = {
15
- /** systemctl 命令默认超时 */
16
- SYSTEMCTL_DEFAULT: 30000, // 30 秒
17
- /** 服务启动超时 */
18
- SERVICE_START: 15000, // 15 秒
19
- /** 服务停止超时(优雅关闭) */
20
- SERVICE_STOP: 10000, // 10 秒
21
- /** 服务重启超时 */
22
- SERVICE_RESTART: 25000, // 25 秒
23
- /** 服务状态查询超时 */
24
- SERVICE_STATUS: 5000, // 5 秒
25
- /** 配置文件读写超时 */
26
- CONFIG_IO: 5000, // 5 秒
27
- /** 配置备份操作超时 */
28
- CONFIG_BACKUP: 10000, // 10 秒
29
- /** 日志查询超时 */
30
- LOG_QUERY: 10000, // 10 秒
31
- /** 网络操作超时(下载、检查更新) */
32
- NETWORK: 30000, // 30 秒
33
- /** 用户输入超时(交互式菜单) */
34
- USER_INPUT: 60000, // 60 秒
35
- /** 文件系统操作超时 */
36
- FILESYSTEM: 10000, // 10 秒
37
- /** 优雅关闭等待时间 */
38
- GRACEFUL_SHUTDOWN: 10000, // 10 秒
39
- /** 进程杀死前等待时间 */
40
- KILL_WAIT: 2000, // 2 秒
41
- /** 菜单刷新间隔 */
42
- MENU_REFRESH: 1000, // 1 秒
43
- /** 状态轮询间隔 */
44
- STATUS_POLL: 500, // 500 毫秒
45
- };
46
- /**
47
- * 性能要求(用于监控和测试)
48
- */
49
- exports.PERFORMANCE_TARGETS = {
50
- /** 菜单启动时间目标 */
51
- MENU_STARTUP: 500, // 500ms (SC-003)
52
- /** 菜单导航响应时间目标 */
53
- MENU_NAVIGATION: 100, // 100ms (SC-002)
54
- /** 按键响应时间目标 */
55
- KEY_RESPONSE: 50, // 50ms (SC-002)
56
- /** 服务重启中断时间目标 */
57
- SERVICE_DOWNTIME: 10000, // 10s (FR-016)
58
- };
59
- /**
60
- * 重试配置
61
- */
62
- exports.RETRY_CONFIG = {
63
- /** 默认重试次数 */
64
- DEFAULT_ATTEMPTS: 3,
65
- /** 重试间隔(毫秒) */
66
- RETRY_DELAY: 1000, // 1 秒
67
- /** 指数退避基数 */
68
- BACKOFF_MULTIPLIER: 2,
69
- /** 最大重试间隔 */
70
- MAX_RETRY_DELAY: 10000, // 10 秒
71
- };
72
- /**
73
- * 计算指数退避延迟
74
- * @param attempt 当前尝试次数(从 0 开始)
75
- * @returns 延迟时间(毫秒)
76
- */
77
- function getBackoffDelay(attempt) {
78
- const delay = exports.RETRY_CONFIG.RETRY_DELAY * Math.pow(exports.RETRY_CONFIG.BACKOFF_MULTIPLIER, attempt);
79
- return Math.min(delay, exports.RETRY_CONFIG.MAX_RETRY_DELAY);
80
- }
81
- /**
82
- * 睡眠函数(用于延迟)
83
- * @param ms 毫秒数
84
- */
85
- function sleep(ms) {
86
- return new Promise((resolve) => setTimeout(resolve, ms));
87
- }
88
- /**
89
- * 带超时的 Promise
90
- * @param promise 原始 Promise
91
- * @param timeoutMs 超时时间(毫秒)
92
- * @param errorMessage 超时错误消息
93
- */
94
- async function withTimeout(promise, timeoutMs, errorMessage = '操作超时') {
95
- let timeoutId;
96
- const timeoutPromise = new Promise((_, reject) => {
97
- timeoutId = setTimeout(() => {
98
- reject(new Error(`${errorMessage} (${timeoutMs}ms)`));
99
- }, timeoutMs);
100
- });
101
- try {
102
- const result = await Promise.race([promise, timeoutPromise]);
103
- clearTimeout(timeoutId);
104
- return result;
105
- }
106
- catch (error) {
107
- clearTimeout(timeoutId);
108
- throw error;
109
- }
110
- }
111
- //# sourceMappingURL=timeouts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeouts.js","sourceRoot":"","sources":["../../src/constants/timeouts.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * UI Symbols Constants
3
- * @module constants/ui-symbols
4
- *
5
- * This file defines all text-based icons and status indicators
6
- * used throughout the CLI for universal terminal compatibility.
7
- */
8
- /**
9
- * Status icons for different message types
10
- * These replace emoji indicators with text-based alternatives
11
- */
12
- export declare const statusIcons: {
13
- readonly SUCCESS: "[OK]";
14
- readonly ERROR: "[ERROR]";
15
- readonly WARN: "[WARN]";
16
- readonly INFO: "[INFO]";
17
- readonly DEBUG: "[DEBUG]";
18
- readonly LOADING: "[...]";
19
- readonly PROGRESS: "[>>]";
20
- readonly HINT: "[TIP]";
21
- };
22
- /**
23
- * Menu icons for different CLI operations
24
- * These replace emoji in menu options with text labels
25
- */
26
- export declare const menuIcons: {
27
- readonly STATUS: "[查看]";
28
- readonly START: "[启动]";
29
- readonly STOP: "[停止]";
30
- readonly RESTART: "[重启]";
31
- readonly USER: "[用户]";
32
- readonly CONFIG: "[配置]";
33
- readonly LOGS: "[日志]";
34
- readonly LANGUAGE: "[语言]";
35
- readonly EXIT: "[退出]";
36
- readonly STATS: "[流量]";
37
- readonly QUOTA: "[配额]";
38
- readonly VIEW: "[查看]";
39
- readonly BACK: "[返回]";
40
- readonly ERROR: "[错误]";
41
- readonly WARNING: "[警告]";
42
- readonly BACKUP: "[备份]";
43
- readonly RESTORE: "[恢复]";
44
- };
45
- export type StatusIcon = (typeof statusIcons)[keyof typeof statusIcons];
46
- export type MenuIcon = (typeof menuIcons)[keyof typeof menuIcons];
47
- //# sourceMappingURL=ui-symbols.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-symbols.d.ts","sourceRoot":"","sources":["../../src/constants/ui-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;CAkBZ,CAAC;AAGX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACxE,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC"}
@@ -1,48 +0,0 @@
1
- "use strict";
2
- /**
3
- * UI Symbols Constants
4
- * @module constants/ui-symbols
5
- *
6
- * This file defines all text-based icons and status indicators
7
- * used throughout the CLI for universal terminal compatibility.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.menuIcons = exports.statusIcons = void 0;
11
- /**
12
- * Status icons for different message types
13
- * These replace emoji indicators with text-based alternatives
14
- */
15
- exports.statusIcons = {
16
- SUCCESS: '[OK]',
17
- ERROR: '[ERROR]',
18
- WARN: '[WARN]',
19
- INFO: '[INFO]',
20
- DEBUG: '[DEBUG]',
21
- LOADING: '[...]',
22
- PROGRESS: '[>>]',
23
- HINT: '[TIP]',
24
- };
25
- /**
26
- * Menu icons for different CLI operations
27
- * These replace emoji in menu options with text labels
28
- */
29
- exports.menuIcons = {
30
- STATUS: '[查看]',
31
- START: '[启动]',
32
- STOP: '[停止]',
33
- RESTART: '[重启]',
34
- USER: '[用户]',
35
- CONFIG: '[配置]',
36
- LOGS: '[日志]',
37
- LANGUAGE: '[语言]',
38
- EXIT: '[退出]',
39
- STATS: '[流量]',
40
- QUOTA: '[配额]',
41
- VIEW: '[查看]',
42
- BACK: '[返回]',
43
- ERROR: '[错误]',
44
- WARNING: '[警告]',
45
- BACKUP: '[备份]',
46
- RESTORE: '[恢复]',
47
- };
48
- //# sourceMappingURL=ui-symbols.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-symbols.js","sourceRoot":"","sources":["../../src/constants/ui-symbols.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;;GAGG;AACU,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,OAAO;CACL,CAAC;AAEX;;;GAGG;AACU,QAAA,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;CACP,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Clash config generator for VLESS links
3
- * @module services/clash-config
4
- */
5
- import { VlessLinkInfo } from '../utils/vless-link';
6
- export interface ClashConfigOptions {
7
- proxyName?: string;
8
- proxyGroupName?: string;
9
- }
10
- export interface ClashConfigResult {
11
- yaml: string;
12
- proxyName: string;
13
- proxyGroupName: string;
14
- }
15
- export declare function buildClashConfigYaml(info: VlessLinkInfo, options?: ClashConfigOptions): ClashConfigResult;
16
- //# sourceMappingURL=clash-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clash-config.d.ts","sourceRoot":"","sources":["../../src/services/clash-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAoGnB"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- /**
3
- * Clash config generator for VLESS links
4
- * @module services/clash-config
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.buildClashConfigYaml = buildClashConfigYaml;
8
- function yamlQuote(value) {
9
- const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
10
- return `"${escaped}"`;
11
- }
12
- function renderStringList(lines, indent, values) {
13
- const prefix = ' '.repeat(indent);
14
- values.forEach((value) => {
15
- lines.push(`${prefix}- ${yamlQuote(value)}`);
16
- });
17
- }
18
- function buildClashConfigYaml(info, options = {}) {
19
- const proxyName = options.proxyName || info.name || `${info.server}:${info.port}`;
20
- const proxyGroupName = options.proxyGroupName || 'PROXY';
21
- const network = (info.type || 'tcp').toLowerCase();
22
- const security = (info.security || '').toLowerCase();
23
- const lines = [];
24
- lines.push('port: 7890');
25
- lines.push('socks-port: 7891');
26
- lines.push('allow-lan: true');
27
- lines.push('mode: rule');
28
- lines.push('log-level: info');
29
- lines.push('');
30
- lines.push('proxies:');
31
- lines.push(` - name: ${yamlQuote(proxyName)}`);
32
- lines.push(' type: vless');
33
- lines.push(` server: ${yamlQuote(info.server)}`);
34
- lines.push(` port: ${info.port}`);
35
- lines.push(` uuid: ${yamlQuote(info.uuid)}`);
36
- lines.push(' udp: true');
37
- lines.push(` network: ${yamlQuote(network)}`);
38
- if (info.flow) {
39
- lines.push(` flow: ${yamlQuote(info.flow)}`);
40
- }
41
- if (security === 'reality' || security === 'tls') {
42
- lines.push(' tls: true');
43
- if (info.sni) {
44
- lines.push(` servername: ${yamlQuote(info.sni)}`);
45
- }
46
- }
47
- if (security === 'reality') {
48
- if (!info.pbk) {
49
- throw new Error('Reality 链接缺少 pbk 参数');
50
- }
51
- lines.push(' reality-opts:');
52
- lines.push(` public-key: ${yamlQuote(info.pbk)}`);
53
- if (info.sid) {
54
- lines.push(` short-id: ${yamlQuote(info.sid)}`);
55
- }
56
- if (info.spx) {
57
- lines.push(` spider-x: ${yamlQuote(info.spx)}`);
58
- }
59
- }
60
- if (info.fp) {
61
- lines.push(` client-fingerprint: ${yamlQuote(info.fp)}`);
62
- }
63
- if (info.alpn) {
64
- const list = info.alpn
65
- .split(',')
66
- .map((value) => value.trim())
67
- .filter(Boolean);
68
- if (list.length > 0) {
69
- lines.push(' alpn:');
70
- renderStringList(lines, 6, list);
71
- }
72
- }
73
- if (network === 'ws') {
74
- lines.push(' ws-opts:');
75
- if (info.path) {
76
- lines.push(` path: ${yamlQuote(info.path)}`);
77
- }
78
- if (info.host) {
79
- lines.push(' headers:');
80
- lines.push(` Host: ${yamlQuote(info.host)}`);
81
- }
82
- }
83
- if (network === 'grpc') {
84
- lines.push(' grpc-opts:');
85
- const serviceName = info.serviceName || info.path;
86
- if (serviceName) {
87
- lines.push(` grpc-service-name: ${yamlQuote(serviceName)}`);
88
- }
89
- }
90
- lines.push('');
91
- lines.push('proxy-groups:');
92
- lines.push(` - name: ${yamlQuote(proxyGroupName)}`);
93
- lines.push(' type: select');
94
- lines.push(' proxies:');
95
- lines.push(` - ${yamlQuote(proxyName)}`);
96
- lines.push(' - DIRECT');
97
- lines.push('');
98
- lines.push('rules:');
99
- lines.push(` - MATCH,${proxyGroupName}`);
100
- lines.push('');
101
- return {
102
- yaml: `${lines.join('\n')}\n`,
103
- proxyName,
104
- proxyGroupName,
105
- };
106
- }
107
- //# sourceMappingURL=clash-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clash-config.js","sourceRoot":"","sources":["../../src/services/clash-config.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- /**
2
- * ConfigManager - Xray Configuration File Management
3
- *
4
- * Provides safe interface to read, write, validate, and backup Xray config
5
- *
6
- * @module services/config-manager
7
- */
8
- import type { XrayConfig } from '../types/config';
9
- /**
10
- * ConfigManager - Safe configuration file operations
11
- */
12
- export declare class ConfigManager {
13
- private configPath;
14
- private backupDir;
15
- /**
16
- * Create a new ConfigManager
17
- *
18
- * @param configPath - Path to config file (default: /usr/local/etc/xray/config.json)
19
- */
20
- constructor(configPath?: string);
21
- /**
22
- * Read and parse config file
23
- *
24
- * @returns Parsed configuration object
25
- */
26
- readConfig(): Promise<XrayConfig>;
27
- /**
28
- * Write config to file with secure permissions
29
- *
30
- * @param config - Configuration object to write
31
- */
32
- writeConfig(config: XrayConfig): Promise<void>;
33
- /**
34
- * Validate configuration structure
35
- *
36
- * @param config - Configuration to validate
37
- * @throws Error if validation fails
38
- */
39
- validateConfig(config: XrayConfig): void;
40
- /**
41
- * Backup configuration file
42
- *
43
- * @returns Path to backup file
44
- */
45
- backupConfig(): Promise<string>;
46
- /**
47
- * List available backups
48
- *
49
- * @returns Array of backup file paths
50
- */
51
- listBackups(): Promise<string[]>;
52
- /**
53
- * Restore configuration from backup
54
- *
55
- * @param backupPath - Path to backup file
56
- */
57
- restoreConfig(backupPath: string): Promise<void>;
58
- /**
59
- * Modify a configuration item
60
- *
61
- * @param path - Dot-separated path to config item (e.g., "log.loglevel")
62
- * @param value - New value
63
- */
64
- modifyConfigItem(path: string, value: unknown): Promise<void>;
65
- /**
66
- * Get formatted configuration for display
67
- *
68
- * @returns Pretty-printed JSON string
69
- */
70
- getFormattedConfig(): Promise<string>;
71
- /**
72
- * List available backups with metadata
73
- *
74
- * @returns Array of backup info objects
75
- */
76
- listBackupsWithInfo(): Promise<Array<{
77
- path: string;
78
- filename: string;
79
- createdAt: Date;
80
- size: number;
81
- }>>;
82
- /**
83
- * Restore configuration from backup with optional service restart
84
- *
85
- * @param backupPath - Path to backup file
86
- * @param restartService - Whether to restart service after restore (default: true)
87
- */
88
- restoreFromBackup(backupPath: string, restartService?: boolean): Promise<void>;
89
- }
90
- //# sourceMappingURL=config-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/services/config-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;OAIG;gBACS,UAAU,CAAC,EAAE,MAAM;IAK/B;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAiBvC;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpD;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAgCxC;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAyBrC;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBtC;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;;;OAKG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnE;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3C;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAClC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CACzE;IAuCD;;;;;OAKG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAW3F"}