xray-manager 1.8.5 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +129 -42
  2. package/dist/cli.mjs +8598 -0
  3. package/dist/cli.mjs.map +7 -0
  4. package/package.json +13 -5
  5. package/dist/cli.d.ts +0 -11
  6. package/dist/cli.d.ts.map +0 -1
  7. package/dist/cli.js +0 -134
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/clash.d.ts +0 -20
  10. package/dist/commands/clash.d.ts.map +0 -1
  11. package/dist/commands/clash.js +0 -156
  12. package/dist/commands/clash.js.map +0 -1
  13. package/dist/commands/config.d.ts +0 -56
  14. package/dist/commands/config.d.ts.map +0 -1
  15. package/dist/commands/config.js +0 -461
  16. package/dist/commands/config.js.map +0 -1
  17. package/dist/commands/interactive.d.ts +0 -55
  18. package/dist/commands/interactive.d.ts.map +0 -1
  19. package/dist/commands/interactive.js +0 -418
  20. package/dist/commands/interactive.js.map +0 -1
  21. package/dist/commands/logs.d.ts +0 -62
  22. package/dist/commands/logs.d.ts.map +0 -1
  23. package/dist/commands/logs.js +0 -389
  24. package/dist/commands/logs.js.map +0 -1
  25. package/dist/commands/quota.d.ts +0 -54
  26. package/dist/commands/quota.d.ts.map +0 -1
  27. package/dist/commands/quota.js +0 -661
  28. package/dist/commands/quota.js.map +0 -1
  29. package/dist/commands/review.d.ts +0 -8
  30. package/dist/commands/review.d.ts.map +0 -1
  31. package/dist/commands/review.js +0 -79
  32. package/dist/commands/review.js.map +0 -1
  33. package/dist/commands/service.d.ts +0 -43
  34. package/dist/commands/service.d.ts.map +0 -1
  35. package/dist/commands/service.js +0 -202
  36. package/dist/commands/service.js.map +0 -1
  37. package/dist/commands/user.d.ts +0 -49
  38. package/dist/commands/user.d.ts.map +0 -1
  39. package/dist/commands/user.js +0 -371
  40. package/dist/commands/user.js.map +0 -1
  41. package/dist/components/dashboard-widget.d.ts +0 -21
  42. package/dist/components/dashboard-widget.d.ts.map +0 -1
  43. package/dist/components/dashboard-widget.js +0 -234
  44. package/dist/components/dashboard-widget.js.map +0 -1
  45. package/dist/components/progress-bar.d.ts +0 -67
  46. package/dist/components/progress-bar.d.ts.map +0 -1
  47. package/dist/components/progress-bar.js +0 -138
  48. package/dist/components/progress-bar.js.map +0 -1
  49. package/dist/components/user-table.d.ts +0 -8
  50. package/dist/components/user-table.d.ts.map +0 -1
  51. package/dist/components/user-table.js +0 -91
  52. package/dist/components/user-table.js.map +0 -1
  53. package/dist/config/i18n.d.ts +0 -136
  54. package/dist/config/i18n.d.ts.map +0 -1
  55. package/dist/config/i18n.js +0 -323
  56. package/dist/config/i18n.js.map +0 -1
  57. package/dist/constants/error-codes.d.ts +0 -344
  58. package/dist/constants/error-codes.d.ts.map +0 -1
  59. package/dist/constants/error-codes.js +0 -462
  60. package/dist/constants/error-codes.js.map +0 -1
  61. package/dist/constants/exit-codes.d.ts +0 -49
  62. package/dist/constants/exit-codes.d.ts.map +0 -1
  63. package/dist/constants/exit-codes.js +0 -100
  64. package/dist/constants/exit-codes.js.map +0 -1
  65. package/dist/constants/paths.d.ts +0 -63
  66. package/dist/constants/paths.d.ts.map +0 -1
  67. package/dist/constants/paths.js +0 -78
  68. package/dist/constants/paths.js.map +0 -1
  69. package/dist/constants/quota.d.ts +0 -126
  70. package/dist/constants/quota.d.ts.map +0 -1
  71. package/dist/constants/quota.js +0 -135
  72. package/dist/constants/quota.js.map +0 -1
  73. package/dist/constants/review.d.ts +0 -14
  74. package/dist/constants/review.d.ts.map +0 -1
  75. package/dist/constants/review.js +0 -33
  76. package/dist/constants/review.js.map +0 -1
  77. package/dist/constants/supported-distros.d.ts +0 -17
  78. package/dist/constants/supported-distros.d.ts.map +0 -1
  79. package/dist/constants/supported-distros.js +0 -68
  80. package/dist/constants/supported-distros.js.map +0 -1
  81. package/dist/constants/theme.d.ts +0 -34
  82. package/dist/constants/theme.d.ts.map +0 -1
  83. package/dist/constants/theme.js +0 -52
  84. package/dist/constants/theme.js.map +0 -1
  85. package/dist/constants/timeouts.d.ts +0 -84
  86. package/dist/constants/timeouts.d.ts.map +0 -1
  87. package/dist/constants/timeouts.js +0 -111
  88. package/dist/constants/timeouts.js.map +0 -1
  89. package/dist/constants/ui-symbols.d.ts +0 -47
  90. package/dist/constants/ui-symbols.d.ts.map +0 -1
  91. package/dist/constants/ui-symbols.js +0 -48
  92. package/dist/constants/ui-symbols.js.map +0 -1
  93. package/dist/services/clash-config.d.ts +0 -16
  94. package/dist/services/clash-config.d.ts.map +0 -1
  95. package/dist/services/clash-config.js +0 -107
  96. package/dist/services/clash-config.js.map +0 -1
  97. package/dist/services/config-manager.d.ts +0 -90
  98. package/dist/services/config-manager.d.ts.map +0 -1
  99. package/dist/services/config-manager.js +0 -307
  100. package/dist/services/config-manager.js.map +0 -1
  101. package/dist/services/layout-manager.d.ts +0 -94
  102. package/dist/services/layout-manager.d.ts.map +0 -1
  103. package/dist/services/layout-manager.js +0 -192
  104. package/dist/services/layout-manager.js.map +0 -1
  105. package/dist/services/log-manager.d.ts +0 -157
  106. package/dist/services/log-manager.d.ts.map +0 -1
  107. package/dist/services/log-manager.js +0 -397
  108. package/dist/services/log-manager.js.map +0 -1
  109. package/dist/services/navigation-manager.d.ts +0 -23
  110. package/dist/services/navigation-manager.d.ts.map +0 -1
  111. package/dist/services/navigation-manager.js +0 -39
  112. package/dist/services/navigation-manager.js.map +0 -1
  113. package/dist/services/platform-detector.d.ts +0 -10
  114. package/dist/services/platform-detector.d.ts.map +0 -1
  115. package/dist/services/platform-detector.js +0 -106
  116. package/dist/services/platform-detector.js.map +0 -1
  117. package/dist/services/public-ip-manager.d.ts +0 -78
  118. package/dist/services/public-ip-manager.d.ts.map +0 -1
  119. package/dist/services/public-ip-manager.js +0 -296
  120. package/dist/services/public-ip-manager.js.map +0 -1
  121. package/dist/services/quota-enforcer.d.ts +0 -86
  122. package/dist/services/quota-enforcer.d.ts.map +0 -1
  123. package/dist/services/quota-enforcer.js +0 -151
  124. package/dist/services/quota-enforcer.js.map +0 -1
  125. package/dist/services/quota-manager.d.ts +0 -101
  126. package/dist/services/quota-manager.d.ts.map +0 -1
  127. package/dist/services/quota-manager.js +0 -257
  128. package/dist/services/quota-manager.js.map +0 -1
  129. package/dist/services/review/areas/community.d.ts +0 -9
  130. package/dist/services/review/areas/community.d.ts.map +0 -1
  131. package/dist/services/review/areas/community.js +0 -59
  132. package/dist/services/review/areas/community.js.map +0 -1
  133. package/dist/services/review/areas/contribution.d.ts +0 -9
  134. package/dist/services/review/areas/contribution.d.ts.map +0 -1
  135. package/dist/services/review/areas/contribution.js +0 -107
  136. package/dist/services/review/areas/contribution.js.map +0 -1
  137. package/dist/services/review/areas/documentation.d.ts +0 -9
  138. package/dist/services/review/areas/documentation.d.ts.map +0 -1
  139. package/dist/services/review/areas/documentation.js +0 -110
  140. package/dist/services/review/areas/documentation.js.map +0 -1
  141. package/dist/services/review/areas/license.d.ts +0 -9
  142. package/dist/services/review/areas/license.d.ts.map +0 -1
  143. package/dist/services/review/areas/license.js +0 -86
  144. package/dist/services/review/areas/license.js.map +0 -1
  145. package/dist/services/review/areas/quality.d.ts +0 -9
  146. package/dist/services/review/areas/quality.d.ts.map +0 -1
  147. package/dist/services/review/areas/quality.js +0 -84
  148. package/dist/services/review/areas/quality.js.map +0 -1
  149. package/dist/services/review/areas/security.d.ts +0 -9
  150. package/dist/services/review/areas/security.d.ts.map +0 -1
  151. package/dist/services/review/areas/security.js +0 -64
  152. package/dist/services/review/areas/security.js.map +0 -1
  153. package/dist/services/review/evidence.d.ts +0 -10
  154. package/dist/services/review/evidence.d.ts.map +0 -1
  155. package/dist/services/review/evidence.js +0 -40
  156. package/dist/services/review/evidence.js.map +0 -1
  157. package/dist/services/review/recommendations-filter.d.ts +0 -12
  158. package/dist/services/review/recommendations-filter.d.ts.map +0 -1
  159. package/dist/services/review/recommendations-filter.js +0 -20
  160. package/dist/services/review/recommendations-filter.js.map +0 -1
  161. package/dist/services/review/repo-scanner.d.ts +0 -8
  162. package/dist/services/review/repo-scanner.d.ts.map +0 -1
  163. package/dist/services/review/repo-scanner.js +0 -15
  164. package/dist/services/review/repo-scanner.js.map +0 -1
  165. package/dist/services/review/report-renderer.d.ts +0 -15
  166. package/dist/services/review/report-renderer.d.ts.map +0 -1
  167. package/dist/services/review/report-renderer.js +0 -120
  168. package/dist/services/review/report-renderer.js.map +0 -1
  169. package/dist/services/review/review-engine.d.ts +0 -15
  170. package/dist/services/review/review-engine.d.ts.map +0 -1
  171. package/dist/services/review/review-engine.js +0 -61
  172. package/dist/services/review/review-engine.js.map +0 -1
  173. package/dist/services/review/summary-builder.d.ts +0 -8
  174. package/dist/services/review/summary-builder.d.ts.map +0 -1
  175. package/dist/services/review/summary-builder.js +0 -26
  176. package/dist/services/review/summary-builder.js.map +0 -1
  177. package/dist/services/screen-manager.d.ts +0 -13
  178. package/dist/services/screen-manager.d.ts.map +0 -1
  179. package/dist/services/screen-manager.js +0 -42
  180. package/dist/services/screen-manager.js.map +0 -1
  181. package/dist/services/stats-config-manager.d.ts +0 -110
  182. package/dist/services/stats-config-manager.d.ts.map +0 -1
  183. package/dist/services/stats-config-manager.js +0 -443
  184. package/dist/services/stats-config-manager.js.map +0 -1
  185. package/dist/services/systemd-manager.d.ts +0 -197
  186. package/dist/services/systemd-manager.d.ts.map +0 -1
  187. package/dist/services/systemd-manager.js +0 -458
  188. package/dist/services/systemd-manager.js.map +0 -1
  189. package/dist/services/traffic-manager.d.ts +0 -106
  190. package/dist/services/traffic-manager.d.ts.map +0 -1
  191. package/dist/services/traffic-manager.js +0 -368
  192. package/dist/services/traffic-manager.js.map +0 -1
  193. package/dist/services/user-manager.d.ts +0 -90
  194. package/dist/services/user-manager.d.ts.map +0 -1
  195. package/dist/services/user-manager.js +0 -347
  196. package/dist/services/user-manager.js.map +0 -1
  197. package/dist/services/user-metadata-manager.d.ts +0 -85
  198. package/dist/services/user-metadata-manager.d.ts.map +0 -1
  199. package/dist/services/user-metadata-manager.js +0 -181
  200. package/dist/services/user-metadata-manager.js.map +0 -1
  201. package/dist/types/config.d.ts +0 -340
  202. package/dist/types/config.d.ts.map +0 -1
  203. package/dist/types/config.js +0 -7
  204. package/dist/types/config.js.map +0 -1
  205. package/dist/types/layout.d.ts +0 -119
  206. package/dist/types/layout.d.ts.map +0 -1
  207. package/dist/types/layout.js +0 -142
  208. package/dist/types/layout.js.map +0 -1
  209. package/dist/types/platform.d.ts +0 -72
  210. package/dist/types/platform.d.ts.map +0 -1
  211. package/dist/types/platform.js +0 -38
  212. package/dist/types/platform.js.map +0 -1
  213. package/dist/types/quota.d.ts +0 -158
  214. package/dist/types/quota.d.ts.map +0 -1
  215. package/dist/types/quota.js +0 -26
  216. package/dist/types/quota.js.map +0 -1
  217. package/dist/types/review.d.ts +0 -62
  218. package/dist/types/review.d.ts.map +0 -1
  219. package/dist/types/review.js +0 -8
  220. package/dist/types/review.js.map +0 -1
  221. package/dist/types/server-config.d.ts +0 -53
  222. package/dist/types/server-config.d.ts.map +0 -1
  223. package/dist/types/server-config.js +0 -19
  224. package/dist/types/server-config.js.map +0 -1
  225. package/dist/types/service.d.ts +0 -96
  226. package/dist/types/service.d.ts.map +0 -1
  227. package/dist/types/service.js +0 -7
  228. package/dist/types/service.js.map +0 -1
  229. package/dist/types/terminal.d.ts +0 -35
  230. package/dist/types/terminal.d.ts.map +0 -1
  231. package/dist/types/terminal.js +0 -20
  232. package/dist/types/terminal.js.map +0 -1
  233. package/dist/types/ui-components.d.ts +0 -53
  234. package/dist/types/ui-components.d.ts.map +0 -1
  235. package/dist/types/ui-components.js +0 -3
  236. package/dist/types/ui-components.js.map +0 -1
  237. package/dist/types/user-metadata.d.ts +0 -43
  238. package/dist/types/user-metadata.d.ts.map +0 -1
  239. package/dist/types/user-metadata.js +0 -17
  240. package/dist/types/user-metadata.js.map +0 -1
  241. package/dist/types/user.d.ts +0 -134
  242. package/dist/types/user.d.ts.map +0 -1
  243. package/dist/types/user.js +0 -7
  244. package/dist/types/user.js.map +0 -1
  245. package/dist/utils/clipboard.d.ts +0 -21
  246. package/dist/utils/clipboard.d.ts.map +0 -1
  247. package/dist/utils/clipboard.js +0 -45
  248. package/dist/utils/clipboard.js.map +0 -1
  249. package/dist/utils/error-formatter.d.ts +0 -60
  250. package/dist/utils/error-formatter.d.ts.map +0 -1
  251. package/dist/utils/error-formatter.js +0 -244
  252. package/dist/utils/error-formatter.js.map +0 -1
  253. package/dist/utils/errors.d.ts +0 -92
  254. package/dist/utils/errors.d.ts.map +0 -1
  255. package/dist/utils/errors.js +0 -143
  256. package/dist/utils/errors.js.map +0 -1
  257. package/dist/utils/firewall.d.ts +0 -14
  258. package/dist/utils/firewall.d.ts.map +0 -1
  259. package/dist/utils/firewall.js +0 -78
  260. package/dist/utils/firewall.js.map +0 -1
  261. package/dist/utils/format.d.ts +0 -93
  262. package/dist/utils/format.d.ts.map +0 -1
  263. package/dist/utils/format.js +0 -240
  264. package/dist/utils/format.js.map +0 -1
  265. package/dist/utils/icons.d.ts +0 -53
  266. package/dist/utils/icons.d.ts.map +0 -1
  267. package/dist/utils/icons.js +0 -143
  268. package/dist/utils/icons.js.map +0 -1
  269. package/dist/utils/layout.d.ts +0 -142
  270. package/dist/utils/layout.d.ts.map +0 -1
  271. package/dist/utils/layout.js +0 -381
  272. package/dist/utils/layout.js.map +0 -1
  273. package/dist/utils/logger.d.ts +0 -160
  274. package/dist/utils/logger.d.ts.map +0 -1
  275. package/dist/utils/logger.js +0 -351
  276. package/dist/utils/logger.js.map +0 -1
  277. package/dist/utils/network.d.ts +0 -39
  278. package/dist/utils/network.d.ts.map +0 -1
  279. package/dist/utils/network.js +0 -227
  280. package/dist/utils/network.js.map +0 -1
  281. package/dist/utils/os-detection.d.ts +0 -10
  282. package/dist/utils/os-detection.d.ts.map +0 -1
  283. package/dist/utils/os-detection.js +0 -86
  284. package/dist/utils/os-detection.js.map +0 -1
  285. package/dist/utils/preflight.d.ts +0 -57
  286. package/dist/utils/preflight.d.ts.map +0 -1
  287. package/dist/utils/preflight.js +0 -215
  288. package/dist/utils/preflight.js.map +0 -1
  289. package/dist/utils/repo-scan.d.ts +0 -54
  290. package/dist/utils/repo-scan.d.ts.map +0 -1
  291. package/dist/utils/repo-scan.js +0 -165
  292. package/dist/utils/repo-scan.js.map +0 -1
  293. package/dist/utils/report-output.d.ts +0 -13
  294. package/dist/utils/report-output.d.ts.map +0 -1
  295. package/dist/utils/report-output.js +0 -33
  296. package/dist/utils/report-output.js.map +0 -1
  297. package/dist/utils/review-id.d.ts +0 -8
  298. package/dist/utils/review-id.d.ts.map +0 -1
  299. package/dist/utils/review-id.js +0 -17
  300. package/dist/utils/review-id.js.map +0 -1
  301. package/dist/utils/splash.d.ts +0 -21
  302. package/dist/utils/splash.d.ts.map +0 -1
  303. package/dist/utils/splash.js +0 -179
  304. package/dist/utils/splash.js.map +0 -1
  305. package/dist/utils/terminal.d.ts +0 -32
  306. package/dist/utils/terminal.d.ts.map +0 -1
  307. package/dist/utils/terminal.js +0 -93
  308. package/dist/utils/terminal.js.map +0 -1
  309. package/dist/utils/traffic-formatter.d.ts +0 -45
  310. package/dist/utils/traffic-formatter.d.ts.map +0 -1
  311. package/dist/utils/traffic-formatter.js +0 -131
  312. package/dist/utils/traffic-formatter.js.map +0 -1
  313. package/dist/utils/validator.d.ts +0 -102
  314. package/dist/utils/validator.d.ts.map +0 -1
  315. package/dist/utils/validator.js +0 -238
  316. package/dist/utils/validator.js.map +0 -1
  317. package/dist/utils/vless-link.d.ts +0 -27
  318. package/dist/utils/vless-link.d.ts.map +0 -1
  319. package/dist/utils/vless-link.js +0 -69
  320. package/dist/utils/vless-link.js.map +0 -1
  321. package/dist/utils/which.d.ts +0 -13
  322. package/dist/utils/which.d.ts.map +0 -1
  323. package/dist/utils/which.js +0 -28
  324. package/dist/utils/which.js.map +0 -1
