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,340 +0,0 @@
1
- /**
2
- * Xray 配置文件类型定义
3
- * @module types/config
4
- */
5
- /**
6
- * Xray 配置文件顶层结构
7
- * 对应文件: /usr/local/etc/xray/config.json
8
- */
9
- export interface XrayConfig {
10
- /** 日志配置 */
11
- log: LogConfig;
12
- /** 入站连接配置 */
13
- inbounds: Inbound[];
14
- /** 出站连接配置 */
15
- outbounds: Outbound[];
16
- /** 路由规则 */
17
- routing?: RoutingConfig;
18
- /** DNS 配置 */
19
- dns?: DnsConfig;
20
- /** Policy 配置(用于统计等功能) */
21
- policy?: PolicyConfig;
22
- }
23
- /**
24
- * 日志配置
25
- */
26
- export interface LogConfig {
27
- /** 日志级别: debug, info, warning, error, none */
28
- loglevel: 'debug' | 'info' | 'warning' | 'error' | 'none';
29
- /** 访问日志路径(空字符串表示不记录) */
30
- access: string;
31
- /** 错误日志路径(空字符串表示不记录) */
32
- error: string;
33
- }
34
- /**
35
- * 入站连接配置(服务端监听)
36
- */
37
- export interface Inbound {
38
- /** 监听端口 */
39
- port: number;
40
- /** 监听地址(默认 0.0.0.0) */
41
- listen?: string;
42
- /** 协议类型: vless, vmess, trojan, shadowsocks 等 */
43
- protocol: 'vless' | 'vmess' | 'trojan' | 'shadowsocks';
44
- /** 协议特定配置 */
45
- settings: InboundSettings;
46
- /** 流传输配置(TLS, TCP, WebSocket 等) */
47
- streamSettings?: StreamSettings;
48
- /** 嗅探配置 */
49
- sniffing?: SniffingConfig;
50
- /** 标签(用于路由引用) */
51
- tag?: string;
52
- }
53
- /**
54
- * 出站连接配置(客户端连接外部)
55
- */
56
- export interface Outbound {
57
- /** 协议类型 */
58
- protocol: 'freedom' | 'blackhole' | 'socks' | 'http' | 'shadowsocks' | 'vmess' | 'vless';
59
- /** 协议特定配置 */
60
- settings?: OutboundSettings;
61
- /** 流传输配置 */
62
- streamSettings?: StreamSettings;
63
- /** 标签(用于路由引用) */
64
- tag: string;
65
- }
66
- /**
67
- * 入站协议配置(VLESS 为例)
68
- */
69
- export interface InboundSettings {
70
- /** 客户端列表 */
71
- clients: XrayClient[];
72
- /** 解密方式(VLESS 必须为 "none") */
73
- decryption?: string;
74
- /** 回落配置(用于伪装) */
75
- fallbacks?: Fallback[];
76
- }
77
- /**
78
- * 出站协议配置
79
- */
80
- export interface OutboundSettings {
81
- /** 域名解析策略 */
82
- domainStrategy?: 'AsIs' | 'UseIP' | 'UseIPv4' | 'UseIPv6';
83
- /** 其他配置 */
84
- [key: string]: unknown;
85
- }
86
- /**
87
- * Xray 客户端(用户)
88
- */
89
- export interface XrayClient {
90
- /** 用户唯一标识(UUID v4 格式) */
91
- id: string;
92
- /** 用户邮箱或标识符(用于管理) */
93
- email?: string;
94
- /** 协议级别(0 表示默认) */
95
- level?: number;
96
- /** 流控模式(xtls-rprx-vision 等) */
97
- flow?: string;
98
- }
99
- /**
100
- * 流传输配置
101
- */
102
- export interface StreamSettings {
103
- /** 传输层协议: tcp, ws, http, grpc 等 */
104
- network: 'tcp' | 'ws' | 'http' | 'grpc';
105
- /** TLS/Reality 安全配置 */
106
- security: 'none' | 'tls' | 'reality';
107
- /** TLS 配置 */
108
- tlsSettings?: TlsSettings;
109
- /** Reality 配置 */
110
- realitySettings?: RealitySettings;
111
- /** TCP 配置 */
112
- tcpSettings?: TcpSettings;
113
- /** WebSocket 配置 */
114
- wsSettings?: WsSettings;
115
- }
116
- /**
117
- * TLS 配置
118
- */
119
- export interface TlsSettings {
120
- /** 服务器名称指示(SNI) */
121
- serverName?: string;
122
- /** 证书配置 */
123
- certificates: Certificate[];
124
- /** ALPN 协议列表 */
125
- alpn?: string[];
126
- }
127
- /**
128
- * Reality 协议配置(新型伪装协议)
129
- */
130
- export interface RealitySettings {
131
- /** 目标网站地址(用于伪装) */
132
- dest: string;
133
- /** 服务器名称列表 */
134
- serverNames: string[];
135
- /** 私钥 */
136
- privateKey: string;
137
- /** 短 ID 列表 */
138
- shortIds: string[];
139
- /** 最小客户端版本 */
140
- minClientVer?: string;
141
- /** 最大客户端版本 */
142
- maxClientVer?: string;
143
- /** 最大时间差(秒) */
144
- maxTimeDiff?: number;
145
- }
146
- /**
147
- * 证书配置
148
- */
149
- export interface Certificate {
150
- /** 证书用途: sign, verify, issue */
151
- usage: 'sign' | 'verify' | 'issue';
152
- /** 证书文件路径 */
153
- certificateFile?: string;
154
- /** 私钥文件路径 */
155
- keyFile?: string;
156
- /** 证书内容(Base64 编码) */
157
- certificate?: string[];
158
- /** 私钥内容(Base64 编码) */
159
- key?: string[];
160
- }
161
- /**
162
- * TCP 配置
163
- */
164
- export interface TcpSettings {
165
- /** HTTP 头部伪装 */
166
- header?: {
167
- type: 'none' | 'http';
168
- request?: HttpRequest;
169
- response?: HttpResponse;
170
- };
171
- }
172
- /**
173
- * HTTP 请求配置(用于伪装)
174
- */
175
- export interface HttpRequest {
176
- version?: string;
177
- method?: string;
178
- path?: string[];
179
- headers?: Record<string, string[]>;
180
- }
181
- /**
182
- * HTTP 响应配置(用于伪装)
183
- */
184
- export interface HttpResponse {
185
- version?: string;
186
- status?: string;
187
- reason?: string;
188
- headers?: Record<string, string[]>;
189
- }
190
- /**
191
- * WebSocket 配置
192
- */
193
- export interface WsSettings {
194
- /** WebSocket 路径 */
195
- path: string;
196
- /** HTTP 头部 */
197
- headers?: Record<string, string>;
198
- }
199
- /**
200
- * 嗅探配置(流量识别)
201
- */
202
- export interface SniffingConfig {
203
- /** 是否启用嗅探 */
204
- enabled: boolean;
205
- /** 嗅探目标: http, tls, quic */
206
- destOverride: ('http' | 'tls' | 'quic')[];
207
- }
208
- /**
209
- * 回落配置(用于伪装和负载均衡)
210
- */
211
- export interface Fallback {
212
- /** ALPN 协议 */
213
- alpn?: string;
214
- /** 路径匹配 */
215
- path?: string;
216
- /** 目标地址 */
217
- dest: string | number;
218
- /** 目标 xver(PROXY protocol) */
219
- xver?: number;
220
- }
221
- /**
222
- * 路由配置
223
- */
224
- export interface RoutingConfig {
225
- /** 域名解析策略 */
226
- domainStrategy?: 'AsIs' | 'IPIfNonMatch' | 'IPOnDemand';
227
- /** 路由规则列表 */
228
- rules?: RoutingRule[];
229
- }
230
- /**
231
- * 路由规则
232
- */
233
- export interface RoutingRule {
234
- /** 规则类型 */
235
- type?: 'field';
236
- /** 域名匹配 */
237
- domain?: string[];
238
- /** IP 匹配 */
239
- ip?: string[];
240
- /** 端口匹配 */
241
- port?: string;
242
- /** 出站标签 */
243
- outboundTag: string;
244
- /** 入站标签 */
245
- inboundTag?: string[];
246
- }
247
- /**
248
- * DNS 配置
249
- */
250
- export interface DnsConfig {
251
- /** DNS 服务器列表 */
252
- servers?: string[];
253
- /** 静态主机映射 */
254
- hosts?: Record<string, string | string[]>;
255
- /** 域名匹配 */
256
- tag?: string;
257
- }
258
- /**
259
- * Policy 配置(统计相关)
260
- */
261
- export interface PolicyConfig {
262
- /** 用户等级配置 */
263
- levels?: Record<string, PolicyLevelConfig>;
264
- /** 系统级统计配置 */
265
- system?: PolicySystemConfig;
266
- }
267
- /**
268
- * Policy 用户等级配置
269
- */
270
- export interface PolicyLevelConfig {
271
- /** 用户上行统计 */
272
- statsUserUplink?: boolean;
273
- /** 用户下行统计 */
274
- statsUserDownlink?: boolean;
275
- /** 允许其他扩展字段 */
276
- [key: string]: unknown;
277
- }
278
- /**
279
- * Policy 系统配置
280
- */
281
- export interface PolicySystemConfig {
282
- /** 入站上行统计 */
283
- statsInboundUplink?: boolean;
284
- /** 入站下行统计 */
285
- statsInboundDownlink?: boolean;
286
- /** 允许其他扩展字段 */
287
- [key: string]: unknown;
288
- }
289
- /**
290
- * Stats 配置(启用流量统计)
291
- */
292
- export interface StatsConfig {
293
- }
294
- /**
295
- * API 服务类型
296
- */
297
- export type ApiServiceType = 'StatsService' | 'HandlerService' | 'LoggerService' | 'RoutingService';
298
- /**
299
- * API 配置(用于 Stats API)
300
- */
301
- export interface ApiConfig {
302
- /** API 标签,用于路由引用 */
303
- tag: string;
304
- /** 启用的 API 服务列表 */
305
- services: ApiServiceType[];
306
- }
307
- /**
308
- * Dokodemo-door 入站设置(用于 API)
309
- */
310
- export interface DokodemoSettings {
311
- /** 目标地址 */
312
- address: string;
313
- }
314
- /**
315
- * API 入站配置
316
- */
317
- export interface ApiInbound {
318
- /** 入站标签 */
319
- tag: string;
320
- /** 监听端口 */
321
- port: number;
322
- /** 监听地址 */
323
- listen: string;
324
- /** 协议类型 */
325
- protocol: 'dokodemo-door';
326
- /** 协议设置 */
327
- settings: DokodemoSettings;
328
- }
329
- /**
330
- * 扩展的 Xray 配置(包含 Stats API)
331
- */
332
- export interface XrayConfigWithStats extends Omit<XrayConfig, 'inbounds'> {
333
- /** Stats 配置 */
334
- stats?: StatsConfig;
335
- /** API 配置 */
336
- api?: ApiConfig;
337
- /** 入站连接配置(包含 API inbound) */
338
- inbounds: (Inbound | ApiInbound)[];
339
- }
340
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- /**
3
- * Xray 配置文件类型定义
4
- * @module types/config
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -1,119 +0,0 @@
1
- /**
2
- * Layout Type Definitions
3
- *
4
- * Core types for terminal layout system supporting responsive layouts
5
- * and multi-column displays.
6
- *
7
- * Feature: 005-ui-layout-expansion
8
- */
9
- /**
10
- * Layout mode enum - defines different terminal size strategies
11
- */
12
- export declare enum LayoutMode {
13
- /** Narrow terminals (< 80 columns) */
14
- COMPACT = "compact",
15
- /** Standard terminals (80-120 columns) */
16
- STANDARD = "standard",
17
- /** Wide terminals (> 120 columns) */
18
- WIDE = "wide"
19
- }
20
- /**
21
- * Content region type enum - categorizes different UI regions
22
- */
23
- export declare enum ContentRegionType {
24
- /** Page header/title area */
25
- HEADER = "header",
26
- /** Menu options area */
27
- MENU = "menu",
28
- /** Status information area */
29
- STATUS = "status",
30
- /** Main content area */
31
- CONTENT = "content",
32
- /** Footer/hints area */
33
- FOOTER = "footer"
34
- }
35
- /**
36
- * Content region interface - defines a rectangular area in the terminal
37
- */
38
- export interface ContentRegion {
39
- /** Unique identifier for this region */
40
- id: string;
41
- /** Type of content this region contains */
42
- type: ContentRegionType;
43
- /** Position in the terminal (row, column) */
44
- position: {
45
- row: number;
46
- column: number;
47
- };
48
- /** Size of the region (width, height in characters) */
49
- size: {
50
- width: number;
51
- height: number;
52
- };
53
- /** Padding inside the region (top, right, bottom, left in characters) */
54
- padding: {
55
- top: number;
56
- right: number;
57
- bottom: number;
58
- left: number;
59
- };
60
- /** Whether to display a border around this region */
61
- showBorder: boolean;
62
- /** Optional content data (type depends on region type) */
63
- content?: unknown;
64
- }
65
- /**
66
- * Terminal layout interface - complete layout configuration
67
- */
68
- export interface TerminalLayout {
69
- /** Terminal width in columns */
70
- width: number;
71
- /** Terminal height in rows */
72
- height: number;
73
- /** Current layout mode based on terminal width */
74
- mode: LayoutMode;
75
- /** Number of columns for multi-column layouts (1 for COMPACT/STANDARD, 2-3 for WIDE) */
76
- columns: number;
77
- /** List of content regions in this layout */
78
- regions: ContentRegion[];
79
- /** Timestamp when layout was calculated (for cache invalidation) */
80
- timestamp: number;
81
- }
82
- /**
83
- * Default layout configuration for non-TTY or fallback scenarios
84
- */
85
- export declare const DEFAULT_LAYOUT: TerminalLayout;
86
- /**
87
- * Minimum terminal size constraints
88
- */
89
- export declare const MIN_TERMINAL_SIZE: {
90
- readonly width: 60;
91
- readonly height: 20;
92
- };
93
- /**
94
- * Layout mode thresholds for width-based mode selection
95
- */
96
- export declare const LAYOUT_MODE_THRESHOLDS: {
97
- readonly COMPACT_MAX: 79;
98
- readonly STANDARD_MIN: 80;
99
- readonly STANDARD_MAX: 120;
100
- readonly WIDE_MIN: 121;
101
- };
102
- /**
103
- * Validate that a TerminalLayout configuration is valid
104
- *
105
- * @param layout - Layout to validate
106
- * @returns true if valid
107
- * @throws Error if validation fails
108
- */
109
- export declare function validateLayout(layout: TerminalLayout): boolean;
110
- /**
111
- * Validate that a ContentRegion is valid within a given layout
112
- *
113
- * @param region - Region to validate
114
- * @param layout - Parent layout
115
- * @returns true if valid
116
- * @throws Error if validation fails
117
- */
118
- export declare function validateRegion(region: ContentRegion, layout: TerminalLayout): boolean;
119
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/types/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AAEH,oBAAY,UAAU;IACpB,sCAAsC;IACtC,OAAO,YAAY;IACnB,0CAA0C;IAC1C,QAAQ,aAAa;IACrB,qCAAqC;IACrC,IAAI,SAAS;CACd;AAGD;;GAEG;AAEH,oBAAY,iBAAiB;IAC3B,6BAA6B;IAC7B,MAAM,WAAW;IACjB,wBAAwB;IACxB,IAAI,SAAS;IACb,8BAA8B;IAC9B,MAAM,WAAW;IACjB,wBAAwB;IACxB,OAAO,YAAY;IACnB,wBAAwB;IACxB,MAAM,WAAW;CAClB;AAGD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IAEX,2CAA2C;IAC3C,IAAI,EAAE,iBAAiB,CAAC;IAExB,6CAA6C;IAC7C,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,uDAAuD;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,yEAAyE;IACzE,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IAEpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,IAAI,EAAE,UAAU,CAAC;IAEjB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,OAAO,EAAE,aAAa,EAAE,CAAC;IAEzB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAoC9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CA4CrF"}
@@ -1,142 +0,0 @@
1
- "use strict";
2
- /**
3
- * Layout Type Definitions
4
- *
5
- * Core types for terminal layout system supporting responsive layouts
6
- * and multi-column displays.
7
- *
8
- * Feature: 005-ui-layout-expansion
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.LAYOUT_MODE_THRESHOLDS = exports.MIN_TERMINAL_SIZE = exports.DEFAULT_LAYOUT = exports.ContentRegionType = exports.LayoutMode = void 0;
12
- exports.validateLayout = validateLayout;
13
- exports.validateRegion = validateRegion;
14
- /**
15
- * Layout mode enum - defines different terminal size strategies
16
- */
17
- /* eslint-disable no-unused-vars */
18
- var LayoutMode;
19
- (function (LayoutMode) {
20
- /** Narrow terminals (< 80 columns) */
21
- LayoutMode["COMPACT"] = "compact";
22
- /** Standard terminals (80-120 columns) */
23
- LayoutMode["STANDARD"] = "standard";
24
- /** Wide terminals (> 120 columns) */
25
- LayoutMode["WIDE"] = "wide";
26
- })(LayoutMode || (exports.LayoutMode = LayoutMode = {}));
27
- /* eslint-enable no-unused-vars */
28
- /**
29
- * Content region type enum - categorizes different UI regions
30
- */
31
- /* eslint-disable no-unused-vars */
32
- var ContentRegionType;
33
- (function (ContentRegionType) {
34
- /** Page header/title area */
35
- ContentRegionType["HEADER"] = "header";
36
- /** Menu options area */
37
- ContentRegionType["MENU"] = "menu";
38
- /** Status information area */
39
- ContentRegionType["STATUS"] = "status";
40
- /** Main content area */
41
- ContentRegionType["CONTENT"] = "content";
42
- /** Footer/hints area */
43
- ContentRegionType["FOOTER"] = "footer";
44
- })(ContentRegionType || (exports.ContentRegionType = ContentRegionType = {}));
45
- /**
46
- * Default layout configuration for non-TTY or fallback scenarios
47
- */
48
- exports.DEFAULT_LAYOUT = {
49
- width: 80,
50
- height: 24,
51
- mode: LayoutMode.STANDARD,
52
- columns: 1,
53
- regions: [],
54
- timestamp: 0,
55
- };
56
- /**
57
- * Minimum terminal size constraints
58
- */
59
- exports.MIN_TERMINAL_SIZE = {
60
- width: 60,
61
- height: 20,
62
- };
63
- /**
64
- * Layout mode thresholds for width-based mode selection
65
- */
66
- exports.LAYOUT_MODE_THRESHOLDS = {
67
- COMPACT_MAX: 79,
68
- STANDARD_MIN: 80,
69
- STANDARD_MAX: 120,
70
- WIDE_MIN: 121,
71
- };
72
- /**
73
- * Validate that a TerminalLayout configuration is valid
74
- *
75
- * @param layout - Layout to validate
76
- * @returns true if valid
77
- * @throws Error if validation fails
78
- */
79
- function validateLayout(layout) {
80
- // 1. Check minimum size
81
- if (layout.width < exports.MIN_TERMINAL_SIZE.width || layout.height < exports.MIN_TERMINAL_SIZE.height) {
82
- throw new Error(`Terminal too small: ${layout.width}x${layout.height} (min: ${exports.MIN_TERMINAL_SIZE.width}x${exports.MIN_TERMINAL_SIZE.height})`);
83
- }
84
- // 2. Check mode matches width
85
- const expectedMode = layout.width < exports.LAYOUT_MODE_THRESHOLDS.STANDARD_MIN
86
- ? LayoutMode.COMPACT
87
- : layout.width > exports.LAYOUT_MODE_THRESHOLDS.STANDARD_MAX
88
- ? LayoutMode.WIDE
89
- : LayoutMode.STANDARD;
90
- if (layout.mode !== expectedMode) {
91
- throw new Error(`LayoutMode mismatch: expected ${expectedMode} for width ${layout.width}, got ${layout.mode}`);
92
- }
93
- // 3. Check columns constraint
94
- if (layout.mode === LayoutMode.WIDE && layout.columns < 2) {
95
- throw new Error(`WIDE mode requires columns >= 2, got ${layout.columns}`);
96
- }
97
- if (layout.mode !== LayoutMode.WIDE && layout.columns !== 1) {
98
- throw new Error(`Non-WIDE mode requires columns = 1, got ${layout.columns}`);
99
- }
100
- // 4. Validate all content regions
101
- for (const region of layout.regions) {
102
- validateRegion(region, layout);
103
- }
104
- return true;
105
- }
106
- /**
107
- * Validate that a ContentRegion is valid within a given layout
108
- *
109
- * @param region - Region to validate
110
- * @param layout - Parent layout
111
- * @returns true if valid
112
- * @throws Error if validation fails
113
- */
114
- function validateRegion(region, layout) {
115
- // 1. Check position bounds
116
- if (region.position.row < 0 || region.position.row >= layout.height) {
117
- throw new Error(`Region ${region.id}: row ${region.position.row} out of bounds (0-${layout.height - 1})`);
118
- }
119
- if (region.position.column < 0 || region.position.column >= layout.width) {
120
- throw new Error(`Region ${region.id}: column ${region.position.column} out of bounds (0-${layout.width - 1})`);
121
- }
122
- // 2. Check size bounds
123
- const maxWidth = layout.width - region.position.column;
124
- const maxHeight = layout.height - region.position.row;
125
- if (region.size.width <= 0 || region.size.width > maxWidth) {
126
- throw new Error(`Region ${region.id}: width ${region.size.width} out of bounds (1-${maxWidth})`);
127
- }
128
- if (region.size.height <= 0 || region.size.height > maxHeight) {
129
- throw new Error(`Region ${region.id}: height ${region.size.height} out of bounds (1-${maxHeight})`);
130
- }
131
- // 3. Check padding validity
132
- const totalHorizontalPadding = region.padding.left + region.padding.right;
133
- const totalVerticalPadding = region.padding.top + region.padding.bottom;
134
- if (totalHorizontalPadding >= region.size.width) {
135
- throw new Error(`Region ${region.id}: horizontal padding ${totalHorizontalPadding} >= width ${region.size.width}`);
136
- }
137
- if (totalVerticalPadding >= region.size.height) {
138
- throw new Error(`Region ${region.id}: vertical padding ${totalVerticalPadding} >= height ${region.size.height}`);
139
- }
140
- return true;
141
- }
142
- //# sourceMappingURL=layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/types/layout.ts"],"names":[],"mappings":"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"}