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
package/dist/utils/format.js
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* 格式化工具函数
|
|
4
|
-
* @module utils/format
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.maskSensitiveValue = maskSensitiveValue;
|
|
8
|
-
exports.formatUptime = formatUptime;
|
|
9
|
-
exports.formatBytes = formatBytes;
|
|
10
|
-
exports.formatDate = formatDate;
|
|
11
|
-
exports.formatRelativeTime = formatRelativeTime;
|
|
12
|
-
exports.formatDuration = formatDuration;
|
|
13
|
-
exports.formatJSON = formatJSON;
|
|
14
|
-
exports.truncate = truncate;
|
|
15
|
-
exports.pad = pad;
|
|
16
|
-
exports.formatTableRow = formatTableRow;
|
|
17
|
-
exports.formatPercentage = formatPercentage;
|
|
18
|
-
/**
|
|
19
|
-
* 脱敏显示敏感信息(前4后4)
|
|
20
|
-
* @param value 原始值
|
|
21
|
-
* @param options 脱敏选项
|
|
22
|
-
* @returns 脱敏后的值
|
|
23
|
-
*/
|
|
24
|
-
function maskSensitiveValue(value, options = {}) {
|
|
25
|
-
const { prefixLength = 4, suffixLength = 4, maskChar = '*' } = options;
|
|
26
|
-
// Handle empty or very short strings
|
|
27
|
-
if (!value) {
|
|
28
|
-
return maskChar.repeat(3);
|
|
29
|
-
}
|
|
30
|
-
if (value.length <= prefixLength + suffixLength) {
|
|
31
|
-
// For short strings, show first char only
|
|
32
|
-
if (value.length <= 3) {
|
|
33
|
-
return value[0] + maskChar.repeat(value.length - 1 || 2);
|
|
34
|
-
}
|
|
35
|
-
return maskChar.repeat(value.length);
|
|
36
|
-
}
|
|
37
|
-
// Special handling for email addresses
|
|
38
|
-
if (value.includes('@')) {
|
|
39
|
-
const [localPart, domain] = value.split('@');
|
|
40
|
-
const maskedLocal = localPart.slice(0, Math.min(4, localPart.length)) +
|
|
41
|
-
maskChar.repeat(Math.max(0, localPart.length - 4));
|
|
42
|
-
return `${maskedLocal}@${domain}`;
|
|
43
|
-
}
|
|
44
|
-
// Default masking: show first 4 and last 4
|
|
45
|
-
const prefix = value.slice(0, prefixLength);
|
|
46
|
-
const suffix = value.slice(-suffixLength);
|
|
47
|
-
const maskLength = value.length - prefixLength - suffixLength;
|
|
48
|
-
return `${prefix}${maskChar.repeat(maskLength)}${suffix}`;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 格式化运行时长(毫秒转为可读格式)
|
|
52
|
-
* @param milliseconds 毫秒数
|
|
53
|
-
* @returns 格式化后的时长字符串
|
|
54
|
-
*/
|
|
55
|
-
function formatUptime(milliseconds) {
|
|
56
|
-
if (!milliseconds || milliseconds < 0) {
|
|
57
|
-
return '0秒';
|
|
58
|
-
}
|
|
59
|
-
const seconds = Math.floor(milliseconds / 1000);
|
|
60
|
-
const minutes = Math.floor(seconds / 60);
|
|
61
|
-
const hours = Math.floor(minutes / 60);
|
|
62
|
-
const days = Math.floor(hours / 24);
|
|
63
|
-
if (days > 0) {
|
|
64
|
-
return `${days}天 ${hours % 24}小时 ${minutes % 60}分钟`;
|
|
65
|
-
}
|
|
66
|
-
else if (hours > 0) {
|
|
67
|
-
return `${hours}小时 ${minutes % 60}分钟`;
|
|
68
|
-
}
|
|
69
|
-
else if (minutes > 0) {
|
|
70
|
-
return `${minutes}分钟 ${seconds % 60}秒`;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
return `${seconds}秒`;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 格式化字节大小
|
|
78
|
-
* @param bytes 字节数
|
|
79
|
-
* @param decimals 小数位数(默认 2)
|
|
80
|
-
* @returns 格式化后的大小字符串
|
|
81
|
-
*/
|
|
82
|
-
function formatBytes(bytes, decimals = 2) {
|
|
83
|
-
if (bytes === 0)
|
|
84
|
-
return '0 B';
|
|
85
|
-
if (!bytes || bytes < 0)
|
|
86
|
-
return 'N/A';
|
|
87
|
-
const k = 1024;
|
|
88
|
-
const dm = decimals < 0 ? 0 : decimals;
|
|
89
|
-
const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
|
90
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
91
|
-
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* 格式化时间戳为可读日期
|
|
95
|
-
* @param timestamp ISO 8601 字符串或 Unix 时间戳
|
|
96
|
-
* @returns 格式化后的日期字符串
|
|
97
|
-
*/
|
|
98
|
-
function formatDate(timestamp) {
|
|
99
|
-
const date = typeof timestamp === 'string' ? new Date(timestamp) : new Date(timestamp);
|
|
100
|
-
if (isNaN(date.getTime())) {
|
|
101
|
-
return 'Invalid Date';
|
|
102
|
-
}
|
|
103
|
-
const year = date.getFullYear();
|
|
104
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
105
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
106
|
-
const hours = String(date.getHours()).padStart(2, '0');
|
|
107
|
-
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
108
|
-
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* 格式化相对时间(如 "2 小时前")
|
|
112
|
-
* @param timestamp ISO 8601 字符串或 Unix 时间戳
|
|
113
|
-
* @returns 相对时间字符串
|
|
114
|
-
*/
|
|
115
|
-
function formatRelativeTime(timestamp) {
|
|
116
|
-
const date = typeof timestamp === 'string' ? new Date(timestamp) : new Date(timestamp);
|
|
117
|
-
const now = new Date();
|
|
118
|
-
const diffMs = now.getTime() - date.getTime();
|
|
119
|
-
if (diffMs < 0) {
|
|
120
|
-
return '未来';
|
|
121
|
-
}
|
|
122
|
-
const diffSeconds = Math.floor(diffMs / 1000);
|
|
123
|
-
const diffMinutes = Math.floor(diffSeconds / 60);
|
|
124
|
-
const diffHours = Math.floor(diffMinutes / 60);
|
|
125
|
-
const diffDays = Math.floor(diffHours / 24);
|
|
126
|
-
if (diffDays > 0) {
|
|
127
|
-
return `${diffDays}天前`;
|
|
128
|
-
}
|
|
129
|
-
else if (diffHours > 0) {
|
|
130
|
-
return `${diffHours}小时前`;
|
|
131
|
-
}
|
|
132
|
-
else if (diffMinutes > 0) {
|
|
133
|
-
return `${diffMinutes}分钟前`;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
return `${diffSeconds}秒前`;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* 格式化持续时间(毫秒转为简洁格式)
|
|
141
|
-
* @param ms 毫秒数
|
|
142
|
-
* @returns 格式化后的持续时间字符串
|
|
143
|
-
*/
|
|
144
|
-
function formatDuration(ms) {
|
|
145
|
-
if (ms < 1000) {
|
|
146
|
-
return `${ms}ms`;
|
|
147
|
-
}
|
|
148
|
-
else if (ms < 60000) {
|
|
149
|
-
return `${(ms / 1000).toFixed(1)}s`;
|
|
150
|
-
}
|
|
151
|
-
else if (ms < 3600000) {
|
|
152
|
-
return `${(ms / 60000).toFixed(1)}m`;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return `${(ms / 3600000).toFixed(1)}h`;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* 格式化 JSON(美化输出)
|
|
160
|
-
* @param obj 对象
|
|
161
|
-
* @param spaces 缩进空格数(默认 2)
|
|
162
|
-
* @returns 格式化后的 JSON 字符串
|
|
163
|
-
*/
|
|
164
|
-
function formatJSON(obj, spaces = 2) {
|
|
165
|
-
try {
|
|
166
|
-
return JSON.stringify(obj, null, spaces);
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
return String(obj);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 截断字符串(添加省略号)
|
|
174
|
-
* @param str 原始字符串
|
|
175
|
-
* @param maxLength 最大长度
|
|
176
|
-
* @param ellipsis 省略号(默认 ...)
|
|
177
|
-
* @returns 截断后的字符串
|
|
178
|
-
*/
|
|
179
|
-
function truncate(str, maxLength, ellipsis = '...') {
|
|
180
|
-
if (!str || str.length <= maxLength) {
|
|
181
|
-
return str;
|
|
182
|
-
}
|
|
183
|
-
return str.slice(0, maxLength - ellipsis.length) + ellipsis;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* 填充字符串(对齐)
|
|
187
|
-
* @param str 原始字符串
|
|
188
|
-
* @param length 目标长度
|
|
189
|
-
* @param padChar 填充字符(默认空格)
|
|
190
|
-
* @param align 对齐方式(默认 left)
|
|
191
|
-
* @returns 填充后的字符串
|
|
192
|
-
*/
|
|
193
|
-
function pad(str, length, padChar = ' ', align = 'left') {
|
|
194
|
-
if (str.length >= length) {
|
|
195
|
-
return str;
|
|
196
|
-
}
|
|
197
|
-
const padLength = length - str.length;
|
|
198
|
-
switch (align) {
|
|
199
|
-
case 'right':
|
|
200
|
-
return padChar.repeat(padLength) + str;
|
|
201
|
-
case 'center': {
|
|
202
|
-
const leftPad = Math.floor(padLength / 2);
|
|
203
|
-
const rightPad = padLength - leftPad;
|
|
204
|
-
return padChar.repeat(leftPad) + str + padChar.repeat(rightPad);
|
|
205
|
-
}
|
|
206
|
-
case 'left':
|
|
207
|
-
default:
|
|
208
|
-
return str + padChar.repeat(padLength);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* 格式化表格行(用于控制台输出)
|
|
213
|
-
* @param columns 列数据
|
|
214
|
-
* @param widths 列宽度
|
|
215
|
-
* @returns 格式化后的行字符串
|
|
216
|
-
*/
|
|
217
|
-
function formatTableRow(columns, widths) {
|
|
218
|
-
return columns.map((col, i) => pad(truncate(col, widths[i]), widths[i])).join(' │ ');
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* 格式化百分比
|
|
222
|
-
* @param value 数值(0-1 或 0-100)
|
|
223
|
-
* @param total 总数(可选)
|
|
224
|
-
* @param decimals 小数位数(默认 1)
|
|
225
|
-
* @returns 格式化后的百分比字符串
|
|
226
|
-
*/
|
|
227
|
-
function formatPercentage(value, total, decimals = 1) {
|
|
228
|
-
let percent;
|
|
229
|
-
if (total !== undefined && total > 0) {
|
|
230
|
-
percent = (value / total) * 100;
|
|
231
|
-
}
|
|
232
|
-
else if (value > 0 && value <= 1) {
|
|
233
|
-
percent = value * 100;
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
percent = value;
|
|
237
|
-
}
|
|
238
|
-
return `${percent.toFixed(decimals)}%`;
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=format.js.map
|
package/dist/utils/format.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/icons.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Resolver
|
|
3
|
-
* @module utils/icons
|
|
4
|
-
*
|
|
5
|
-
* Resolves appropriate icons based on terminal capabilities and context.
|
|
6
|
-
*/
|
|
7
|
-
import { TerminalCapabilities } from '../types/terminal';
|
|
8
|
-
import type { LogLevel } from './logger';
|
|
9
|
-
/**
|
|
10
|
-
* Status indicator with both Unicode and ASCII representations
|
|
11
|
-
*/
|
|
12
|
-
export interface StatusIndicator {
|
|
13
|
-
level: string;
|
|
14
|
-
unicode: string;
|
|
15
|
-
ascii: string;
|
|
16
|
-
color: 'green' | 'red' | 'yellow' | 'cyan' | 'blue' | 'gray';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Menu icon with emoji (deprecated) and text representations
|
|
20
|
-
*/
|
|
21
|
-
export interface MenuIcon {
|
|
22
|
-
emoji?: string;
|
|
23
|
-
text: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Resolve appropriate icon based on log level and terminal capabilities
|
|
27
|
-
* @param level - Log level
|
|
28
|
-
* @param capabilities - Terminal capabilities
|
|
29
|
-
* @returns Icon string (Unicode or ASCII)
|
|
30
|
-
*/
|
|
31
|
-
export declare function resolveIcon(level: LogLevel, capabilities: TerminalCapabilities): string;
|
|
32
|
-
/**
|
|
33
|
-
* Resolve icon for special states (loading, progress, hint)
|
|
34
|
-
* @param state - State name (LOADING, PROGRESS, HINT)
|
|
35
|
-
* @param capabilities - Terminal capabilities
|
|
36
|
-
* @returns Icon string
|
|
37
|
-
*/
|
|
38
|
-
export declare function resolveSpecialIcon(state: 'LOADING' | 'PROGRESS' | 'HINT', capabilities: TerminalCapabilities): string;
|
|
39
|
-
/**
|
|
40
|
-
* Get status indicator details for a log level
|
|
41
|
-
* @param level - Log level
|
|
42
|
-
* @returns Status indicator object
|
|
43
|
-
* @throws Error if log level is invalid
|
|
44
|
-
*/
|
|
45
|
-
export declare function getStatusIndicator(level: LogLevel): StatusIndicator;
|
|
46
|
-
/**
|
|
47
|
-
* Get menu icon for a specific key
|
|
48
|
-
* @param key - Menu icon key (STATUS, START, STOP, etc.)
|
|
49
|
-
* @returns Menu icon object
|
|
50
|
-
* @throws Error if key is not found
|
|
51
|
-
*/
|
|
52
|
-
export declare function getMenuIcon(key: string): MenuIcon;
|
|
53
|
-
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/utils/icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AA4ED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,GAAG,MAAM,CAevF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,EACtC,YAAY,EAAE,oBAAoB,GACjC,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,CAQnE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAQjD"}
|
package/dist/utils/icons.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Icon Resolver
|
|
4
|
-
* @module utils/icons
|
|
5
|
-
*
|
|
6
|
-
* Resolves appropriate icons based on terminal capabilities and context.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.resolveIcon = resolveIcon;
|
|
10
|
-
exports.resolveSpecialIcon = resolveSpecialIcon;
|
|
11
|
-
exports.getStatusIndicator = getStatusIndicator;
|
|
12
|
-
exports.getMenuIcon = getMenuIcon;
|
|
13
|
-
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
14
|
-
/**
|
|
15
|
-
* Status indicator mappings for all log levels
|
|
16
|
-
*/
|
|
17
|
-
const STATUS_INDICATOR_MAP = {
|
|
18
|
-
success: {
|
|
19
|
-
level: 'success',
|
|
20
|
-
unicode: '✓',
|
|
21
|
-
ascii: ui_symbols_1.statusIcons.SUCCESS,
|
|
22
|
-
color: 'green',
|
|
23
|
-
},
|
|
24
|
-
error: {
|
|
25
|
-
level: 'error',
|
|
26
|
-
unicode: '✗',
|
|
27
|
-
ascii: ui_symbols_1.statusIcons.ERROR,
|
|
28
|
-
color: 'red',
|
|
29
|
-
},
|
|
30
|
-
warn: {
|
|
31
|
-
level: 'warn',
|
|
32
|
-
unicode: '!',
|
|
33
|
-
ascii: ui_symbols_1.statusIcons.WARN,
|
|
34
|
-
color: 'yellow',
|
|
35
|
-
},
|
|
36
|
-
info: {
|
|
37
|
-
level: 'info',
|
|
38
|
-
unicode: 'i',
|
|
39
|
-
ascii: ui_symbols_1.statusIcons.INFO,
|
|
40
|
-
color: 'cyan',
|
|
41
|
-
},
|
|
42
|
-
debug: {
|
|
43
|
-
level: 'debug',
|
|
44
|
-
unicode: '·',
|
|
45
|
-
ascii: ui_symbols_1.statusIcons.DEBUG,
|
|
46
|
-
color: 'gray',
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Additional status indicators for special states
|
|
51
|
-
*/
|
|
52
|
-
const EXTRA_INDICATORS = {
|
|
53
|
-
LOADING: {
|
|
54
|
-
level: 'info',
|
|
55
|
-
unicode: '...',
|
|
56
|
-
ascii: ui_symbols_1.statusIcons.LOADING,
|
|
57
|
-
color: 'cyan',
|
|
58
|
-
},
|
|
59
|
-
PROGRESS: {
|
|
60
|
-
level: 'info',
|
|
61
|
-
unicode: '>',
|
|
62
|
-
ascii: ui_symbols_1.statusIcons.PROGRESS,
|
|
63
|
-
color: 'blue',
|
|
64
|
-
},
|
|
65
|
-
HINT: {
|
|
66
|
-
level: 'info',
|
|
67
|
-
unicode: '*',
|
|
68
|
-
ascii: ui_symbols_1.statusIcons.HINT,
|
|
69
|
-
color: 'cyan',
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Menu icon mappings
|
|
74
|
-
*/
|
|
75
|
-
const MENU_ICON_MAP = {
|
|
76
|
-
STATUS: { emoji: '📊', text: ui_symbols_1.menuIcons.STATUS },
|
|
77
|
-
START: { emoji: '🚀', text: ui_symbols_1.menuIcons.START },
|
|
78
|
-
STOP: { emoji: '🛑', text: ui_symbols_1.menuIcons.STOP },
|
|
79
|
-
RESTART: { emoji: '🔄', text: ui_symbols_1.menuIcons.RESTART },
|
|
80
|
-
USER: { emoji: '👥', text: ui_symbols_1.menuIcons.USER },
|
|
81
|
-
CONFIG: { emoji: '⚙️', text: ui_symbols_1.menuIcons.CONFIG },
|
|
82
|
-
LOGS: { emoji: '📝', text: ui_symbols_1.menuIcons.LOGS },
|
|
83
|
-
EXIT: { emoji: '❌', text: ui_symbols_1.menuIcons.EXIT },
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Resolve appropriate icon based on log level and terminal capabilities
|
|
87
|
-
* @param level - Log level
|
|
88
|
-
* @param capabilities - Terminal capabilities
|
|
89
|
-
* @returns Icon string (Unicode or ASCII)
|
|
90
|
-
*/
|
|
91
|
-
function resolveIcon(level, capabilities) {
|
|
92
|
-
const indicator = STATUS_INDICATOR_MAP[level];
|
|
93
|
-
if (!indicator) {
|
|
94
|
-
// Fallback for unknown levels
|
|
95
|
-
return capabilities.supportsUnicode ? '•' : ui_symbols_1.statusIcons.INFO;
|
|
96
|
-
}
|
|
97
|
-
// Use ASCII for terminals that don't support Unicode
|
|
98
|
-
if (!capabilities.supportsUnicode) {
|
|
99
|
-
return indicator.ascii;
|
|
100
|
-
}
|
|
101
|
-
// Use Unicode for modern terminals
|
|
102
|
-
return indicator.unicode;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Resolve icon for special states (loading, progress, hint)
|
|
106
|
-
* @param state - State name (LOADING, PROGRESS, HINT)
|
|
107
|
-
* @param capabilities - Terminal capabilities
|
|
108
|
-
* @returns Icon string
|
|
109
|
-
*/
|
|
110
|
-
function resolveSpecialIcon(state, capabilities) {
|
|
111
|
-
const indicator = EXTRA_INDICATORS[state];
|
|
112
|
-
if (!indicator) {
|
|
113
|
-
return capabilities.supportsUnicode ? '•' : ui_symbols_1.statusIcons.INFO;
|
|
114
|
-
}
|
|
115
|
-
return capabilities.supportsUnicode ? indicator.unicode : indicator.ascii;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Get status indicator details for a log level
|
|
119
|
-
* @param level - Log level
|
|
120
|
-
* @returns Status indicator object
|
|
121
|
-
* @throws Error if log level is invalid
|
|
122
|
-
*/
|
|
123
|
-
function getStatusIndicator(level) {
|
|
124
|
-
const indicator = STATUS_INDICATOR_MAP[level];
|
|
125
|
-
if (!indicator) {
|
|
126
|
-
throw new Error(`Invalid log level: ${level}`);
|
|
127
|
-
}
|
|
128
|
-
return indicator;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get menu icon for a specific key
|
|
132
|
-
* @param key - Menu icon key (STATUS, START, STOP, etc.)
|
|
133
|
-
* @returns Menu icon object
|
|
134
|
-
* @throws Error if key is not found
|
|
135
|
-
*/
|
|
136
|
-
function getMenuIcon(key) {
|
|
137
|
-
const icon = MENU_ICON_MAP[key.toUpperCase()];
|
|
138
|
-
if (!icon) {
|
|
139
|
-
throw new Error(`Unknown menu icon key: ${key}`);
|
|
140
|
-
}
|
|
141
|
-
return icon;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=icons.js.map
|
package/dist/utils/icons.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/utils/icons.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/layout.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layout Utility Functions
|
|
3
|
-
*
|
|
4
|
-
* Pure functions for layout calculations, text fitting, and rendering
|
|
5
|
-
* Feature: 005-ui-layout-expansion
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Table column definition
|
|
9
|
-
*/
|
|
10
|
-
export interface TableColumn {
|
|
11
|
-
header: string;
|
|
12
|
-
key: string;
|
|
13
|
-
width?: number;
|
|
14
|
-
align?: 'left' | 'center' | 'right';
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Render options for tables and sections
|
|
18
|
-
*/
|
|
19
|
-
export interface RenderOptions {
|
|
20
|
-
showBorder?: boolean;
|
|
21
|
-
borderStyle?: 'single' | 'double' | 'compact';
|
|
22
|
-
padding?: {
|
|
23
|
-
top: number;
|
|
24
|
-
right: number;
|
|
25
|
-
bottom: number;
|
|
26
|
-
left: number;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Calculate the display width of a string, accounting for Chinese characters
|
|
31
|
-
*
|
|
32
|
-
* Chinese characters (and other full-width characters) occupy 2 columns,
|
|
33
|
-
* while ASCII characters occupy 1 column.
|
|
34
|
-
*
|
|
35
|
-
* @param text - Input text
|
|
36
|
-
* @returns Display width in terminal columns
|
|
37
|
-
*/
|
|
38
|
-
export declare function calculateDisplayWidth(text: string): number;
|
|
39
|
-
/**
|
|
40
|
-
* Calculate the width of each column in a multi-column layout
|
|
41
|
-
*
|
|
42
|
-
* Formula: (totalWidth - (columns - 1) * gap) / columns
|
|
43
|
-
*
|
|
44
|
-
* @param totalWidth - Total available width
|
|
45
|
-
* @param columns - Number of columns
|
|
46
|
-
* @param gap - Space between columns
|
|
47
|
-
* @returns Width of each column (rounded down)
|
|
48
|
-
*/
|
|
49
|
-
export declare function calculateColumnWidth(totalWidth: number, columns: number, gap: number): number;
|
|
50
|
-
/**
|
|
51
|
-
* Fit text to a specific width by truncating or padding
|
|
52
|
-
*
|
|
53
|
-
* @param text - Input text
|
|
54
|
-
* @param width - Target width in columns
|
|
55
|
-
* @param align - Alignment ('left', 'center', 'right')
|
|
56
|
-
* @param ellipsis - Ellipsis string for truncation (default '...')
|
|
57
|
-
* @returns Text adjusted to exact width
|
|
58
|
-
*/
|
|
59
|
-
export declare function fitText(text: string, width: number, align?: 'left' | 'center' | 'right', ellipsis?: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* Render a horizontal separator line
|
|
62
|
-
*
|
|
63
|
-
* @param width - Width of separator in columns
|
|
64
|
-
* @param char - Character to use (default '─')
|
|
65
|
-
* @param color - Optional chalk color name
|
|
66
|
-
* @returns Separator string
|
|
67
|
-
*/
|
|
68
|
-
export declare function renderSeparator(width: number, char?: string, color?: string): string;
|
|
69
|
-
/**
|
|
70
|
-
* Render a header with optional alignment and border
|
|
71
|
-
*
|
|
72
|
-
* @param title - Header title text
|
|
73
|
-
* @param width - Total width
|
|
74
|
-
* @param align - Alignment
|
|
75
|
-
* @param options - Render options
|
|
76
|
-
* @returns Rendered header string
|
|
77
|
-
*/
|
|
78
|
-
export declare function renderHeader(title: string, width: number, align?: 'left' | 'center' | 'right', options?: {
|
|
79
|
-
showBorder?: boolean;
|
|
80
|
-
color?: string;
|
|
81
|
-
}): string;
|
|
82
|
-
/**
|
|
83
|
-
* Apply padding to a text block
|
|
84
|
-
*
|
|
85
|
-
* @param text - Original text (can be multi-line)
|
|
86
|
-
* @param padding - Padding configuration
|
|
87
|
-
* @param width - Target width (for horizontal padding)
|
|
88
|
-
* @returns Padded text
|
|
89
|
-
*/
|
|
90
|
-
export declare function applyPadding(text: string, padding: {
|
|
91
|
-
top: number;
|
|
92
|
-
right: number;
|
|
93
|
-
bottom: number;
|
|
94
|
-
left: number;
|
|
95
|
-
}, width: number): string;
|
|
96
|
-
/**
|
|
97
|
-
* Render a table using cli-table3
|
|
98
|
-
*
|
|
99
|
-
* @param columns - Column definitions
|
|
100
|
-
* @param rows - Data rows
|
|
101
|
-
* @param options - Render options
|
|
102
|
-
* @returns Rendered table string
|
|
103
|
-
*/
|
|
104
|
-
export declare function renderTable(columns: TableColumn[], rows: Record<string, unknown>[], options?: RenderOptions): string;
|
|
105
|
-
/**
|
|
106
|
-
* Render a section with title and content
|
|
107
|
-
*
|
|
108
|
-
* @param title - Section title
|
|
109
|
-
* @param content - Section content (can be multi-line)
|
|
110
|
-
* @param options - Render options
|
|
111
|
-
* @returns Rendered section string
|
|
112
|
-
*/
|
|
113
|
-
export declare function renderSection(title: string, content: string, options?: RenderOptions): string;
|
|
114
|
-
/**
|
|
115
|
-
* Distribute items evenly across multiple columns
|
|
116
|
-
*
|
|
117
|
-
* @param items - Array of items to distribute
|
|
118
|
-
* @param columnCount - Number of columns to create
|
|
119
|
-
* @returns Array of columns, each containing a subset of items
|
|
120
|
-
*
|
|
121
|
-
* @example
|
|
122
|
-
* distributeToColumns(['A', 'B', 'C', 'D', 'E', 'F'], 2)
|
|
123
|
-
* // Returns: [['A', 'B', 'C'], ['D', 'E', 'F']]
|
|
124
|
-
*
|
|
125
|
-
* distributeToColumns(['A', 'B', 'C', 'D', 'E'], 2)
|
|
126
|
-
* // Returns: [['A', 'B', 'C'], ['D', 'E']]
|
|
127
|
-
*/
|
|
128
|
-
export declare function distributeToColumns<T>(items: T[], columnCount: number): T[][];
|
|
129
|
-
/**
|
|
130
|
-
* Render multiple columns of text side by side
|
|
131
|
-
*
|
|
132
|
-
* @param columns - Array of columns, each containing lines of text
|
|
133
|
-
* @param totalWidth - Total width available for all columns
|
|
134
|
-
* @param gap - Space between columns (default: 2)
|
|
135
|
-
* @returns Rendered multi-column text
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* renderColumns([['Line 1', 'Line 2'], ['Col 2 Line 1', 'Col 2 Line 2']], 80, 2)
|
|
139
|
-
* // Returns text with two columns side by side
|
|
140
|
-
*/
|
|
141
|
-
export declare function renderColumns(columns: string[][], totalWidth: number, gap?: number): string;
|
|
142
|
-
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/utils/layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAKD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,OAAgB,EAC3C,QAAQ,GAAE,MAAc,GACvB,MAAM,CAwCR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAczF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,OAAkB,EAC7C,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,MAAM,CAiBR;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrE,KAAK,EAAE,MAAM,GACZ,MAAM,CAwBR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EAAE,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAkFR;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAoD7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAoB7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,MAAM,CAyB9F"}
|