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