@@ -1,389 +0,0 @@
1
- "use strict";
2
- /**
3
- * Logs Command Handler
4
- *
5
- * Handles log viewing commands (view, follow, filter)
6
- *
7
- * @module commands/logs
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.viewLogs = viewLogs;
14
- exports.followLogs = followLogs;
15
- exports.filterLogs = filterLogs;
16
- exports.showLogsMenu = showLogsMenu;
17
- exports.viewAccessLogs = viewAccessLogs;
18
- exports.viewErrorLogs = viewErrorLogs;
19
- const log_manager_1 = require("../services/log-manager");
20
- const logger_1 = __importDefault(require("../utils/logger"));
21
- const chalk_1 = __importDefault(require("chalk"));
22
- const prompts_1 = require("@inquirer/prompts");
23
- const terminal_1 = require("../utils/terminal");
24
- const icons_1 = require("../utils/icons");
25
- const logger_2 = require("../utils/logger");
26
- const ui_symbols_1 = require("../constants/ui-symbols");
27
- const i18n_1 = require("../config/i18n");
28
- /**
29
- * Get color for log level
30
- *
31
- * @param level - Log level
32
- * @returns Chalk color function
33
- */
34
- function getColorForLevel(level) {
35
- switch (level.toLowerCase()) {
36
- case 'emergency':
37
- case 'alert':
38
- case 'critical':
39
- case 'error':
40
- return chalk_1.default.red;
41
- case 'warning':
42
- return chalk_1.default.yellow;
43
- case 'notice':
44
- return chalk_1.default.cyan;
45
- case 'info':
46
- return chalk_1.default.white;
47
- case 'debug':
48
- return chalk_1.default.gray;
49
- default:
50
- return chalk_1.default.white;
51
- }
52
- }
53
- /**
54
- * Get icon for log level using terminal capability detection
55
- *
56
- * @param level - Log level
57
- * @returns Icon string (Unicode or ASCII based on terminal capabilities)
58
- */
59
- function getIconForLevel(level) {
60
- const capabilities = (0, terminal_1.detectTerminalCapabilities)();
61
- // Map systemd log levels to LogLevel enum
62
- switch (level.toLowerCase()) {
63
- case 'emergency':
64
- case 'alert':
65
- case 'critical':
66
- case 'error':
67
- return (0, icons_1.resolveIcon)(logger_2.LogLevel.ERROR, capabilities);
68
- case 'warning':
69
- return (0, icons_1.resolveIcon)(logger_2.LogLevel.WARN, capabilities);
70
- case 'notice':
71
- case 'info':
72
- return (0, icons_1.resolveIcon)(logger_2.LogLevel.INFO, capabilities);
73
- case 'debug':
74
- return (0, icons_1.resolveIcon)(logger_2.LogLevel.DEBUG, capabilities);
75
- default:
76
- return (0, icons_1.resolveIcon)(logger_2.LogLevel.INFO, capabilities);
77
- }
78
- }
79
- /**
80
- * Format log entry for display
81
- *
82
- * @param entry - Log entry
83
- * @returns Formatted string
84
- */
85
- function formatLogEntry(entry) {
86
- const colorFn = getColorForLevel(entry.level);
87
- const icon = getIconForLevel(entry.level);
88
- const timestamp = entry.timestamp.toLocaleString('zh-CN', {
89
- year: 'numeric',
90
- month: '2-digit',
91
- day: '2-digit',
92
- hour: '2-digit',
93
- minute: '2-digit',
94
- second: '2-digit',
95
- });
96
- const level = entry.level.toUpperCase().padEnd(9);
97
- return `${chalk_1.default.gray(timestamp)} ${icon} ${colorFn(level)} ${entry.message}`;
98
- }
99
- /**
100
- * View recent logs
101
- *
102
- * @param options - Command options
103
- */
104
- async function viewLogs(options = {}) {
105
- try {
106
- const serviceName = options.serviceName || 'xray';
107
- const manager = new log_manager_1.LogManager(serviceName);
108
- // Check journalctl availability
109
- if (!manager.isJournalctlAvailable()) {
110
- logger_1.default.error('journalctl 不可用。请确保系统使用 systemd。');
111
- process.exit(1);
112
- }
113
- // Query logs
114
- const logs = await manager.queryLogs({
115
- level: options.level,
116
- since: options.since,
117
- lines: options.lines || 50,
118
- });
119
- if (options.json) {
120
- console.log(JSON.stringify(logs, null, 2));
121
- return;
122
- }
123
- logger_1.default.newline();
124
- logger_1.default.separator();
125
- console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} 服务日志 (${serviceName})`));
126
- if (options.level) {
127
- console.log(chalk_1.default.gray(` 过滤器: 级别 ≥ ${options.level}`));
128
- }
129
- if (options.since) {
130
- console.log(chalk_1.default.gray(` 时间范围: ${options.since} 至今`));
131
- }
132
- console.log(chalk_1.default.gray(` 显示: 最近 ${logs.length} 条`));
133
- logger_1.default.separator();
134
- logger_1.default.newline();
135
- if (logs.length === 0) {
136
- console.log(chalk_1.default.gray(' 没有找到日志'));
137
- logger_1.default.newline();
138
- return;
139
- }
140
- // Display logs
141
- for (const log of logs) {
142
- console.log(formatLogEntry(log));
143
- }
144
- logger_1.default.newline();
145
- }
146
- catch (error) {
147
- logger_1.default.error(error.message);
148
- process.exit(1);
149
- }
150
- }
151
- /**
152
- * Follow logs in real-time
153
- *
154
- * @param options - Command options
155
- */
156
- async function followLogs(options = {}) {
157
- try {
158
- const serviceName = options.serviceName || 'xray';
159
- const manager = new log_manager_1.LogManager(serviceName);
160
- // Check journalctl availability
161
- if (!manager.isJournalctlAvailable()) {
162
- logger_1.default.error('journalctl 不可用。请确保系统使用 systemd。');
163
- process.exit(1);
164
- }
165
- logger_1.default.newline();
166
- logger_1.default.separator();
167
- console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} 实时日志 (${serviceName})`));
168
- if (options.level) {
169
- console.log(chalk_1.default.gray(` 过滤器: 级别 ≥ ${options.level}`));
170
- }
171
- console.log(chalk_1.default.gray(' 按 Ctrl+C 停止'));
172
- logger_1.default.separator();
173
- logger_1.default.newline();
174
- // Follow logs
175
- const followProcess = await manager.followLogs({
176
- level: options.level,
177
- lines: options.lines || 10,
178
- }, (entry) => {
179
- console.log(formatLogEntry(entry));
180
- });
181
- // Handle Ctrl+C
182
- const sigintHandler = () => {
183
- logger_1.default.newline();
184
- logger_1.default.info('停止日志跟踪...');
185
- followProcess.kill();
186
- process.exit(0);
187
- };
188
- process.on('SIGINT', sigintHandler);
189
- // Wait for process to exit
190
- await new Promise((resolve) => {
191
- followProcess.process.on('close', resolve);
192
- });
193
- process.removeListener('SIGINT', sigintHandler);
194
- }
195
- catch (error) {
196
- logger_1.default.error(error.message);
197
- process.exit(1);
198
- }
199
- }
200
- /**
201
- * Interactive log filtering
202
- *
203
- * @param options - Command options
204
- */
205
- async function filterLogs(options = {}) {
206
- try {
207
- logger_1.default.newline();
208
- console.log(chalk_1.default.bold('🔍 日志过滤'));
209
- logger_1.default.newline();
210
- // Select log level
211
- const levelChoice = await (0, prompts_1.select)({
212
- message: '选择日志级别:',
213
- choices: [
214
- { name: '🚨 Emergency (紧急)', value: 'emergency' },
215
- { name: '🔴 Alert (警报)', value: 'alert' },
216
- { name: '❗ Critical (严重)', value: 'critical' },
217
- { name: '❌ Error (错误)', value: 'error' },
218
- { name: '⚠️ Warning (警告)', value: 'warning' },
219
- { name: '📢 Notice (通知)', value: 'notice' },
220
- { name: 'ℹ️ Info (信息)', value: 'info' },
221
- { name: '🐛 Debug (调试)', value: 'debug' },
222
- { name: chalk_1.default.gray('不过滤'), value: 'none' },
223
- ],
224
- });
225
- // Select time range
226
- const timeChoice = await (0, prompts_1.select)({
227
- message: '选择时间范围:',
228
- choices: [
229
- { name: '最近 1 小时', value: '1 hour ago' },
230
- { name: '最近 3 小时', value: '3 hours ago' },
231
- { name: '最近 6 小时', value: '6 hours ago' },
232
- { name: '最近 12 小时', value: '12 hours ago' },
233
- { name: '今天', value: 'today' },
234
- { name: '昨天', value: 'yesterday' },
235
- { name: '最近 7 天', value: '7 days ago' },
236
- { name: chalk_1.default.gray('自定义'), value: 'custom' },
237
- { name: chalk_1.default.gray('不限制'), value: 'none' },
238
- ],
239
- });
240
- let since = timeChoice === 'none' ? undefined : timeChoice;
241
- if (timeChoice === 'custom') {
242
- since = await (0, prompts_1.input)({
243
- message: '请输入时间范围 (例如: "2024-01-01", "1 week ago"):',
244
- });
245
- }
246
- // Select number of lines
247
- const linesStr = await (0, prompts_1.input)({
248
- message: '显示多少条日志? (默认 50):',
249
- default: '50',
250
- });
251
- const lines = parseInt(linesStr, 10);
252
- // Query logs
253
- await viewLogs({
254
- ...options,
255
- level: levelChoice === 'none' ? undefined : levelChoice,
256
- since,
257
- lines,
258
- });
259
- }
260
- catch (error) {
261
- logger_1.default.error(error.message);
262
- process.exit(1);
263
- }
264
- }
265
- /**
266
- * Show logs submenu
267
- *
268
- * @param options - Command options
269
- * @returns Selected action result
270
- */
271
- async function showLogsMenu(options = {}) {
272
- const translations = (0, i18n_1.t)();
273
- while (true) {
274
- try {
275
- logger_1.default.newline();
276
- console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} ${translations.logs.title}`));
277
- logger_1.default.newline();
278
- const action = await (0, prompts_1.select)({
279
- message: translations.actions.selectAction,
280
- choices: [
281
- { name: `${ui_symbols_1.menuIcons.VIEW} ${translations.logs.accessLog}`, value: 'access' },
282
- { name: `${ui_symbols_1.menuIcons.ERROR} ${translations.logs.errorLog}`, value: 'error' },
283
- { name: chalk_1.default.gray(`${ui_symbols_1.menuIcons.BACK} ${translations.actions.back}`), value: 'back' },
284
- ],
285
- });
286
- if (action === 'back') {
287
- return;
288
- }
289
- if (action === 'access') {
290
- await viewAccessLogs(options);
291
- }
292
- else if (action === 'error') {
293
- await viewErrorLogs(options);
294
- }
295
- // Wait for user to press enter before showing menu again
296
- await (0, prompts_1.input)({
297
- message: chalk_1.default.gray('按 Enter 继续...'),
298
- });
299
- }
300
- catch (error) {
301
- // Handle Ctrl+C or other interrupts
302
- if (error.name === 'ExitPromptError') {
303
- return;
304
- }
305
- throw error;
306
- }
307
- }
308
- }
309
- /**
310
- * View access logs from file
311
- *
312
- * @param options - Command options
313
- */
314
- async function viewAccessLogs(options = {}) {
315
- const translations = (0, i18n_1.t)();
316
- const serviceName = options.serviceName || 'xray';
317
- const manager = new log_manager_1.LogManager(serviceName);
318
- const lines = options.lines || 50;
319
- try {
320
- // Check if log file exists
321
- const exists = await manager.logExists('access');
322
- if (!exists) {
323
- logger_1.default.newline();
324
- console.log(chalk_1.default.yellow(`${ui_symbols_1.menuIcons.WARNING} ${translations.logs.logFileNotFound}`));
325
- return;
326
- }
327
- // Read logs
328
- const logs = await manager.readAccessLog(lines);
329
- logger_1.default.newline();
330
- logger_1.default.separator();
331
- console.log(chalk_1.default.bold.cyan(`${ui_symbols_1.menuIcons.LOGS} ${translations.logs.accessLog}`));
332
- console.log(chalk_1.default.gray(` ${translations.logs.showingLines.replace('{lines}', String(logs.length))}`));
333
- logger_1.default.separator();
334
- logger_1.default.newline();
335
- if (logs.length === 0) {
336
- console.log(chalk_1.default.gray(` ${translations.logs.logFileEmpty}`));
337
- return;
338
- }
339
- // Display logs
340
- for (const log of logs) {
341
- console.log(formatLogEntry(log));
342
- }
343
- logger_1.default.newline();
344
- }
345
- catch (error) {
346
- logger_1.default.error(error.message);
347
- }
348
- }
349
- /**
350
- * View error logs from file
351
- *
352
- * @param options - Command options
353
- */
354
- async function viewErrorLogs(options = {}) {
355
- const translations = (0, i18n_1.t)();
356
- const serviceName = options.serviceName || 'xray';
357
- const manager = new log_manager_1.LogManager(serviceName);
358
- const lines = options.lines || 50;
359
- try {
360
- // Check if log file exists
361
- const exists = await manager.logExists('error');
362
- if (!exists) {
363
- logger_1.default.newline();
364
- console.log(chalk_1.default.yellow(`${ui_symbols_1.menuIcons.WARNING} ${translations.logs.logFileNotFound}`));
365
- return;
366
- }
367
- // Read logs
368
- const logs = await manager.readErrorLog(lines);
369
- logger_1.default.newline();
370
- logger_1.default.separator();
371
- console.log(chalk_1.default.bold.red(`${ui_symbols_1.menuIcons.ERROR} ${translations.logs.errorLog}`));
372
- console.log(chalk_1.default.gray(` ${translations.logs.showingLines.replace('{lines}', String(logs.length))}`));
373
- logger_1.default.separator();
374
- logger_1.default.newline();
375
- if (logs.length === 0) {
376
- console.log(chalk_1.default.gray(` ${translations.logs.logFileEmpty}`));
377
- return;
378
- }
379
- // Display logs with error highlighting
380
- for (const log of logs) {
381
- console.log(formatLogEntry(log));
382
- }
383
- logger_1.default.newline();
384
- }
385
- catch (error) {
386
- logger_1.default.error(error.message);
387
- }
388
- }
389
- //# sourceMappingURL=logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAsHH,4BAuDC;AAOD,gCAsDC;AAOD,gCAiEC;AAQD,oCAwCC;AAOD,wCAyCC;AAOD,sCAyCC;AAhcD,yDAA+D;AAC/D,6DAAqC;AACrC,kDAA0B;AAC1B,+CAAkD;AAClD,gDAA+D;AAC/D,0CAA6C;AAC7C,4CAA2C;AAC3C,wDAAoD;AACpD,yCAAmC;AAyBnC;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,QAAQ,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,eAAK,CAAC,GAAG,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,MAAM,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,IAAI,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,eAAK,CAAC,KAAK,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,eAAK,CAAC,IAAI,CAAC;QACpB;YACE,OAAO,eAAK,CAAC,KAAK,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,YAAY,GAAG,IAAA,qCAA0B,GAAE,CAAC;IAElD,0CAA0C;IAC1C,QAAQ,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAA,mBAAW,EAAC,iBAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACnD,KAAK,SAAS;YACZ,OAAO,IAAA,mBAAW,EAAC,iBAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAClD,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,IAAA,mBAAW,EAAC,iBAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAClD,KAAK,OAAO;YACV,OAAO,IAAA,mBAAW,EAAC,iBAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACnD;YACE,OAAO,IAAA,mBAAW,EAAC,iBAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAe;IACrC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE;QACxD,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElD,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,QAAQ,CAAC,UAA8B,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,WAAW,CAAC,CAAC;QAE5C,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACrC,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,aAAa;QACb,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;SAC3B,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sBAAS,CAAC,IAAI,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC;QAExE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QACtD,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,eAAe;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,UAA8B,EAAE;IAC/D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,WAAW,CAAC,CAAC;QAE5C,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACrC,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sBAAS,CAAC,IAAI,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC;QAExE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,cAAc;QACd,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAC5C;YACE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;SAC3B,EACD,CAAC,KAAe,EAAE,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;QAEF,gBAAgB;QAChB,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,gBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEpC,2BAA2B;QAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,UAA8B,EAAE;IAC/D,IAAI,CAAC;QACH,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACnC,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC/B,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE;gBACjD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC9C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;gBACxC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC9C,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;gBACxC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzC,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;aAC3C;SACF,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC9B,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE;gBACxC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;gBACzC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;gBACzC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE;gBAC3C,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;gBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;gBACvC,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC5C,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;aAC3C;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,GAAuB,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAE/E,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,MAAM,IAAA,eAAK,EAAC;gBAClB,OAAO,EAAE,2CAA2C;aACrD,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;YAC3B,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErC,aAAa;QACb,MAAM,QAAQ,CAAC;YACb,GAAG,OAAO;YACV,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACvD,KAAK;YACL,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,UAA8B,EAAE;IACjE,MAAM,YAAY,GAAG,IAAA,QAAC,GAAE,CAAC;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sBAAS,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7E,gBAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;gBAC1B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY;gBAC1C,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,GAAG,sBAAS,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC7E,EAAE,IAAI,EAAE,GAAG,sBAAS,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC5E,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,GAAG,sBAAS,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;iBACtF;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAED,yDAAyD;YACzD,MAAM,IAAA,eAAK,EAAC;gBACV,OAAO,EAAE,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;YACpC,IAAK,KAAe,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,UAA8B,EAAE;IACnE,MAAM,YAAY,GAAG,IAAA,QAAC,GAAE,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,sBAAS,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,YAAY;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEhD,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sBAAS,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAC3F,CAAC;QACF,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,eAAe;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,UAA8B,EAAE;IAClE,MAAM,YAAY,GAAG,IAAA,QAAC,GAAE,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,sBAAS,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,YAAY;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAS,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAC3F,CAAC;QACF,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Quota Command Handler
3
- *
4
- * Handles quota-related commands (set, show, reset, list)
5
- *
6
- * @module commands/quota
7
- */
8
- /**
9
- * Quota command options
10
- */
11
- export interface QuotaCommandOptions {
12
- /** Config file path */
13
- configPath?: string;
14
- /** Service name */
15
- serviceName?: string;
16
- /** JSON output mode */
17
- json?: boolean;
18
- }
19
- /**
20
- * Parse quota input with validation
21
- * Supports formats: "10GB", "500MB", "1TB", preset selection
22
- */
23
- export declare function promptQuotaInput(): Promise<number>;
24
- /**
25
- * Set quota for a user
26
- */
27
- export declare function setQuota(options?: QuotaCommandOptions): Promise<void>;
28
- /**
29
- * Show quota details for a user
30
- */
31
- export declare function showQuota(options?: QuotaCommandOptions): Promise<void>;
32
- /**
33
- * Reset usage for a user
34
- */
35
- export declare function resetQuota(options?: QuotaCommandOptions): Promise<void>;
36
- /**
37
- * List all users with quota info
38
- */
39
- export declare function listQuotas(options?: QuotaCommandOptions): Promise<void>;
40
- /**
41
- * Re-enable a disabled user
42
- */
43
- export declare function reenableUser(_options?: QuotaCommandOptions): Promise<void>;
44
- /**
45
- * Configure Stats API manually
46
- */
47
- export declare function configureStatsApi(options?: QuotaCommandOptions): Promise<void>;
48
- /**
49
- * Execute quota check and enforce limits
50
- *
51
- * @param options - Command options
52
- */
53
- export declare function executeQuotaCheck(options?: QuotaCommandOptions): Promise<void>;
54
- //# sourceMappingURL=quota.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyBH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA8FD;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsCxD;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD/E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GhF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CjF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0GjF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CpF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GxF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGxF"}