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.
- 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,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interface for the Dashboard Widget
|
|
3
|
-
* Responsible for rendering the persistent status header.
|
|
4
|
-
*/
|
|
5
|
-
export interface IDashboardWidget {
|
|
6
|
-
/**
|
|
7
|
-
* Refreshes the internal data snapshot (service status, user count, etc.)
|
|
8
|
-
*/
|
|
9
|
-
refresh(): Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* Renders the dashboard as a formatted string string suitable for printing.
|
|
12
|
-
* Should respect terminal width and use box-drawing characters.
|
|
13
|
-
* @param width - The available width in columns.
|
|
14
|
-
*/
|
|
15
|
-
render(_width: number): string;
|
|
16
|
-
}
|
|
17
|
-
export interface IScreenManager {
|
|
18
|
-
/**
|
|
19
|
-
* Clears the terminal screen and scrollback (if supported/configured).
|
|
20
|
-
*/
|
|
21
|
-
clear(): void;
|
|
22
|
-
/**
|
|
23
|
-
* Renders the complete frame: Dashboard + Breadcrumb + Content Placeholder
|
|
24
|
-
* @param dashboard - The dashboard widget instance
|
|
25
|
-
* @param breadcrumb - The current breadcrumb string
|
|
26
|
-
*/
|
|
27
|
-
renderHeader(_dashboard: IDashboardWidget, _breadcrumb: string): void;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Interface for Navigation Manager
|
|
31
|
-
* Tracks the user's current location in the menu hierarchy.
|
|
32
|
-
*/
|
|
33
|
-
export interface INavigationManager {
|
|
34
|
-
/**
|
|
35
|
-
* Pushes a new menu level onto the stack.
|
|
36
|
-
* @param label - The display label for the new level.
|
|
37
|
-
*/
|
|
38
|
-
push(_label: string): void;
|
|
39
|
-
/**
|
|
40
|
-
* Pops the current level off the stack.
|
|
41
|
-
* @returns The label of the popped level.
|
|
42
|
-
*/
|
|
43
|
-
pop(): string | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* Returns the formatted breadcrumb string (e.g., "Home > User Management")
|
|
46
|
-
*/
|
|
47
|
-
getBreadcrumb(): string;
|
|
48
|
-
/**
|
|
49
|
-
* Gets the current depth of the stack.
|
|
50
|
-
*/
|
|
51
|
-
getDepth(): number;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=ui-components.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-components.d.ts","sourceRoot":"","sources":["../../src/types/ui-components.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;OAIG;IACH,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACvE;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,GAAG,IAAI,MAAM,GAAG,SAAS,CAAC;IAE1B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-components.js","sourceRoot":"","sources":["../../src/types/ui-components.ts"],"names":[],"mappings":""}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Metadata Types
|
|
3
|
-
*
|
|
4
|
-
* Types for user metadata persistence (creation time, status history)
|
|
5
|
-
*
|
|
6
|
-
* @module types/user-metadata
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* User status values
|
|
10
|
-
*/
|
|
11
|
-
export type UserStatus = 'active' | 'disabled' | 'exceeded';
|
|
12
|
-
/**
|
|
13
|
-
* Metadata for a single user
|
|
14
|
-
*/
|
|
15
|
-
export interface UserMeta {
|
|
16
|
-
/** User creation timestamp (ISO8601) */
|
|
17
|
-
createdAt: string;
|
|
18
|
-
/** Current user status */
|
|
19
|
-
status: UserStatus;
|
|
20
|
-
/** Last status change timestamp (ISO8601) */
|
|
21
|
-
statusChangedAt?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* User metadata storage structure
|
|
25
|
-
*/
|
|
26
|
-
export interface UserMetadataStore {
|
|
27
|
-
/** Map of user UUID to metadata */
|
|
28
|
-
users: Record<string, UserMeta>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* User metadata update parameters
|
|
32
|
-
*/
|
|
33
|
-
export interface UserMetadataUpdate {
|
|
34
|
-
/** New status (optional) */
|
|
35
|
-
status?: UserStatus;
|
|
36
|
-
/** Status change timestamp (optional, defaults to now) */
|
|
37
|
-
statusChangedAt?: string;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Default empty metadata store
|
|
41
|
-
*/
|
|
42
|
-
export declare const EMPTY_METADATA_STORE: UserMetadataStore;
|
|
43
|
-
//# sourceMappingURL=user-metadata.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-metadata.d.ts","sourceRoot":"","sources":["../../src/types/user-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;IAEnB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAElC,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* User Metadata Types
|
|
4
|
-
*
|
|
5
|
-
* Types for user metadata persistence (creation time, status history)
|
|
6
|
-
*
|
|
7
|
-
* @module types/user-metadata
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.EMPTY_METADATA_STORE = void 0;
|
|
11
|
-
/**
|
|
12
|
-
* Default empty metadata store
|
|
13
|
-
*/
|
|
14
|
-
exports.EMPTY_METADATA_STORE = {
|
|
15
|
-
users: {},
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=user-metadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-metadata.js","sourceRoot":"","sources":["../../src/types/user-metadata.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAwCH;;GAEG;AACU,QAAA,oBAAoB,GAAsB;IACrD,KAAK,EAAE,EAAE;CACV,CAAC"}
|
package/dist/types/user.d.ts
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 用户管理相关类型定义
|
|
3
|
-
* @module types/user
|
|
4
|
-
*/
|
|
5
|
-
import type { TrafficQuota, TrafficUsage, AlertLevel } from './quota';
|
|
6
|
-
/**
|
|
7
|
-
* 用户实体
|
|
8
|
-
*/
|
|
9
|
-
export interface User {
|
|
10
|
-
/** 用户唯一标识(UUID v4) */
|
|
11
|
-
id: string;
|
|
12
|
-
/** 用户邮箱或标识符 */
|
|
13
|
-
email: string;
|
|
14
|
-
/** 创建时间(ISO 8601 字符串) */
|
|
15
|
-
createdAt: string;
|
|
16
|
-
/** 状态:active, disabled, exceeded */
|
|
17
|
-
status: 'active' | 'disabled' | 'exceeded';
|
|
18
|
-
/** 流控模式(可选) */
|
|
19
|
-
flow?: string;
|
|
20
|
-
/** 协议级别 */
|
|
21
|
-
level: number;
|
|
22
|
-
/** 最后修改时间 */
|
|
23
|
-
updatedAt?: string;
|
|
24
|
-
/** 流量配额(可选) */
|
|
25
|
-
quota?: TrafficQuota;
|
|
26
|
-
/** 当前流量使用(可选) */
|
|
27
|
-
usage?: TrafficUsage;
|
|
28
|
-
/** 使用百分比(0-100,无限制时为 0) */
|
|
29
|
-
usagePercent?: number;
|
|
30
|
-
/** 警告级别 */
|
|
31
|
-
alertLevel?: AlertLevel;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* 用户配置(用于显示)
|
|
35
|
-
*/
|
|
36
|
-
export interface UserConfig {
|
|
37
|
-
username: string;
|
|
38
|
-
uuid: string;
|
|
39
|
-
port?: number;
|
|
40
|
-
protocol?: string;
|
|
41
|
-
flow?: string;
|
|
42
|
-
status?: string;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* 用户创建参数
|
|
46
|
-
*/
|
|
47
|
-
export interface CreateUserParams {
|
|
48
|
-
/** 用户邮箱或标识符 */
|
|
49
|
-
email: string;
|
|
50
|
-
/** 流控模式(可选,默认根据协议) */
|
|
51
|
-
flow?: string;
|
|
52
|
-
/** 协议级别(可选,默认 0) */
|
|
53
|
-
level?: number;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 用户更新参数
|
|
57
|
-
*/
|
|
58
|
-
export interface UpdateUserParams {
|
|
59
|
-
/** 用户邮箱或标识符(用于查找) */
|
|
60
|
-
email: string;
|
|
61
|
-
/** 新的流控模式(可选) */
|
|
62
|
-
flow?: string;
|
|
63
|
-
/** 新的协议级别(可选) */
|
|
64
|
-
level?: number;
|
|
65
|
-
/** 新的状态(可选) */
|
|
66
|
-
status?: 'active' | 'disabled';
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* 用户分享信息
|
|
70
|
-
*/
|
|
71
|
-
export interface UserShareInfo {
|
|
72
|
-
/** 用户基本信息 */
|
|
73
|
-
user: User;
|
|
74
|
-
/** VLESS/VMESS 分享链接 */
|
|
75
|
-
shareLink: string;
|
|
76
|
-
/** 服务器地址 */
|
|
77
|
-
serverAddress: string;
|
|
78
|
-
/** 服务器端口 */
|
|
79
|
-
serverPort: number;
|
|
80
|
-
/** 协议类型 */
|
|
81
|
-
protocol: string;
|
|
82
|
-
/** TLS/Reality 配置 */
|
|
83
|
-
security: string;
|
|
84
|
-
/** 服务器名称(SNI) */
|
|
85
|
-
serverName?: string;
|
|
86
|
-
/** Public Key (Reality) */
|
|
87
|
-
publicKey?: string;
|
|
88
|
-
/** Short ID (Reality) */
|
|
89
|
-
shortId?: string;
|
|
90
|
-
/** 二维码 ASCII 艺术(可选) */
|
|
91
|
-
qrCode?: string;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* 用户列表查询选项
|
|
95
|
-
*/
|
|
96
|
-
export interface ListUsersOptions {
|
|
97
|
-
/** 过滤状态 */
|
|
98
|
-
status?: 'active' | 'disabled';
|
|
99
|
-
/** 排序字段 */
|
|
100
|
-
sortBy?: 'createdAt' | 'email' | 'updatedAt';
|
|
101
|
-
/** 排序方向 */
|
|
102
|
-
sortOrder?: 'asc' | 'desc';
|
|
103
|
-
/** 分页:跳过数量 */
|
|
104
|
-
skip?: number;
|
|
105
|
-
/** 分页:限制数量 */
|
|
106
|
-
limit?: number;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* 用户操作结果
|
|
110
|
-
*/
|
|
111
|
-
export interface UserOperationResult {
|
|
112
|
-
/** 操作是否成功 */
|
|
113
|
-
success: boolean;
|
|
114
|
-
/** 操作类型 */
|
|
115
|
-
operation: 'add' | 'delete' | 'update' | 'list' | 'show';
|
|
116
|
-
/** 用户信息(如果适用) */
|
|
117
|
-
user?: User;
|
|
118
|
-
/** 用户列表(如果适用) */
|
|
119
|
-
users?: User[];
|
|
120
|
-
/** 错误消息(如果失败) */
|
|
121
|
-
error?: string;
|
|
122
|
-
/** 是否需要重启服务 */
|
|
123
|
-
needsRestart?: boolean;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* 脱敏后的值
|
|
127
|
-
*/
|
|
128
|
-
export interface MaskedValue {
|
|
129
|
-
/** 脱敏显示的值(前4后4) */
|
|
130
|
-
masked: string;
|
|
131
|
-
/** 原始完整值 */
|
|
132
|
-
original: string;
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=user.d.ts.map
|
package/dist/types/user.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"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"}
|
package/dist/types/user.js
DELETED
package/dist/types/user.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clipboard Utility
|
|
3
|
-
*
|
|
4
|
-
* Copy text to system clipboard
|
|
5
|
-
*
|
|
6
|
-
* @module utils/clipboard
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Copy text to clipboard
|
|
10
|
-
*
|
|
11
|
-
* @param text - Text to copy
|
|
12
|
-
* @returns True if successful
|
|
13
|
-
*/
|
|
14
|
-
export declare function copyToClipboard(text: string): Promise<boolean>;
|
|
15
|
-
/**
|
|
16
|
-
* Read text from clipboard
|
|
17
|
-
*
|
|
18
|
-
* @returns Text from clipboard
|
|
19
|
-
*/
|
|
20
|
-
export declare function readFromClipboard(): Promise<string>;
|
|
21
|
-
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQpE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAMzD"}
|
package/dist/utils/clipboard.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Clipboard Utility
|
|
4
|
-
*
|
|
5
|
-
* Copy text to system clipboard
|
|
6
|
-
*
|
|
7
|
-
* @module utils/clipboard
|
|
8
|
-
*/
|
|
9
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.copyToClipboard = copyToClipboard;
|
|
14
|
-
exports.readFromClipboard = readFromClipboard;
|
|
15
|
-
const clipboardy_1 = __importDefault(require("clipboardy"));
|
|
16
|
-
/**
|
|
17
|
-
* Copy text to clipboard
|
|
18
|
-
*
|
|
19
|
-
* @param text - Text to copy
|
|
20
|
-
* @returns True if successful
|
|
21
|
-
*/
|
|
22
|
-
async function copyToClipboard(text) {
|
|
23
|
-
try {
|
|
24
|
-
await clipboardy_1.default.write(text);
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
// Clipboard may not be available in non-interactive environments
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Read text from clipboard
|
|
34
|
-
*
|
|
35
|
-
* @returns Text from clipboard
|
|
36
|
-
*/
|
|
37
|
-
async function readFromClipboard() {
|
|
38
|
-
try {
|
|
39
|
-
return await clipboardy_1.default.read();
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return '';
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=clipboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAUH,0CAQC;AAOD,8CAMC;AA7BD,4DAAoC;AAEpC;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,MAAM,oBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,oBAAU,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Formatter Utility
|
|
3
|
-
* @module utils/error-formatter
|
|
4
|
-
*
|
|
5
|
-
* Formats errors into user-friendly output with causes and solutions.
|
|
6
|
-
*/
|
|
7
|
-
import { AppError } from './errors';
|
|
8
|
-
import { ErrorInfo } from '../constants/error-codes';
|
|
9
|
-
/**
|
|
10
|
-
* Format options
|
|
11
|
-
*/
|
|
12
|
-
export interface FormatOptions {
|
|
13
|
-
/** Show causes section */
|
|
14
|
-
showCauses?: boolean;
|
|
15
|
-
/** Show solutions section */
|
|
16
|
-
showSolutions?: boolean;
|
|
17
|
-
/** Show stack trace (for debugging) */
|
|
18
|
-
showStack?: boolean;
|
|
19
|
-
/** Indentation string */
|
|
20
|
-
indent?: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Format an AppError into user-friendly output
|
|
24
|
-
* @param error - The AppError to format
|
|
25
|
-
* @param options - Formatting options
|
|
26
|
-
* @returns Formatted error string
|
|
27
|
-
*/
|
|
28
|
-
export declare function formatAppError(error: AppError, options?: FormatOptions): string;
|
|
29
|
-
/**
|
|
30
|
-
* Format an ErrorInfo object (without creating an AppError)
|
|
31
|
-
* @param errorInfo - The error info to format
|
|
32
|
-
* @param details - Additional details
|
|
33
|
-
* @param options - Formatting options
|
|
34
|
-
* @returns Formatted error string
|
|
35
|
-
*/
|
|
36
|
-
export declare function formatErrorInfo(errorInfo: ErrorInfo, details?: string, options?: FormatOptions): string;
|
|
37
|
-
/**
|
|
38
|
-
* Format a generic Error with fallback error info
|
|
39
|
-
* @param error - The error to format
|
|
40
|
-
* @param fallbackInfo - Fallback error info if not an AppError
|
|
41
|
-
* @param options - Formatting options
|
|
42
|
-
* @returns Formatted error string
|
|
43
|
-
*/
|
|
44
|
-
export declare function formatError(error: Error, fallbackInfo?: ErrorInfo, options?: FormatOptions): string;
|
|
45
|
-
/**
|
|
46
|
-
* Format error by looking up error code
|
|
47
|
-
* @param code - Error code (e.g., "E101")
|
|
48
|
-
* @param details - Additional details
|
|
49
|
-
* @param options - Formatting options
|
|
50
|
-
* @returns Formatted error string or undefined if code not found
|
|
51
|
-
*/
|
|
52
|
-
export declare function formatByCode(code: string, details?: string, options?: FormatOptions): string | undefined;
|
|
53
|
-
/**
|
|
54
|
-
* Create a simple error message (just the header line)
|
|
55
|
-
* @param errorInfo - The error info
|
|
56
|
-
* @param details - Additional details
|
|
57
|
-
* @returns Simple error message
|
|
58
|
-
*/
|
|
59
|
-
export declare function simpleErrorMessage(errorInfo: ErrorInfo, details?: string): string;
|
|
60
|
-
//# sourceMappingURL=error-formatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CA2E/E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CA+DR;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,YAAY,CAAC,EAAE,SAAS,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAoBR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,GAAG,SAAS,CAMpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAWjF"}
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Error Formatter Utility
|
|
4
|
-
* @module utils/error-formatter
|
|
5
|
-
*
|
|
6
|
-
* Formats errors into user-friendly output with causes and solutions.
|
|
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.formatAppError = formatAppError;
|
|
13
|
-
exports.formatErrorInfo = formatErrorInfo;
|
|
14
|
-
exports.formatError = formatError;
|
|
15
|
-
exports.formatByCode = formatByCode;
|
|
16
|
-
exports.simpleErrorMessage = simpleErrorMessage;
|
|
17
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
-
const errors_1 = require("./errors");
|
|
19
|
-
const error_codes_1 = require("../constants/error-codes");
|
|
20
|
-
const terminal_1 = require("./terminal");
|
|
21
|
-
const logger_1 = require("./logger");
|
|
22
|
-
const DEFAULT_OPTIONS = {
|
|
23
|
-
showCauses: true,
|
|
24
|
-
showSolutions: true,
|
|
25
|
-
showStack: false,
|
|
26
|
-
indent: ' ',
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Get error icon based on terminal capabilities
|
|
30
|
-
*/
|
|
31
|
-
function getErrorIcon() {
|
|
32
|
-
const capabilities = (0, terminal_1.detectTerminalCapabilities)();
|
|
33
|
-
return capabilities.supportsUnicode ? '✗' : '[ERROR]';
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Format an AppError into user-friendly output
|
|
37
|
-
* @param error - The AppError to format
|
|
38
|
-
* @param options - Formatting options
|
|
39
|
-
* @returns Formatted error string
|
|
40
|
-
*/
|
|
41
|
-
function formatAppError(error, options) {
|
|
42
|
-
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
43
|
-
const mode = (0, logger_1.getOutputMode)();
|
|
44
|
-
const lines = [];
|
|
45
|
-
const indent = opts.indent || ' ';
|
|
46
|
-
// Header line: ✗ 错误 [E101]: 配置文件不存在
|
|
47
|
-
const icon = getErrorIcon();
|
|
48
|
-
const headerText = `${icon} 错误 [${error.code}]: ${error.title}`;
|
|
49
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
50
|
-
lines.push(chalk_1.default.red.bold(headerText));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
lines.push(headerText);
|
|
54
|
-
}
|
|
55
|
-
// Details if present
|
|
56
|
-
if (error.details) {
|
|
57
|
-
lines.push('');
|
|
58
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
59
|
-
lines.push(chalk_1.default.gray(`${indent}${error.details}`));
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
lines.push(`${indent}${error.details}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Causes section
|
|
66
|
-
if (opts.showCauses && error.causes.length > 0) {
|
|
67
|
-
lines.push('');
|
|
68
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
69
|
-
lines.push(chalk_1.default.yellow('可能的原因:'));
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
lines.push('可能的原因:');
|
|
73
|
-
}
|
|
74
|
-
error.causes.forEach((cause, index) => {
|
|
75
|
-
const bullet = `${indent}${index + 1}. ${cause}`;
|
|
76
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
77
|
-
lines.push(chalk_1.default.gray(bullet));
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
lines.push(bullet);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
// Solutions section
|
|
85
|
-
if (opts.showSolutions && error.solutions.length > 0) {
|
|
86
|
-
lines.push('');
|
|
87
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
88
|
-
lines.push(chalk_1.default.green('解决方案:'));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
lines.push('解决方案:');
|
|
92
|
-
}
|
|
93
|
-
error.solutions.forEach((solution) => {
|
|
94
|
-
const bullet = `${indent}- ${solution}`;
|
|
95
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
96
|
-
lines.push(chalk_1.default.cyan(bullet));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
lines.push(bullet);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
// Stack trace (for debugging)
|
|
104
|
-
if (opts.showStack && error.stack) {
|
|
105
|
-
lines.push('');
|
|
106
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
107
|
-
lines.push(chalk_1.default.gray('Stack trace:'));
|
|
108
|
-
lines.push(chalk_1.default.gray(error.stack));
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
lines.push('Stack trace:');
|
|
112
|
-
lines.push(error.stack);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return lines.join('\n');
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Format an ErrorInfo object (without creating an AppError)
|
|
119
|
-
* @param errorInfo - The error info to format
|
|
120
|
-
* @param details - Additional details
|
|
121
|
-
* @param options - Formatting options
|
|
122
|
-
* @returns Formatted error string
|
|
123
|
-
*/
|
|
124
|
-
function formatErrorInfo(errorInfo, details, options) {
|
|
125
|
-
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
126
|
-
const mode = (0, logger_1.getOutputMode)();
|
|
127
|
-
const lines = [];
|
|
128
|
-
const indent = opts.indent || ' ';
|
|
129
|
-
// Header line
|
|
130
|
-
const icon = getErrorIcon();
|
|
131
|
-
const headerText = `${icon} 错误 [${errorInfo.code}]: ${errorInfo.title}`;
|
|
132
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
133
|
-
lines.push(chalk_1.default.red.bold(headerText));
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
lines.push(headerText);
|
|
137
|
-
}
|
|
138
|
-
// Details if present
|
|
139
|
-
if (details) {
|
|
140
|
-
lines.push('');
|
|
141
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
142
|
-
lines.push(chalk_1.default.gray(`${indent}${details}`));
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
lines.push(`${indent}${details}`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Causes section
|
|
149
|
-
if (opts.showCauses && errorInfo.causes.length > 0) {
|
|
150
|
-
lines.push('');
|
|
151
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
152
|
-
lines.push(chalk_1.default.yellow('可能的原因:'));
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
lines.push('可能的原因:');
|
|
156
|
-
}
|
|
157
|
-
errorInfo.causes.forEach((cause, index) => {
|
|
158
|
-
const bullet = `${indent}${index + 1}. ${cause}`;
|
|
159
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
160
|
-
lines.push(chalk_1.default.gray(bullet));
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
lines.push(bullet);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
// Solutions section
|
|
168
|
-
if (opts.showSolutions && errorInfo.solutions.length > 0) {
|
|
169
|
-
lines.push('');
|
|
170
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
171
|
-
lines.push(chalk_1.default.green('解决方案:'));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
lines.push('解决方案:');
|
|
175
|
-
}
|
|
176
|
-
errorInfo.solutions.forEach((solution) => {
|
|
177
|
-
const bullet = `${indent}- ${solution}`;
|
|
178
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
179
|
-
lines.push(chalk_1.default.cyan(bullet));
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
lines.push(bullet);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
return lines.join('\n');
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Format a generic Error with fallback error info
|
|
190
|
-
* @param error - The error to format
|
|
191
|
-
* @param fallbackInfo - Fallback error info if not an AppError
|
|
192
|
-
* @param options - Formatting options
|
|
193
|
-
* @returns Formatted error string
|
|
194
|
-
*/
|
|
195
|
-
function formatError(error, fallbackInfo, options) {
|
|
196
|
-
// If it's an AppError, format it directly
|
|
197
|
-
if (errors_1.AppError.isAppError(error)) {
|
|
198
|
-
return formatAppError(error, options);
|
|
199
|
-
}
|
|
200
|
-
// If we have fallback info, use it
|
|
201
|
-
if (fallbackInfo) {
|
|
202
|
-
return formatErrorInfo(fallbackInfo, error.message, options);
|
|
203
|
-
}
|
|
204
|
-
// Simple fallback for generic errors
|
|
205
|
-
const mode = (0, logger_1.getOutputMode)();
|
|
206
|
-
const icon = getErrorIcon();
|
|
207
|
-
const headerText = `${icon} 错误: ${error.message}`;
|
|
208
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
209
|
-
return chalk_1.default.red(headerText);
|
|
210
|
-
}
|
|
211
|
-
return headerText;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Format error by looking up error code
|
|
215
|
-
* @param code - Error code (e.g., "E101")
|
|
216
|
-
* @param details - Additional details
|
|
217
|
-
* @param options - Formatting options
|
|
218
|
-
* @returns Formatted error string or undefined if code not found
|
|
219
|
-
*/
|
|
220
|
-
function formatByCode(code, details, options) {
|
|
221
|
-
const errorInfo = (0, error_codes_1.findErrorByCode)(code);
|
|
222
|
-
if (!errorInfo) {
|
|
223
|
-
return undefined;
|
|
224
|
-
}
|
|
225
|
-
return formatErrorInfo(errorInfo, details, options);
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Create a simple error message (just the header line)
|
|
229
|
-
* @param errorInfo - The error info
|
|
230
|
-
* @param details - Additional details
|
|
231
|
-
* @returns Simple error message
|
|
232
|
-
*/
|
|
233
|
-
function simpleErrorMessage(errorInfo, details) {
|
|
234
|
-
const icon = getErrorIcon();
|
|
235
|
-
const message = details
|
|
236
|
-
? `${icon} 错误 [${errorInfo.code}]: ${errorInfo.title} - ${details}`
|
|
237
|
-
: `${icon} 错误 [${errorInfo.code}]: ${errorInfo.title}`;
|
|
238
|
-
const mode = (0, logger_1.getOutputMode)();
|
|
239
|
-
if (mode === logger_1.OutputMode.RICH) {
|
|
240
|
-
return chalk_1.default.red(message);
|
|
241
|
-
}
|
|
242
|
-
return message;
|
|
243
|
-
}
|
|
244
|
-
//# sourceMappingURL=error-formatter.js.map
|