xray-manager 1.2.0 → 1.3.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 +31 -863
- package/dist/commands/interactive.d.ts +0 -42
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +59 -182
- package/dist/commands/interactive.js.map +1 -1
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +23 -14
- package/dist/commands/user.js.map +1 -1
- package/dist/components/dashboard-widget.d.ts +18 -0
- package/dist/components/dashboard-widget.d.ts.map +1 -0
- package/dist/components/dashboard-widget.js +159 -0
- package/dist/components/dashboard-widget.js.map +1 -0
- package/dist/components/user-table.d.ts +8 -0
- package/dist/components/user-table.d.ts.map +1 -0
- package/dist/components/user-table.js +86 -0
- package/dist/components/user-table.js.map +1 -0
- package/dist/constants/theme.d.ts +34 -0
- package/dist/constants/theme.d.ts.map +1 -0
- package/dist/constants/theme.js +52 -0
- package/dist/constants/theme.js.map +1 -0
- package/dist/services/layout-manager.d.ts +8 -0
- package/dist/services/layout-manager.d.ts.map +1 -1
- package/dist/services/layout-manager.js +11 -0
- package/dist/services/layout-manager.js.map +1 -1
- package/dist/services/navigation-manager.d.ts +23 -0
- package/dist/services/navigation-manager.d.ts.map +1 -0
- package/dist/services/navigation-manager.js +39 -0
- package/dist/services/navigation-manager.js.map +1 -0
- package/dist/services/screen-manager.d.ts +13 -0
- package/dist/services/screen-manager.d.ts.map +1 -0
- package/dist/services/screen-manager.js +42 -0
- package/dist/services/screen-manager.js.map +1 -0
- package/dist/types/ui-components.d.ts +53 -0
- package/dist/types/ui-components.d.ts.map +1 -0
- package/dist/types/ui-components.js +3 -0
- package/dist/types/ui-components.js.map +1 -0
- package/dist/types/user.d.ts +11 -0
- package/dist/types/user.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -18,52 +18,10 @@ export interface MenuOptions {
|
|
|
18
18
|
/** Verbose mode */
|
|
19
19
|
verbose?: boolean;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Menu context information
|
|
23
|
-
*/
|
|
24
|
-
export interface MenuContext {
|
|
25
|
-
/** Service status */
|
|
26
|
-
serviceStatus?: string;
|
|
27
|
-
/** Number of users */
|
|
28
|
-
userCount?: number;
|
|
29
|
-
/** Last updated timestamp */
|
|
30
|
-
lastUpdated?: Date;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Menu stack for navigation
|
|
34
|
-
*/
|
|
35
|
-
export declare class MenuStack {
|
|
36
|
-
private stack;
|
|
37
|
-
push(menu: string): void;
|
|
38
|
-
pop(): string;
|
|
39
|
-
current(): string | undefined;
|
|
40
|
-
depth(): number;
|
|
41
|
-
canGoBack(): boolean;
|
|
42
|
-
clear(): void;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get menu context (service status, user count)
|
|
46
|
-
*/
|
|
47
|
-
export declare function getMenuContext(options?: MenuOptions): Promise<MenuContext>;
|
|
48
|
-
/**
|
|
49
|
-
* Format menu header with context
|
|
50
|
-
*/
|
|
51
|
-
export declare function formatMenuHeader(context: MenuContext): string;
|
|
52
21
|
/**
|
|
53
22
|
* Get main menu options
|
|
54
23
|
*/
|
|
55
24
|
export declare function getMainMenuOptions(): any[];
|
|
56
|
-
/**
|
|
57
|
-
* Get menu depth (for Constitution compliance - max 3 levels)
|
|
58
|
-
*/
|
|
59
|
-
export declare function getMenuDepth(): number;
|
|
60
|
-
/**
|
|
61
|
-
* Format a menu option with appropriate icon
|
|
62
|
-
*/
|
|
63
|
-
export declare function formatMenuOption(name: string, value: string): {
|
|
64
|
-
name: string;
|
|
65
|
-
value: string;
|
|
66
|
-
};
|
|
67
25
|
/**
|
|
68
26
|
* Show a menu and get user selection
|
|
69
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD;;GAEG;AAEH,wBAAgB,kBAAkB,IAAI,GAAG,EAAE,CA+C1C;AAED;;GAEG;AAEH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA0EnG;AA+ED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAQrD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE9E"}
|
|
@@ -10,12 +10,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
10
10
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.MenuStack = void 0;
|
|
14
|
-
exports.getMenuContext = getMenuContext;
|
|
15
|
-
exports.formatMenuHeader = formatMenuHeader;
|
|
16
13
|
exports.getMainMenuOptions = getMainMenuOptions;
|
|
17
|
-
exports.getMenuDepth = getMenuDepth;
|
|
18
|
-
exports.formatMenuOption = formatMenuOption;
|
|
19
14
|
exports.showMenu = showMenu;
|
|
20
15
|
exports.handleMenuSelection = handleMenuSelection;
|
|
21
16
|
exports.handleSigInt = handleSigInt;
|
|
@@ -24,181 +19,70 @@ const prompts_1 = require("@inquirer/prompts");
|
|
|
24
19
|
const chalk_1 = __importDefault(require("chalk"));
|
|
25
20
|
const logger_1 = __importDefault(require("../utils/logger"));
|
|
26
21
|
const exit_codes_1 = require("../constants/exit-codes");
|
|
27
|
-
const systemd_manager_1 = require("../services/systemd-manager");
|
|
28
|
-
const user_manager_1 = require("../services/user-manager");
|
|
29
22
|
const service_1 = require("./service");
|
|
30
23
|
const user_1 = require("./user");
|
|
31
24
|
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
32
25
|
const i18n_1 = require("../config/i18n");
|
|
33
26
|
const layout_manager_1 = __importDefault(require("../services/layout-manager"));
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
push(menu) {
|
|
44
|
-
this.stack.push(menu);
|
|
45
|
-
}
|
|
46
|
-
pop() {
|
|
47
|
-
if (this.stack.length === 0) {
|
|
48
|
-
throw new Error('Cannot pop from empty menu stack');
|
|
49
|
-
}
|
|
50
|
-
return this.stack.pop();
|
|
51
|
-
}
|
|
52
|
-
current() {
|
|
53
|
-
return this.stack[this.stack.length - 1];
|
|
54
|
-
}
|
|
55
|
-
depth() {
|
|
56
|
-
return this.stack.length;
|
|
57
|
-
}
|
|
58
|
-
canGoBack() {
|
|
59
|
-
return this.stack.length > 0;
|
|
60
|
-
}
|
|
61
|
-
clear() {
|
|
62
|
-
this.stack = [];
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.MenuStack = MenuStack;
|
|
66
|
-
// Global menu stack instance
|
|
67
|
-
const menuStack = new MenuStack();
|
|
68
|
-
/**
|
|
69
|
-
* Get menu context (service status, user count)
|
|
70
|
-
*/
|
|
71
|
-
async function getMenuContext(options = {}) {
|
|
72
|
-
const serviceName = options.serviceName || 'xray';
|
|
73
|
-
try {
|
|
74
|
-
const systemdManager = new systemd_manager_1.SystemdManager(serviceName);
|
|
75
|
-
const userManager = new user_manager_1.UserManager(options.configPath, serviceName);
|
|
76
|
-
const [status, users] = await Promise.all([
|
|
77
|
-
systemdManager.getStatus(),
|
|
78
|
-
userManager.listUsers(),
|
|
79
|
-
]);
|
|
80
|
-
return {
|
|
81
|
-
serviceStatus: status.healthy ? 'active' : status.active ? status.subState : 'inactive',
|
|
82
|
-
userCount: users.length,
|
|
83
|
-
lastUpdated: new Date(),
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// If service status fails, return unknown
|
|
88
|
-
return {
|
|
89
|
-
serviceStatus: 'unknown',
|
|
90
|
-
userCount: 0,
|
|
91
|
-
lastUpdated: new Date(),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Format menu header with context
|
|
97
|
-
*/
|
|
98
|
-
function formatMenuHeader(context) {
|
|
99
|
-
const trans = (0, i18n_1.t)();
|
|
100
|
-
const status = context.serviceStatus || 'unknown';
|
|
101
|
-
const userCount = context.userCount || 0;
|
|
102
|
-
// Translate status
|
|
103
|
-
let statusText = status;
|
|
104
|
-
if (status === 'active')
|
|
105
|
-
statusText = trans.status.active;
|
|
106
|
-
else if (status === 'inactive')
|
|
107
|
-
statusText = trans.status.inactive;
|
|
108
|
-
else
|
|
109
|
-
statusText = trans.status.unknown;
|
|
110
|
-
const statusColor = status === 'active' ? chalk_1.default.green : status === 'inactive' ? chalk_1.default.red : chalk_1.default.yellow;
|
|
111
|
-
return `${chalk_1.default.gray(trans.status.serviceStatus + ':')} ${statusColor(statusText)} ${chalk_1.default.gray(trans.status.userCount + ':')} ${chalk_1.default.cyan(String(userCount))}`;
|
|
112
|
-
}
|
|
27
|
+
const screen_manager_1 = require("../services/screen-manager");
|
|
28
|
+
const dashboard_widget_1 = require("../components/dashboard-widget");
|
|
29
|
+
const navigation_manager_1 = require("../services/navigation-manager");
|
|
30
|
+
const theme_1 = require("../constants/theme");
|
|
31
|
+
// Global instances
|
|
32
|
+
const screenManager = new screen_manager_1.ScreenManager();
|
|
33
|
+
const navigationManager = new navigation_manager_1.NavigationManager();
|
|
34
|
+
let dashboardWidget;
|
|
113
35
|
/**
|
|
114
36
|
* Get main menu options
|
|
115
37
|
*/
|
|
116
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
117
39
|
function getMainMenuOptions() {
|
|
118
40
|
const trans = (0, i18n_1.t)();
|
|
41
|
+
// Unified color theme: Icons use accents, text uses neutral/primary
|
|
119
42
|
return [
|
|
120
43
|
// Service Operations Group
|
|
121
44
|
{
|
|
122
|
-
name:
|
|
45
|
+
name: `${theme_1.THEME.primary(ui_symbols_1.menuIcons.STATUS)} ${theme_1.THEME.neutral(trans.menu.viewStatus)}`,
|
|
123
46
|
value: 'service-status',
|
|
124
47
|
},
|
|
125
48
|
{
|
|
126
|
-
name:
|
|
49
|
+
name: `${theme_1.THEME.success(ui_symbols_1.menuIcons.START)} ${theme_1.THEME.neutral(trans.menu.startService)}`,
|
|
127
50
|
value: 'service-start',
|
|
128
51
|
},
|
|
129
52
|
{
|
|
130
|
-
name:
|
|
53
|
+
name: `${theme_1.THEME.error(ui_symbols_1.menuIcons.STOP)} ${theme_1.THEME.neutral(trans.menu.stopService)}`,
|
|
131
54
|
value: 'service-stop',
|
|
132
55
|
},
|
|
133
56
|
{
|
|
134
|
-
name:
|
|
57
|
+
name: `${theme_1.THEME.warning(ui_symbols_1.menuIcons.RESTART)} ${theme_1.THEME.neutral(trans.menu.restartService)}`,
|
|
135
58
|
value: 'service-restart',
|
|
136
59
|
},
|
|
137
60
|
new prompts_1.Separator(),
|
|
138
61
|
// Management Group
|
|
139
62
|
{
|
|
140
|
-
name:
|
|
63
|
+
name: `${theme_1.THEME.secondary(ui_symbols_1.menuIcons.USER)} ${theme_1.THEME.neutral(trans.menu.userManagement)}`,
|
|
141
64
|
value: 'user',
|
|
142
65
|
},
|
|
143
66
|
{
|
|
144
|
-
name:
|
|
67
|
+
name: `${theme_1.THEME.secondary(ui_symbols_1.menuIcons.CONFIG)} ${theme_1.THEME.neutral(trans.menu.configManagement)}`,
|
|
145
68
|
value: 'config',
|
|
146
69
|
},
|
|
147
70
|
{
|
|
148
|
-
name:
|
|
71
|
+
name: `${theme_1.THEME.neutral(ui_symbols_1.menuIcons.LOGS)} ${theme_1.THEME.neutral(trans.menu.viewLogs)}`,
|
|
149
72
|
value: 'logs',
|
|
150
73
|
},
|
|
151
74
|
new prompts_1.Separator(),
|
|
152
75
|
// Language & Exit Group
|
|
153
76
|
{
|
|
154
|
-
name:
|
|
77
|
+
name: `${theme_1.THEME.primary(ui_symbols_1.menuIcons.LANGUAGE)} ${theme_1.THEME.neutral(trans.menu.switchLanguage)}`,
|
|
155
78
|
value: 'switch-language',
|
|
156
79
|
},
|
|
157
80
|
{
|
|
158
|
-
name:
|
|
81
|
+
name: `${theme_1.THEME.error(ui_symbols_1.menuIcons.EXIT)} ${theme_1.THEME.neutral(trans.menu.exit)}`,
|
|
159
82
|
value: 'exit',
|
|
160
83
|
},
|
|
161
84
|
];
|
|
162
85
|
}
|
|
163
|
-
/**
|
|
164
|
-
* Get menu depth (for Constitution compliance - max 3 levels)
|
|
165
|
-
*/
|
|
166
|
-
function getMenuDepth() {
|
|
167
|
-
// Main menu (1) -> Submenu (2) -> Action (3)
|
|
168
|
-
return 3;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Format a menu option with appropriate icon
|
|
172
|
-
*/
|
|
173
|
-
function formatMenuOption(name, value) {
|
|
174
|
-
// Add icon based on value type using menuIcons
|
|
175
|
-
let icon = '•';
|
|
176
|
-
if (value.includes('service') || value.includes('status')) {
|
|
177
|
-
icon = ui_symbols_1.menuIcons.STATUS;
|
|
178
|
-
}
|
|
179
|
-
else if (value.includes('user')) {
|
|
180
|
-
icon = ui_symbols_1.menuIcons.USER;
|
|
181
|
-
}
|
|
182
|
-
else if (value.includes('config')) {
|
|
183
|
-
icon = ui_symbols_1.menuIcons.CONFIG;
|
|
184
|
-
}
|
|
185
|
-
else if (value.includes('log')) {
|
|
186
|
-
icon = ui_symbols_1.menuIcons.LOGS;
|
|
187
|
-
}
|
|
188
|
-
else if (value.includes('start')) {
|
|
189
|
-
icon = ui_symbols_1.menuIcons.START;
|
|
190
|
-
}
|
|
191
|
-
else if (value.includes('stop')) {
|
|
192
|
-
icon = ui_symbols_1.menuIcons.STOP;
|
|
193
|
-
}
|
|
194
|
-
else if (value.includes('restart')) {
|
|
195
|
-
icon = ui_symbols_1.menuIcons.RESTART;
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
name: `${icon} ${name}`,
|
|
199
|
-
value,
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
86
|
/**
|
|
203
87
|
* Show a menu and get user selection
|
|
204
88
|
*/
|
|
@@ -217,7 +101,6 @@ async function showMenu(options, message) {
|
|
|
217
101
|
async function handleMenuSelection(selection, options) {
|
|
218
102
|
switch (selection) {
|
|
219
103
|
case 'switch-language':
|
|
220
|
-
logger_1.default.newline();
|
|
221
104
|
(0, i18n_1.toggleLanguage)();
|
|
222
105
|
const trans = (0, i18n_1.t)();
|
|
223
106
|
logger_1.default.success(trans.messages.languageSwitched);
|
|
@@ -226,46 +109,48 @@ async function handleMenuSelection(selection, options) {
|
|
|
226
109
|
case 'exit':
|
|
227
110
|
return true; // Signal to exit
|
|
228
111
|
case 'service-status':
|
|
229
|
-
logger_1.default.newline();
|
|
230
112
|
await (0, service_1.displayServiceStatus)(options);
|
|
231
113
|
await promptContinue();
|
|
232
114
|
return false;
|
|
233
115
|
case 'service-start':
|
|
234
|
-
logger_1.default.newline();
|
|
235
116
|
await (0, service_1.startService)(options);
|
|
117
|
+
await dashboardWidget.refresh(); // Refresh dashboard after action
|
|
236
118
|
await promptContinue();
|
|
237
119
|
return false;
|
|
238
120
|
case 'service-stop':
|
|
239
|
-
logger_1.default.newline();
|
|
240
121
|
const confirmStop = await (0, prompts_1.confirm)({
|
|
241
|
-
message:
|
|
122
|
+
message: theme_1.THEME.warning('确定要停止服务吗?这将中断所有连接。'),
|
|
242
123
|
default: false,
|
|
243
124
|
});
|
|
244
125
|
if (confirmStop) {
|
|
245
126
|
await (0, service_1.stopService)(options);
|
|
127
|
+
await dashboardWidget.refresh(); // Refresh dashboard after action
|
|
246
128
|
}
|
|
247
129
|
else {
|
|
248
130
|
logger_1.default.info('已取消停止操作');
|
|
131
|
+
await promptContinue();
|
|
249
132
|
}
|
|
250
|
-
await promptContinue();
|
|
251
133
|
return false;
|
|
252
134
|
case 'service-restart':
|
|
253
|
-
logger_1.default.newline();
|
|
254
135
|
const confirmRestart = await (0, prompts_1.confirm)({
|
|
255
|
-
message:
|
|
136
|
+
message: theme_1.THEME.warning('确定要重启服务吗?'),
|
|
256
137
|
default: true,
|
|
257
138
|
});
|
|
258
139
|
if (confirmRestart) {
|
|
259
140
|
await (0, service_1.restartService)(options);
|
|
141
|
+
await dashboardWidget.refresh(); // Refresh dashboard after action
|
|
260
142
|
}
|
|
261
143
|
else {
|
|
262
144
|
logger_1.default.info('已取消重启操作');
|
|
145
|
+
await promptContinue();
|
|
263
146
|
}
|
|
264
|
-
await promptContinue();
|
|
265
147
|
return false;
|
|
266
148
|
case 'user':
|
|
267
149
|
// Show user management submenu
|
|
268
|
-
|
|
150
|
+
navigationManager.push('User Management');
|
|
151
|
+
const result = await handleUserManagementMenu(options);
|
|
152
|
+
navigationManager.pop();
|
|
153
|
+
return result;
|
|
269
154
|
case 'config':
|
|
270
155
|
logger_1.default.info('配置管理功能即将推出...');
|
|
271
156
|
await promptContinue();
|
|
@@ -284,42 +169,51 @@ async function handleMenuSelection(selection, options) {
|
|
|
284
169
|
*/
|
|
285
170
|
async function handleUserManagementMenu(options) {
|
|
286
171
|
while (true) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
172
|
+
// Render Frame
|
|
173
|
+
screenManager.clear();
|
|
174
|
+
await dashboardWidget.refresh();
|
|
175
|
+
screenManager.renderHeader(dashboardWidget, navigationManager.getBreadcrumb());
|
|
176
|
+
// Submenu Header - Use theme colors
|
|
177
|
+
console.log(theme_1.THEME.secondary(`${ui_symbols_1.menuIcons.USER} 用户管理`));
|
|
290
178
|
logger_1.default.separator();
|
|
291
179
|
logger_1.default.newline();
|
|
292
180
|
const userMenuOptions = [
|
|
293
|
-
{ name:
|
|
294
|
-
{ name:
|
|
295
|
-
{ name:
|
|
296
|
-
{ name:
|
|
181
|
+
{ name: `${theme_1.THEME.primary('[列表]')} ${theme_1.THEME.neutral('查看用户列表')}`, value: 'user-list' },
|
|
182
|
+
{ name: `${theme_1.THEME.success('[添加]')} ${theme_1.THEME.neutral('添加用户')}`, value: 'user-add' },
|
|
183
|
+
{ name: `${theme_1.THEME.error('[删除]')} ${theme_1.THEME.neutral('删除用户')}`, value: 'user-delete' },
|
|
184
|
+
{ name: `${theme_1.THEME.secondary('[分享]')} ${theme_1.THEME.neutral('显示分享链接')}`, value: 'user-share' },
|
|
297
185
|
{ type: 'separator' },
|
|
298
|
-
{ name:
|
|
186
|
+
{ name: `${theme_1.THEME.neutral('[返回]')} ${theme_1.THEME.neutral('返回主菜单')}`, value: 'back' },
|
|
299
187
|
];
|
|
300
188
|
const selection = await showMenu(userMenuOptions, chalk_1.default.bold('请选择操作:'));
|
|
301
189
|
switch (selection) {
|
|
302
190
|
case 'back':
|
|
303
191
|
return false; // Return to main menu
|
|
304
192
|
case 'user-list':
|
|
305
|
-
|
|
193
|
+
navigationManager.push('List Users');
|
|
306
194
|
await (0, user_1.listUsers)(options);
|
|
307
195
|
await promptContinue();
|
|
196
|
+
navigationManager.pop();
|
|
308
197
|
break;
|
|
309
198
|
case 'user-add':
|
|
310
|
-
|
|
199
|
+
navigationManager.push('Add User');
|
|
311
200
|
await (0, user_1.addUser)(options);
|
|
201
|
+
await dashboardWidget.refresh();
|
|
312
202
|
await promptContinue();
|
|
203
|
+
navigationManager.pop();
|
|
313
204
|
break;
|
|
314
205
|
case 'user-delete':
|
|
315
|
-
|
|
206
|
+
navigationManager.push('Delete User');
|
|
316
207
|
await (0, user_1.deleteUser)(options);
|
|
208
|
+
await dashboardWidget.refresh();
|
|
317
209
|
await promptContinue();
|
|
210
|
+
navigationManager.pop();
|
|
318
211
|
break;
|
|
319
212
|
case 'user-share':
|
|
320
|
-
|
|
213
|
+
navigationManager.push('Share Link');
|
|
321
214
|
await (0, user_1.showUserShare)(options);
|
|
322
215
|
await promptContinue();
|
|
216
|
+
navigationManager.pop();
|
|
323
217
|
break;
|
|
324
218
|
default:
|
|
325
219
|
logger_1.default.warn(`未知选项: ${selection}`);
|
|
@@ -342,7 +236,7 @@ async function promptContinue() {
|
|
|
342
236
|
async function handleSigInt() {
|
|
343
237
|
logger_1.default.newline();
|
|
344
238
|
const shouldExit = await (0, prompts_1.confirm)({
|
|
345
|
-
message:
|
|
239
|
+
message: theme_1.THEME.warning('确定要退出吗?'),
|
|
346
240
|
default: false,
|
|
347
241
|
});
|
|
348
242
|
return shouldExit;
|
|
@@ -355,16 +249,8 @@ async function startInteractiveMenu(options) {
|
|
|
355
249
|
// Detect terminal size and validate
|
|
356
250
|
const terminalSize = layout_manager_1.default.detectTerminalSize();
|
|
357
251
|
const validation = layout_manager_1.default.validateTerminalSize(terminalSize);
|
|
358
|
-
//
|
|
359
|
-
|
|
360
|
-
// Determine title based on layout mode
|
|
361
|
-
let titleText = 'Xray Manager - 交互式管理工具';
|
|
362
|
-
if (layoutMode === layout_2.LayoutMode.COMPACT) {
|
|
363
|
-
titleText = 'Xray Manager'; // Shorter title for compact terminals
|
|
364
|
-
}
|
|
365
|
-
// Display title with responsive header
|
|
366
|
-
const headerText = (0, layout_1.renderHeader)(titleText, terminalSize.width, 'center');
|
|
367
|
-
console.log(chalk_1.default.bold.cyan(headerText));
|
|
252
|
+
// Initialize Dashboard Widget
|
|
253
|
+
dashboardWidget = new dashboard_widget_1.DashboardWidget(options.serviceName, options.configPath);
|
|
368
254
|
// Warn if terminal is too small
|
|
369
255
|
if (!validation.isValid) {
|
|
370
256
|
logger_1.default.newline();
|
|
@@ -390,17 +276,15 @@ async function startInteractiveMenu(options) {
|
|
|
390
276
|
};
|
|
391
277
|
process.on('SIGINT', sigintHandler);
|
|
392
278
|
try {
|
|
393
|
-
// Get menu context
|
|
394
|
-
const context = await getMenuContext(options);
|
|
395
279
|
// Main menu loop
|
|
396
280
|
let shouldExit = false;
|
|
397
281
|
while (!shouldExit) {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
//
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
282
|
+
// 1. Clear Screen
|
|
283
|
+
screenManager.clear();
|
|
284
|
+
// 2. Refresh Dashboard Data
|
|
285
|
+
await dashboardWidget.refresh();
|
|
286
|
+
// 3. Render Header (Dashboard + Breadcrumb)
|
|
287
|
+
screenManager.renderHeader(dashboardWidget, navigationManager.getBreadcrumb());
|
|
404
288
|
logger_1.default.newline();
|
|
405
289
|
// Get menu options
|
|
406
290
|
const menuOptions = getMainMenuOptions();
|
|
@@ -408,18 +292,11 @@ async function startInteractiveMenu(options) {
|
|
|
408
292
|
const selection = await showMenu(menuOptions, chalk_1.default.bold(trans.actions.selectAction));
|
|
409
293
|
// Handle selection
|
|
410
294
|
shouldExit = await handleMenuSelection(selection, options);
|
|
411
|
-
// Update context after each action
|
|
412
|
-
if (!shouldExit) {
|
|
413
|
-
const updatedContext = await getMenuContext(options);
|
|
414
|
-
Object.assign(context, updatedContext);
|
|
415
|
-
}
|
|
416
295
|
}
|
|
417
296
|
logger_1.default.success(trans.messages.thankYou || '感谢使用 Xray Manager!');
|
|
418
297
|
}
|
|
419
298
|
finally {
|
|
420
|
-
// Cleanup
|
|
421
299
|
process.removeListener('SIGINT', sigintHandler);
|
|
422
|
-
menuStack.clear();
|
|
423
300
|
}
|
|
424
301
|
}
|
|
425
302
|
//# sourceMappingURL=interactive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D/E;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDhF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DnF"}
|
package/dist/commands/user.js
CHANGED
|
@@ -24,6 +24,7 @@ const prompts_1 = require("@inquirer/prompts");
|
|
|
24
24
|
const ui_symbols_1 = require("../constants/ui-symbols");
|
|
25
25
|
const layout_1 = require("../utils/layout");
|
|
26
26
|
const layout_manager_1 = __importDefault(require("../services/layout-manager"));
|
|
27
|
+
const user_table_1 = require("../components/user-table");
|
|
27
28
|
/**
|
|
28
29
|
* List all users
|
|
29
30
|
*
|
|
@@ -51,21 +52,29 @@ async function listUsers(options = {}) {
|
|
|
51
52
|
logger_1.default.newline();
|
|
52
53
|
return;
|
|
53
54
|
}
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
// Adapt UserManager users to UserConfig for table
|
|
56
|
+
// Assuming UserManager users match UserConfig or can be mapped
|
|
57
|
+
// The previous implementation mapped manually, now we use renderUserTable
|
|
58
|
+
// We need to ensure users passed match UserConfig expected by renderUserTable
|
|
59
|
+
// Assuming renderUserTable takes UserConfig[]
|
|
60
|
+
// Convert to compatible type if necessary, or cast if structures align
|
|
61
|
+
// Based on previous code: users has email, id, level, flow
|
|
62
|
+
// renderUserTable expects: username/email, uuid/id, port, protocol
|
|
63
|
+
// Let's check UserConfig type compatibility or map it
|
|
64
|
+
// Mapping adaptation:
|
|
65
|
+
// renderUserTable expects UserConfig { username, uuid, port, protocol, flow? }
|
|
66
|
+
// UserManager returns { email, id, level, flow } (based on previous code)
|
|
67
|
+
const tableUsers = users.map(u => ({
|
|
68
|
+
username: u.email,
|
|
69
|
+
uuid: u.id,
|
|
70
|
+
// Port/Protocol might not be available in simple user list from UserManager
|
|
71
|
+
// If not available, we can pass dummy or fetch if needed
|
|
72
|
+
// For now, mapping what we have
|
|
73
|
+
port: 0, // Placeholder
|
|
74
|
+
protocol: 'vless', // Placeholder
|
|
75
|
+
flow: u.flow
|
|
66
76
|
}));
|
|
67
|
-
|
|
68
|
-
console.log(tableOutput);
|
|
77
|
+
console.log((0, user_table_1.renderUserTable)(tableUsers, terminalSize.width));
|
|
69
78
|
logger_1.default.newline();
|
|
70
79
|
}
|
|
71
80
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAkCH,8BA4DC;AAOD,0BAuCC;AAOD,gCAoDC;AAOD,sCA+DC;AA3QD,2DAAuD;AACvD,4CAAqD;AACrD,kDAAqD;AACrD,6DAAqC;AACrC,kDAA0B;AAC1B,8CAAsB;AACtB,+CAAmD;AACnD,wDAAoD;AACpD,4CAA+C;AAC/C,gFAAuD;AACvD,yDAA2D;AAiB3D;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAAC,UAA8B,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QAEnB,wBAAwB;QACxB,MAAM,YAAY,GAAG,wBAAa,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,GAAG,sBAAS,CAAC,IAAI,YAAY,KAAK,CAAC,MAAM,OAAO,CAAC;QACrE,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,WAAW,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzC,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,gBAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,kDAAkD;QAClD,+DAA+D;QAC/D,0EAA0E;QAC1E,8EAA8E;QAC9E,8CAA8C;QAE9C,uEAAuE;QACvE,2DAA2D;QAC3D,mEAAmE;QACnE,sDAAsD;QAEtD,sBAAsB;QACtB,+EAA+E;QAC/E,0EAA0E;QAE1E,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,KAAK;YACjB,IAAI,EAAE,CAAC,CAAC,EAAE;YACV,4EAA4E;YAC5E,yDAAyD;YACzD,gCAAgC;YAChC,IAAI,EAAE,CAAC,EAAE,cAAc;YACvB,QAAQ,EAAE,OAAO,EAAE,cAAc;YACjC,IAAI,EAAE,CAAC,CAAC,IAAI;SACa,CAAA,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAe,EAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,gBAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,UAA8B,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzE,mBAAmB;QACnB,MAAM,KAAK,GAAG,MAAM,IAAA,eAAK,EAAC;YACxB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,YAAY,CAAC;gBACtB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;YAC3B,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAErD,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAExC,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,gBAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,UAA8B,EAAE;IAC/D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzE,mBAAmB;QACnB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,gBAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAA,2BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;YACzB,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,CAAC;QAED,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAO,EAAC;YAC9B,OAAO,EAAE,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC;YAC9C,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,gBAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzC,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEnC,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACxC,gBAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,UAA8B,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzE,mBAAmB;QACnB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,gBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;YACzB,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,gBAAM,CAAC,OAAO,EAAE,CAAC;QACjB,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxC,gBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACrD,gBAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAe,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,gBAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IDashboardWidget } from '../types/ui-components';
|
|
2
|
+
export declare class DashboardWidget implements IDashboardWidget {
|
|
3
|
+
private systemdManager;
|
|
4
|
+
private userManager;
|
|
5
|
+
private status;
|
|
6
|
+
constructor(serviceName?: string, configPath?: string);
|
|
7
|
+
/**
|
|
8
|
+
* Refreshes the internal data snapshot
|
|
9
|
+
*/
|
|
10
|
+
refresh(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Renders the dashboard
|
|
13
|
+
*/
|
|
14
|
+
render(width: number): string;
|
|
15
|
+
private calculateColWidths;
|
|
16
|
+
private formatUptime;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=dashboard-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-widget.d.ts","sourceRoot":"","sources":["../../src/components/dashboard-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,MAAM,CAgBZ;gBAEU,WAAW,GAAE,MAAe,EAAE,UAAU,CAAC,EAAE,MAAM;IAK7D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B9B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA0D7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;CASrB"}
|