xray-manager 1.8.5 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +129 -42
  2. package/dist/cli.mjs +8598 -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
package/package.json CHANGED
@@ -1,19 +1,20 @@
1
1
  {
2
2
  "name": "xray-manager",
3
- "version": "1.8.5",
3
+ "version": "2.0.1",
4
4
  "description": "Xray 企业级管理平台 - 一键部署 + 流量配额管理 + 用户管理 | Enterprise-grade Xray management platform with one-click deployment, traffic quota, and user management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
8
- "xray-manager": "./dist/cli.js",
9
- "xm": "./dist/cli.js"
8
+ "xray-manager": "./dist/cli.mjs",
9
+ "xm": "./dist/cli.mjs"
10
10
  },
11
11
  "files": [
12
12
  "dist"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc",
16
- "dev": "tsc --watch",
15
+ "build": "tsc --noEmit && node esbuild.config.mjs",
16
+ "build:check": "tsc --noEmit",
17
+ "dev": "tsc --watch --noEmit",
17
18
  "test": "vitest run",
18
19
  "test:watch": "vitest",
19
20
  "test:coverage": "vitest run --coverage",
@@ -60,21 +61,28 @@
60
61
  "cli-table3": "^0.6.5",
61
62
  "clipboardy": "^4.0.0",
62
63
  "commander": "^12.1.0",
64
+ "fuse.js": "^7.3.0",
65
+ "ink": "^5.2.1",
63
66
  "ora": "^5.4.1",
64
67
  "qrcode-terminal": "^0.12.0",
68
+ "react": "^18.3.1",
65
69
  "update-notifier": "^7.3.1"
66
70
  },
67
71
  "devDependencies": {
68
72
  "@types/node": "^25.0.3",
69
73
  "@types/qrcode-terminal": "^0.12.2",
74
+ "@types/react": "^18.3.28",
70
75
  "@types/update-notifier": "^6.0.8",
71
76
  "@typescript-eslint/eslint-plugin": "^8.52.0",
72
77
  "@typescript-eslint/parser": "^8.52.0",
73
78
  "@vitest/coverage-v8": "^4.0.16",
74
79
  "@vitest/ui": "^4.0.16",
75
80
  "c8": "^10.1.3",
81
+ "esbuild": "^0.28.0",
76
82
  "eslint": "^9.39.2",
83
+ "ink-testing-library": "^4.0.0",
77
84
  "prettier": "^3.7.4",
85
+ "react-devtools-core": "^4.28.5",
78
86
  "typescript": "^5.9.3",
79
87
  "vitest": "^4.0.16"
80
88
  }
