xray-manager 1.8.5 → 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 +0,0 @@
1
- {"version":3,"file":"report-output.js","sourceRoot":"","sources":["../../src/utils/report-output.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAWH,gDAuBC;AAhCD,0CAAwC;AASjC,KAAK,UAAU,kBAAkB,CAAC,OAA4B;IACnE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,IAAA,oBAAS,EAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAA,oBAAS,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Review identifiers and timestamps
3
- *
4
- * @module utils/review-id
5
- */
6
- export declare function createReviewId(): string;
7
- export declare function getIsoTimestamp(date?: Date): string;
8
- //# sourceMappingURL=review-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-id.d.ts","sourceRoot":"","sources":["../../src/utils/review-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAE/D"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- /**
3
- * Review identifiers and timestamps
4
- *
5
- * @module utils/review-id
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createReviewId = createReviewId;
9
- exports.getIsoTimestamp = getIsoTimestamp;
10
- const crypto_1 = require("crypto");
11
- function createReviewId() {
12
- return `review_${(0, crypto_1.randomUUID)()}`;
13
- }
14
- function getIsoTimestamp(date = new Date()) {
15
- return date.toISOString();
16
- }
17
- //# sourceMappingURL=review-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-id.js","sourceRoot":"","sources":["../../src/utils/review-id.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAIH,wCAEC;AAED,0CAEC;AARD,mCAAoC;AAEpC,SAAgB,cAAc;IAC5B,OAAO,UAAU,IAAA,mBAAU,GAAE,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,eAAe,CAAC,OAAa,IAAI,IAAI,EAAE;IACrD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Splash Screen Animation
3
- *
4
- * XRAY 立体3D文字动画
5
- * 简洁大气的启动画面
6
- *
7
- * @module utils/splash
8
- */
9
- /**
10
- * 显示启动动画
11
- */
12
- export declare function showSplash(version?: string, options?: {
13
- animated?: boolean;
14
- frames?: number;
15
- frameDuration?: number;
16
- }): Promise<void>;
17
- /**
18
- * 简约启动
19
- */
20
- export declare function showMinimalSplash(version?: string): void;
21
- //# sourceMappingURL=splash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"splash.d.ts","sourceRoot":"","sources":["../../src/utils/splash.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmJH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE,MAAgB,EACzB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAgB,GAAG,IAAI,CAGjE"}
@@ -1,179 +0,0 @@
1
- "use strict";
2
- /**
3
- * Splash Screen Animation
4
- *
5
- * XRAY 立体3D文字动画
6
- * 简洁大气的启动画面
7
- *
8
- * @module utils/splash
9
- */
10
- var __importDefault = (this && this.__importDefault) || function (mod) {
11
- return (mod && mod.__esModule) ? mod : { "default": mod };
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.showSplash = showSplash;
15
- exports.showMinimalSplash = showMinimalSplash;
16
- const chalk_1 = __importDefault(require("chalk"));
17
- // 颜色方案:青色主题
18
- const C = {
19
- bright: chalk_1.default.cyanBright, // 高亮面
20
- main: chalk_1.default.cyan, // 主色
21
- dark: chalk_1.default.blueBright, // 阴影面
22
- shadow: chalk_1.default.blue, // 深阴影
23
- accent: chalk_1.default.magentaBright, // 强调色
24
- text: chalk_1.default.white, // 文字
25
- dim: chalk_1.default.gray, // 暗色
26
- };
27
- /**
28
- * XRAY 立体文字 - 基础帧
29
- */
30
- const XRAY_LOGO = [
31
- ' ',
32
- ' ██╗ ██╗██████╗ █████╗ ██╗ ██╗ ',
33
- ' ╚██╗██╔╝██╔══██╗██╔══██╗╚██╗ ██╔╝ ',
34
- ' ╚███╔╝ ██████╔╝███████║ ╚████╔╝ ',
35
- ' ██╔██╗ ██╔══██╗██╔══██║ ╚██╔╝ ',
36
- ' ██╔╝ ██╗██║ ██║██║ ██║ ██║ ',
37
- ' ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ',
38
- ' ',
39
- ' ███╗ ███╗ █████╗ ███╗ ██╗ █████╗ ██████╗ ███████╗██████╗ ',
40
- ' ████╗ ████║██╔══██╗████╗ ██║██╔══██╗██╔════╝ ██╔════╝██╔══██╗',
41
- ' ██╔████╔██║███████║██╔██╗ ██║███████║██║ ███╗█████╗ ██████╔╝',
42
- ' ██║╚██╔╝██║██╔══██║██║╚██╗██║██╔══██║██║ ██║██╔══╝ ██╔══██╗',
43
- ' ██║ ╚═╝ ██║██║ ██║██║ ╚████║██║ ██║╚██████╔╝███████╗██║ ██║',
44
- ' ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝',
45
- ' ',
46
- ];
47
- /**
48
- * 构建动画帧
49
- */
50
- function buildFrame(frameNum) {
51
- const f = frameNum % 12;
52
- const lines = [];
53
- // 颜色动画:渐变效果
54
- const colorPatterns = [
55
- [C.bright, C.main, C.dark],
56
- [C.main, C.bright, C.main],
57
- [C.dark, C.main, C.bright],
58
- [C.main, C.dark, C.main],
59
- [C.bright, C.main, C.dark],
60
- [C.accent, C.bright, C.main], // 闪烁
61
- [C.bright, C.main, C.dark],
62
- [C.main, C.bright, C.main],
63
- [C.dark, C.main, C.bright],
64
- [C.main, C.dark, C.main],
65
- [C.bright, C.main, C.dark],
66
- [C.main, C.accent, C.bright], // 闪烁
67
- ];
68
- const colors = colorPatterns[f];
69
- // 顶部装饰线动画
70
- const topLinePatterns = [
71
- ' ══════════════════════════════════════════════════════ ',
72
- ' ═══════════════════╣ ▪ ╠═══════════════════════════════ ',
73
- ' ══════════════════╣ ▪▪ ╠══════════════════════════════ ',
74
- ' ═════════════════╣ ▪▪▪ ╠═════════════════════════════ ',
75
- ' ════════════════╣ ▪▪▪▪ ╠════════════════════════════ ',
76
- ' ═══════════════╣ ▪▪▪▪▪ ╠═══════════════════════════ ',
77
- ' ════════════════╣ ▪▪▪▪ ╠════════════════════════════ ',
78
- ' ═════════════════╣ ▪▪▪ ╠═════════════════════════════ ',
79
- ' ══════════════════╣ ▪▪ ╠══════════════════════════════ ',
80
- ' ═══════════════════╣ ▪ ╠═══════════════════════════════ ',
81
- ' ══════════════════════════════════════════════════════ ',
82
- ' ═══════════════════╣ ✦ ╠═══════════════════════════════ ',
83
- ];
84
- // 空行
85
- lines.push('');
86
- // 顶部装饰
87
- lines.push(C.dark(topLinePatterns[f]));
88
- // XRAY 文字 (前7行)
89
- for (let i = 1; i <= 7; i++) {
90
- if (i <= 3) {
91
- lines.push(colors[0](XRAY_LOGO[i]));
92
- }
93
- else if (i <= 5) {
94
- lines.push(colors[1](XRAY_LOGO[i]));
95
- }
96
- else {
97
- lines.push(colors[2](XRAY_LOGO[i]));
98
- }
99
- }
100
- // MANAGER 文字 (后7行)
101
- for (let i = 8; i <= 14; i++) {
102
- if (i <= 10) {
103
- lines.push(colors[2](XRAY_LOGO[i]));
104
- }
105
- else if (i <= 12) {
106
- lines.push(colors[1](XRAY_LOGO[i]));
107
- }
108
- else {
109
- lines.push(colors[0](XRAY_LOGO[i]));
110
- }
111
- }
112
- // 底部装饰
113
- lines.push(C.dark(topLinePatterns[(f + 6) % 12]));
114
- // 补齐
115
- while (lines.length < 18) {
116
- lines.push('');
117
- }
118
- return lines;
119
- }
120
- // 生成36帧
121
- const FRAMES = [];
122
- for (let i = 0; i < 36; i++) {
123
- FRAMES.push(buildFrame(i));
124
- }
125
- // 工具函数
126
- function clearScreen() {
127
- process.stdout.write('\x1b[2J\x1b[H');
128
- }
129
- function moveCursorHome() {
130
- process.stdout.write('\x1b[H');
131
- }
132
- function hideCursor() {
133
- process.stdout.write('\x1b[?25l');
134
- }
135
- function showCursor() {
136
- process.stdout.write('\x1b[?25h');
137
- }
138
- function displayFrame(frame, version) {
139
- moveCursorHome();
140
- frame.forEach((line) => console.log(line));
141
- console.log();
142
- console.log(C.dim(' 一键部署和管理 Xray VPN 服务'));
143
- console.log(C.dim(` v${version}`));
144
- console.log();
145
- }
146
- /**
147
- * 显示启动动画
148
- */
149
- async function showSplash(version = '1.0.0', options = {}) {
150
- const { animated = true, frames = 24, frameDuration = 80 } = options;
151
- if (!animated) {
152
- displayFrame(FRAMES[0], version);
153
- return;
154
- }
155
- clearScreen();
156
- hideCursor();
157
- try {
158
- const startTime = Date.now();
159
- for (let i = 0; i < frames; i++) {
160
- displayFrame(FRAMES[i], version);
161
- const elapsed = Date.now() - startTime;
162
- const expected = (i + 1) * frameDuration;
163
- await new Promise((r) => setTimeout(r, Math.max(0, expected - elapsed)));
164
- }
165
- displayFrame(FRAMES[0], version);
166
- await new Promise((r) => setTimeout(r, 500));
167
- }
168
- finally {
169
- showCursor();
170
- }
171
- }
172
- /**
173
- * 简约启动
174
- */
175
- function showMinimalSplash(version = '1.0.0') {
176
- console.log(C.bright('XRAY') + C.main(' MANAGER') + C.dim(` v${version}`));
177
- console.log();
178
- }
179
- //# sourceMappingURL=splash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"splash.js","sourceRoot":"","sources":["../../src/utils/splash.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Terminal Capability Detection
3
- * @module utils/terminal
4
- *
5
- * Provides functions to detect terminal capabilities for adaptive output formatting.
6
- */
7
- import { Platform, TerminalCapabilities } from '../types/terminal';
8
- /**
9
- * Detect current terminal capabilities
10
- * @returns Terminal capabilities object with detected features
11
- */
12
- export declare function detectTerminalCapabilities(): TerminalCapabilities;
13
- /**
14
- * Check if given platform is Windows
15
- * @param platform - Platform to check
16
- * @returns True if platform is Windows
17
- */
18
- export declare function isWindows(platform: Platform): boolean;
19
- /**
20
- * Determine if terminal supports Unicode characters
21
- * @param term - TERM environment variable value
22
- * @param platform - Operating system platform
23
- * @returns True if Unicode is supported
24
- */
25
- export declare function supportsUnicode(term: string | undefined, platform: Platform): boolean;
26
- /**
27
- * Map Node.js platform string to Platform enum
28
- * @param nodePlatform - process.platform value
29
- * @returns Platform enum value
30
- */
31
- export declare function mapPlatform(nodePlatform: string): Platform;
32
- //# sourceMappingURL=terminal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,CAcjE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CA4BrF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAa1D"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Terminal Capability Detection
4
- * @module utils/terminal
5
- *
6
- * Provides functions to detect terminal capabilities for adaptive output formatting.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.detectTerminalCapabilities = detectTerminalCapabilities;
13
- exports.isWindows = isWindows;
14
- exports.supportsUnicode = supportsUnicode;
15
- exports.mapPlatform = mapPlatform;
16
- const chalk_1 = __importDefault(require("chalk"));
17
- const terminal_1 = require("../types/terminal");
18
- /**
19
- * Detect current terminal capabilities
20
- * @returns Terminal capabilities object with detected features
21
- */
22
- function detectTerminalCapabilities() {
23
- const platform = mapPlatform(process.platform);
24
- const isTTY = process.stdout.isTTY || false;
25
- const term = process.env.TERM;
26
- return {
27
- isTTY,
28
- supportsColor: chalk_1.default.level > 0,
29
- supportsUnicode: supportsUnicode(term, platform),
30
- width: process.stdout.columns || 80,
31
- height: process.stdout.rows,
32
- platform,
33
- term,
34
- };
35
- }
36
- /**
37
- * Check if given platform is Windows
38
- * @param platform - Platform to check
39
- * @returns True if platform is Windows
40
- */
41
- function isWindows(platform) {
42
- return platform === terminal_1.Platform.WIN32;
43
- }
44
- /**
45
- * Determine if terminal supports Unicode characters
46
- * @param term - TERM environment variable value
47
- * @param platform - Operating system platform
48
- * @returns True if Unicode is supported
49
- */
50
- function supportsUnicode(term, platform) {
51
- // Windows CMD typically doesn't support Unicode well
52
- if (platform === terminal_1.Platform.WIN32) {
53
- return false;
54
- }
55
- // No TERM variable means no Unicode support
56
- if (!term) {
57
- return false;
58
- }
59
- // Dumb terminals don't support Unicode
60
- if (term === 'dumb') {
61
- return false;
62
- }
63
- // Legacy terminals don't support Unicode
64
- if (term === 'vt100') {
65
- return false;
66
- }
67
- // Modern terminals (xterm, screen, tmux variants) support Unicode
68
- if (term.startsWith('xterm') || term.startsWith('screen') || term.startsWith('tmux')) {
69
- return true;
70
- }
71
- // Default to false for unknown terminals to be safe
72
- return false;
73
- }
74
- /**
75
- * Map Node.js platform string to Platform enum
76
- * @param nodePlatform - process.platform value
77
- * @returns Platform enum value
78
- */
79
- function mapPlatform(nodePlatform) {
80
- switch (nodePlatform) {
81
- case 'win32':
82
- return terminal_1.Platform.WIN32;
83
- case 'linux':
84
- return terminal_1.Platform.LINUX;
85
- case 'darwin':
86
- return terminal_1.Platform.DARWIN;
87
- case 'freebsd':
88
- return terminal_1.Platform.FREEBSD;
89
- default:
90
- return terminal_1.Platform.OTHER;
91
- }
92
- }
93
- //# sourceMappingURL=terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AASH,gEAcC;AAOD,8BAEC;AAQD,0CA4BC;AAOD,kCAaC;AAtFD,kDAA0B;AAC1B,gDAAmE;AAEnE;;;GAGG;AACH,SAAgB,0BAA0B;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAE9B,OAAO;QACL,KAAK;QACL,aAAa,EAAE,eAAK,CAAC,KAAK,GAAG,CAAC;QAC9B,eAAe,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;QAChD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,QAAkB;IAC1C,OAAO,QAAQ,KAAK,mBAAQ,CAAC,KAAK,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAwB,EAAE,QAAkB;IAC1E,qDAAqD;IACrD,IAAI,QAAQ,KAAK,mBAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,YAAoB;IAC9C,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,mBAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,mBAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,mBAAQ,CAAC,MAAM,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,mBAAQ,CAAC,OAAO,CAAC;QAC1B;YACE,OAAO,mBAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -1,45 +0,0 @@
1
- /**
2
- * 流量格式化工具
3
- * @module utils/traffic-formatter
4
- */
5
- import type { FormattedTraffic } from '../types/quota';
6
- /**
7
- * 格式化字节数为人类可读格式
8
- * @param bytes 字节数
9
- * @returns 格式化结果
10
- */
11
- export declare function formatTraffic(bytes: number): FormattedTraffic;
12
- /**
13
- * 解析人类可读格式为字节数
14
- * @param input 输入字符串(如 "10GB", "500MB", "1TB")
15
- * @returns 字节数,无效输入返回 -1
16
- */
17
- export declare function parseTraffic(input: string): number;
18
- /**
19
- * 计算使用百分比
20
- * @param used 已使用字节数
21
- * @param quota 配额字节数(-1 表示无限制)
22
- * @returns 百分比(0-100),无限制返回 0
23
- */
24
- export declare function calculateUsagePercent(used: number, quota: number): number;
25
- /**
26
- * 获取警告级别
27
- * @param usagePercent 使用百分比
28
- * @returns 警告级别
29
- */
30
- export declare function getAlertLevel(usagePercent: number): 'normal' | 'warning' | 'exceeded';
31
- /**
32
- * 格式化剩余流量
33
- * @param used 已使用字节数
34
- * @param quota 配额字节数(-1 表示无限制)
35
- * @returns 格式化的剩余流量字符串
36
- */
37
- export declare function formatRemaining(used: number, quota: number): string;
38
- /**
39
- * 格式化流量使用摘要
40
- * @param used 已使用字节数
41
- * @param quota 配额字节数(-1 表示无限制)
42
- * @returns 格式化的摘要字符串
43
- */
44
- export declare function formatUsageSummary(used: number, quota: number): string;
45
- //# sourceMappingURL=traffic-formatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traffic-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/traffic-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAkBpE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAuB7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBlD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAQrF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQtE"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- /**
3
- * 流量格式化工具
4
- * @module utils/traffic-formatter
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.formatTraffic = formatTraffic;
8
- exports.parseTraffic = parseTraffic;
9
- exports.calculateUsagePercent = calculateUsagePercent;
10
- exports.getAlertLevel = getAlertLevel;
11
- exports.formatRemaining = formatRemaining;
12
- exports.formatUsageSummary = formatUsageSummary;
13
- /**
14
- * 单位转换常量(使用 IEC 二进制单位)
15
- */
16
- const UNIT_BYTES = {
17
- B: 1,
18
- KB: 1024,
19
- MB: 1024 ** 2,
20
- GB: 1024 ** 3,
21
- TB: 1024 ** 4,
22
- };
23
- /**
24
- * 单位顺序(从小到大)
25
- */
26
- const UNIT_ORDER = ['B', 'KB', 'MB', 'GB', 'TB'];
27
- /**
28
- * 格式化字节数为人类可读格式
29
- * @param bytes 字节数
30
- * @returns 格式化结果
31
- */
32
- function formatTraffic(bytes) {
33
- if (bytes < 0) {
34
- return { value: 0, unit: 'B', display: '无限制' };
35
- }
36
- if (bytes === 0) {
37
- return { value: 0, unit: 'B', display: '0 B' };
38
- }
39
- // 找到合适的单位
40
- let selectedUnit = 'B';
41
- for (const unit of UNIT_ORDER) {
42
- if (bytes >= UNIT_BYTES[unit]) {
43
- selectedUnit = unit;
44
- }
45
- else {
46
- break;
47
- }
48
- }
49
- const value = bytes / UNIT_BYTES[selectedUnit];
50
- const display = `${value.toFixed(2)} ${selectedUnit}`;
51
- return { value, unit: selectedUnit, display };
52
- }
53
- /**
54
- * 解析人类可读格式为字节数
55
- * @param input 输入字符串(如 "10GB", "500MB", "1TB")
56
- * @returns 字节数,无效输入返回 -1
57
- */
58
- function parseTraffic(input) {
59
- const trimmed = input.trim().toUpperCase();
60
- // 处理特殊值
61
- if (trimmed === '无限制' || trimmed === 'UNLIMITED' || trimmed === '-1') {
62
- return -1;
63
- }
64
- // 匹配数字和单位
65
- const match = trimmed.match(/^(\d+(?:\.\d+)?)\s*(B|KB|MB|GB|TB)?$/i);
66
- if (!match) {
67
- return -1;
68
- }
69
- const value = parseFloat(match[1]);
70
- const unit = (match[2]?.toUpperCase() || 'B');
71
- if (isNaN(value) || value < 0) {
72
- return -1;
73
- }
74
- return Math.floor(value * UNIT_BYTES[unit]);
75
- }
76
- /**
77
- * 计算使用百分比
78
- * @param used 已使用字节数
79
- * @param quota 配额字节数(-1 表示无限制)
80
- * @returns 百分比(0-100),无限制返回 0
81
- */
82
- function calculateUsagePercent(used, quota) {
83
- if (quota <= 0) {
84
- return 0; // 无限制
85
- }
86
- const percent = (used / quota) * 100;
87
- return Math.min(100, Math.round(percent * 100) / 100);
88
- }
89
- /**
90
- * 获取警告级别
91
- * @param usagePercent 使用百分比
92
- * @returns 警告级别
93
- */
94
- function getAlertLevel(usagePercent) {
95
- if (usagePercent >= 100) {
96
- return 'exceeded';
97
- }
98
- if (usagePercent >= 80) {
99
- return 'warning';
100
- }
101
- return 'normal';
102
- }
103
- /**
104
- * 格式化剩余流量
105
- * @param used 已使用字节数
106
- * @param quota 配额字节数(-1 表示无限制)
107
- * @returns 格式化的剩余流量字符串
108
- */
109
- function formatRemaining(used, quota) {
110
- if (quota < 0) {
111
- return '无限制';
112
- }
113
- const remaining = Math.max(0, quota - used);
114
- return formatTraffic(remaining).display;
115
- }
116
- /**
117
- * 格式化流量使用摘要
118
- * @param used 已使用字节数
119
- * @param quota 配额字节数(-1 表示无限制)
120
- * @returns 格式化的摘要字符串
121
- */
122
- function formatUsageSummary(used, quota) {
123
- const usedStr = formatTraffic(used).display;
124
- if (quota < 0) {
125
- return `${usedStr} / 无限制`;
126
- }
127
- const quotaStr = formatTraffic(quota).display;
128
- const percent = calculateUsagePercent(used, quota);
129
- return `${usedStr} / ${quotaStr} (${percent}%)`;
130
- }
131
- //# sourceMappingURL=traffic-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traffic-formatter.js","sourceRoot":"","sources":["../../src/utils/traffic-formatter.ts"],"names":[],"mappings":"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"}