@pelican.ts/sdk 0.2.1 → 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.
Files changed (180) hide show
  1. package/.github/logo.png +0 -0
  2. package/.idea/Pterodactyl.ts.iml +12 -0
  3. package/.idea/discord.xml +14 -0
  4. package/.idea/modules.xml +8 -0
  5. package/.idea/vcs.xml +6 -0
  6. package/README.md +1 -1
  7. package/dist/api/application/client.d.ts +8 -0
  8. package/dist/api/application/client.d.ts.map +1 -0
  9. package/dist/api/application/client.js +14 -0
  10. package/dist/api/application/client.js.map +1 -0
  11. package/dist/api/application/nodes.d.ts +36 -0
  12. package/dist/api/application/nodes.d.ts.map +1 -0
  13. package/dist/api/application/nodes.js +47 -0
  14. package/dist/api/application/nodes.js.map +1 -0
  15. package/dist/api/application/nodes_allocations.d.ts +11 -0
  16. package/dist/api/application/nodes_allocations.d.ts.map +1 -0
  17. package/dist/api/application/nodes_allocations.js +36 -0
  18. package/dist/api/application/nodes_allocations.js.map +1 -0
  19. package/dist/api/application/types/container.d.ts +12 -0
  20. package/dist/api/application/types/container.d.ts.map +1 -0
  21. package/dist/api/application/types/container.js +3 -0
  22. package/dist/api/application/types/container.js.map +1 -0
  23. package/dist/api/application/types/location.d.ts +8 -0
  24. package/dist/api/application/types/location.d.ts.map +1 -0
  25. package/dist/api/application/types/location.js +3 -0
  26. package/dist/api/application/types/location.js.map +1 -0
  27. package/dist/api/application/types/node.d.ts +32 -0
  28. package/dist/api/application/types/node.d.ts.map +1 -0
  29. package/dist/api/application/types/node.js +3 -0
  30. package/dist/api/application/types/node.js.map +1 -0
  31. package/dist/api/application/types/server.d.ts +23 -0
  32. package/dist/api/application/types/server.d.ts.map +1 -0
  33. package/dist/api/application/types/server.js +3 -0
  34. package/dist/api/application/types/server.js.map +1 -0
  35. package/dist/api/application/types/user.d.ts +20 -0
  36. package/dist/api/application/types/user.d.ts.map +1 -0
  37. package/dist/api/application/types/user.js +3 -0
  38. package/dist/api/application/types/user.js.map +1 -0
  39. package/dist/api/application/users.d.ts +38 -0
  40. package/dist/api/application/users.d.ts.map +1 -0
  41. package/dist/api/application/users.js +54 -0
  42. package/dist/api/application/users.js.map +1 -0
  43. package/dist/api/base/request.d.ts +8 -0
  44. package/dist/api/base/request.d.ts.map +1 -0
  45. package/dist/api/base/request.js +33 -0
  46. package/dist/api/base/request.js.map +1 -0
  47. package/dist/api/base/types.d.ts +40 -0
  48. package/dist/api/base/types.d.ts.map +1 -0
  49. package/dist/api/base/types.js +14 -0
  50. package/dist/api/base/types.js.map +1 -0
  51. package/dist/api/client/account.d.ts +31 -0
  52. package/dist/api/client/account.d.ts.map +1 -0
  53. package/dist/api/client/account.js +70 -0
  54. package/dist/api/client/account.js.map +1 -0
  55. package/dist/api/client/client.d.ts +14 -0
  56. package/dist/api/client/client.d.ts.map +1 -0
  57. package/dist/api/client/client.js +37 -0
  58. package/dist/api/client/client.js.map +1 -0
  59. package/dist/api/client/server.d.ts +33 -0
  60. package/dist/api/client/server.d.ts.map +1 -0
  61. package/dist/api/client/server.js +62 -0
  62. package/dist/api/client/server.js.map +1 -0
  63. package/dist/api/client/server_activity.d.ts +9 -0
  64. package/dist/api/client/server_activity.d.ts.map +1 -0
  65. package/dist/api/client/server_activity.js +22 -0
  66. package/dist/api/client/server_activity.js.map +1 -0
  67. package/dist/api/client/server_allocations.d.ts +13 -0
  68. package/dist/api/client/server_allocations.d.ts.map +1 -0
  69. package/dist/api/client/server_allocations.js +32 -0
  70. package/dist/api/client/server_allocations.js.map +1 -0
  71. package/dist/api/client/server_backups.d.ts +18 -0
  72. package/dist/api/client/server_backups.d.ts.map +1 -0
  73. package/dist/api/client/server_backups.js +50 -0
  74. package/dist/api/client/server_backups.js.map +1 -0
  75. package/dist/api/client/server_databases.d.ts +12 -0
  76. package/dist/api/client/server_databases.d.ts.map +1 -0
  77. package/dist/api/client/server_databases.js +36 -0
  78. package/dist/api/client/server_databases.js.map +1 -0
  79. package/dist/api/client/server_files.d.ts +34 -0
  80. package/dist/api/client/server_files.d.ts.map +1 -0
  81. package/dist/api/client/server_files.js +86 -0
  82. package/dist/api/client/server_files.js.map +1 -0
  83. package/dist/api/client/server_schedules.d.ts +38 -0
  84. package/dist/api/client/server_schedules.d.ts.map +1 -0
  85. package/dist/api/client/server_schedules.js +59 -0
  86. package/dist/api/client/server_schedules.js.map +1 -0
  87. package/dist/api/client/server_settings.d.ts +12 -0
  88. package/dist/api/client/server_settings.d.ts.map +1 -0
  89. package/dist/api/client/server_settings.js +30 -0
  90. package/dist/api/client/server_settings.js.map +1 -0
  91. package/dist/api/client/server_startup.d.ts +11 -0
  92. package/dist/api/client/server_startup.d.ts.map +1 -0
  93. package/dist/api/client/server_startup.js +25 -0
  94. package/dist/api/client/server_startup.js.map +1 -0
  95. package/dist/api/client/server_users.d.ts +13 -0
  96. package/dist/api/client/server_users.d.ts.map +1 -0
  97. package/dist/api/client/server_users.js +32 -0
  98. package/dist/api/client/server_users.js.map +1 -0
  99. package/dist/api/client/server_websocket.d.ts +60 -0
  100. package/dist/api/client/server_websocket.d.ts.map +1 -0
  101. package/dist/api/client/server_websocket.js +431 -0
  102. package/dist/api/client/server_websocket.js.map +1 -0
  103. package/dist/api/client/types/server.d.ts +64 -0
  104. package/dist/api/client/types/server.d.ts.map +1 -0
  105. package/dist/api/client/types/server.js +3 -0
  106. package/dist/api/client/types/server.js.map +1 -0
  107. package/dist/api/client/types/server_subuser.d.ts +14 -0
  108. package/dist/api/client/types/server_subuser.d.ts.map +1 -0
  109. package/dist/api/client/types/server_subuser.js +3 -0
  110. package/dist/api/client/types/server_subuser.js.map +1 -0
  111. package/dist/api/client/types/user.d.ts +31 -0
  112. package/dist/api/client/types/user.d.ts.map +1 -0
  113. package/dist/api/client/types/user.js +3 -0
  114. package/dist/api/client/types/user.js.map +1 -0
  115. package/dist/api/client/types/websocket.d.ts +116 -0
  116. package/dist/api/client/types/websocket.d.ts.map +1 -0
  117. package/dist/api/client/types/websocket.js +37 -0
  118. package/dist/api/client/types/websocket.js.map +1 -0
  119. package/dist/api/client/websocket_old.d.ts +171 -0
  120. package/dist/api/client/websocket_old.d.ts.map +1 -0
  121. package/dist/api/client/websocket_old.js +319 -0
  122. package/dist/api/client/websocket_old.js.map +1 -0
  123. package/dist/api/common/types/egg.d.ts +10 -0
  124. package/dist/api/common/types/egg.d.ts.map +1 -0
  125. package/dist/api/common/types/egg.js +3 -0
  126. package/dist/api/common/types/egg.js.map +1 -0
  127. package/dist/api/common/types/server_allocations.d.ts +18 -0
  128. package/dist/api/common/types/server_allocations.d.ts.map +1 -0
  129. package/dist/api/common/types/server_allocations.js +3 -0
  130. package/dist/api/common/types/server_allocations.js.map +1 -0
  131. package/dist/api/common/types/server_backup.d.ts +13 -0
  132. package/dist/api/common/types/server_backup.d.ts.map +1 -0
  133. package/dist/api/common/types/server_backup.js +3 -0
  134. package/dist/api/common/types/server_backup.js.map +1 -0
  135. package/dist/api/common/types/server_database.d.ts +18 -0
  136. package/dist/api/common/types/server_database.d.ts.map +1 -0
  137. package/dist/api/common/types/server_database.js +3 -0
  138. package/dist/api/common/types/server_database.js.map +1 -0
  139. package/dist/api/common/types/server_files.d.ts +12 -0
  140. package/dist/api/common/types/server_files.d.ts.map +1 -0
  141. package/dist/api/common/types/server_files.js +3 -0
  142. package/dist/api/common/types/server_files.js.map +1 -0
  143. package/dist/api/common/types/server_limits.d.ts +17 -0
  144. package/dist/api/common/types/server_limits.d.ts.map +1 -0
  145. package/dist/api/common/types/server_limits.js +3 -0
  146. package/dist/api/common/types/server_limits.js.map +1 -0
  147. package/dist/api/common/types/server_power.d.ts +2 -0
  148. package/dist/api/common/types/server_power.d.ts.map +1 -0
  149. package/dist/api/common/types/server_power.js +3 -0
  150. package/dist/api/common/types/server_power.js.map +1 -0
  151. package/dist/api/common/types/server_schedule.d.ts +34 -0
  152. package/dist/api/common/types/server_schedule.d.ts.map +1 -0
  153. package/dist/api/common/types/server_schedule.js +3 -0
  154. package/dist/api/common/types/server_schedule.js.map +1 -0
  155. package/dist/api/common/types/server_startup.d.ts +14 -0
  156. package/dist/api/common/types/server_startup.d.ts.map +1 -0
  157. package/dist/api/common/types/server_startup.js +3 -0
  158. package/dist/api/common/types/server_startup.js.map +1 -0
  159. package/dist/index.d.ts +9 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +21 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/pterodactyl.d.ts +8 -0
  164. package/dist/pterodactyl.d.ts.map +1 -0
  165. package/dist/pterodactyl.js +20 -0
  166. package/dist/pterodactyl.js.map +1 -0
  167. package/dist/utils/sized.d.ts +10 -0
  168. package/dist/utils/sized.d.ts.map +1 -0
  169. package/dist/utils/sized.js +15 -0
  170. package/dist/utils/sized.js.map +1 -0
  171. package/dist/utils/transform.d.ts +9 -0
  172. package/dist/utils/transform.d.ts.map +1 -0
  173. package/dist/utils/transform.js +19 -0
  174. package/dist/utils/transform.js.map +1 -0
  175. package/dist/utils/types.d.ts +14 -0
  176. package/dist/utils/types.d.ts.map +1 -0
  177. package/dist/utils/types.js +3 -0
  178. package/dist/utils/types.js.map +1 -0
  179. package/package.json +1 -1
  180. 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