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.
- package/README.md +102 -42
- package/dist/cli.mjs +8587 -0
- package/dist/cli.mjs.map +7 -0
- package/package.json +13 -5
- package/dist/cli.d.ts +0 -11
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -134
- package/dist/cli.js.map +0 -1
- package/dist/commands/clash.d.ts +0 -20
- package/dist/commands/clash.d.ts.map +0 -1
- package/dist/commands/clash.js +0 -156
- package/dist/commands/clash.js.map +0 -1
- package/dist/commands/config.d.ts +0 -56
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -461
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/interactive.d.ts +0 -55
- package/dist/commands/interactive.d.ts.map +0 -1
- package/dist/commands/interactive.js +0 -418
- package/dist/commands/interactive.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -62
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -389
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/quota.d.ts +0 -54
- package/dist/commands/quota.d.ts.map +0 -1
- package/dist/commands/quota.js +0 -661
- package/dist/commands/quota.js.map +0 -1
- package/dist/commands/review.d.ts +0 -8
- package/dist/commands/review.d.ts.map +0 -1
- package/dist/commands/review.js +0 -79
- package/dist/commands/review.js.map +0 -1
- package/dist/commands/service.d.ts +0 -43
- package/dist/commands/service.d.ts.map +0 -1
- package/dist/commands/service.js +0 -202
- package/dist/commands/service.js.map +0 -1
- package/dist/commands/user.d.ts +0 -49
- package/dist/commands/user.d.ts.map +0 -1
- package/dist/commands/user.js +0 -371
- package/dist/commands/user.js.map +0 -1
- package/dist/components/dashboard-widget.d.ts +0 -21
- package/dist/components/dashboard-widget.d.ts.map +0 -1
- package/dist/components/dashboard-widget.js +0 -234
- package/dist/components/dashboard-widget.js.map +0 -1
- package/dist/components/progress-bar.d.ts +0 -67
- package/dist/components/progress-bar.d.ts.map +0 -1
- package/dist/components/progress-bar.js +0 -138
- package/dist/components/progress-bar.js.map +0 -1
- package/dist/components/user-table.d.ts +0 -8
- package/dist/components/user-table.d.ts.map +0 -1
- package/dist/components/user-table.js +0 -91
- package/dist/components/user-table.js.map +0 -1
- package/dist/config/i18n.d.ts +0 -136
- package/dist/config/i18n.d.ts.map +0 -1
- package/dist/config/i18n.js +0 -323
- package/dist/config/i18n.js.map +0 -1
- package/dist/constants/error-codes.d.ts +0 -344
- package/dist/constants/error-codes.d.ts.map +0 -1
- package/dist/constants/error-codes.js +0 -462
- package/dist/constants/error-codes.js.map +0 -1
- package/dist/constants/exit-codes.d.ts +0 -49
- package/dist/constants/exit-codes.d.ts.map +0 -1
- package/dist/constants/exit-codes.js +0 -100
- package/dist/constants/exit-codes.js.map +0 -1
- package/dist/constants/paths.d.ts +0 -63
- package/dist/constants/paths.d.ts.map +0 -1
- package/dist/constants/paths.js +0 -78
- package/dist/constants/paths.js.map +0 -1
- package/dist/constants/quota.d.ts +0 -126
- package/dist/constants/quota.d.ts.map +0 -1
- package/dist/constants/quota.js +0 -135
- package/dist/constants/quota.js.map +0 -1
- package/dist/constants/review.d.ts +0 -14
- package/dist/constants/review.d.ts.map +0 -1
- package/dist/constants/review.js +0 -33
- package/dist/constants/review.js.map +0 -1
- package/dist/constants/supported-distros.d.ts +0 -17
- package/dist/constants/supported-distros.d.ts.map +0 -1
- package/dist/constants/supported-distros.js +0 -68
- package/dist/constants/supported-distros.js.map +0 -1
- package/dist/constants/theme.d.ts +0 -34
- package/dist/constants/theme.d.ts.map +0 -1
- package/dist/constants/theme.js +0 -52
- package/dist/constants/theme.js.map +0 -1
- package/dist/constants/timeouts.d.ts +0 -84
- package/dist/constants/timeouts.d.ts.map +0 -1
- package/dist/constants/timeouts.js +0 -111
- package/dist/constants/timeouts.js.map +0 -1
- package/dist/constants/ui-symbols.d.ts +0 -47
- package/dist/constants/ui-symbols.d.ts.map +0 -1
- package/dist/constants/ui-symbols.js +0 -48
- package/dist/constants/ui-symbols.js.map +0 -1
- package/dist/services/clash-config.d.ts +0 -16
- package/dist/services/clash-config.d.ts.map +0 -1
- package/dist/services/clash-config.js +0 -107
- package/dist/services/clash-config.js.map +0 -1
- package/dist/services/config-manager.d.ts +0 -90
- package/dist/services/config-manager.d.ts.map +0 -1
- package/dist/services/config-manager.js +0 -307
- package/dist/services/config-manager.js.map +0 -1
- package/dist/services/layout-manager.d.ts +0 -94
- package/dist/services/layout-manager.d.ts.map +0 -1
- package/dist/services/layout-manager.js +0 -192
- package/dist/services/layout-manager.js.map +0 -1
- package/dist/services/log-manager.d.ts +0 -157
- package/dist/services/log-manager.d.ts.map +0 -1
- package/dist/services/log-manager.js +0 -397
- package/dist/services/log-manager.js.map +0 -1
- package/dist/services/navigation-manager.d.ts +0 -23
- package/dist/services/navigation-manager.d.ts.map +0 -1
- package/dist/services/navigation-manager.js +0 -39
- package/dist/services/navigation-manager.js.map +0 -1
- package/dist/services/platform-detector.d.ts +0 -10
- package/dist/services/platform-detector.d.ts.map +0 -1
- package/dist/services/platform-detector.js +0 -106
- package/dist/services/platform-detector.js.map +0 -1
- package/dist/services/public-ip-manager.d.ts +0 -78
- package/dist/services/public-ip-manager.d.ts.map +0 -1
- package/dist/services/public-ip-manager.js +0 -296
- package/dist/services/public-ip-manager.js.map +0 -1
- package/dist/services/quota-enforcer.d.ts +0 -86
- package/dist/services/quota-enforcer.d.ts.map +0 -1
- package/dist/services/quota-enforcer.js +0 -151
- package/dist/services/quota-enforcer.js.map +0 -1
- package/dist/services/quota-manager.d.ts +0 -101
- package/dist/services/quota-manager.d.ts.map +0 -1
- package/dist/services/quota-manager.js +0 -257
- package/dist/services/quota-manager.js.map +0 -1
- package/dist/services/review/areas/community.d.ts +0 -9
- package/dist/services/review/areas/community.d.ts.map +0 -1
- package/dist/services/review/areas/community.js +0 -59
- package/dist/services/review/areas/community.js.map +0 -1
- package/dist/services/review/areas/contribution.d.ts +0 -9
- package/dist/services/review/areas/contribution.d.ts.map +0 -1
- package/dist/services/review/areas/contribution.js +0 -107
- package/dist/services/review/areas/contribution.js.map +0 -1
- package/dist/services/review/areas/documentation.d.ts +0 -9
- package/dist/services/review/areas/documentation.d.ts.map +0 -1
- package/dist/services/review/areas/documentation.js +0 -110
- package/dist/services/review/areas/documentation.js.map +0 -1
- package/dist/services/review/areas/license.d.ts +0 -9
- package/dist/services/review/areas/license.d.ts.map +0 -1
- package/dist/services/review/areas/license.js +0 -86
- package/dist/services/review/areas/license.js.map +0 -1
- package/dist/services/review/areas/quality.d.ts +0 -9
- package/dist/services/review/areas/quality.d.ts.map +0 -1
- package/dist/services/review/areas/quality.js +0 -84
- package/dist/services/review/areas/quality.js.map +0 -1
- package/dist/services/review/areas/security.d.ts +0 -9
- package/dist/services/review/areas/security.d.ts.map +0 -1
- package/dist/services/review/areas/security.js +0 -64
- package/dist/services/review/areas/security.js.map +0 -1
- package/dist/services/review/evidence.d.ts +0 -10
- package/dist/services/review/evidence.d.ts.map +0 -1
- package/dist/services/review/evidence.js +0 -40
- package/dist/services/review/evidence.js.map +0 -1
- package/dist/services/review/recommendations-filter.d.ts +0 -12
- package/dist/services/review/recommendations-filter.d.ts.map +0 -1
- package/dist/services/review/recommendations-filter.js +0 -20
- package/dist/services/review/recommendations-filter.js.map +0 -1
- package/dist/services/review/repo-scanner.d.ts +0 -8
- package/dist/services/review/repo-scanner.d.ts.map +0 -1
- package/dist/services/review/repo-scanner.js +0 -15
- package/dist/services/review/repo-scanner.js.map +0 -1
- package/dist/services/review/report-renderer.d.ts +0 -15
- package/dist/services/review/report-renderer.d.ts.map +0 -1
- package/dist/services/review/report-renderer.js +0 -120
- package/dist/services/review/report-renderer.js.map +0 -1
- package/dist/services/review/review-engine.d.ts +0 -15
- package/dist/services/review/review-engine.d.ts.map +0 -1
- package/dist/services/review/review-engine.js +0 -61
- package/dist/services/review/review-engine.js.map +0 -1
- package/dist/services/review/summary-builder.d.ts +0 -8
- package/dist/services/review/summary-builder.d.ts.map +0 -1
- package/dist/services/review/summary-builder.js +0 -26
- package/dist/services/review/summary-builder.js.map +0 -1
- package/dist/services/screen-manager.d.ts +0 -13
- package/dist/services/screen-manager.d.ts.map +0 -1
- package/dist/services/screen-manager.js +0 -42
- package/dist/services/screen-manager.js.map +0 -1
- package/dist/services/stats-config-manager.d.ts +0 -110
- package/dist/services/stats-config-manager.d.ts.map +0 -1
- package/dist/services/stats-config-manager.js +0 -443
- package/dist/services/stats-config-manager.js.map +0 -1
- package/dist/services/systemd-manager.d.ts +0 -197
- package/dist/services/systemd-manager.d.ts.map +0 -1
- package/dist/services/systemd-manager.js +0 -458
- package/dist/services/systemd-manager.js.map +0 -1
- package/dist/services/traffic-manager.d.ts +0 -106
- package/dist/services/traffic-manager.d.ts.map +0 -1
- package/dist/services/traffic-manager.js +0 -368
- package/dist/services/traffic-manager.js.map +0 -1
- package/dist/services/user-manager.d.ts +0 -90
- package/dist/services/user-manager.d.ts.map +0 -1
- package/dist/services/user-manager.js +0 -347
- package/dist/services/user-manager.js.map +0 -1
- package/dist/services/user-metadata-manager.d.ts +0 -85
- package/dist/services/user-metadata-manager.d.ts.map +0 -1
- package/dist/services/user-metadata-manager.js +0 -181
- package/dist/services/user-metadata-manager.js.map +0 -1
- package/dist/types/config.d.ts +0 -340
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/types/layout.d.ts +0 -119
- package/dist/types/layout.d.ts.map +0 -1
- package/dist/types/layout.js +0 -142
- package/dist/types/layout.js.map +0 -1
- package/dist/types/platform.d.ts +0 -72
- package/dist/types/platform.d.ts.map +0 -1
- package/dist/types/platform.js +0 -38
- package/dist/types/platform.js.map +0 -1
- package/dist/types/quota.d.ts +0 -158
- package/dist/types/quota.d.ts.map +0 -1
- package/dist/types/quota.js +0 -26
- package/dist/types/quota.js.map +0 -1
- package/dist/types/review.d.ts +0 -62
- package/dist/types/review.d.ts.map +0 -1
- package/dist/types/review.js +0 -8
- package/dist/types/review.js.map +0 -1
- package/dist/types/server-config.d.ts +0 -53
- package/dist/types/server-config.d.ts.map +0 -1
- package/dist/types/server-config.js +0 -19
- package/dist/types/server-config.js.map +0 -1
- package/dist/types/service.d.ts +0 -96
- package/dist/types/service.d.ts.map +0 -1
- package/dist/types/service.js +0 -7
- package/dist/types/service.js.map +0 -1
- package/dist/types/terminal.d.ts +0 -35
- package/dist/types/terminal.d.ts.map +0 -1
- package/dist/types/terminal.js +0 -20
- package/dist/types/terminal.js.map +0 -1
- package/dist/types/ui-components.d.ts +0 -53
- package/dist/types/ui-components.d.ts.map +0 -1
- package/dist/types/ui-components.js +0 -3
- package/dist/types/ui-components.js.map +0 -1
- package/dist/types/user-metadata.d.ts +0 -43
- package/dist/types/user-metadata.d.ts.map +0 -1
- package/dist/types/user-metadata.js +0 -17
- package/dist/types/user-metadata.js.map +0 -1
- package/dist/types/user.d.ts +0 -134
- package/dist/types/user.d.ts.map +0 -1
- package/dist/types/user.js +0 -7
- package/dist/types/user.js.map +0 -1
- package/dist/utils/clipboard.d.ts +0 -21
- package/dist/utils/clipboard.d.ts.map +0 -1
- package/dist/utils/clipboard.js +0 -45
- package/dist/utils/clipboard.js.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -60
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/dist/utils/error-formatter.js +0 -244
- package/dist/utils/error-formatter.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -92
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -143
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/firewall.d.ts +0 -14
- package/dist/utils/firewall.d.ts.map +0 -1
- package/dist/utils/firewall.js +0 -78
- package/dist/utils/firewall.js.map +0 -1
- package/dist/utils/format.d.ts +0 -93
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -240
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/icons.d.ts +0 -53
- package/dist/utils/icons.d.ts.map +0 -1
- package/dist/utils/icons.js +0 -143
- package/dist/utils/icons.js.map +0 -1
- package/dist/utils/layout.d.ts +0 -142
- package/dist/utils/layout.d.ts.map +0 -1
- package/dist/utils/layout.js +0 -381
- package/dist/utils/layout.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -160
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -351
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/network.d.ts +0 -39
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js +0 -227
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/os-detection.d.ts +0 -10
- package/dist/utils/os-detection.d.ts.map +0 -1
- package/dist/utils/os-detection.js +0 -86
- package/dist/utils/os-detection.js.map +0 -1
- package/dist/utils/preflight.d.ts +0 -57
- package/dist/utils/preflight.d.ts.map +0 -1
- package/dist/utils/preflight.js +0 -215
- package/dist/utils/preflight.js.map +0 -1
- package/dist/utils/repo-scan.d.ts +0 -54
- package/dist/utils/repo-scan.d.ts.map +0 -1
- package/dist/utils/repo-scan.js +0 -165
- package/dist/utils/repo-scan.js.map +0 -1
- package/dist/utils/report-output.d.ts +0 -13
- package/dist/utils/report-output.d.ts.map +0 -1
- package/dist/utils/report-output.js +0 -33
- package/dist/utils/report-output.js.map +0 -1
- package/dist/utils/review-id.d.ts +0 -8
- package/dist/utils/review-id.d.ts.map +0 -1
- package/dist/utils/review-id.js +0 -17
- package/dist/utils/review-id.js.map +0 -1
- package/dist/utils/splash.d.ts +0 -21
- package/dist/utils/splash.d.ts.map +0 -1
- package/dist/utils/splash.js +0 -179
- package/dist/utils/splash.js.map +0 -1
- package/dist/utils/terminal.d.ts +0 -32
- package/dist/utils/terminal.d.ts.map +0 -1
- package/dist/utils/terminal.js +0 -93
- package/dist/utils/terminal.js.map +0 -1
- package/dist/utils/traffic-formatter.d.ts +0 -45
- package/dist/utils/traffic-formatter.d.ts.map +0 -1
- package/dist/utils/traffic-formatter.js +0 -131
- package/dist/utils/traffic-formatter.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -102
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -238
- package/dist/utils/validator.js.map +0 -1
- package/dist/utils/vless-link.d.ts +0 -27
- package/dist/utils/vless-link.d.ts.map +0 -1
- package/dist/utils/vless-link.js +0 -69
- package/dist/utils/vless-link.js.map +0 -1
- package/dist/utils/which.d.ts +0 -13
- package/dist/utils/which.d.ts.map +0 -1
- package/dist/utils/which.js +0 -28
- package/dist/utils/which.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xray-manager",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Xray 企业级管理平台 - 一键部署 + 流量配额管理 + 用户管理 | Enterprise-grade Xray management platform with one-click deployment, traffic quota, and user management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
|
-
"xray-manager": "./dist/cli.
|
|
9
|
-
"xm": "./dist/cli.
|
|
8
|
+
"xray-manager": "./dist/cli.mjs",
|
|
9
|
+
"xm": "./dist/cli.mjs"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build": "tsc",
|
|
16
|
-
"
|
|
15
|
+
"build": "tsc --noEmit && node esbuild.config.mjs",
|
|
16
|
+
"build:check": "tsc --noEmit",
|
|
17
|
+
"dev": "tsc --watch --noEmit",
|
|
17
18
|
"test": "vitest run",
|
|
18
19
|
"test:watch": "vitest",
|
|
19
20
|
"test:coverage": "vitest run --coverage",
|
|
@@ -60,21 +61,28 @@
|
|
|
60
61
|
"cli-table3": "^0.6.5",
|
|
61
62
|
"clipboardy": "^4.0.0",
|
|
62
63
|
"commander": "^12.1.0",
|
|
64
|
+
"fuse.js": "^7.3.0",
|
|
65
|
+
"ink": "^5.2.1",
|
|
63
66
|
"ora": "^5.4.1",
|
|
64
67
|
"qrcode-terminal": "^0.12.0",
|
|
68
|
+
"react": "^18.3.1",
|
|
65
69
|
"update-notifier": "^7.3.1"
|
|
66
70
|
},
|
|
67
71
|
"devDependencies": {
|
|
68
72
|
"@types/node": "^25.0.3",
|
|
69
73
|
"@types/qrcode-terminal": "^0.12.2",
|
|
74
|
+
"@types/react": "^18.3.28",
|
|
70
75
|
"@types/update-notifier": "^6.0.8",
|
|
71
76
|
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
72
77
|
"@typescript-eslint/parser": "^8.52.0",
|
|
73
78
|
"@vitest/coverage-v8": "^4.0.16",
|
|
74
79
|
"@vitest/ui": "^4.0.16",
|
|
75
80
|
"c8": "^10.1.3",
|
|
81
|
+
"esbuild": "^0.28.0",
|
|
76
82
|
"eslint": "^9.39.2",
|
|
83
|
+
"ink-testing-library": "^4.0.0",
|
|
77
84
|
"prettier": "^3.7.4",
|
|
85
|
+
"react-devtools-core": "^4.28.5",
|
|
78
86
|
"typescript": "^5.9.3",
|
|
79
87
|
"vitest": "^4.0.16"
|
|
80
88
|
}
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
|
package/dist/cli.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
/**
|
|
4
|
-
* Xray Manager CLI Entry Point
|
|
5
|
-
*
|
|
6
|
-
* This is the main entry point for the CLI tool.
|
|
7
|
-
* It performs preflight checks and launches the interactive menu.
|
|
8
|
-
*
|
|
9
|
-
* @module cli
|
|
10
|
-
*/
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const commander_1 = require("commander");
|
|
16
|
-
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
17
|
-
const logger_1 = __importDefault(require("./utils/logger"));
|
|
18
|
-
const exit_codes_1 = require("./constants/exit-codes");
|
|
19
|
-
const preflight_1 = require("./utils/preflight");
|
|
20
|
-
const interactive_1 = require("./commands/interactive");
|
|
21
|
-
const review_1 = require("./commands/review");
|
|
22
|
-
const clash_1 = require("./commands/clash");
|
|
23
|
-
const splash_1 = require("./utils/splash");
|
|
24
|
-
// Read package.json for version
|
|
25
|
-
const packageJson = require('../package.json');
|
|
26
|
-
/**
|
|
27
|
-
* Main CLI function
|
|
28
|
-
*/
|
|
29
|
-
async function main() {
|
|
30
|
-
// Show splash screen animation
|
|
31
|
-
await (0, splash_1.showSplash)(packageJson.version);
|
|
32
|
-
// Check for updates (after splash to avoid being cleared)
|
|
33
|
-
const notifier = (0, update_notifier_1.default)({
|
|
34
|
-
pkg: packageJson,
|
|
35
|
-
updateCheckInterval: 0, // Check every time
|
|
36
|
-
});
|
|
37
|
-
if (notifier.update) {
|
|
38
|
-
logger_1.default.newline();
|
|
39
|
-
notifier.notify({
|
|
40
|
-
isGlobal: true,
|
|
41
|
-
defer: false,
|
|
42
|
-
});
|
|
43
|
-
logger_1.default.newline();
|
|
44
|
-
}
|
|
45
|
-
// Create Commander program
|
|
46
|
-
const program = new commander_1.Command();
|
|
47
|
-
program
|
|
48
|
-
.name('xray-manager')
|
|
49
|
-
.description('Xray VPN 服务管理 CLI 工具')
|
|
50
|
-
.version(packageJson.version, '-v, --version', '显示版本号')
|
|
51
|
-
.helpOption('-h, --help', '显示帮助信息');
|
|
52
|
-
// Global options
|
|
53
|
-
program
|
|
54
|
-
.option('--config <path>', '指定配置文件路径')
|
|
55
|
-
.option('--service <name>', '指定服务名称', 'xray')
|
|
56
|
-
.option('--json', '以 JSON 格式输出')
|
|
57
|
-
.option('--no-color', '禁用彩色输出')
|
|
58
|
-
.option('--verbose', '详细输出模式');
|
|
59
|
-
(0, review_1.registerReviewCommand)(program);
|
|
60
|
-
(0, clash_1.registerClashCommand)(program);
|
|
61
|
-
// Default action: start interactive menu when no command provided
|
|
62
|
-
program.action(async () => {
|
|
63
|
-
const options = program.opts();
|
|
64
|
-
// Configure logger based on options
|
|
65
|
-
if (options.noColor) {
|
|
66
|
-
logger_1.default.configure({ color: false });
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
// Perform preflight checks
|
|
70
|
-
const preflightResult = await (0, preflight_1.preflightChecks)({
|
|
71
|
-
checkSystemd: true,
|
|
72
|
-
checkXray: false,
|
|
73
|
-
checkConfig: false,
|
|
74
|
-
});
|
|
75
|
-
if (!preflightResult.passed && preflightResult.critical) {
|
|
76
|
-
logger_1.default.error('预检查失败 - 无法启动菜单');
|
|
77
|
-
preflightResult.errors.forEach((error) => logger_1.default.error(` • ${error}`));
|
|
78
|
-
if (preflightResult.suggestions.length > 0) {
|
|
79
|
-
logger_1.default.hint('建议解决方案:');
|
|
80
|
-
preflightResult.suggestions.forEach((suggestion) => logger_1.default.info(` • ${suggestion}`));
|
|
81
|
-
}
|
|
82
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SERVICE_ERROR);
|
|
83
|
-
}
|
|
84
|
-
// Show warnings but continue
|
|
85
|
-
if (preflightResult.warnings.length > 0) {
|
|
86
|
-
preflightResult.warnings.forEach((warning) => logger_1.default.warn(warning));
|
|
87
|
-
logger_1.default.newline();
|
|
88
|
-
}
|
|
89
|
-
// Start interactive menu
|
|
90
|
-
await (0, interactive_1.startInteractiveMenu)({
|
|
91
|
-
configPath: options.config,
|
|
92
|
-
serviceName: options.service,
|
|
93
|
-
jsonOutput: options.json,
|
|
94
|
-
verbose: options.verbose,
|
|
95
|
-
});
|
|
96
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SUCCESS);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
logger_1.default.error('启动菜单时出错:');
|
|
100
|
-
logger_1.default.error(error.message);
|
|
101
|
-
if (options.verbose && error instanceof Error) {
|
|
102
|
-
logger_1.default.error('Stack trace:');
|
|
103
|
-
logger_1.default.error(error.stack || 'No stack trace available');
|
|
104
|
-
}
|
|
105
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
// Parse and execute
|
|
109
|
-
await program.parseAsync(process.argv);
|
|
110
|
-
}
|
|
111
|
-
// Handle SIGINT (Ctrl+C)
|
|
112
|
-
process.on('SIGINT', async () => {
|
|
113
|
-
logger_1.default.newline();
|
|
114
|
-
logger_1.default.info('[退出] 程序已中断');
|
|
115
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.SIGINT);
|
|
116
|
-
});
|
|
117
|
-
// Handle uncaught errors
|
|
118
|
-
process.on('uncaughtException', async (error) => {
|
|
119
|
-
logger_1.default.error('未捕获的异常:');
|
|
120
|
-
logger_1.default.error(error.message);
|
|
121
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
|
|
122
|
-
});
|
|
123
|
-
process.on('unhandledRejection', async (reason) => {
|
|
124
|
-
logger_1.default.error('未处理的 Promise 拒绝:');
|
|
125
|
-
logger_1.default.error(String(reason));
|
|
126
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
|
|
127
|
-
});
|
|
128
|
-
// Run main function
|
|
129
|
-
main().catch(async (error) => {
|
|
130
|
-
logger_1.default.error('Fatal error:');
|
|
131
|
-
logger_1.default.error(error.message);
|
|
132
|
-
await (0, exit_codes_1.gracefulExit)(exit_codes_1.ExitCode.GENERAL_ERROR);
|
|
133
|
-
});
|
|
134
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/clash.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clash config export command
|
|
3
|
-
*
|
|
4
|
-
* @module commands/clash
|
|
5
|
-
*/
|
|
6
|
-
import type { Command } from 'commander';
|
|
7
|
-
interface ClashExportOptions {
|
|
8
|
-
link?: string;
|
|
9
|
-
outputPath?: string;
|
|
10
|
-
proxyName?: string;
|
|
11
|
-
json?: boolean;
|
|
12
|
-
force?: boolean;
|
|
13
|
-
promptLink?: boolean;
|
|
14
|
-
promptOutputPath?: boolean;
|
|
15
|
-
promptOverwrite?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare function exportClashConfigFromLink(options?: ClashExportOptions): Promise<void>;
|
|
18
|
-
export declare function registerClashCommand(program: Command): void;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=clash.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA4FD,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C/F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqB3D"}
|
package/dist/commands/clash.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Clash config export command
|
|
4
|
-
*
|
|
5
|
-
* @module commands/clash
|
|
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.exportClashConfigFromLink = exportClashConfigFromLink;
|
|
12
|
-
exports.registerClashCommand = registerClashCommand;
|
|
13
|
-
const prompts_1 = require("@inquirer/prompts");
|
|
14
|
-
const fs_1 = require("fs");
|
|
15
|
-
const path_1 = require("path");
|
|
16
|
-
const os_1 = require("os");
|
|
17
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
-
const logger_1 = __importDefault(require("../utils/logger"));
|
|
19
|
-
const paths_1 = require("../constants/paths");
|
|
20
|
-
const vless_link_1 = require("../utils/vless-link");
|
|
21
|
-
const clash_config_1 = require("../services/clash-config");
|
|
22
|
-
function normalizeOutputPath(value) {
|
|
23
|
-
const trimmed = value.trim();
|
|
24
|
-
let path = trimmed;
|
|
25
|
-
// 处理 ~ 开头的路径
|
|
26
|
-
if (path.startsWith('~/')) {
|
|
27
|
-
path = (0, path_1.join)((0, os_1.homedir)(), path.slice(2));
|
|
28
|
-
}
|
|
29
|
-
// 如果为空,使用默认路径
|
|
30
|
-
if (!path) {
|
|
31
|
-
return paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE;
|
|
32
|
-
}
|
|
33
|
-
return path;
|
|
34
|
-
}
|
|
35
|
-
async function isDirectory(path) {
|
|
36
|
-
try {
|
|
37
|
-
const stat = await fs_1.promises.stat(path);
|
|
38
|
-
return stat.isDirectory();
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async function fileExists(path) {
|
|
45
|
-
try {
|
|
46
|
-
await fs_1.promises.access(path);
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async function writeClashConfigFile(options) {
|
|
54
|
-
const rawLink = options.link || '';
|
|
55
|
-
const link = rawLink.trim();
|
|
56
|
-
if (!link) {
|
|
57
|
-
throw new Error('未提供 VLESS 链接');
|
|
58
|
-
}
|
|
59
|
-
let outputPath = normalizeOutputPath(options.outputPath || paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE);
|
|
60
|
-
// 如果是目录,则追加默认文件名
|
|
61
|
-
if (await isDirectory(outputPath)) {
|
|
62
|
-
outputPath = (0, path_1.join)(outputPath, 'clash-config.yaml');
|
|
63
|
-
}
|
|
64
|
-
const info = (0, vless_link_1.parseVlessLink)(link);
|
|
65
|
-
const { yaml, proxyName, proxyGroupName } = (0, clash_config_1.buildClashConfigYaml)(info, {
|
|
66
|
-
proxyName: options.proxyName,
|
|
67
|
-
});
|
|
68
|
-
const exists = await fileExists(outputPath);
|
|
69
|
-
if (exists && !options.force) {
|
|
70
|
-
if (options.promptOverwrite) {
|
|
71
|
-
const overwrite = await (0, prompts_1.confirm)({
|
|
72
|
-
message: chalk_1.default.yellow(`输出文件已存在,是否覆盖?\n${outputPath}`),
|
|
73
|
-
default: false,
|
|
74
|
-
});
|
|
75
|
-
if (!overwrite) {
|
|
76
|
-
logger_1.default.info('已取消生成 Clash 配置');
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
throw new Error(`输出文件已存在: ${outputPath}`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
await fs_1.promises.mkdir((0, path_1.dirname)(outputPath), { recursive: true });
|
|
85
|
-
await fs_1.promises.writeFile(outputPath, yaml, 'utf8');
|
|
86
|
-
return {
|
|
87
|
-
outputPath,
|
|
88
|
-
proxyName,
|
|
89
|
-
proxyGroupName,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
async function exportClashConfigFromLink(options = {}) {
|
|
93
|
-
try {
|
|
94
|
-
let link = options.link;
|
|
95
|
-
if (!link && options.promptLink) {
|
|
96
|
-
link = await (0, prompts_1.input)({
|
|
97
|
-
message: '请输入 VLESS 链接:',
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
let outputPath = options.outputPath;
|
|
101
|
-
if (options.promptOutputPath) {
|
|
102
|
-
const outputInput = await (0, prompts_1.input)({
|
|
103
|
-
message: '请输入 Clash 配置输出路径:',
|
|
104
|
-
default: options.outputPath || paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE,
|
|
105
|
-
});
|
|
106
|
-
outputPath = outputInput;
|
|
107
|
-
}
|
|
108
|
-
const result = await writeClashConfigFile({
|
|
109
|
-
...options,
|
|
110
|
-
link,
|
|
111
|
-
outputPath,
|
|
112
|
-
});
|
|
113
|
-
if (!result) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (options.json) {
|
|
117
|
-
console.log(JSON.stringify(result, null, 2));
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
logger_1.default.newline();
|
|
121
|
-
logger_1.default.separator();
|
|
122
|
-
console.log(chalk_1.default.bold.cyan('📄 Clash 配置已生成'));
|
|
123
|
-
logger_1.default.separator();
|
|
124
|
-
logger_1.default.newline();
|
|
125
|
-
console.log(chalk_1.default.cyan(' 输出路径: ') + chalk_1.default.white(result.outputPath));
|
|
126
|
-
console.log(chalk_1.default.cyan(' 节点名称: ') + chalk_1.default.white(result.proxyName));
|
|
127
|
-
logger_1.default.newline();
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
logger_1.default.error(error.message);
|
|
131
|
-
process.exit(1);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function registerClashCommand(program) {
|
|
135
|
-
program
|
|
136
|
-
.command('clash')
|
|
137
|
-
.description('从 VLESS 分享链接生成 Clash 配置文件')
|
|
138
|
-
.option('--link <vless>', 'VLESS 分享链接')
|
|
139
|
-
.option('--out <path>', 'Clash 配置输出路径', paths_1.DEFAULT_PATHS.CLASH_CONFIG_FILE)
|
|
140
|
-
.option('--name <name>', '节点名称(覆盖链接内名称)')
|
|
141
|
-
.option('--json', '以 JSON 格式输出结果')
|
|
142
|
-
.option('-f, --force', '覆盖已存在的输出文件')
|
|
143
|
-
.action(async (options) => {
|
|
144
|
-
await exportClashConfigFromLink({
|
|
145
|
-
link: options.link,
|
|
146
|
-
outputPath: options.out,
|
|
147
|
-
proxyName: options.name,
|
|
148
|
-
json: options.json,
|
|
149
|
-
force: options.force,
|
|
150
|
-
promptLink: !options.link,
|
|
151
|
-
promptOutputPath: false,
|
|
152
|
-
promptOverwrite: true,
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=clash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Config Command Handler
|
|
3
|
-
*
|
|
4
|
-
* Handles configuration-related commands (view, backup, restore, modify)
|
|
5
|
-
*
|
|
6
|
-
* @module commands/config
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Config command options
|
|
10
|
-
*/
|
|
11
|
-
export interface ConfigCommandOptions {
|
|
12
|
-
/** Config file path */
|
|
13
|
-
configPath?: string;
|
|
14
|
-
/** Service name */
|
|
15
|
-
serviceName?: string;
|
|
16
|
-
/** JSON output mode */
|
|
17
|
-
json?: boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Display current configuration
|
|
21
|
-
*
|
|
22
|
-
* @param options - Command options
|
|
23
|
-
*/
|
|
24
|
-
export declare function viewConfig(options?: ConfigCommandOptions): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Create a configuration backup
|
|
27
|
-
*
|
|
28
|
-
* @param options - Command options
|
|
29
|
-
*/
|
|
30
|
-
export declare function backupConfig(options?: ConfigCommandOptions): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* List all configuration backups
|
|
33
|
-
*
|
|
34
|
-
* @param options - Command options
|
|
35
|
-
*/
|
|
36
|
-
export declare function listBackups(options?: ConfigCommandOptions): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Restore configuration from backup
|
|
39
|
-
*
|
|
40
|
-
* @param options - Command options
|
|
41
|
-
*/
|
|
42
|
-
export declare function restoreConfig(options?: ConfigCommandOptions): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Modify configuration item
|
|
45
|
-
*
|
|
46
|
-
* @param options - Command options
|
|
47
|
-
*/
|
|
48
|
-
export declare function modifyConfig(options?: ConfigCommandOptions): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Show config management submenu
|
|
51
|
-
*
|
|
52
|
-
* @param options - Command options
|
|
53
|
-
* @returns Selected action result
|
|
54
|
-
*/
|
|
55
|
-
export declare function showConfigMenu(options?: ConfigCommandOptions): Promise<void>;
|
|
56
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ClF;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CnF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqErF;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyGpF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CtF"}
|