package/dist/cli.d.ts DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Xray Manager CLI Entry Point
4
- *
5
- * This is the main entry point for the CLI tool.
6
- * It performs preflight checks and launches the interactive menu.
7
- *
8
- * @module cli
9
- */
10
- export {};
11
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
package/dist/cli.js DELETED
@@ -1,134 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * Xray Manager CLI Entry Point
5
- *
6
- * This is the main entry point for the CLI tool.
7
- * It performs preflight checks and launches the interactive menu.
8
- *
9
- * @module cli
10
- */
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const commander_1 = require("commander");
16
- const update_notifier_1 = __importDefault(require("update-notifier"));
17
- const logger_1 = __importDefault(require("./utils/logger"));
18
- const exit_codes_1 = require("./constants/exit-codes");
19
- const preflight_1 = require("./utils/preflight");
20
- const interactive_1 = require("./commands/interactive");
21
- const review_1 = require("./commands/review");
22
- const clash_1 = require("./commands/clash");
23
- const splash_1 = require("./utils/splash");
24
- // Read package.json for version
25
- const packageJson = require('../package.json');
26
- /**
27
- * Main CLI function
28
- */
29
- async function main() {
30
- // Show splash screen animation
31
- await (0, splash_1.showSplash)(packageJson.version);
32
- // Check for updates (after splash to avoid being cleared)
33
- const notifier = (0, update_notifier_1.default)({
34
- pkg: packageJson,
35
- updateCheckInterval: 0, // Check every time
36
- });
37
- if (notifier.update) {
38
- logger_1.default.newline();
39
- notifier.notify({
40
- isGlobal: true,
41
- defer: false,
42
- });
43
- logger_1.default.newline();
44
- }
45
- // Create Commander program
46
- const program = new commander_1.Command();
47
- program
48
- .name('xray-manager')
49
- .description('Xray VPN 服务管理 CLI 工具')
50
- .version(packageJson.version, '-v, --version', '显示版本号')
51
- .helpOption('-h, --help', '显示帮助信息');
52
- // Global options
53
- program
54
- .option('--config <path>', '指定配置文件路径')
55
- .option('--service <name>', '指定服务名称', 'xray')
56
- .option('--json', '以 JSON 格式输出')
57
- .option('--no-color', '禁用彩色输出')
58
- .option('--verbose', '详细输出模式');
59
- (0, review_1.registerReviewCommand)(program);
60
- (0, clash_1.registerClashCommand)(program);
61
- // Default action: start interactive menu when no command provided
62
- program.action(async () => {
63
- const options = program.opts();
64
- // Configure logger based on options
65
- if (options.noColor) {
66
- logger_1.default.configure({ color: false });
67
- }
68
- try {
69
- // Perform preflight checks
70
- const preflightResult = await (0, preflight_1.preflightChecks)({
71
- checkSystemd: true,
72
- checkXray: false,
73
- checkConfig: false,
74
- });
75
- if (!preflightResult.passed && preflightResult.critical) {
76
- logger_1.default.error('预检查失败 - 无法启动菜单');
77
- preflightResult.errors.forEach((error) => logger_1.default.error(` • ${error}`));
78
- if (preflightResult.suggestions.length > 0) {
79
- logger_1.default.hint('建议解决方案:');
80
- preflightResult.suggestions.forEach((suggestion) => logger_1.default.info(` • ${suggestion}`));
81
- }
82
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SERVICE_ERROR);
83
- }
84
- // Show warnings but continue
85
- if (preflightResult.warnings.length > 0) {
86
- preflightResult.warnings.forEach((warning) => logger_1.default.warn(warning));
87
- logger_1.default.newline();
88
- }
89
- // Start interactive menu
90
- await (0, interactive_1.startInteractiveMenu)({
91
- configPath: options.config,
92
- serviceName: options.service,
93
- jsonOutput: options.json,
94
- verbose: options.verbose,
95
- });
96
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SUCCESS);
97
- }
98
- catch (error) {
99
- logger_1.default.error('启动菜单时出错:');
100
- logger_1.default.error(error.message);
101
- if (options.verbose && error instanceof Error) {
102
- logger_1.default.error('Stack trace:');
103
- logger_1.default.error(error.stack || 'No stack trace available');
104
- }
105
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
106
- }
107
- });
108
- // Parse and execute
109
- await program.parseAsync(process.argv);
110
- }
111
- // Handle SIGINT (Ctrl+C)
112
- process.on('SIGINT', async () => {
113
- logger_1.default.newline();
114
- logger_1.default.info('[退出] 程序已中断');
115
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SIGINT);
116
- });
117
- // Handle uncaught errors
118
- process.on('uncaughtException', async (error) => {
119
- logger_1.default.error('未捕获的异常:');
120
- logger_1.default.error(error.message);
121
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
122
- });
123
- process.on('unhandledRejection', async (reason) => {
124
- logger_1.default.error('未处理的 Promise 拒绝:');
125
- logger_1.default.error(String(reason));
126
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
127
- });
128
- // Run main function
129
- main().catch(async (error) => {
130
- logger_1.default.error('Fatal error:');
131
- logger_1.default.error(error.message);
132
- await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
133
- });
134
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Clash config export command
3
- *
4
- * @module commands/clash
5
- */
6
- import type { Command } from 'commander';
7
- interface ClashExportOptions {
8
- link?: string;
9
- outputPath?: string;
10
- proxyName?: string;
11
- json?: boolean;
12
- force?: boolean;
13
- promptLink?: boolean;
14
- promptOutputPath?: boolean;
15
- promptOverwrite?: boolean;
16
- }
17
- export declare function exportClashConfigFromLink(options?: ClashExportOptions): Promise<void>;
18
- export declare function registerClashCommand(program: Command): void;
19
- export {};
20
- //# sourceMappingURL=clash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA4FD,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C/F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqB3D"}
@@ -1,156 +0,0 @@
1
- "use strict";
2
- /**
3
- * Clash config export command
4
- *
5
- * @module commands/clash
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.exportClashConfigFromLink = exportClashConfigFromLink;
12
- exports.registerClashCommand = registerClashCommand;
13
- const prompts_1 = require("@inquirer/prompts");
14
- const fs_1 = require("fs");
15
- const path_1 = require("path");
16
- const os_1 = require("os");
17
- const chalk_1 = __importDefault(require("chalk"));
18
- const logger_1 = __importDefault(require("../utils/logger"));
19
- const paths_1 = require("../constants/paths");
20
- const vless_link_1 = require("../utils/vless-link");
21
- const clash_config_1 = require("../services/clash-config");
22
- function normalizeOutputPath(value) {
23
- const trimmed = value.trim();
24
- let path = trimmed;
25
- // 处理 ~ 开头的路径
26
- if (path.startsWith('~/')) {
27
- path = (0, path_1.join)((0, os_1.homedir)(), path.slice(2));
28
- }
29
- // 如果为空,使用默认路径
30
- if (!path) {
31
- return paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE;
32
- }
33
- return path;
34
- }
35
- async function isDirectory(path) {
36
- try {
37
- const stat = await fs_1.promises.stat(path);
38
- return stat.isDirectory();
39
- }
40
- catch {
41
- return false;
42
- }
43
- }
44
- async function fileExists(path) {
45
- try {
46
- await fs_1.promises.access(path);
47
- return true;
48
- }
49
- catch {
50
- return false;
51
- }
52
- }
53
- async function writeClashConfigFile(options) {
54
- const rawLink = options.link || '';
55
- const link = rawLink.trim();
56
- if (!link) {
57
- throw new Error('未提供 VLESS 链接');
58
- }
59
- let outputPath = normalizeOutputPath(options.outputPath || paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE);
60
- // 如果是目录,则追加默认文件名
61
- if (await isDirectory(outputPath)) {
62
- outputPath = (0, path_1.join)(outputPath, 'clash-config.yaml');
63
- }
64
- const info = (0, vless_link_1.parseVlessLink)(link);
65
- const { yaml, proxyName, proxyGroupName } = (0, clash_config_1.buildClashConfigYaml)(info, {
66
- proxyName: options.proxyName,
67
- });
68
- const exists = await fileExists(outputPath);
69
- if (exists && !options.force) {
70
- if (options.promptOverwrite) {
71
- const overwrite = await (0, prompts_1.confirm)({
72
- message: chalk_1.default.yellow(`输出文件已存在,是否覆盖?\n${outputPath}`),
73
- default: false,
74
- });
75
- if (!overwrite) {
76
- logger_1.default.info('已取消生成 Clash 配置');
77
- return null;
78
- }
79
- }
80
- else {
81
- throw new Error(`输出文件已存在: ${outputPath}`);
82
- }
83
- }
84
- await fs_1.promises.mkdir((0, path_1.dirname)(outputPath), { recursive: true });
85
- await fs_1.promises.writeFile(outputPath, yaml, 'utf8');
86
- return {
87
- outputPath,
88
- proxyName,
89
- proxyGroupName,
90
- };
91
- }
92
- async function exportClashConfigFromLink(options = {}) {
93
- try {
94
- let link = options.link;
95
- if (!link && options.promptLink) {
96
- link = await (0, prompts_1.input)({
97
- message: '请输入 VLESS 链接:',
98
- });
99
- }
100
- let outputPath = options.outputPath;
101
- if (options.promptOutputPath) {
102
- const outputInput = await (0, prompts_1.input)({
103
- message: '请输入 Clash 配置输出路径:',
104
- default: options.outputPath || paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE,
105
- });
106
- outputPath = outputInput;
107
- }
108
- const result = await writeClashConfigFile({
109
- ...options,
110
- link,
111
- outputPath,
112
- });
113
- if (!result) {
114
- return;
115
- }
116
- if (options.json) {
117
- console.log(JSON.stringify(result, null, 2));
118
- return;
119
- }
120
- logger_1.default.newline();
121
- logger_1.default.separator();
122
- console.log(chalk_1.default.bold.cyan('📄 Clash 配置已生成'));
123
- logger_1.default.separator();
124
- logger_1.default.newline();
125
- console.log(chalk_1.default.cyan(' 输出路径: ') + chalk_1.default.white(result.outputPath));
126
- console.log(chalk_1.default.cyan(' 节点名称: ') + chalk_1.default.white(result.proxyName));
127
- logger_1.default.newline();
128
- }
129
- catch (error) {
130
- logger_1.default.error(error.message);
131
- process.exit(1);
132
- }
133
- }
134
- function registerClashCommand(program) {
135
- program
136
- .command('clash')
137
- .description('从 VLESS 分享链接生成 Clash 配置文件')
138
- .option('--link <vless>', 'VLESS 分享链接')
139
- .option('--out <path>', 'Clash 配置输出路径', paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE)
140
- .option('--name <name>', '节点名称(覆盖链接内名称)')
141
- .option('--json', '以 JSON 格式输出结果')
142
- .option('-f, --force', '覆盖已存在的输出文件')
143
- .action(async (options) => {
144
- await exportClashConfigFromLink({
145
- link: options.link,
146
- outputPath: options.out,
147
- proxyName: options.name,
148
- json: options.json,
149
- force: options.force,
150
- promptLink: !options.link,
151
- promptOutputPath: false,
152
- promptOverwrite: true,
153
- });
154
- });
155
- }
156
- //# sourceMappingURL=clash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Config Command Handler
3
- *
4
- * Handles configuration-related commands (view, backup, restore, modify)
5
- *
6
- * @module commands/config
7
- */
8
- /**
9
- * Config command options
10
- */
11
- export interface ConfigCommandOptions {
12
- /** Config file path */
13
- configPath?: string;
14
- /** Service name */
15
- serviceName?: string;
16
- /** JSON output mode */
17
- json?: boolean;
18
- }
19
- /**
20
- * Display current configuration
21
- *
22
- * @param options - Command options
23
- */
24
- export declare function viewConfig(options?: ConfigCommandOptions): Promise<void>;
25
- /**
26
- * Create a configuration backup
27
- *
28
- * @param options - Command options
29
- */
30
- export declare function backupConfig(options?: ConfigCommandOptions): Promise<void>;
31
- /**
32
- * List all configuration backups
33
- *
34
- * @param options - Command options
35
- */
36
- export declare function listBackups(options?: ConfigCommandOptions): Promise<void>;
37
- /**
38
- * Restore configuration from backup
39
- *
40
- * @param options - Command options
41
- */
42
- export declare function restoreConfig(options?: ConfigCommandOptions): Promise<void>;
43
- /**
44
- * Modify configuration item
45
- *
46
- * @param options - Command options
47
- */
48
- export declare function modifyConfig(options?: ConfigCommandOptions): Promise<void>;
49
- /**
50
- * Show config management submenu
51
- *
52
- * @param options - Command options
53
- * @returns Selected action result
54
- */
55
- export declare function showConfigMenu(options?: ConfigCommandOptions): Promise<void>;
56
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;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,CAyGpF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CtF"}