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,86 +0,0 @@
1
- "use strict";
2
- /**
3
- * Operating system detection utilities
4
- * Feature: 009-cross-platform-support
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.detectOperatingSystem = detectOperatingSystem;
8
- const fs_1 = require("fs");
9
- const platform_js_1 = require("../types/platform.js");
10
- const supported_distros_js_1 = require("../constants/supported-distros.js");
11
- /**
12
- * Parse /etc/os-release file content
13
- */
14
- function parseOsRelease(content) {
15
- const info = {};
16
- const lines = content.split('\n');
17
- for (const line of lines) {
18
- const match = line.match(/^([A-Z_]+)=["']?([^"'\n]*)["']?$/);
19
- if (match) {
20
- const [, key, value] = match;
21
- info[key] = value;
22
- }
23
- }
24
- return info;
25
- }
26
- /**
27
- * Detect operating system from /etc/os-release
28
- */
29
- function detectOperatingSystem() {
30
- let osInfo = {};
31
- // Primary: /etc/os-release
32
- if ((0, fs_1.existsSync)('/etc/os-release')) {
33
- const content = (0, fs_1.readFileSync)('/etc/os-release', 'utf-8');
34
- osInfo = parseOsRelease(content);
35
- }
36
- // Fallback detection for RHEL-based systems
37
- else if ((0, fs_1.existsSync)('/etc/almalinux-release')) {
38
- osInfo = { ID: 'almalinux' };
39
- const content = (0, fs_1.readFileSync)('/etc/almalinux-release', 'utf-8');
40
- const match = content.match(/(\d+(\.\d+)?)/);
41
- if (match)
42
- osInfo.VERSION_ID = match[1];
43
- }
44
- else if ((0, fs_1.existsSync)('/etc/rocky-release')) {
45
- osInfo = { ID: 'rocky' };
46
- const content = (0, fs_1.readFileSync)('/etc/rocky-release', 'utf-8');
47
- const match = content.match(/(\d+(\.\d+)?)/);
48
- if (match)
49
- osInfo.VERSION_ID = match[1];
50
- }
51
- else if ((0, fs_1.existsSync)('/etc/centos-release')) {
52
- osInfo = { ID: 'centos' };
53
- const content = (0, fs_1.readFileSync)('/etc/centos-release', 'utf-8');
54
- const match = content.match(/(\d+)/);
55
- if (match)
56
- osInfo.VERSION_ID = match[1];
57
- }
58
- else if ((0, fs_1.existsSync)('/etc/fedora-release')) {
59
- osInfo = { ID: 'fedora' };
60
- const content = (0, fs_1.readFileSync)('/etc/fedora-release', 'utf-8');
61
- const match = content.match(/(\d+)/);
62
- if (match)
63
- osInfo.VERSION_ID = match[1];
64
- }
65
- else if ((0, fs_1.existsSync)('/etc/debian_version')) {
66
- osInfo = { ID: 'debian' };
67
- osInfo.VERSION_ID = (0, fs_1.readFileSync)('/etc/debian_version', 'utf-8').trim();
68
- }
69
- else {
70
- return null;
71
- }
72
- const id = osInfo.ID?.toLowerCase() || '';
73
- const versionId = osInfo.VERSION_ID || '';
74
- const distroConfig = (0, supported_distros_js_1.getDistroConfig)(id);
75
- return {
76
- id,
77
- name: osInfo.PRETTY_NAME || distroConfig?.displayName || id,
78
- version: osInfo.VERSION || versionId,
79
- versionId,
80
- family: distroConfig?.family || platform_js_1.OsFamily.DEBIAN,
81
- packageManager: distroConfig?.packageManager || platform_js_1.PackageManager.APT,
82
- isSupported: (0, supported_distros_js_1.isDistroSupported)(id),
83
- minVersion: distroConfig?.minVersion || '',
84
- };
85
- }
86
- //# sourceMappingURL=os-detection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"os-detection.js","sourceRoot":"","sources":["../../src/utils/os-detection.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Preflight Checks Utility
3
- *
4
- * Performs system checks before starting the CLI tool
5
- *
6
- * @module utils/preflight
7
- */
8
- /**
9
- * Preflight check options
10
- */
11
- export interface PreflightOptions {
12
- /** Check if systemd is available */
13
- checkSystemd?: boolean;
14
- /** Check if Xray binary exists */
15
- checkXray?: boolean;
16
- /** Check if config file exists and is readable */
17
- checkConfig?: boolean;
18
- /** Config file path (if checking) */
19
- configPath?: string;
20
- /** Service name (if checking) */
21
- serviceName?: string;
22
- }
23
- /**
24
- * Preflight check result
25
- */
26
- export interface PreflightResult {
27
- /** Overall passed status */
28
- passed: boolean;
29
- /** Whether failures are critical (should prevent startup) */
30
- critical: boolean;
31
- /** List of errors */
32
- errors: string[];
33
- /** List of warnings */
34
- warnings: string[];
35
- /** Suggestions for fixing issues */
36
- suggestions: string[];
37
- /** Individual check results */
38
- checks: {
39
- systemd?: boolean;
40
- xray?: boolean;
41
- config?: boolean;
42
- permissions?: boolean;
43
- };
44
- }
45
- /**
46
- * Perform all preflight checks
47
- */
48
- export declare function preflightChecks(options?: PreflightOptions): Promise<PreflightResult>;
49
- /**
50
- * Check if running as root
51
- */
52
- export declare function isRoot(): boolean;
53
- /**
54
- * Check if sudo is available
55
- */
56
- export declare function canUseSudo(): Promise<boolean>;
57
- //# sourceMappingURL=preflight.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,OAAO,CAAC;IAEhB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAElB,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,+BAA+B;IAC/B,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AA2HD;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2E9F;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAYnD"}
@@ -1,215 +0,0 @@
1
- "use strict";
2
- /**
3
- * Preflight Checks Utility
4
- *
5
- * Performs system checks before starting the CLI tool
6
- *
7
- * @module utils/preflight
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.preflightChecks = preflightChecks;
11
- exports.isRoot = isRoot;
12
- exports.canUseSudo = canUseSudo;
13
- const child_process_1 = require("child_process");
14
- const promises_1 = require("fs/promises");
15
- const paths_1 = require("../constants/paths");
16
- const timeouts_1 = require("../constants/timeouts");
17
- /**
18
- * Check if systemd is available
19
- */
20
- async function checkSystemd() {
21
- return new Promise((resolve) => {
22
- const child = (0, child_process_1.spawn)('systemctl', ['--version'], {
23
- timeout: timeouts_1.TIMEOUTS.SYSTEMCTL_DEFAULT,
24
- });
25
- let stdout = '';
26
- child.stdout?.on('data', (data) => {
27
- stdout += data.toString();
28
- });
29
- child.on('close', (code) => {
30
- if (code === 0 && stdout.includes('systemd')) {
31
- resolve({ passed: true });
32
- }
33
- else {
34
- resolve({
35
- passed: false,
36
- error: 'systemd 不可用 - 此工具需要在 systemd 系统上运行',
37
- });
38
- }
39
- });
40
- child.on('error', (error) => {
41
- resolve({
42
- passed: false,
43
- error: `systemd 检查失败: ${error.message}`,
44
- });
45
- });
46
- });
47
- }
48
- /**
49
- * Check if Xray binary exists and is executable
50
- */
51
- async function checkXray(path = paths_1.DEFAULT_PATHS.XRAY_BINARY) {
52
- try {
53
- // Check if file exists and is executable
54
- await (0, promises_1.access)(path, promises_1.constants.F_OK | promises_1.constants.X_OK);
55
- return { passed: true };
56
- }
57
- catch (error) {
58
- if (error.code === 'ENOENT') {
59
- return {
60
- passed: false,
61
- warning: `Xray 二进制文件不存在: ${path}`,
62
- };
63
- }
64
- else if (error.code === 'EACCES') {
65
- return {
66
- passed: false,
67
- error: `Xray 二进制文件不可执行: ${path}`,
68
- };
69
- }
70
- else {
71
- return {
72
- passed: false,
73
- warning: `Xray 二进制文件检查失败: ${error.message}`,
74
- };
75
- }
76
- }
77
- }
78
- /**
79
- * Check if config file exists and is readable
80
- */
81
- async function checkConfig(path = paths_1.DEFAULT_PATHS.CONFIG_FILE) {
82
- try {
83
- // Check if file exists and is readable
84
- await (0, promises_1.access)(path, promises_1.constants.F_OK | promises_1.constants.R_OK);
85
- // Verify it's a JSON file
86
- if (!path.endsWith('.json')) {
87
- return {
88
- passed: false,
89
- warning: `配置文件应为 JSON 格式: ${path}`,
90
- };
91
- }
92
- return { passed: true };
93
- }
94
- catch (error) {
95
- if (error.code === 'ENOENT') {
96
- return {
97
- passed: false,
98
- warning: `配置文件不存在: ${path}`,
99
- };
100
- }
101
- else if (error.code === 'EACCES') {
102
- return {
103
- passed: false,
104
- error: `配置文件不可读: ${path}`,
105
- };
106
- }
107
- else {
108
- return {
109
- passed: false,
110
- warning: `配置文件检查失败: ${error.message}`,
111
- };
112
- }
113
- }
114
- }
115
- /**
116
- * Check if current user has necessary permissions
117
- */
118
- function checkPermissions() {
119
- const isRoot = process.getuid && process.getuid() === 0;
120
- if (isRoot) {
121
- return { passed: true };
122
- }
123
- // Check if sudo is available
124
- return {
125
- passed: true,
126
- warning: '当前用户不是 root - 某些操作可能需要 sudo 权限',
127
- };
128
- }
129
- /**
130
- * Perform all preflight checks
131
- */
132
- async function preflightChecks(options = {}) {
133
- const result = {
134
- passed: true,
135
- critical: false,
136
- errors: [],
137
- warnings: [],
138
- suggestions: [],
139
- checks: {},
140
- };
141
- // Check systemd
142
- if (options.checkSystemd !== false) {
143
- const systemdResult = await checkSystemd();
144
- result.checks.systemd = systemdResult.passed;
145
- if (!systemdResult.passed) {
146
- result.passed = false;
147
- result.critical = true;
148
- if (systemdResult.error) {
149
- result.errors.push(systemdResult.error);
150
- result.suggestions.push('确保在支持 systemd 的 Linux 发行版上运行 (Debian 10+, Ubuntu 20.04+, CentOS 8+)');
151
- }
152
- }
153
- }
154
- // Check Xray binary
155
- if (options.checkXray) {
156
- const xrayResult = await checkXray();
157
- result.checks.xray = xrayResult.passed;
158
- if (!xrayResult.passed) {
159
- result.passed = false;
160
- if (xrayResult.error) {
161
- result.errors.push(xrayResult.error);
162
- result.suggestions.push(`修复 Xray 二进制文件权限: sudo chmod +x ${paths_1.DEFAULT_PATHS.XRAY_BINARY}`);
163
- }
164
- else if (xrayResult.warning) {
165
- result.warnings.push(xrayResult.warning);
166
- result.suggestions.push(`安装 Xray: https://github.com/XTLS/Xray-install`);
167
- }
168
- }
169
- }
170
- // Check config file
171
- if (options.checkConfig) {
172
- const configPath = options.configPath || paths_1.DEFAULT_PATHS.CONFIG_FILE;
173
- const configResult = await checkConfig(configPath);
174
- result.checks.config = configResult.passed;
175
- if (!configResult.passed) {
176
- result.passed = false;
177
- if (configResult.error) {
178
- result.errors.push(configResult.error);
179
- result.suggestions.push(`修复配置文件权限: sudo chmod 600 ${configPath}`);
180
- }
181
- else if (configResult.warning) {
182
- result.warnings.push(configResult.warning);
183
- result.suggestions.push(`创建配置文件: sudo touch ${configPath}`);
184
- }
185
- }
186
- }
187
- // Check permissions
188
- const permResult = checkPermissions();
189
- result.checks.permissions = permResult.passed;
190
- if (permResult.warning) {
191
- result.warnings.push(permResult.warning);
192
- }
193
- return result;
194
- }
195
- /**
196
- * Check if running as root
197
- */
198
- function isRoot() {
199
- return !!(process.getuid && process.getuid() === 0);
200
- }
201
- /**
202
- * Check if sudo is available
203
- */
204
- async function canUseSudo() {
205
- return new Promise((resolve) => {
206
- const child = (0, child_process_1.spawn)('which', ['sudo']);
207
- child.on('close', (code) => {
208
- resolve(code === 0);
209
- });
210
- child.on('error', () => {
211
- resolve(false);
212
- });
213
- });
214
- }
215
- //# sourceMappingURL=preflight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Repository scanning helpers (read-only)
3
- *
4
- * @module utils/repo-scan
5
- */
6
- export interface RepoScanResult {
7
- repoPath: string;
8
- files: {
9
- readme?: string;
10
- license?: string;
11
- contributing?: string;
12
- codeOfConduct?: string;
13
- security?: string;
14
- changelog?: string;
15
- packageJson?: string;
16
- pullRequestTemplate?: string;
17
- maintainers?: string;
18
- roadmap?: string;
19
- };
20
- content: {
21
- readme?: string;
22
- license?: string;
23
- contributing?: string;
24
- codeOfConduct?: string;
25
- security?: string;
26
- changelog?: string;
27
- };
28
- directories: {
29
- docs?: string;
30
- tests?: string;
31
- examples?: string;
32
- github?: string;
33
- workflows?: string;
34
- issueTemplates?: string;
35
- };
36
- signals: {
37
- hasReadme: boolean;
38
- hasLicense: boolean;
39
- hasContributing: boolean;
40
- hasCodeOfConduct: boolean;
41
- hasSecurityPolicy: boolean;
42
- hasChangelog: boolean;
43
- hasTests: boolean;
44
- hasDocs: boolean;
45
- hasExamples: boolean;
46
- hasGithubActions: boolean;
47
- hasIssueTemplates: boolean;
48
- hasPullRequestTemplate: boolean;
49
- hasMaintainers: boolean;
50
- hasRoadmap: boolean;
51
- };
52
- }
53
- export declare function scanRepository(repoPath: string): Promise<RepoScanResult>;
54
- //# sourceMappingURL=repo-scan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo-scan.d.ts","sourceRoot":"","sources":["../../src/utils/repo-scan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,sBAAsB,EAAE,OAAO,CAAC;QAChC,cAAc,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAiFD,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAwF9E"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- /**
3
- * Repository scanning helpers (read-only)
4
- *
5
- * @module utils/repo-scan
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.scanRepository = scanRepository;
12
- const promises_1 = require("fs/promises");
13
- const path_1 = __importDefault(require("path"));
14
- const SEARCH_DIRS = ['.', '.github', 'docs'];
15
- function normalizeName(name) {
16
- return name.toLowerCase();
17
- }
18
- async function safeReadDir(dirPath) {
19
- try {
20
- const entries = await (0, promises_1.readdir)(dirPath, { withFileTypes: true });
21
- return entries.map((entry) => entry.name);
22
- }
23
- catch {
24
- return [];
25
- }
26
- }
27
- async function safeStat(targetPath) {
28
- try {
29
- return await (0, promises_1.stat)(targetPath);
30
- }
31
- catch {
32
- return null;
33
- }
34
- }
35
- async function safeReadFile(targetPath) {
36
- try {
37
- return await (0, promises_1.readFile)(targetPath, 'utf-8');
38
- }
39
- catch {
40
- return undefined;
41
- }
42
- }
43
- async function findFileInDirs(repoPath, names) {
44
- const normalized = names.map(normalizeName);
45
- for (const dir of SEARCH_DIRS) {
46
- const searchDir = path_1.default.join(repoPath, dir);
47
- const entries = await safeReadDir(searchDir);
48
- for (const entry of entries) {
49
- if (normalized.includes(normalizeName(entry))) {
50
- return path_1.default.join(searchDir, entry);
51
- }
52
- }
53
- }
54
- return undefined;
55
- }
56
- async function directoryExists(repoPath, dirName) {
57
- const target = path_1.default.join(repoPath, dirName);
58
- const info = await safeStat(target);
59
- if (info && info.isDirectory()) {
60
- return target;
61
- }
62
- return undefined;
63
- }
64
- async function hasAnyFiles(dirPath, extensions) {
65
- const entries = await safeReadDir(dirPath);
66
- const normalized = extensions.map(normalizeName);
67
- return entries.some((entry) => normalized.some((ext) => normalizeName(entry).endsWith(ext)));
68
- }
69
- async function findPullRequestTemplate(repoPath) {
70
- const candidates = ['PULL_REQUEST_TEMPLATE.md', 'pull_request_template.md'];
71
- for (const dir of ['.', '.github', 'docs']) {
72
- const searchDir = path_1.default.join(repoPath, dir);
73
- const entries = await safeReadDir(searchDir);
74
- for (const entry of entries) {
75
- if (candidates.includes(entry)) {
76
- return path_1.default.join(searchDir, entry);
77
- }
78
- }
79
- }
80
- return undefined;
81
- }
82
- async function scanRepository(repoPath) {
83
- const resolvedRepoPath = path_1.default.resolve(repoPath);
84
- const repoInfo = await safeStat(resolvedRepoPath);
85
- if (!repoInfo || !repoInfo.isDirectory()) {
86
- throw new Error(`Repository path is not a directory: ${resolvedRepoPath}`);
87
- }
88
- const readmePath = await findFileInDirs(resolvedRepoPath, ['README.md', 'README']);
89
- const licensePath = await findFileInDirs(resolvedRepoPath, ['LICENSE', 'LICENSE.md', 'COPYING']);
90
- const contributingPath = await findFileInDirs(resolvedRepoPath, [
91
- 'CONTRIBUTING.md',
92
- 'CONTRIBUTING',
93
- ]);
94
- const codeOfConductPath = await findFileInDirs(resolvedRepoPath, [
95
- 'CODE_OF_CONDUCT.md',
96
- 'CODE_OF_CONDUCT',
97
- ]);
98
- const securityPath = await findFileInDirs(resolvedRepoPath, ['SECURITY.md']);
99
- const changelogPath = await findFileInDirs(resolvedRepoPath, ['CHANGELOG.md', 'CHANGELOG']);
100
- const packageJsonPath = await findFileInDirs(resolvedRepoPath, ['package.json']);
101
- const maintainersPath = await findFileInDirs(resolvedRepoPath, ['MAINTAINERS.md', 'MAINTAINERS']);
102
- const roadmapPath = await findFileInDirs(resolvedRepoPath, ['ROADMAP.md', 'ROADMAP']);
103
- const docsDir = await directoryExists(resolvedRepoPath, 'docs');
104
- const testsDir = (await directoryExists(resolvedRepoPath, 'tests')) ||
105
- (await directoryExists(resolvedRepoPath, '__tests__'));
106
- const examplesDir = await directoryExists(resolvedRepoPath, 'examples');
107
- const githubDir = await directoryExists(resolvedRepoPath, '.github');
108
- const workflowsDir = githubDir ? await directoryExists(githubDir, 'workflows') : undefined;
109
- const issueTemplatesDir = githubDir
110
- ? await directoryExists(githubDir, 'ISSUE_TEMPLATE')
111
- : undefined;
112
- const pullRequestTemplate = await findPullRequestTemplate(resolvedRepoPath);
113
- const hasGithubActions = workflowsDir
114
- ? await hasAnyFiles(workflowsDir, ['.yml', '.yaml'])
115
- : false;
116
- const content = {
117
- readme: readmePath ? await safeReadFile(readmePath) : undefined,
118
- license: licensePath ? await safeReadFile(licensePath) : undefined,
119
- contributing: contributingPath ? await safeReadFile(contributingPath) : undefined,
120
- codeOfConduct: codeOfConductPath ? await safeReadFile(codeOfConductPath) : undefined,
121
- security: securityPath ? await safeReadFile(securityPath) : undefined,
122
- changelog: changelogPath ? await safeReadFile(changelogPath) : undefined,
123
- };
124
- return {
125
- repoPath: resolvedRepoPath,
126
- files: {
127
- readme: readmePath,
128
- license: licensePath,
129
- contributing: contributingPath,
130
- codeOfConduct: codeOfConductPath,
131
- security: securityPath,
132
- changelog: changelogPath,
133
- packageJson: packageJsonPath,
134
- pullRequestTemplate,
135
- maintainers: maintainersPath,
136
- roadmap: roadmapPath,
137
- },
138
- content,
139
- directories: {
140
- docs: docsDir,
141
- tests: testsDir,
142
- examples: examplesDir,
143
- github: githubDir,
144
- workflows: workflowsDir,
145
- issueTemplates: issueTemplatesDir,
146
- },
147
- signals: {
148
- hasReadme: Boolean(readmePath),
149
- hasLicense: Boolean(licensePath),
150
- hasContributing: Boolean(contributingPath),
151
- hasCodeOfConduct: Boolean(codeOfConductPath),
152
- hasSecurityPolicy: Boolean(securityPath),
153
- hasChangelog: Boolean(changelogPath),
154
- hasTests: Boolean(testsDir),
155
- hasDocs: Boolean(docsDir),
156
- hasExamples: Boolean(examplesDir),
157
- hasGithubActions: Boolean(hasGithubActions),
158
- hasIssueTemplates: Boolean(issueTemplatesDir),
159
- hasPullRequestTemplate: Boolean(pullRequestTemplate),
160
- hasMaintainers: Boolean(maintainersPath),
161
- hasRoadmap: Boolean(roadmapPath),
162
- },
163
- };
164
- }
165
- //# sourceMappingURL=repo-scan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo-scan.js","sourceRoot":"","sources":["../../src/utils/repo-scan.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Report output writer
3
- *
4
- * @module utils/report-output
5
- */
6
- export interface ReportOutputPayload {
7
- markdown?: string;
8
- json?: string;
9
- markdownPath?: string;
10
- jsonPath?: string;
11
- }
12
- export declare function writeReportOutputs(payload: ReportOutputPayload): Promise<void>;
13
- //# sourceMappingURL=report-output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report-output.d.ts","sourceRoot":"","sources":["../../src/utils/report-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpF"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- /**
3
- * Report output writer
4
- *
5
- * @module utils/report-output
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.writeReportOutputs = writeReportOutputs;
9
- const promises_1 = require("fs/promises");
10
- async function writeReportOutputs(payload) {
11
- const stdoutChunks = [];
12
- if (payload.markdown) {
13
- if (payload.markdownPath) {
14
- await (0, promises_1.writeFile)(payload.markdownPath, payload.markdown, 'utf-8');
15
- }
16
- else {
17
- stdoutChunks.push(payload.markdown);
18
- }
19
- }
20
- if (payload.json) {
21
- if (payload.jsonPath) {
22
- await (0, promises_1.writeFile)(payload.jsonPath, payload.json, 'utf-8');
23
- }
24
- else {
25
- stdoutChunks.push(payload.json);
26
- }
27
- }
28
- if (stdoutChunks.length > 0) {
29
- process.stdout.write(stdoutChunks.join('\n\n'));
30
- process.stdout.write('\n');
31
- }
32
- }
33
- //# sourceMappingURL=report-output.js.map