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,102 +0,0 @@
1
- /**
2
- * 输入验证工具函数
3
- * @module utils/validator
4
- */
5
- /**
6
- * 验证邮箱地址
7
- * @param email 邮箱地址
8
- * @returns 是否有效
9
- */
10
- export declare function isValidEmail(email: string): boolean;
11
- /**
12
- * 验证 UUID v4 格式
13
- * @param uuid UUID 字符串
14
- * @returns 是否有效
15
- */
16
- export declare function isValidUuid(uuid: string): boolean;
17
- /**
18
- * 验证端口号(1-65535)
19
- * @param port 端口号(数字或字符串)
20
- * @returns 是否有效
21
- */
22
- export declare function isValidPort(port: number | string): boolean;
23
- /**
24
- * 验证域名
25
- * @param domain 域名
26
- * @returns 是否有效
27
- */
28
- export declare function isValidDomain(domain: string): boolean;
29
- /**
30
- * 验证服务名称
31
- * @param serviceName 服务名称
32
- * @returns 是否有效
33
- */
34
- export declare function isValidServiceName(serviceName: string): boolean;
35
- /**
36
- * 验证 IPv4 地址
37
- * @param ip IP 地址
38
- * @returns 是否有效
39
- */
40
- export declare function isValidIPv4(ip: string): boolean;
41
- /**
42
- * 验证 Unix 路径
43
- * @param path 路径字符串
44
- * @returns 是否有效
45
- */
46
- export declare function isValidPath(path: string): boolean;
47
- /**
48
- * 验证 URL
49
- * @param url URL 字符串
50
- * @returns 是否有效
51
- */
52
- export declare function isValidUrl(url: string): boolean;
53
- /**
54
- * 验证器接口
55
- */
56
- export interface Validator {
57
- validate(_value: string): boolean;
58
- errorMessage: string;
59
- }
60
- /**
61
- * 验证器映射
62
- */
63
- export declare const validators: Record<string, Validator>;
64
- /**
65
- * 验证结果
66
- */
67
- export interface ValidationResult {
68
- /** 是否有效 */
69
- valid: boolean;
70
- /** 错误消息 */
71
- error?: string;
72
- /** 字段名称 */
73
- field?: string;
74
- }
75
- /**
76
- * 通用验证函数
77
- * @param value 待验证的值
78
- * @param validatorName 验证器名称
79
- * @param fieldName 字段名称(用于错误消息)
80
- * @returns 验证结果
81
- */
82
- export declare function validate(value: string, validatorName: keyof typeof validators, fieldName?: string): ValidationResult;
83
- /**
84
- * 批量验证
85
- * @param values 字段和值的映射
86
- * @param validatorMap 字段和验证器的映射
87
- * @returns 验证结果列表
88
- */
89
- export declare function validateMultiple(values: Record<string, string>, validatorMap: Record<string, keyof typeof validators>): ValidationResult[];
90
- /**
91
- * 检查所有验证是否通过
92
- * @param results 验证结果列表
93
- * @returns 是否全部通过
94
- */
95
- export declare function allValid(results: ValidationResult[]): boolean;
96
- /**
97
- * 获取所有错误消息
98
- * @param results 验证结果列表
99
- * @returns 错误消息列表
100
- */
101
- export declare function getErrors(results: ValidationResult[]): string[];
102
- //# sourceMappingURL=validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuCH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAQ1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA2ChD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IAEf,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,OAAO,UAAU,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,gBAAgB,CAsBlB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,UAAU,CAAC,GACpD,gBAAgB,EAAE,CAWpB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAE/D"}
@@ -1,238 +0,0 @@
1
- "use strict";
2
- /**
3
- * 输入验证工具函数
4
- * @module utils/validator
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.validators = void 0;
8
- exports.isValidEmail = isValidEmail;
9
- exports.isValidUuid = isValidUuid;
10
- exports.isValidPort = isValidPort;
11
- exports.isValidDomain = isValidDomain;
12
- exports.isValidServiceName = isValidServiceName;
13
- exports.isValidIPv4 = isValidIPv4;
14
- exports.isValidPath = isValidPath;
15
- exports.isValidUrl = isValidUrl;
16
- exports.validate = validate;
17
- exports.validateMultiple = validateMultiple;
18
- exports.allValid = allValid;
19
- exports.getErrors = getErrors;
20
- /**
21
- * 邮箱验证正则表达式
22
- */
23
- const EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
24
- /**
25
- * UUID v4 验证正则表达式
26
- */
27
- const UUID_V4_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
28
- /**
29
- * 端口号验证正则表达式(1-65535)
30
- */
31
- const _PORT_REGEX = /^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/;
32
- /**
33
- * 域名验证正则表达式
34
- */
35
- const DOMAIN_REGEX = /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/;
36
- /**
37
- * 服务名验证正则表达式(仅字母数字、@、._-)
38
- */
39
- const SERVICE_NAME_REGEX = /^[a-zA-Z0-9@._-]+$/;
40
- /**
41
- * IPv4 地址验证正则表达式
42
- */
43
- const IPV4_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
44
- /**
45
- * 路径验证正则表达式(Unix 路径)
46
- */
47
- const PATH_REGEX = /^\/(?:[^/\0]+\/)*[^/\0]*$/;
48
- /**
49
- * 验证邮箱地址
50
- * @param email 邮箱地址
51
- * @returns 是否有效
52
- */
53
- function isValidEmail(email) {
54
- if (!email || typeof email !== 'string') {
55
- return false;
56
- }
57
- return EMAIL_REGEX.test(email);
58
- }
59
- /**
60
- * 验证 UUID v4 格式
61
- * @param uuid UUID 字符串
62
- * @returns 是否有效
63
- */
64
- function isValidUuid(uuid) {
65
- if (!uuid || typeof uuid !== 'string') {
66
- return false;
67
- }
68
- return UUID_V4_REGEX.test(uuid);
69
- }
70
- /**
71
- * 验证端口号(1-65535)
72
- * @param port 端口号(数字或字符串)
73
- * @returns 是否有效
74
- */
75
- function isValidPort(port) {
76
- const num = typeof port === 'string' ? parseInt(port, 10) : port;
77
- if (isNaN(num) || !Number.isInteger(num)) {
78
- return false;
79
- }
80
- return num >= 1 && num <= 65535;
81
- }
82
- /**
83
- * 验证域名
84
- * @param domain 域名
85
- * @returns 是否有效
86
- */
87
- function isValidDomain(domain) {
88
- if (!domain || typeof domain !== 'string') {
89
- return false;
90
- }
91
- return DOMAIN_REGEX.test(domain);
92
- }
93
- /**
94
- * 验证服务名称
95
- * @param serviceName 服务名称
96
- * @returns 是否有效
97
- */
98
- function isValidServiceName(serviceName) {
99
- if (!serviceName || typeof serviceName !== 'string') {
100
- return false;
101
- }
102
- return SERVICE_NAME_REGEX.test(serviceName);
103
- }
104
- /**
105
- * 验证 IPv4 地址
106
- * @param ip IP 地址
107
- * @returns 是否有效
108
- */
109
- function isValidIPv4(ip) {
110
- if (!ip || typeof ip !== 'string') {
111
- return false;
112
- }
113
- return IPV4_REGEX.test(ip);
114
- }
115
- /**
116
- * 验证 Unix 路径
117
- * @param path 路径字符串
118
- * @returns 是否有效
119
- */
120
- function isValidPath(path) {
121
- if (!path || typeof path !== 'string') {
122
- return false;
123
- }
124
- return PATH_REGEX.test(path);
125
- }
126
- /**
127
- * 验证 URL
128
- * @param url URL 字符串
129
- * @returns 是否有效
130
- */
131
- function isValidUrl(url) {
132
- try {
133
- new URL(url);
134
- return true;
135
- }
136
- catch {
137
- return false;
138
- }
139
- }
140
- /**
141
- * 验证器映射
142
- */
143
- exports.validators = {
144
- email: {
145
- validate: isValidEmail,
146
- errorMessage: '请输入有效的邮箱地址(如 user@example.com)',
147
- },
148
- uuid: {
149
- validate: isValidUuid,
150
- errorMessage: '请输入有效的 UUID v4 格式',
151
- },
152
- port: {
153
- validate: (value) => {
154
- const num = parseInt(value, 10);
155
- return !isNaN(num) && isValidPort(num);
156
- },
157
- errorMessage: '端口号必须在 1-65535 之间',
158
- },
159
- domain: {
160
- validate: isValidDomain,
161
- errorMessage: '请输入有效的域名(如 example.com)',
162
- },
163
- serviceName: {
164
- validate: isValidServiceName,
165
- errorMessage: '服务名只能包含字母、数字和 @._- 字符',
166
- },
167
- ipv4: {
168
- validate: isValidIPv4,
169
- errorMessage: '请输入有效的 IPv4 地址',
170
- },
171
- path: {
172
- validate: isValidPath,
173
- errorMessage: '请输入有效的 Unix 路径(以 / 开头)',
174
- },
175
- url: {
176
- validate: isValidUrl,
177
- errorMessage: '请输入有效的 URL',
178
- },
179
- };
180
- /**
181
- * 通用验证函数
182
- * @param value 待验证的值
183
- * @param validatorName 验证器名称
184
- * @param fieldName 字段名称(用于错误消息)
185
- * @returns 验证结果
186
- */
187
- function validate(value, validatorName, fieldName) {
188
- const validator = exports.validators[validatorName];
189
- if (!validator) {
190
- return {
191
- valid: false,
192
- error: `未知的验证器: ${validatorName}`,
193
- field: fieldName,
194
- };
195
- }
196
- const valid = validator.validate(value);
197
- if (!valid) {
198
- return {
199
- valid: false,
200
- error: validator.errorMessage,
201
- field: fieldName,
202
- };
203
- }
204
- return { valid: true };
205
- }
206
- /**
207
- * 批量验证
208
- * @param values 字段和值的映射
209
- * @param validatorMap 字段和验证器的映射
210
- * @returns 验证结果列表
211
- */
212
- function validateMultiple(values, validatorMap) {
213
- const results = [];
214
- for (const [field, value] of Object.entries(values)) {
215
- const validatorName = validatorMap[field];
216
- if (validatorName) {
217
- results.push(validate(value, validatorName, field));
218
- }
219
- }
220
- return results;
221
- }
222
- /**
223
- * 检查所有验证是否通过
224
- * @param results 验证结果列表
225
- * @returns 是否全部通过
226
- */
227
- function allValid(results) {
228
- return results.every((result) => result.valid);
229
- }
230
- /**
231
- * 获取所有错误消息
232
- * @param results 验证结果列表
233
- * @returns 错误消息列表
234
- */
235
- function getErrors(results) {
236
- return results.filter((result) => !result.valid).map((result) => result.error || '未知错误');
237
- }
238
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA4CH,oCAKC;AAOD,kCAKC;AAOD,kCAQC;AAOD,sCAKC;AAOD,gDAKC;AAOD,kCAKC;AAOD,kCAKC;AAOD,gCAOC;AA+ED,4BA0BC;AAQD,4CAcC;AAOD,4BAEC;AAOD,8BAEC;AAzRD;;GAEG;AACH,MAAM,WAAW,GAAG,kDAAkD,CAAC;AAEvE;;GAEG;AACH,MAAM,aAAa,GAAG,wEAAwE,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,GACf,0FAA0F,CAAC;AAE7F;;GAEG;AACH,MAAM,YAAY,GAAG,gEAAgE,CAAC;AAEtF;;GAEG;AACH,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,GACd,6FAA6F,CAAC;AAEhG;;GAEG;AACH,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAqB;IAC/C,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,MAAc;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAU;IACpC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAUD;;GAEG;AACU,QAAA,UAAU,GAA8B;IACnD,KAAK,EAAE;QACL,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,gCAAgC;KAC/C;IAED,IAAI,EAAE;QACJ,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,mBAAmB;KAClC;IAED,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,YAAY,EAAE,mBAAmB;KAClC;IAED,MAAM,EAAE;QACN,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,yBAAyB;KACxC;IAED,WAAW,EAAE;QACX,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,uBAAuB;KACtC;IAED,IAAI,EAAE;QACJ,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,gBAAgB;KAC/B;IAED,IAAI,EAAE;QACJ,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,wBAAwB;KACvC;IAED,GAAG,EAAE;QACH,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,YAAY;KAC3B;CACF,CAAC;AAgBF;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,KAAa,EACb,aAAsC,EACtC,SAAkB;IAElB,MAAM,SAAS,GAAG,kBAAU,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,WAAW,aAAa,EAAE;YACjC,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,SAAS,CAAC,YAAY;YAC7B,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,MAA8B,EAC9B,YAAqD;IAErD,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,OAA2B;IAClD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAA2B;IACnD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;AAC3F,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * VLESS link parser utilities
3
- * @module utils/vless-link
4
- */
5
- export interface VlessLinkInfo {
6
- uuid: string;
7
- server: string;
8
- port: number;
9
- name: string;
10
- encryption?: string;
11
- security?: string;
12
- type?: string;
13
- flow?: string;
14
- sni?: string;
15
- fp?: string;
16
- pbk?: string;
17
- sid?: string;
18
- spx?: string;
19
- host?: string;
20
- path?: string;
21
- serviceName?: string;
22
- alpn?: string;
23
- headerType?: string;
24
- }
25
- export declare function normalizeVlessLink(raw: string): string;
26
- export declare function parseVlessLink(raw: string): VlessLinkInfo;
27
- //# sourceMappingURL=vless-link.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vless-link.d.ts","sourceRoot":"","sources":["../../src/utils/vless-link.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA2DzD"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- /**
3
- * VLESS link parser utilities
4
- * @module utils/vless-link
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.normalizeVlessLink = normalizeVlessLink;
8
- exports.parseVlessLink = parseVlessLink;
9
- const validator_1 = require("./validator");
10
- const errors_1 = require("./errors");
11
- const error_codes_1 = require("../constants/error-codes");
12
- function normalizeVlessLink(raw) {
13
- return raw.trim().replace(/\s+/g, '');
14
- }
15
- function parseVlessLink(raw) {
16
- const normalized = normalizeVlessLink(raw);
17
- let url;
18
- try {
19
- url = new URL(normalized);
20
- }
21
- catch {
22
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.INVALID_VLESS_LINK);
23
- }
24
- if (url.protocol !== 'vless:') {
25
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.INVALID_VLESS_LINK, url.protocol);
26
- }
27
- const uuid = url.username;
28
- if (!uuid) {
29
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.VLESS_MISSING_UUID);
30
- }
31
- if (!(0, validator_1.isValidUuid)(uuid)) {
32
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.VLESS_MISSING_UUID, uuid);
33
- }
34
- const server = url.hostname;
35
- if (!server) {
36
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.VLESS_MISSING_HOST);
37
- }
38
- const port = url.port ? parseInt(url.port, 10) : 443;
39
- if (!(0, validator_1.isValidPort)(port)) {
40
- throw new errors_1.ProtocolError(error_codes_1.ProtocolErrors.VLESS_INVALID_PORT, String(port));
41
- }
42
- const name = url.hash ? decodeURIComponent(url.hash.slice(1)) : '';
43
- const params = url.searchParams;
44
- const getParam = (key) => {
45
- const value = params.get(key);
46
- return value === null ? undefined : value;
47
- };
48
- return {
49
- uuid,
50
- server,
51
- port,
52
- name: name || `${server}:${port}`,
53
- encryption: getParam('encryption'),
54
- security: getParam('security'),
55
- type: getParam('type'),
56
- flow: getParam('flow'),
57
- sni: getParam('sni'),
58
- fp: getParam('fp'),
59
- pbk: getParam('pbk'),
60
- sid: getParam('sid'),
61
- spx: getParam('spx'),
62
- host: getParam('host'),
63
- path: getParam('path'),
64
- serviceName: getParam('serviceName'),
65
- alpn: getParam('alpn'),
66
- headerType: getParam('headerType'),
67
- };
68
- }
69
- //# sourceMappingURL=vless-link.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vless-link.js","sourceRoot":"","sources":["../../src/utils/vless-link.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Which utility - Find executable in PATH
3
- *
4
- * @module utils/which
5
- */
6
- /**
7
- * Find executable in PATH
8
- *
9
- * @param command - Command name to find
10
- * @returns Path to executable or null if not found
11
- */
12
- export declare function which(command: string): string | null;
13
- //# sourceMappingURL=which.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"which.d.ts","sourceRoot":"","sources":["../../src/utils/which.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWpD"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- /**
3
- * Which utility - Find executable in PATH
4
- *
5
- * @module utils/which
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.which = which;
9
- const child_process_1 = require("child_process");
10
- /**
11
- * Find executable in PATH
12
- *
13
- * @param command - Command name to find
14
- * @returns Path to executable or null if not found
15
- */
16
- function which(command) {
17
- try {
18
- const result = (0, child_process_1.execSync)(`which ${command}`, {
19
- encoding: 'utf-8',
20
- stdio: ['ignore', 'pipe', 'ignore'],
21
- });
22
- return result.trim() || null;
23
- }
24
- catch {
25
- return null;
26
- }
27
- }
28
- //# sourceMappingURL=which.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"which.js","sourceRoot":"","sources":["../../src/utils/which.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAUH,sBAWC;AAnBD,iDAAyC;AAEzC;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,OAAO,EAAE,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}