@pelican.ts/sdk 0.2.0 → 0.2.2
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/.github/logo.png +0 -0
- package/.idea/Pterodactyl.ts.iml +12 -0
- package/.idea/discord.xml +14 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/LICENSE +21 -0
- package/README.md +5 -2
- package/dist/api/application/client.d.ts +8 -0
- package/dist/api/application/client.d.ts.map +1 -0
- package/dist/api/application/client.js +14 -0
- package/dist/api/application/client.js.map +1 -0
- package/dist/api/application/nodes.d.ts +36 -0
- package/dist/api/application/nodes.d.ts.map +1 -0
- package/dist/api/application/nodes.js +47 -0
- package/dist/api/application/nodes.js.map +1 -0
- package/dist/api/application/nodes_allocations.d.ts +11 -0
- package/dist/api/application/nodes_allocations.d.ts.map +1 -0
- package/dist/api/application/nodes_allocations.js +36 -0
- package/dist/api/application/nodes_allocations.js.map +1 -0
- package/dist/api/application/types/container.d.ts +12 -0
- package/dist/api/application/types/container.d.ts.map +1 -0
- package/dist/api/application/types/container.js +3 -0
- package/dist/api/application/types/container.js.map +1 -0
- package/dist/api/application/types/location.d.ts +8 -0
- package/dist/api/application/types/location.d.ts.map +1 -0
- package/dist/api/application/types/location.js +3 -0
- package/dist/api/application/types/location.js.map +1 -0
- package/dist/api/application/types/node.d.ts +32 -0
- package/dist/api/application/types/node.d.ts.map +1 -0
- package/dist/api/application/types/node.js +3 -0
- package/dist/api/application/types/node.js.map +1 -0
- package/dist/api/application/types/server.d.ts +23 -0
- package/dist/api/application/types/server.d.ts.map +1 -0
- package/dist/api/application/types/server.js +3 -0
- package/dist/api/application/types/server.js.map +1 -0
- package/dist/api/application/types/user.d.ts +20 -0
- package/dist/api/application/types/user.d.ts.map +1 -0
- package/dist/api/application/types/user.js +3 -0
- package/dist/api/application/types/user.js.map +1 -0
- package/dist/api/application/users.d.ts +38 -0
- package/dist/api/application/users.d.ts.map +1 -0
- package/dist/api/application/users.js +54 -0
- package/dist/api/application/users.js.map +1 -0
- package/dist/api/base/request.d.ts +8 -0
- package/dist/api/base/request.d.ts.map +1 -0
- package/dist/api/base/request.js +33 -0
- package/dist/api/base/request.js.map +1 -0
- package/dist/api/base/types.d.ts +40 -0
- package/dist/api/base/types.d.ts.map +1 -0
- package/dist/api/base/types.js +14 -0
- package/dist/api/base/types.js.map +1 -0
- package/dist/api/client/account.d.ts +31 -0
- package/dist/api/client/account.d.ts.map +1 -0
- package/dist/api/client/account.js +70 -0
- package/dist/api/client/account.js.map +1 -0
- package/dist/api/client/client.d.ts +14 -0
- package/dist/api/client/client.d.ts.map +1 -0
- package/dist/api/client/client.js +37 -0
- package/dist/api/client/client.js.map +1 -0
- package/dist/api/client/server.d.ts +33 -0
- package/dist/api/client/server.d.ts.map +1 -0
- package/dist/api/client/server.js +62 -0
- package/dist/api/client/server.js.map +1 -0
- package/dist/api/client/server_activity.d.ts +9 -0
- package/dist/api/client/server_activity.d.ts.map +1 -0
- package/dist/api/client/server_activity.js +22 -0
- package/dist/api/client/server_activity.js.map +1 -0
- package/dist/api/client/server_allocations.d.ts +13 -0
- package/dist/api/client/server_allocations.d.ts.map +1 -0
- package/dist/api/client/server_allocations.js +32 -0
- package/dist/api/client/server_allocations.js.map +1 -0
- package/dist/api/client/server_backups.d.ts +18 -0
- package/dist/api/client/server_backups.d.ts.map +1 -0
- package/dist/api/client/server_backups.js +50 -0
- package/dist/api/client/server_backups.js.map +1 -0
- package/dist/api/client/server_databases.d.ts +12 -0
- package/dist/api/client/server_databases.d.ts.map +1 -0
- package/dist/api/client/server_databases.js +36 -0
- package/dist/api/client/server_databases.js.map +1 -0
- package/dist/api/client/server_files.d.ts +34 -0
- package/dist/api/client/server_files.d.ts.map +1 -0
- package/dist/api/client/server_files.js +86 -0
- package/dist/api/client/server_files.js.map +1 -0
- package/dist/api/client/server_schedules.d.ts +38 -0
- package/dist/api/client/server_schedules.d.ts.map +1 -0
- package/dist/api/client/server_schedules.js +59 -0
- package/dist/api/client/server_schedules.js.map +1 -0
- package/dist/api/client/server_settings.d.ts +12 -0
- package/dist/api/client/server_settings.d.ts.map +1 -0
- package/dist/api/client/server_settings.js +30 -0
- package/dist/api/client/server_settings.js.map +1 -0
- package/dist/api/client/server_startup.d.ts +11 -0
- package/dist/api/client/server_startup.d.ts.map +1 -0
- package/dist/api/client/server_startup.js +25 -0
- package/dist/api/client/server_startup.js.map +1 -0
- package/dist/api/client/server_users.d.ts +13 -0
- package/dist/api/client/server_users.d.ts.map +1 -0
- package/dist/api/client/server_users.js +32 -0
- package/dist/api/client/server_users.js.map +1 -0
- package/dist/api/client/server_websocket.d.ts +60 -0
- package/dist/api/client/server_websocket.d.ts.map +1 -0
- package/dist/api/client/server_websocket.js +431 -0
- package/dist/api/client/server_websocket.js.map +1 -0
- package/dist/api/client/types/server.d.ts +64 -0
- package/dist/api/client/types/server.d.ts.map +1 -0
- package/dist/api/client/types/server.js +3 -0
- package/dist/api/client/types/server.js.map +1 -0
- package/dist/api/client/types/server_subuser.d.ts +14 -0
- package/dist/api/client/types/server_subuser.d.ts.map +1 -0
- package/dist/api/client/types/server_subuser.js +3 -0
- package/dist/api/client/types/server_subuser.js.map +1 -0
- package/dist/api/client/types/user.d.ts +31 -0
- package/dist/api/client/types/user.d.ts.map +1 -0
- package/dist/api/client/types/user.js +3 -0
- package/dist/api/client/types/user.js.map +1 -0
- package/dist/api/client/types/websocket.d.ts +116 -0
- package/dist/api/client/types/websocket.d.ts.map +1 -0
- package/dist/api/client/types/websocket.js +37 -0
- package/dist/api/client/types/websocket.js.map +1 -0
- package/dist/api/client/websocket_old.d.ts +171 -0
- package/dist/api/client/websocket_old.d.ts.map +1 -0
- package/dist/api/client/websocket_old.js +319 -0
- package/dist/api/client/websocket_old.js.map +1 -0
- package/dist/api/common/types/egg.d.ts +10 -0
- package/dist/api/common/types/egg.d.ts.map +1 -0
- package/dist/api/common/types/egg.js +3 -0
- package/dist/api/common/types/egg.js.map +1 -0
- package/dist/api/common/types/server_allocations.d.ts +18 -0
- package/dist/api/common/types/server_allocations.d.ts.map +1 -0
- package/dist/api/common/types/server_allocations.js +3 -0
- package/dist/api/common/types/server_allocations.js.map +1 -0
- package/dist/api/common/types/server_backup.d.ts +13 -0
- package/dist/api/common/types/server_backup.d.ts.map +1 -0
- package/dist/api/common/types/server_backup.js +3 -0
- package/dist/api/common/types/server_backup.js.map +1 -0
- package/dist/api/common/types/server_database.d.ts +18 -0
- package/dist/api/common/types/server_database.d.ts.map +1 -0
- package/dist/api/common/types/server_database.js +3 -0
- package/dist/api/common/types/server_database.js.map +1 -0
- package/dist/api/common/types/server_files.d.ts +12 -0
- package/dist/api/common/types/server_files.d.ts.map +1 -0
- package/dist/api/common/types/server_files.js +3 -0
- package/dist/api/common/types/server_files.js.map +1 -0
- package/dist/api/common/types/server_limits.d.ts +17 -0
- package/dist/api/common/types/server_limits.d.ts.map +1 -0
- package/dist/api/common/types/server_limits.js +3 -0
- package/dist/api/common/types/server_limits.js.map +1 -0
- package/dist/api/common/types/server_power.d.ts +2 -0
- package/dist/api/common/types/server_power.d.ts.map +1 -0
- package/dist/api/common/types/server_power.js +3 -0
- package/dist/api/common/types/server_power.js.map +1 -0
- package/dist/api/common/types/server_schedule.d.ts +34 -0
- package/dist/api/common/types/server_schedule.d.ts.map +1 -0
- package/dist/api/common/types/server_schedule.js +3 -0
- package/dist/api/common/types/server_schedule.js.map +1 -0
- package/dist/api/common/types/server_startup.d.ts +14 -0
- package/dist/api/common/types/server_startup.d.ts.map +1 -0
- package/dist/api/common/types/server_startup.js +3 -0
- package/dist/api/common/types/server_startup.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/pterodactyl.d.ts +8 -0
- package/dist/pterodactyl.d.ts.map +1 -0
- package/dist/pterodactyl.js +20 -0
- package/dist/pterodactyl.js.map +1 -0
- package/dist/utils/sized.d.ts +10 -0
- package/dist/utils/sized.d.ts.map +1 -0
- package/dist/utils/sized.js +15 -0
- package/dist/utils/sized.js.map +1 -0
- package/dist/utils/transform.d.ts +9 -0
- package/dist/utils/transform.d.ts.map +1 -0
- package/dist/utils/transform.js +19 -0
- package/dist/utils/transform.js.map +1 -0
- package/dist/utils/types.d.ts +14 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +3 -2
- package/bun.lock +0 -159
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export type ServerStatus = 'starting' | 'stopping' | 'online' | 'offline';
|
|
2
|
+
export declare enum SERVER_SIGNAL {
|
|
3
|
+
'START' = "start",
|
|
4
|
+
'STOP' = "stop",
|
|
5
|
+
'RESTART' = "restart",
|
|
6
|
+
'KILL' = "kill"
|
|
7
|
+
}
|
|
8
|
+
export type WebsocketEvent = AuthSuccessWsEvent | StatusWsEvent | ConsoleLogWsEvent | StatsWsEvent | TokenExpiringWsEvent | TokenExpiredWsEvent | DaemonErrorEvent | DaemonMessageEvent | InstallOutputEvent | InstallStartedEvent | InstallCompletedEvent | TransferLogsEvent | TransferStatusEvent | BackupCompletedEvent | BackupRestoreCompletedEvent | JwtErrorEvent;
|
|
9
|
+
/**
|
|
10
|
+
* Source: https://github.com/pterodactyl/panel/blob/1.0-develop/resources/scripts/components/server/events.ts
|
|
11
|
+
*/
|
|
12
|
+
export declare enum SOCKET_EVENT {
|
|
13
|
+
AUTH_SUCCESS = "auth success",
|
|
14
|
+
DAEMON_MESSAGE = "daemon message",
|
|
15
|
+
DAEMON_ERROR = "daemon error",
|
|
16
|
+
INSTALL_OUTPUT = "install output",
|
|
17
|
+
INSTALL_STARTED = "install started",
|
|
18
|
+
INSTALL_COMPLETED = "install completed",
|
|
19
|
+
CONSOLE_OUTPUT = "console output",
|
|
20
|
+
STATUS = "status",
|
|
21
|
+
STATS = "stats",
|
|
22
|
+
TRANSFER_LOGS = "transfer logs",
|
|
23
|
+
TRANSFER_STATUS = "transfer status",
|
|
24
|
+
BACKUP_COMPLETED = "backup completed",
|
|
25
|
+
BACKUP_RESTORE_COMPLETED = "backup restore completed",
|
|
26
|
+
TOKEN_EXPIRING = "token expiring",
|
|
27
|
+
TOKEN_EXPIRED = "token expired",
|
|
28
|
+
JWT_ERROR = "jwt error"
|
|
29
|
+
}
|
|
30
|
+
export type InstallOutputEvent = {
|
|
31
|
+
event: SOCKET_EVENT.INSTALL_OUTPUT;
|
|
32
|
+
args: [string];
|
|
33
|
+
};
|
|
34
|
+
export type InstallStartedEvent = {
|
|
35
|
+
event: SOCKET_EVENT.INSTALL_STARTED;
|
|
36
|
+
};
|
|
37
|
+
export type InstallCompletedEvent = {
|
|
38
|
+
event: SOCKET_EVENT.INSTALL_COMPLETED;
|
|
39
|
+
};
|
|
40
|
+
export type TransferLogsEvent = {
|
|
41
|
+
event: SOCKET_EVENT.TRANSFER_LOGS;
|
|
42
|
+
args: [string];
|
|
43
|
+
};
|
|
44
|
+
export type TransferStatusEvent = {
|
|
45
|
+
event: SOCKET_EVENT.TRANSFER_STATUS;
|
|
46
|
+
args: [string];
|
|
47
|
+
};
|
|
48
|
+
export type BackupCompletedEvent = {
|
|
49
|
+
event: SOCKET_EVENT.BACKUP_COMPLETED;
|
|
50
|
+
args: [string];
|
|
51
|
+
};
|
|
52
|
+
export type BackupCompletedJson = {
|
|
53
|
+
checksum: string;
|
|
54
|
+
checksum_type: 'sha1';
|
|
55
|
+
file_size: number;
|
|
56
|
+
is_successful: boolean;
|
|
57
|
+
uuid: string;
|
|
58
|
+
};
|
|
59
|
+
export type BackupRestoreCompletedEvent = {
|
|
60
|
+
event: SOCKET_EVENT.BACKUP_RESTORE_COMPLETED;
|
|
61
|
+
};
|
|
62
|
+
export type AuthSuccessWsEvent = {
|
|
63
|
+
event: SOCKET_EVENT.AUTH_SUCCESS;
|
|
64
|
+
};
|
|
65
|
+
export type StatusWsEvent = {
|
|
66
|
+
event: SOCKET_EVENT.STATUS;
|
|
67
|
+
args: [PowerState];
|
|
68
|
+
};
|
|
69
|
+
export type PowerState = 'starting' | 'stopping' | 'running' | 'offline';
|
|
70
|
+
export type ConsoleLogWsEvent = {
|
|
71
|
+
event: SOCKET_EVENT.CONSOLE_OUTPUT;
|
|
72
|
+
args: [string];
|
|
73
|
+
};
|
|
74
|
+
export type StatsWsEvent = {
|
|
75
|
+
event: SOCKET_EVENT.STATS;
|
|
76
|
+
args: [string];
|
|
77
|
+
};
|
|
78
|
+
export type StatsWsJson = {
|
|
79
|
+
memory_bytes: number;
|
|
80
|
+
memory_limit_bytes: number;
|
|
81
|
+
cpu_absolute: number;
|
|
82
|
+
network: {
|
|
83
|
+
rx_bytes: number;
|
|
84
|
+
tx_bytes: number;
|
|
85
|
+
};
|
|
86
|
+
state: PowerState;
|
|
87
|
+
uptime: number;
|
|
88
|
+
disk_bytes: number;
|
|
89
|
+
};
|
|
90
|
+
export type TokenExpiringWsEvent = {
|
|
91
|
+
event: SOCKET_EVENT.TOKEN_EXPIRING;
|
|
92
|
+
};
|
|
93
|
+
export type TokenExpiredWsEvent = {
|
|
94
|
+
event: SOCKET_EVENT.TOKEN_EXPIRED;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Example:
|
|
98
|
+
* {"event":"daemon message","args":["(restoring): file1.yml"]}
|
|
99
|
+
* {"event":"daemon message","args":["(restoring): file2"]}
|
|
100
|
+
* {"event":"daemon message","args":["(restoring): file3.jar"]}
|
|
101
|
+
* {"event":"daemon message","args":["(restoring): file5.tar.gz"]}
|
|
102
|
+
* {"event":"daemon message","args":["Completed server restoration from local backup."]}
|
|
103
|
+
*/
|
|
104
|
+
export type DaemonMessageEvent = {
|
|
105
|
+
event: SOCKET_EVENT.DAEMON_MESSAGE;
|
|
106
|
+
args: [string];
|
|
107
|
+
};
|
|
108
|
+
export type DaemonErrorEvent = {
|
|
109
|
+
event: SOCKET_EVENT.DAEMON_ERROR;
|
|
110
|
+
args: [string];
|
|
111
|
+
};
|
|
112
|
+
export type JwtErrorEvent = {
|
|
113
|
+
event: SOCKET_EVENT.JWT_ERROR;
|
|
114
|
+
args: [string];
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../../src/api/client/types/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* @author BothimTV
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SOCKET_EVENT = exports.SERVER_SIGNAL = void 0;
|
|
8
|
+
var SERVER_SIGNAL;
|
|
9
|
+
(function (SERVER_SIGNAL) {
|
|
10
|
+
SERVER_SIGNAL["START"] = "start";
|
|
11
|
+
SERVER_SIGNAL["STOP"] = "stop";
|
|
12
|
+
SERVER_SIGNAL["RESTART"] = "restart";
|
|
13
|
+
SERVER_SIGNAL["KILL"] = "kill";
|
|
14
|
+
})(SERVER_SIGNAL || (exports.SERVER_SIGNAL = SERVER_SIGNAL = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Source: https://github.com/pterodactyl/panel/blob/1.0-develop/resources/scripts/components/server/events.ts
|
|
17
|
+
*/
|
|
18
|
+
var SOCKET_EVENT;
|
|
19
|
+
(function (SOCKET_EVENT) {
|
|
20
|
+
SOCKET_EVENT["AUTH_SUCCESS"] = "auth success";
|
|
21
|
+
SOCKET_EVENT["DAEMON_MESSAGE"] = "daemon message";
|
|
22
|
+
SOCKET_EVENT["DAEMON_ERROR"] = "daemon error";
|
|
23
|
+
SOCKET_EVENT["INSTALL_OUTPUT"] = "install output";
|
|
24
|
+
SOCKET_EVENT["INSTALL_STARTED"] = "install started";
|
|
25
|
+
SOCKET_EVENT["INSTALL_COMPLETED"] = "install completed";
|
|
26
|
+
SOCKET_EVENT["CONSOLE_OUTPUT"] = "console output";
|
|
27
|
+
SOCKET_EVENT["STATUS"] = "status";
|
|
28
|
+
SOCKET_EVENT["STATS"] = "stats";
|
|
29
|
+
SOCKET_EVENT["TRANSFER_LOGS"] = "transfer logs";
|
|
30
|
+
SOCKET_EVENT["TRANSFER_STATUS"] = "transfer status";
|
|
31
|
+
SOCKET_EVENT["BACKUP_COMPLETED"] = "backup completed";
|
|
32
|
+
SOCKET_EVENT["BACKUP_RESTORE_COMPLETED"] = "backup restore completed";
|
|
33
|
+
SOCKET_EVENT["TOKEN_EXPIRING"] = "token expiring";
|
|
34
|
+
SOCKET_EVENT["TOKEN_EXPIRED"] = "token expired";
|
|
35
|
+
SOCKET_EVENT["JWT_ERROR"] = "jwt error";
|
|
36
|
+
})(SOCKET_EVENT || (exports.SOCKET_EVENT = SOCKET_EVENT = {}));
|
|
37
|
+
//# sourceMappingURL=websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/api/client/types/websocket.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,oCAAqB,CAAA;IACrB,8BAAe,CAAA;AACnB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAoBD;;GAEG;AACH,IAAY,YAiBX;AAjBD,WAAY,YAAY;IACpB,6CAA6B,CAAA;IAC7B,iDAAiC,CAAA;IACjC,6CAA6B,CAAA;IAC7B,iDAAiC,CAAA;IACjC,mDAAmC,CAAA;IACnC,uDAAuC,CAAA;IACvC,iDAAiC,CAAA;IACjC,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,+CAA+B,CAAA;IAC/B,mDAAmC,CAAA;IACnC,qDAAqC,CAAA;IACrC,qEAAqD,CAAA;IACrD,iDAAiC,CAAA;IACjC,+CAA+B,CAAA;IAC/B,uCAAuB,CAAA;AAC3B,CAAC,EAjBW,YAAY,4BAAZ,YAAY,QAiBvB"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import WebSocket from 'isomorphic-ws';
|
|
2
|
+
export type ServerStatus = 'starting' | 'stopping' | 'online' | 'offline';
|
|
3
|
+
export declare enum SERVER_SIGNAL {
|
|
4
|
+
'START' = "start",
|
|
5
|
+
'STOP' = "stop",
|
|
6
|
+
'RESTART' = "restart",
|
|
7
|
+
'KILL' = "kill"
|
|
8
|
+
}
|
|
9
|
+
export type ServerSignalOption = 'start' | 'stop' | 'restart' | 'kill';
|
|
10
|
+
export type WebsocketEvent = AuthSuccessWsEvent | StatusWsEvent | ConsoleLogWsEvent | StatsWsEvent | TokenExpiringWsEvent | TokenExpiredWsEvent | DaemonErrorEvent | DaemonMessageEvent | InstallOutputEvent | InstallStartedEvent | InstallCompletedEvent | TransferLogsEvent | TransferStatusEvent | BackupCompletedEvent | BackupRestoreCompletedEvent | JwtErrorEvent;
|
|
11
|
+
/**
|
|
12
|
+
* Source: https://github.com/pterodactyl/panel/blob/1.0-develop/resources/scripts/components/server/events.ts
|
|
13
|
+
*/
|
|
14
|
+
export declare enum SocketEvent {
|
|
15
|
+
AUTH_SUCCESS = "auth success",
|
|
16
|
+
DAEMON_MESSAGE = "daemon message",
|
|
17
|
+
DAEMON_ERROR = "daemon error",
|
|
18
|
+
INSTALL_OUTPUT = "install output",
|
|
19
|
+
INSTALL_STARTED = "install started",
|
|
20
|
+
INSTALL_COMPLETED = "install completed",
|
|
21
|
+
CONSOLE_OUTPUT = "console output",
|
|
22
|
+
STATUS = "status",
|
|
23
|
+
STATS = "stats",
|
|
24
|
+
TRANSFER_LOGS = "transfer logs",
|
|
25
|
+
TRANSFER_STATUS = "transfer status",
|
|
26
|
+
BACKUP_COMPLETED = "backup completed",
|
|
27
|
+
BACKUP_RESTORE_COMPLETED = "backup restore completed",
|
|
28
|
+
TOKEN_EXPIRING = "token expiring",
|
|
29
|
+
TOKEN_EXPIRED = "token expired",
|
|
30
|
+
JWT_ERROR = "jwt error"
|
|
31
|
+
}
|
|
32
|
+
export type InstallOutputEvent = {
|
|
33
|
+
event: SocketEvent.INSTALL_OUTPUT;
|
|
34
|
+
args: [string];
|
|
35
|
+
};
|
|
36
|
+
export type InstallStartedEvent = {
|
|
37
|
+
event: SocketEvent.INSTALL_STARTED;
|
|
38
|
+
};
|
|
39
|
+
export type InstallCompletedEvent = {
|
|
40
|
+
event: SocketEvent.INSTALL_COMPLETED;
|
|
41
|
+
};
|
|
42
|
+
export type TransferLogsEvent = {
|
|
43
|
+
event: SocketEvent.TRANSFER_LOGS;
|
|
44
|
+
args: [string];
|
|
45
|
+
};
|
|
46
|
+
export type TransferStatusEvent = {
|
|
47
|
+
event: SocketEvent.TRANSFER_STATUS;
|
|
48
|
+
args: [string];
|
|
49
|
+
};
|
|
50
|
+
export type BackupCompletedEvent = {
|
|
51
|
+
event: SocketEvent.BACKUP_COMPLETED;
|
|
52
|
+
args: [string];
|
|
53
|
+
};
|
|
54
|
+
export type BackupCompletedJson = {
|
|
55
|
+
checksum: string;
|
|
56
|
+
checksum_type: 'sha1';
|
|
57
|
+
file_size: number;
|
|
58
|
+
is_successful: boolean;
|
|
59
|
+
uuid: string;
|
|
60
|
+
};
|
|
61
|
+
export type BackupRestoreCompletedEvent = {
|
|
62
|
+
event: SocketEvent.BACKUP_RESTORE_COMPLETED;
|
|
63
|
+
};
|
|
64
|
+
export type AuthSuccessWsEvent = {
|
|
65
|
+
event: SocketEvent.AUTH_SUCCESS;
|
|
66
|
+
};
|
|
67
|
+
export type StatusWsEvent = {
|
|
68
|
+
event: SocketEvent.STATUS;
|
|
69
|
+
args: [PowerState];
|
|
70
|
+
};
|
|
71
|
+
export type PowerState = 'starting' | 'stopping' | 'running' | 'offline';
|
|
72
|
+
export type ConsoleLogWsEvent = {
|
|
73
|
+
event: SocketEvent.CONSOLE_OUTPUT;
|
|
74
|
+
args: [string];
|
|
75
|
+
};
|
|
76
|
+
export type StatsWsEvent = {
|
|
77
|
+
event: SocketEvent.STATS;
|
|
78
|
+
args: [string];
|
|
79
|
+
};
|
|
80
|
+
export type StatsWsJson = {
|
|
81
|
+
memory_bytes: number;
|
|
82
|
+
memory_limit_bytes: number;
|
|
83
|
+
cpu_absolute: number;
|
|
84
|
+
network: {
|
|
85
|
+
rx_bytes: number;
|
|
86
|
+
tx_bytes: number;
|
|
87
|
+
};
|
|
88
|
+
state: PowerState;
|
|
89
|
+
uptime: number;
|
|
90
|
+
disk_bytes: number;
|
|
91
|
+
};
|
|
92
|
+
export type TokenExpiringWsEvent = {
|
|
93
|
+
event: SocketEvent.TOKEN_EXPIRING;
|
|
94
|
+
};
|
|
95
|
+
export type TokenExpiredWsEvent = {
|
|
96
|
+
event: SocketEvent.TOKEN_EXPIRED;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Example:
|
|
100
|
+
* {"event":"daemon message","args":["(restoring): file1.yml"]}
|
|
101
|
+
* {"event":"daemon message","args":["(restoring): file2"]}
|
|
102
|
+
* {"event":"daemon message","args":["(restoring): file3.jar"]}
|
|
103
|
+
* {"event":"daemon message","args":["(restoring): file5.tar.gz"]}
|
|
104
|
+
* {"event":"daemon message","args":["Completed server restoration from local backup."]}
|
|
105
|
+
*/
|
|
106
|
+
export type DaemonMessageEvent = {
|
|
107
|
+
event: SocketEvent.DAEMON_MESSAGE;
|
|
108
|
+
args: [string];
|
|
109
|
+
};
|
|
110
|
+
export type DaemonErrorEvent = {
|
|
111
|
+
event: SocketEvent.DAEMON_ERROR;
|
|
112
|
+
args: [string];
|
|
113
|
+
};
|
|
114
|
+
export type JwtErrorEvent = {
|
|
115
|
+
event: SocketEvent.JWT_ERROR;
|
|
116
|
+
args: [string];
|
|
117
|
+
};
|
|
118
|
+
export declare class ServerConsoleConnection {
|
|
119
|
+
private endpoint;
|
|
120
|
+
private socket?;
|
|
121
|
+
private currentKey?;
|
|
122
|
+
private debugLogging?;
|
|
123
|
+
private eventEmitter;
|
|
124
|
+
private prettyLogs;
|
|
125
|
+
on(eventName: SocketEvent, listener: (arg?: PowerState | string | StatsWsJson | BackupCompletedJson) => void): () => void;
|
|
126
|
+
deregister(eventName: SocketEvent, listener: (arg?: PowerState | string | StatsWsJson | BackupCompletedJson) => void): void;
|
|
127
|
+
private emit;
|
|
128
|
+
constructor(server: Server, userClient: UserClient, prettyLogs: boolean);
|
|
129
|
+
/**
|
|
130
|
+
* Connect to a servers console.
|
|
131
|
+
* You can then listen on the
|
|
132
|
+
* @param debugLogging Debug enabled?
|
|
133
|
+
*/
|
|
134
|
+
connect(resumable?: boolean, debugLogging?: boolean): Promise<void>;
|
|
135
|
+
onSocketDisconnect(fn: (e: WebSocket.CloseEvent) => void): void;
|
|
136
|
+
onSocketError(fn: (e: WebSocket.ErrorEvent) => void): void;
|
|
137
|
+
makeResumable: (disconnectsToo: boolean) => void;
|
|
138
|
+
private addListen;
|
|
139
|
+
private setKey;
|
|
140
|
+
private authSocket;
|
|
141
|
+
private listen;
|
|
142
|
+
/**
|
|
143
|
+
* Disconnect from the server.
|
|
144
|
+
*/
|
|
145
|
+
disconnect(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Request the stats of this server
|
|
148
|
+
*/
|
|
149
|
+
requestStats(): void;
|
|
150
|
+
/**
|
|
151
|
+
* Request the logs of this server
|
|
152
|
+
*/
|
|
153
|
+
requestLogs(): void;
|
|
154
|
+
/**
|
|
155
|
+
* Get the stats of this server
|
|
156
|
+
*/
|
|
157
|
+
getStats(): Promise<StatsWsJson>;
|
|
158
|
+
/**
|
|
159
|
+
* Get the logs of this server
|
|
160
|
+
*/
|
|
161
|
+
getLogs(): Promise<Array<string>>;
|
|
162
|
+
/**
|
|
163
|
+
* Send a power action to this server
|
|
164
|
+
*/
|
|
165
|
+
sendPoweraction(action: ServerSignalOption): void;
|
|
166
|
+
/**
|
|
167
|
+
* Send a command to this server
|
|
168
|
+
*/
|
|
169
|
+
sendCommand(cmd: string): void;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=websocket_old.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket_old.d.ts","sourceRoot":"","sources":["../../../src/api/client/websocket_old.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ServerConsoleConnection = exports.SocketEvent = exports.SERVER_SIGNAL = void 0;
|
|
7
|
+
const events_1 = require("events");
|
|
8
|
+
const strip_color_1 = __importDefault(require("strip-color"));
|
|
9
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
10
|
+
var SERVER_SIGNAL;
|
|
11
|
+
(function (SERVER_SIGNAL) {
|
|
12
|
+
SERVER_SIGNAL["START"] = "start";
|
|
13
|
+
SERVER_SIGNAL["STOP"] = "stop";
|
|
14
|
+
SERVER_SIGNAL["RESTART"] = "restart";
|
|
15
|
+
SERVER_SIGNAL["KILL"] = "kill";
|
|
16
|
+
})(SERVER_SIGNAL || (exports.SERVER_SIGNAL = SERVER_SIGNAL = {}));
|
|
17
|
+
/**
|
|
18
|
+
* Source: https://github.com/pterodactyl/panel/blob/1.0-develop/resources/scripts/components/server/events.ts
|
|
19
|
+
*/
|
|
20
|
+
var SocketEvent;
|
|
21
|
+
(function (SocketEvent) {
|
|
22
|
+
SocketEvent["AUTH_SUCCESS"] = "auth success";
|
|
23
|
+
SocketEvent["DAEMON_MESSAGE"] = "daemon message";
|
|
24
|
+
SocketEvent["DAEMON_ERROR"] = "daemon error";
|
|
25
|
+
SocketEvent["INSTALL_OUTPUT"] = "install output";
|
|
26
|
+
SocketEvent["INSTALL_STARTED"] = "install started";
|
|
27
|
+
SocketEvent["INSTALL_COMPLETED"] = "install completed";
|
|
28
|
+
SocketEvent["CONSOLE_OUTPUT"] = "console output";
|
|
29
|
+
SocketEvent["STATUS"] = "status";
|
|
30
|
+
SocketEvent["STATS"] = "stats";
|
|
31
|
+
SocketEvent["TRANSFER_LOGS"] = "transfer logs";
|
|
32
|
+
SocketEvent["TRANSFER_STATUS"] = "transfer status";
|
|
33
|
+
SocketEvent["BACKUP_COMPLETED"] = "backup completed";
|
|
34
|
+
SocketEvent["BACKUP_RESTORE_COMPLETED"] = "backup restore completed";
|
|
35
|
+
SocketEvent["TOKEN_EXPIRING"] = "token expiring";
|
|
36
|
+
SocketEvent["TOKEN_EXPIRED"] = "token expired";
|
|
37
|
+
SocketEvent["JWT_ERROR"] = "jwt error";
|
|
38
|
+
})(SocketEvent || (exports.SocketEvent = SocketEvent = {}));
|
|
39
|
+
const is_browser = typeof window !== 'undefined';
|
|
40
|
+
// file deepcode ignore InsufficientPostmessageValidation
|
|
41
|
+
let client;
|
|
42
|
+
const reconnectErrors = ['jwt: exp claim is invalid', 'jwt: created too far in past (denylist)'];
|
|
43
|
+
class ServerConsoleConnection {
|
|
44
|
+
endpoint;
|
|
45
|
+
socket;
|
|
46
|
+
currentKey;
|
|
47
|
+
debugLogging = false;
|
|
48
|
+
eventEmitter = new events_1.EventEmitter();
|
|
49
|
+
prettyLogs = true;
|
|
50
|
+
on(eventName, listener) {
|
|
51
|
+
this.eventEmitter.on(eventName, listener);
|
|
52
|
+
return () => this.deregister(eventName, listener);
|
|
53
|
+
}
|
|
54
|
+
deregister(eventName, listener) {
|
|
55
|
+
this.eventEmitter.removeListener(eventName, listener);
|
|
56
|
+
}
|
|
57
|
+
emit(eventName, payload) {
|
|
58
|
+
this.eventEmitter.emit(eventName, payload);
|
|
59
|
+
}
|
|
60
|
+
constructor(server, userClient, prettyLogs) {
|
|
61
|
+
this.endpoint = userClient.panel + '/api/client/servers/' + server.identifier + '/websocket';
|
|
62
|
+
client = userClient;
|
|
63
|
+
this.prettyLogs = prettyLogs;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Connect to a servers console.
|
|
67
|
+
* You can then listen on the
|
|
68
|
+
* @param debugLogging Debug enabled?
|
|
69
|
+
*/
|
|
70
|
+
async connect(resumable, debugLogging) {
|
|
71
|
+
this.debugLogging = debugLogging;
|
|
72
|
+
if (!this.socket) {
|
|
73
|
+
this.socket = new isomorphic_ws_1.default(await this.setKey(), is_browser
|
|
74
|
+
? undefined
|
|
75
|
+
: {
|
|
76
|
+
origin: new URL(this.endpoint).origin,
|
|
77
|
+
});
|
|
78
|
+
if (!this.socket)
|
|
79
|
+
throw new Error('Failed to create socket connection');
|
|
80
|
+
if (resumable)
|
|
81
|
+
this.makeResumable(true);
|
|
82
|
+
return await new Promise((resolve) => {
|
|
83
|
+
if (!this.socket)
|
|
84
|
+
throw new Error('No socket connection');
|
|
85
|
+
this.socket.onopen = async () => {
|
|
86
|
+
await this.authSocket();
|
|
87
|
+
this.addListen();
|
|
88
|
+
resolve();
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
onSocketDisconnect(fn) {
|
|
94
|
+
if (!this.socket)
|
|
95
|
+
return console.error(new Error('No socket connection'));
|
|
96
|
+
this.socket.onclose = fn;
|
|
97
|
+
}
|
|
98
|
+
onSocketError(fn) {
|
|
99
|
+
if (!this.socket)
|
|
100
|
+
return console.error(new Error('No socket connection'));
|
|
101
|
+
this.socket.onerror = fn;
|
|
102
|
+
}
|
|
103
|
+
makeResumable = (disconnectsToo) => {
|
|
104
|
+
this.onSocketError(async () => setTimeout(() => {
|
|
105
|
+
this.socket = undefined;
|
|
106
|
+
this.connect(true);
|
|
107
|
+
}, 1000));
|
|
108
|
+
disconnectsToo && this.onSocketDisconnect(async () => setTimeout(() => {
|
|
109
|
+
this.socket = undefined;
|
|
110
|
+
this.connect(true);
|
|
111
|
+
}, 1000));
|
|
112
|
+
};
|
|
113
|
+
addListen() {
|
|
114
|
+
if (!this.socket)
|
|
115
|
+
return console.error(new Error('No socket connection'));
|
|
116
|
+
this.socket.addEventListener('message', (ev) => {
|
|
117
|
+
this.listen(JSON.parse(ev.data));
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async setKey() {
|
|
121
|
+
const res = (await client.api({ url: this.endpoint }));
|
|
122
|
+
this.currentKey = res.data.token;
|
|
123
|
+
return res.data.socket;
|
|
124
|
+
}
|
|
125
|
+
async authSocket() {
|
|
126
|
+
if (!this.socket)
|
|
127
|
+
return console.error(new Error('No socket connection'));
|
|
128
|
+
this.socket.send(JSON.stringify({ event: 'auth', args: [this.currentKey] }));
|
|
129
|
+
}
|
|
130
|
+
async listen(data) {
|
|
131
|
+
switch (data.event) {
|
|
132
|
+
case SocketEvent.AUTH_SUCCESS: {
|
|
133
|
+
if (this.debugLogging)
|
|
134
|
+
console.debug('Auth success');
|
|
135
|
+
this.emit(SocketEvent.AUTH_SUCCESS);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case SocketEvent.STATUS: {
|
|
139
|
+
if (this.debugLogging)
|
|
140
|
+
console.debug('Received status event: ' + data.args);
|
|
141
|
+
this.emit(SocketEvent.STATUS, data.args[0]);
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
case SocketEvent.CONSOLE_OUTPUT: {
|
|
145
|
+
if (this.debugLogging)
|
|
146
|
+
console.debug('Received console output event: ' + data.args);
|
|
147
|
+
var res = data.args[0];
|
|
148
|
+
if (this.prettyLogs)
|
|
149
|
+
res = (0, strip_color_1.default)(res);
|
|
150
|
+
this.emit(SocketEvent.CONSOLE_OUTPUT, res);
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
case SocketEvent.STATS: {
|
|
154
|
+
this.emit(SocketEvent.STATS, JSON.parse(data.args[0]));
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case SocketEvent.DAEMON_ERROR: {
|
|
158
|
+
this.emit(SocketEvent.DAEMON_ERROR);
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
case SocketEvent.BACKUP_COMPLETED: {
|
|
162
|
+
this.emit(SocketEvent.BACKUP_COMPLETED, JSON.parse(data.args[0]));
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
case SocketEvent.DAEMON_MESSAGE: {
|
|
166
|
+
var res = data.args[0];
|
|
167
|
+
if (this.prettyLogs)
|
|
168
|
+
res = (0, strip_color_1.default)(res);
|
|
169
|
+
this.emit(SocketEvent.DAEMON_MESSAGE, res);
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case SocketEvent.INSTALL_OUTPUT: {
|
|
173
|
+
var res = data.args[0];
|
|
174
|
+
if (this.prettyLogs)
|
|
175
|
+
res = (0, strip_color_1.default)(res);
|
|
176
|
+
this.emit(SocketEvent.INSTALL_OUTPUT, res);
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case SocketEvent.BACKUP_RESTORE_COMPLETED: {
|
|
180
|
+
this.emit(SocketEvent.BACKUP_RESTORE_COMPLETED);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case SocketEvent.INSTALL_COMPLETED: {
|
|
184
|
+
this.emit(SocketEvent.INSTALL_COMPLETED);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case SocketEvent.INSTALL_STARTED: {
|
|
188
|
+
this.emit(SocketEvent.INSTALL_STARTED);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case SocketEvent.TRANSFER_LOGS: {
|
|
192
|
+
this.emit(SocketEvent.TRANSFER_LOGS, data.args[0]);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case SocketEvent.TRANSFER_STATUS: {
|
|
196
|
+
this.emit(SocketEvent.TRANSFER_STATUS, data.args[0]);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case SocketEvent.TOKEN_EXPIRING: {
|
|
200
|
+
this.emit(SocketEvent.TOKEN_EXPIRING);
|
|
201
|
+
if (this.debugLogging)
|
|
202
|
+
console.warn('Token expiring, renewing...');
|
|
203
|
+
await this.setKey();
|
|
204
|
+
await this.authSocket();
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case SocketEvent.TOKEN_EXPIRED: {
|
|
208
|
+
this.emit(SocketEvent.TOKEN_EXPIRED);
|
|
209
|
+
throw new Error('Token expired');
|
|
210
|
+
}
|
|
211
|
+
case SocketEvent.JWT_ERROR: {
|
|
212
|
+
if (reconnectErrors.includes(data.args[0])) {
|
|
213
|
+
this.emit(SocketEvent.TOKEN_EXPIRING);
|
|
214
|
+
if (this.debugLogging)
|
|
215
|
+
console.warn('Token expiring, renewing...');
|
|
216
|
+
await this.setKey();
|
|
217
|
+
await this.authSocket();
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
throw new Error('Token expired');
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
default: {
|
|
225
|
+
console.error(`Unknown event: ${JSON.stringify(data)}`);
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Disconnect from the server.
|
|
232
|
+
*/
|
|
233
|
+
disconnect() {
|
|
234
|
+
if (this.socket) {
|
|
235
|
+
this.socket.close();
|
|
236
|
+
this.socket = undefined;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Request the stats of this server
|
|
241
|
+
*/
|
|
242
|
+
requestStats() {
|
|
243
|
+
this.socket?.send(JSON.stringify({ event: 'send stats', args: [null] }));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Request the logs of this server
|
|
247
|
+
*/
|
|
248
|
+
requestLogs() {
|
|
249
|
+
this.socket?.send(JSON.stringify({ event: 'send logs', args: [null] }));
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get the stats of this server
|
|
253
|
+
*/
|
|
254
|
+
getStats() {
|
|
255
|
+
return new Promise((resolve, reject) => {
|
|
256
|
+
if (!this.socket) {
|
|
257
|
+
return reject('No socket connection');
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const collect = (ev) => {
|
|
261
|
+
this.requestStats();
|
|
262
|
+
const data = JSON.parse(ev.data);
|
|
263
|
+
if (data.event == 'stats') {
|
|
264
|
+
if (!this.socket)
|
|
265
|
+
return reject('No socket connection');
|
|
266
|
+
this.socket.removeEventListener('message', collect);
|
|
267
|
+
return resolve(JSON.parse(data.args[0]));
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
this.socket.addEventListener('message', collect);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Get the logs of this server
|
|
276
|
+
*/
|
|
277
|
+
getLogs() {
|
|
278
|
+
return new Promise((resolve, reject) => {
|
|
279
|
+
if (!this.socket) {
|
|
280
|
+
return reject('No socket connection');
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
const res = [];
|
|
284
|
+
var submitTimeout = setTimeout(() => {
|
|
285
|
+
resolve(['No logs - is the server online?']);
|
|
286
|
+
}, 5000);
|
|
287
|
+
const collect = async (ev) => {
|
|
288
|
+
await this.getLogs();
|
|
289
|
+
const data = JSON.parse(ev.data);
|
|
290
|
+
if (data.event == 'console output') {
|
|
291
|
+
res.push(data.args[0]);
|
|
292
|
+
clearTimeout(submitTimeout);
|
|
293
|
+
submitTimeout = setTimeout(() => {
|
|
294
|
+
if (!this.socket)
|
|
295
|
+
return reject('No socket connection');
|
|
296
|
+
this.socket.removeEventListener('message', collect);
|
|
297
|
+
resolve(res);
|
|
298
|
+
}, 1000);
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
this.socket.addEventListener('message', collect);
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Send a power action to this server
|
|
307
|
+
*/
|
|
308
|
+
sendPoweraction(action) {
|
|
309
|
+
this.socket?.send(JSON.stringify({ event: 'set state', args: [action] }));
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Send a command to this server
|
|
313
|
+
*/
|
|
314
|
+
sendCommand(cmd) {
|
|
315
|
+
this.socket?.send(JSON.stringify({ event: 'send command', args: [cmd] }));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
exports.ServerConsoleConnection = ServerConsoleConnection;
|
|
319
|
+
//# sourceMappingURL=websocket_old.js.map
|